Compartir a través de


estructura IP_INTERFACE_INFO (ipexport.h)

La estructura IP_INTERFACE_INFO contiene una lista de los adaptadores de interfaz de red con IPv4 habilitado en el sistema local.

Sintaxis

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

Miembros

NumAdapters

Número de adaptadores enumerados en la matriz a la que apunta el miembro Adapter .

Adapter[1]

Matriz de estructuras de IP_ADAPTER_INDEX_MAP . Cada estructura asigna un índice de adaptador al nombre del adaptador. El índice del adaptador puede cambiar cuando un adaptador está deshabilitado y, a continuación, habilitado, o en otras circunstancias, y no debe considerarse persistente.

Comentarios

La estructura de IP_INTERFACE_INFO es específica de los adaptadores de red con IPv4 habilitado. La estructura IP_INTERFACE_INFO contiene el número de adaptadores de red con IPv4 habilitado en el sistema local y una matriz de estructuras de IP_ADAPTER_INDEX_MAP con información sobre cada adaptador de red con IPv4 habilitado. La estructura IP_INTERFACE_INFO contiene al menos una estructura de IP_ADAPTER_INDEX_MAP , incluso si el miembro NumAdapters de la estructura IP_INTERFACE_INFO indica que no hay adaptadores de red con IPv4 habilitados. Cuando el miembro NumAdapters de la estructura IP_INTERFACE_INFO es cero, el valor de los miembros de la estructura de IP_ADAPTER_INDEX_MAP única devuelta en la estructura IP_INTERFACE_INFO no está definido.

La estructura IP_INTERFACE_INFO no se puede usar para devolver información sobre la interfaz de bucle invertido.

En Windows Vista y versiones posteriores, el miembro Name de la estructura IP_ADAPTER_INDEX_MAP de la estructura IP_INTERFACE_INFO puede ser una cadena Unicode del GUID para la interfaz de red (la cadena comienza con el carácter '{').

Esta estructura se define en el archivo de encabezado Ipexport.h , que se incluye automáticamente en el archivo de encabezado Iphlpapi.h . El archivo de encabezado Ipexport.h nunca se debe usar directamente.

Ejemplos

En el ejemplo siguiente se recupera la lista de adaptadores de red con IPv4 habilitado en el sistema local e imprime varias propiedades del primer adaptador.

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

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Encabezado ipexport.h (incluya Iphlpapi.h)

Consulte también

GetInterfaceInfo

Página de inicio del asistente de IP

Estructuras del asistente de IP

IP_ADAPTER_INDEX_MAP