Partager via


IP_INTERFACE_INFO structure (ipexport.h)

La structure IP_INTERFACE_INFO contient une liste des cartes d’interface réseau avec IPv4 activé sur le système local.

Syntaxe

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

Membres

NumAdapters

Nombre d’adaptateurs répertoriés dans le tableau pointé par le membre Adaptateur .

Adapter[1]

Tableau de structures IP_ADAPTER_INDEX_MAP . Chaque structure mappe un index d’adaptateur au nom de cet adaptateur. L’index de l’adaptateur peut changer lorsqu’un adaptateur est désactivé, puis activé, ou dans d’autres circonstances, et ne doit pas être considéré comme persistant.

Remarques

La structure IP_INTERFACE_INFO est spécifique aux cartes réseau avec IPv4 activé. La structure IP_INTERFACE_INFO contient le nombre de cartes réseau avec IPv4 activé sur le système local et un tableau de structures IP_ADAPTER_INDEX_MAP avec des informations sur chaque carte réseau avec IPv4 activé. La structure IP_INTERFACE_INFO contient au moins une structure IP_ADAPTER_INDEX_MAP même si le membre NumAdapters de la structure IP_INTERFACE_INFO indique qu’aucune carte réseau avec IPv4 n’est activée. Lorsque le membre NumAdapters de la structure IP_INTERFACE_INFO est égal à zéro, la valeur des membres de la structure de IP_ADAPTER_INDEX_MAP unique retournée dans la structure IP_INTERFACE_INFO n’est pas définie.

La structure IP_INTERFACE_INFO ne peut pas être utilisée pour retourner des informations sur l’interface de bouclage.

Sur Windows Vista et versions ultérieures, le membre Name de la structure IP_ADAPTER_INDEX_MAP dans la structure IP_INTERFACE_INFO peut être une chaîne Unicode du GUID pour l’interface réseau (la chaîne commence par le caractère « { »).

Cette structure est définie dans le fichier d’en-tête Ipexport.h qui est automatiquement inclus dans le fichier d’en-tête Iphlpapi.h . Le fichier d’en-tête Ipexport.h ne doit jamais être utilisé directement.

Exemples

L’exemple suivant récupère la liste des cartes réseau avec IPv4 activé sur le système local et imprime différentes propriétés de la première carte.

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

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
En-tête ipexport.h (include Iphlpapi.h)

Voir aussi

GetInterfaceInfo

Page de démarrage de l’assistance IP

Structures d’assistance IP

IP_ADAPTER_INDEX_MAP