struktur IP_INTERFACE_INFO (ipexport.h)
Struktur IP_INTERFACE_INFO berisi daftar adaptor antarmuka jaringan dengan IPv4 diaktifkan pada sistem lokal.
Sintaks
typedef struct _IP_INTERFACE_INFO {
LONG NumAdapters;
IP_ADAPTER_INDEX_MAP Adapter[1];
} IP_INTERFACE_INFO, *PIP_INTERFACE_INFO;
Anggota
NumAdapters
Jumlah adaptor yang tercantum dalam array yang ditujukkan oleh anggota Adapter .
Adapter[1]
Array struktur IP_ADAPTER_INDEX_MAP . Setiap struktur memetakan indeks adaptor ke nama adaptor tersebut. Indeks adaptor dapat berubah ketika adaptor dinonaktifkan dan kemudian diaktifkan, atau dalam keadaan lain, dan tidak boleh dianggap persisten.
Keterangan
Struktur IP_INTERFACE_INFO khusus untuk adaptor jaringan dengan IPv4 diaktifkan. Struktur IP_INTERFACE_INFO berisi jumlah adaptor jaringan dengan IPv4 diaktifkan pada sistem lokal dan array struktur IP_ADAPTER_INDEX_MAP dengan informasi pada setiap adaptor jaringan dengan IPv4 diaktifkan. Struktur IP_INTERFACE_INFO berisi setidaknya satu struktur IP_ADAPTER_INDEX_MAP meskipun anggota NumAdapters dari struktur IP_INTERFACE_INFO menunjukkan bahwa tidak ada adaptor jaringan dengan IPv4 yang diaktifkan. Ketika anggota NumAdapters dari struktur IP_INTERFACE_INFO adalah nol, nilai anggota struktur IP_ADAPTER_INDEX_MAP tunggal yang dikembalikan dalam struktur IP_INTERFACE_INFO tidak terdefinis.
Struktur IP_INTERFACE_INFO tidak dapat digunakan untuk mengembalikan informasi tentang antarmuka loopback.
Pada Windows Vista dan yang lebih baru, anggota Nama struktur IP_ADAPTER_INDEX_MAP dalam struktur IP_INTERFACE_INFO mungkin merupakan string Unicode dari GUID untuk antarmuka jaringan (string dimulai dengan karakter '{').
Struktur ini didefinisikan dalam file header Ipexport.h yang secara otomatis disertakan dalam file header Iphlpapi.h . File header Ipexport.h tidak boleh digunakan secara langsung.
Contoh
Contoh berikut mengambil daftar adaptor jaringan dengan IPv4 diaktifkan pada sistem lokal dan mencetak berbagai properti adaptor pertama.
// Declare and initialize variables
PIP_INTERFACE_INFO pInfo;
pInfo = (IP_INTERFACE_INFO *) malloc( sizeof(IP_INTERFACE_INFO) );
ULONG ulOutBufLen = 0;
DWORD dwRetVal = 0;
// Make an initial call to GetInterfaceInfo to get
// the necessary size in the ulOutBufLen variable
if ( GetInterfaceInfo(pInfo, &ulOutBufLen) == ERROR_INSUFFICIENT_BUFFER) {
free(pInfo);
pInfo = (IP_INTERFACE_INFO *) malloc (ulOutBufLen);
}
// Make a second call to GetInterfaceInfo to get
// the actual data we need
if ((dwRetVal = GetInterfaceInfo(pInfo, &ulOutBufLen)) == NO_ERROR ) {
printf("\tAdapter Name: %ws\n", pInfo->Adapter[0].Name);
printf("\tAdapter Index: %ld\n", pInfo->Adapter[0].Index);
printf("\tNum Adapters: %ld\n", pInfo->NumAdapters);
// free memory allocated
free(pInfo);
pInfo = NULL;
}
else if (dwRetVal == ERROR_NO_DATA) {
printf("There are no network adapters with IPv4 enabled on the local system\n");
}
else {
printf("GetInterfaceInfo failed.\n");
LPVOID lpMsgBuf;
if (FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
dwRetVal,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
(LPTSTR) &lpMsgBuf,
0,
NULL )) {
printf("\tError: %s", lpMsgBuf);
}
LocalFree( lpMsgBuf );
}
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung | Windows 2000 Server [hanya aplikasi desktop] |
Header | ipexport.h (termasuk Iphlpapi.h) |