Partager via


GetIpNetTable2, fonction

La fonction GetIpNetTable2 récupère la table voisin IP sur un ordinateur local.

Syntaxe

NETIOAPI_API GetIpNetTable2(
  _In_  ADDRESS_FAMILY    Family,
  _Out_ PMIB_IPNET_TABLE2 *Table
);

Paramètres

  • Family [in]
    Famille d’adresses à récupérer.

    Les valeurs possibles pour la famille d’adresses sont répertoriées dans le fichier d’en-tête Winsock2.h. Notez que les valeurs de la famille d’adresses AF_ et des constantes de famille de protocoles PF_ sont identiques (par exemple, AF_INET et PF_INET), afin de pouvoir utiliser l’une ou l’autre constante.

    Sur Windows Vista et les versions ultérieures des systèmes d’exploitation Windows, les valeurs possibles pour le paramètre Family sont définies dans le fichier d’en-tête Ws2def.h. Notez que le fichier d’en-tête Ws2def.h est automatiquement inclus dans Netioapi.h et que vous ne devez jamais utiliser Ws2def.h directement.

    Les valeurs suivantes sont actuellement prises en charge pour la famille d’adresses :

    • AF_INET
      Famille d’adresses IPv4. Lorsque cette valeur est spécifiée, cette fonction retourne la table d’adresses IP voisine qui contient uniquement des entrées IPv4.

    • AF_INET6
      Famille d’adresses IPv6. Lorsque cette valeur est spécifiée, cette fonction retourne la table d’adresses IP voisine qui contient uniquement les entrées IPv6.

    • AF_UNSPEC
      La famille d’adresses n’est pas spécifiée. Lorsque cette valeur est spécifiée, cette fonction retourne la table d’adresses IP voisine qui contient les entrées IPv4 et IPv6.

  • table [out]
    Pointeur vers une structure MIB_IPNET_TABLE2 qui contient une table des entrées d’adresse IP voisines sur l’ordinateur local.

Valeur de retour

GetIpNetTable2 retourne STATUS_SUCCESS si la fonction réussit.

Si la fonction échoue, GetIpNetTable2 retourne l’un des codes d’erreur suivants :

Retourner le code Description
STATUS_INVALID_PARAMETER

Un paramètre non valide a été passé à la fonction. Cette erreur est retournée si un pointeur NULL est transmis dans le paramètre table ou si le paramètre Family n’a pas été spécifié comme AF_INET, AF_INET6 ou AF_UNSPEC.

STATUS_NOT_ENOUGH_MEMORY

Les ressources de mémoire insuffisantes sont disponibles pour terminer l’opération.

STATUS_NOT_FOUND

Aucune entrée d’adresse IP voisine, comme spécifié dans le paramètre famille, a été trouvée.

STATUS_NOT_SUPPORTED

La demande n’est pas prise en charge. Cette erreur est retournée si aucune pile IPv4 n’est située sur l’ordinateur local et que AF_INET a été spécifié dans le paramètre famille, ou si aucune pile IPv6 n’est située sur l’ordinateur local et que AF_INET6 a été spécifié dans le paramètre Family. Cette erreur est également retournée sur les versions de Windows où cette fonction n’est pas prise en charge.

autres

Utilisez la fonction FormatMessage pour obtenir la chaîne de message pour l’erreur retournée.

Remarques

La fonction GetIpNetTable2 énumère les adresses IP voisines sur un ordinateur local et retourne ces informations dans une structure MIB_IPNET_TABLE2.

GetIpNetTable2 retourne les entrées d’adresse IP voisines dans une structure MIB_IPNET_TABLE2 dans la mémoire tampon vers laquelle pointe le paramètre Table. La structure MIB_IPNET_TABLE2 contient un nombre d’entrées d’adresse IP voisine et un tableau de structures MIB_IPNET_ROW2 pour chaque entrée d’adresse IP voisine. Lorsque ces structures retournées ne sont plus requises, votre pilote doit libérer la mémoire en appelant FreeMibTable.

Votre pilote doit initialiser le paramètre Family sur AF_INET, AF_INET6 ou AF_UNSPEC.

Notez que la structure MIB_IPNET_TABLE2 retournée par laquelle le paramètre Table peut contenir un remplissage pour l’alignement entre le membre NumEntries et la première entrée de tableau MIB_IPNET_ROW2 dans le membre table de la structure MIB_IPNET_TABLE2. Le remplissage pour l’alignement peut également être présent entre les entrées de tableau MIB_IPNET_ROW2. Tout accès à une entrée de tableau MIB_IPNET_ROW2 doit supposer que le remplissage peut exister.

Exigences

Plateforme cible

universel

Version

Disponible dans Windows Vista et versions ultérieures des systèmes d’exploitation Windows.

En-tête

Netioapi.h (include Netioapi.h)

Bibliothèque

Netio.lib

IRQL

< DISPATCH_LEVEL

Voir aussi

CreateIpNetEntry2

FlushIpNetTable2

FreeMibTable

GetIpNetEntry2

MIB_IPNET_ROW2

MIB_IPNET_TABLE2

ResolveIpNetEntry2

SetIpNetEntry2