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 :
- Adresse IP locale
- ID d’étendue locale (applicable lorsque le paramètre ulAf est défini sur AF_INET6)
- Port TCP local
- Adresse IP distante
- ID d’étendue distante (applicable lorsque le paramètre ulAf est défini sur AF_INET6)
- Port TCP distant
[in] ulAf
Version de l’adresse IP utilisée par les points de terminaison TCP.
Valeur | Signification |
---|---|
|
IPv4 est utilisé. |
|
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 |
---|---|
|
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. |
|
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 |