0

アダプターインデックスをその名前で取得したいのですが、数日間検索した後、GetAdapterIndex()関数が見つかりました。

#include <winsock2.h>
#include <iphlpapi.h>
#include <stdio.h>
#include <iostream>
#include <stdlib.h>
#pragma comment(lib, "IPHLPAPI.lib")

#define MALLOC(x) HeapAlloc(GetProcessHeap(), 0, (x)) 
#define FREE(x) HeapFree(GetProcessHeap(), 0, (x))

int main()
{
    DWORD res;
    DWORD rs;
    ULONG IfIndex;
    LPWSTR AdapterName;
    int i = 0;
    res = GetAdapterIndex(L"AMD PCNET Family PCI Ethernet Adapter - Packet Scheduler Miniport", &IfIndex);
    if(res == NO_ERROR)
        printf("Adapter Index: %ld\n", IfIndex);

    res = GetNumberOfInterfaces(&rs);
    if(res == NO_ERROR)
        printf("Number of Adapters: %ld\n", rs);
return 0;
}

まず、選択した特定のアダプタ名のインデックスが返されません。 2番目:アダプターが1つしかない場合でも、アダプターが2つあることが返されます。

4

1 に答える 1

1

を使用して、ネットワークインターフェイスの名前と説明を印刷できます。GetIfEntryインデックスの範囲は1から。によって返される値までGetNumberOfInterfacesです。すべての名前は\DEVICE\TCPIP_{846EE342-7039-11DE-9D20-806E6F6E6963}、適切な名前を使用してインターフェイスが見つからない理由を説明する形式になっています。

于 2012-07-05T21:16:43.343 に答える