GetExtendedTcpTable, fonction (iphlpapi.h)

La fonction GetExtendedTcpTable récupère une table qui contient une liste de points de terminaison TCP disponibles pour l’application.

Syntaxe

IPHLPAPI_DLL_LINKAGE DWORD GetExtendedTcpTable(
  [out]     PVOID           pTcpTable,
  [in, out] PDWORD          pdwSize,
  [in]      BOOL            bOrder,
  [in]      ULONG           ulAf,
  [in]      TCP_TABLE_CLASS TableClass,
  [in]      ULONG           Reserved
);

Paramètres

[out] pTcpTable

Pointeur vers la structure de table qui contient les points de terminaison TCP filtrés disponibles pour l’application. Pour plus d’informations sur la façon de déterminer le type de table retourné en fonction de combinaisons de paramètres d’entrée spécifiques, consultez la section Remarques plus loin dans ce document.

[in, out] pdwSize

Taille estimée de la structure retournée dans pTcpTable, en octets. Si cette valeur est définie trop petite, ERROR_INSUFFICIENT_BUFFER est retourné par cette fonction, et ce champ contient la taille correcte de la structure.

[in] bOrder

Valeur qui spécifie si la table de connexion TCP doit être triée. Si ce paramètre a la valeur TRUE, les points de terminaison TCP de la table sont triés dans l’ordre croissant, en commençant par l’adresse IP locale la plus basse. Si ce paramètre a la valeur FALSE, les points de terminaison TCP de la table s’affichent dans l’ordre dans lequel ils ont été récupérés.

Les valeurs suivantes sont comparées (telles qu’elles sont répertoriées) lors de l’ordre des points de terminaison TCP :

  1. Adresse IP locale
  2. ID d’étendue locale (applicable lorsque le paramètre ulAf est défini sur AF_INET6)
  3. Port TCP local
  4. Adresse IP distante
  5. ID d’étendue distante (applicable lorsque le paramètre ulAf est défini sur AF_INET6)
  6. Port TCP distant

[in] ulAf

Version de l’adresse IP utilisée par les points de terminaison TCP.

Valeur Signification
AF_INET
IPv4 est utilisé.
AF_INET6
IPv6 est utilisé.

[in] TableClass

Type de la structure de table TCP à récupérer. Ce paramètre peut être l’une des valeurs de l’énumération TCP_TABLE_CLASS .

Sur le SDK Windows publié pour Windows Vista et versions ultérieures, la organization des fichiers d’en-tête a changé et l’énumération TCP_TABLE_CLASS est définie dans le fichier d’en-tête Iprtrmib.h, et non dans le fichier d’en-tête Iphlpapi.h.

La valeur d’énumération TCP_TABLE_CLASS est combinée à la valeur du paramètre ulAf pour déterminer les informations TCP étendues à récupérer.

[in] Reserved

Réservé. Cette valeur doit être zéro.

Valeur retournée

Si l’appel réussit, la valeur NO_ERROR est retournée.

Si la fonction échoue, la valeur de retour est l’un des codes d’erreur suivants.

Code de retour Description
ERROR_INSUFFICIENT_BUFFER
Une quantité d’espace insuffisante a été allouée pour la table. La taille de la table est retournée dans le paramètre pdwSize et doit être utilisée dans un appel ultérieur à cette fonction afin de récupérer la table.

Cette erreur est également retournée si le paramètre pTcpTable a la valeur NULL.

ERROR_INVALID_PARAMETER
Un paramètre non valide a été transmis à la fonction. Cette erreur est retournée si le paramètre TableClass contient une valeur qui n’est pas définie dans l’énumération TCP_TABLE_CLASS .

Remarques

Le type de table retourné par cette fonction dépend de la combinaison spécifique du paramètre ulAf et du paramètre TableClass .

Lorsque le paramètre ulAf est défini sur AF_INET, le tableau suivant indique le type de table TCP à récupérer dans la structure vers laquelle pointe le paramètre pTcpTable pour chaque valeur TableClass possible.

TableClass, valeur structure pTcpTable
TCP_TABLE_BASIC_ALL MIB_TCPTABLE
TCP_TABLE_BASIC_CONNECTIONS MIB_TCPTABLE
TCP_TABLE_BASIC_LISTENER MIB_TCPTABLE
TCP_TABLE_OWNER_MODULE_ALL MIB_TCPTABLE_OWNER_MODULE
TCP_TABLE_OWNER_MODULE_CONNECTIONS MIB_TCPTABLE_OWNER_MODULE
TCP_TABLE_OWNER_MODULE_LISTENER MIB_TCPTABLE_OWNER_MODULE
TCP_TABLE_OWNER_PID_ALL MIB_TCPTABLE_OWNER_PID
TCP_TABLE_OWNER_PID_CONNECTIONS MIB_TCPTABLE_OWNER_PID
TCP_TABLE_OWNER_PID_LISTENER MIB_TCPTABLE_OWNER_PID
 

Lorsque le paramètre ulAf a la valeur AF_INET6, le tableau suivant indique le type de table TCP à récupérer dans la structure pointée par le paramètre pTcpTable pour chaque valeur TableClass possible.

TableClass, valeur structure pTcpTable
TCP_TABLE_OWNER_MODULE_ALL MIB_TCP6TABLE_OWNER_MODULE
TCP_TABLE_OWNER_MODULE_CONNECTIONS MIB_TCP6TABLE_OWNER_MODULE
TCP_TABLE_OWNER_MODULE_LISTENER MIB_TCP6TABLE_OWNER_MODULE
TCP_TABLE_OWNER_PID_ALL MIB_TCP6TABLE_OWNER_PID
TCP_TABLE_OWNER_PID_CONNECTIONS MIB_TCP6TABLE_OWNER_PID
TCP_TABLE_OWNER_PID_LISTENER MIB_TCP6TABLE_OWNER_PID
 

La fonction GetExtendedTcpTable appelée avec le paramètre ulAf défini sur AF_INET6 et tableClass définie sur TCP_TABLE_BASIC_LISTENER, TCP_TABLE_BASIC_CONNECTIONS ou TCP_TABLE_BASIC_ALL n’est pas prise en charge et retourne ERROR_NOT_SUPPORTED.

Sur le SDK Windows publié pour Windows Vista et versions ultérieures, la organization des fichiers d’en-tête a changé. Les différentes structures MIB_TCPTABLE sont définies dans le fichier d’en-tête Tcpmib.h , et non dans le fichier d’en-tête Iprtrmib.h . Notez que le fichier d’en-tête Tcpmib.h est automatiquement inclus dans Iprtrmib.h, qui est automatiquement inclus dans le fichier d’en-tête Iphlpapi.h . Les fichiers d’en-tête Tcpmib.h et Iprtrmib.h ne doivent jamais être utilisés directement.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista, Windows XP avec SP2 [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows Server 2008, Windows Server 2003 avec SP1 [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête iphlpapi.h
Bibliothèque Iphlpapi.lib
DLL Iphlpapi.dll

Voir aussi

MIB_TCP6TABLE

MIB_TCP6TABLE_OWNER_MODULE

MIB_TCP6TABLE_OWNER_PID

MIB_TCPTABLE

MIB_TCPTABLE_OWNER_MODULE

MIB_TCPTABLE_OWNER_PID

TCP_TABLE_CLASS