Condividi tramite


IP_INTERFACE_INFO struttura (ipexport.h)

La struttura IP_INTERFACE_INFO contiene un elenco delle schede di interfaccia di rete con IPv4 abilitate nel sistema locale.

Sintassi

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

Members

NumAdapters

Numero di adattatori elencati nella matrice a cui fa riferimento il membro Adapter .

Adapter[1]

Matrice di strutture IP_ADAPTER_INDEX_MAP . Ogni struttura esegue il mapping di un indice dell'adapter al nome dell'adattatore. L'indice dell'adattatore può cambiare quando un adattatore è disabilitato e quindi abilitato o in altre circostanze e non deve essere considerato persistente.

Commenti

La struttura IP_INTERFACE_INFO è specifica delle schede di rete con IPv4 abilitata. La struttura IP_INTERFACE_INFO contiene il numero di schede di rete con IPv4 abilitate nel sistema locale e una matrice di strutture IP_ADAPTER_INDEX_MAP con informazioni su ogni scheda di rete abilitata per IPv4. La struttura IP_INTERFACE_INFO contiene almeno una struttura IP_ADAPTER_INDEX_MAP anche se il membro NumAdaptersdella strutturaIP_INTERFACE_INFO indica che non sono abilitate schede di rete con IPv4. Quando il membro NumAdapters della struttura IP_INTERFACE_INFO è zero, il valore dei membri della singola struttura di IP_ADAPTER_INDEX_MAP restituita nella struttura IP_INTERFACE_INFO non è definita.

La struttura IP_INTERFACE_INFO non può essere usata per restituire informazioni sull'interfaccia di loopback.

In Windows Vista e versioni successive il membro Name della struttura IP_ADAPTER_INDEX_MAP nella struttura IP_INTERFACE_INFO può essere una stringa Unicode del GUID per l'interfaccia di rete (la stringa inizia con il carattere '{').

Questa struttura è definita nel file di intestazione Ipexport.h incluso automaticamente nel file di intestazione Iphlpapi.h . Il file di intestazione Ipexport.h non deve mai essere usato direttamente.

Esempio

Nell'esempio seguente viene recuperato l'elenco delle schede di rete con IPv4 abilitato nel sistema locale e vengono stampate varie proprietà della prima scheda.

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

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Intestazione ipexport.h (includere Iphlpapi.h)

Vedi anche

GetInterfaceInfo

Pagina iniziale dell'helper IP

Strutture helper IP

IP_ADAPTER_INDEX_MAP