Partager via


GetExtendedUdpTable, fonction (iphlpapi.h)

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

Syntaxe

IPHLPAPI_DLL_LINKAGE DWORD GetExtendedUdpTable(
  [out]     PVOID           pUdpTable,
  [in, out] PDWORD          pdwSize,
  [in]      BOOL            bOrder,
  [in]      ULONG           ulAf,
  [in]      UDP_TABLE_CLASS TableClass,
  [in]      ULONG           Reserved
);

Paramètres

[out] pUdpTable

Pointeur vers la structure de table qui contient les points de terminaison UDP 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 pUdpTable, 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 point de terminaison UDP doit être triée. Si ce paramètre a la valeur TRUE, les points de terminaison UDP 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 UDP de la table apparaissent dans l’ordre dans lequel ils ont été récupérés.

Les valeurs suivantes sont comparées à celles répertoriées lors du classement des points de terminaison UDP :

  1. Adresse IP locale
  2. ID d’étendue locale (applicable lorsque le paramètre ulAf est défini sur AF_INET6)
  3. Port UDP local

[in] ulAf

Version de l’adresse IP utilisée par le point de terminaison UDP.

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

[in] TableClass

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

Sur le Kit de développement logiciel (SDK) Windows publié pour Windows Vista et versions ultérieures, la organization des fichiers d’en-tête a changé et l’énumération UDP_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 UDP_TABLE_CLASS est combinée avec la valeur du paramètre ulAf pour déterminer les informations UDP é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 à 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 pUdpTable 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 UDP_TABLE_CLASS .

Notes

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 UDP à récupérer dans la structure pointée par le paramètre pUdpTable pour chaque valeur TableClass possible.

Valeur TableClass Structure pUdpTable
UDP_TABLE_BASIC MIB_UDPTABLE
UDP_TABLE_OWNER_MODULE MIB_UDPTABLE_OWNER_MODULE
UDP_TABLE_OWNER_PID MIB_UDPTABLE_OWNER_PID
 

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

Valeur TableClass Structure pUdpTable
UDP_TABLE_BASIC MIB_UDP6TABLE
UDP_TABLE_OWNER_MODULE MIB_UDP6TABLE_OWNER_MODULE
UDP_TABLE_OWNER_PID MIB_UDP6TABLE_OWNER_PID
 

La fonction GetExtendedUdpTable lorsqu’elle est appelée avec le paramètre ulAf défini sur AF_INET6 et tableClass définie sur UDP_TABLE_BASIC est uniquement prise en charge sur Windows Vista et versions ultérieures.

Sur Windows Server 2003 avec Service Pack 1 (SP1) et Windows XP avec Service Pack 2 (SP2), la fonction GetExtendedUdpTable appelée avec le paramètre ulAf défini sur AF_INET6 et tableClass définie sur UDP_TABLE_BASIC échoue et retourne ERROR_NOT_SUPPORTED.

Sur le Kit de développement logiciel (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_UDPTABLE sont définies dans le fichier d’en-tête Udpmib.h , et non dans le fichier d’en-tête Iprtrmib.h . Notez que le fichier d’en-tête Udpmib.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 Udpmib.h et Iprtrmib.h ne doivent jamais être utilisés directement.

Spécifications

   
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_UDP6TABLE

MIB_UDP6TABLE_OWNER_MODULE

MIB_UDP6TABLE_OWNER_PID

MIB_UDPTABLE

MIB_UDPTABLE_OWNER_MODULE

MIB_UDPTABLE_OWNER_PID

UDP_TABLE_CLASS