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