IP_INTERFACE_INFO 结构 (ipexport.h)

IP_INTERFACE_INFO结构包含本地系统上启用了 IPv4 的网络接口适配器的列表。

语法

typedef struct _IP_INTERFACE_INFO {
  LONG                 NumAdapters;
  IP_ADAPTER_INDEX_MAP Adapter[1];
} IP_INTERFACE_INFO, *PIP_INTERFACE_INFO;

成员

NumAdapters

适配器成员指向的数组中列出的 适配器 数。

Adapter[1]

IP_ADAPTER_INDEX_MAP 结构的数组。 每个结构将适配器索引映射到该适配器的名称。 禁用并启用适配器时,或者在其他情况下,适配器索引可能会更改,不应被视为永久性。

注解

IP_INTERFACE_INFO结构特定于启用了 IPv4 的网络适配器。 IP_INTERFACE_INFO 结构包含本地系统上启用了 IPv4 的网络适配器的数量,以及一组IP_ADAPTER_INDEX_MAP结构,其中包含每个启用了 IPv4 的网络适配器的信息。 即使 IP_INTERFACE_INFO 结构的 NumAdapters 成员指示没有启用 IPv4 的网络适配器,IP_INTERFACE_INFO 结构也至少包含一个 IP_ADAPTER_INDEX_MAP 结构。 当 IP_INTERFACE_INFO 结构的 NumAdapters 成员为零时,未定义IP_INTERFACE_INFO结构中返回的单个IP_ADAPTER_INDEX_MAP结构的成员的值。

IP_INTERFACE_INFO 结构不能用于返回有关环回接口的信息。

在 Windows Vista 及更高版本中,IP_INTERFACE_INFO 结构中 IP_ADAPTER_INDEX_MAP 结构的 Name 成员可能是网络接口 GUID 的 Unicode 字符串, (字符串以“{”字符) 开头。

此结构在 Ipexport.h 头文件中定义,该文件自动包含在 Iphlpapi.h 头文件中。 永远不应直接使用 Ipexport.h 头文件。

示例

以下示例检索在本地系统上启用了 IPv4 的网络适配器的列表,并打印第一个适配器的各种属性。

// 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 );
}

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
标头 ipexport.h (包括 Iphlpapi.h)

另请参阅

GetInterfaceInfo

IP 帮助程序起始页

IP 帮助程序结构

IP_ADAPTER_INDEX_MAP