GetOwnerModuleFromTcp6Entry, fonction (iphlpapi.h)

La fonction GetOwnerModuleFromTcp6Entry récupère des données sur le module qui a émis la liaison de contexte pour un point de terminaison TCP IPv6 spécifique dans une ligne de table MIB.

Syntaxe

IPHLPAPI_DLL_LINKAGE DWORD GetOwnerModuleFromTcp6Entry(
  [in]      PMIB_TCP6ROW_OWNER_MODULE     pTcpEntry,
  [in]      TCPIP_OWNER_MODULE_INFO_CLASS Class,
  [out]     PVOID                         pBuffer,
  [in, out] PDWORD                        pdwSize
);

Paramètres

[in] pTcpEntry

Pointeur vers une structure MIB_TCP6ROW_OWNER_MODULE qui contient l’entrée de point de terminaison TCP IPv6 utilisée pour obtenir le module propriétaire.

[in] Class

Valeur d’énumération TCPIP_OWNER_MODULE_INFO_CLASS qui indique le type de données à obtenir concernant le module propriétaire. L’énumération TCPIP_OWNER_MODULE_INFO_CLASS est définie dans le fichier d’en-tête Iprtrmib.h.

Ce paramètre doit être défini sur TCPIP_OWNER_MODULE_INFO_BASIC.

[out] pBuffer

Pointeur vers une mémoire tampon qui contient une structure TCPIP_OWNER_MODULE_BASIC_INFO avec les données du module propriétaire. Le type de données retournées dans cette mémoire tampon est indiqué par la valeur du paramètre Classe .

Les structures suivantes sont utilisées pour les données dans Buffer lorsque la classe est définie sur la valeur correspondante.

Valeur d’énumération de classe Format des données de mémoire tampon
TCPIP_OWNER_MODULE_BASIC_INFO TCPIP_OWNER_MODULE_BASIC_INFO

[in, out] pdwSize

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

Valeur retournée

Si l’appel de fonction 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
Un espace insuffisant a été alloué pour la table. La taille de la table est retournée dans le paramètre pdwSize et doit être utilisée dans un appel suivant à cette fonction pour récupérer correctement la table.
ERROR_INVALID_PARAMETER
Un paramètre est incorrect. Cette valeur est retournée si les paramètres pTcpEntry ou pdwSize sont NULL. Cette valeur est également retournée si le paramètre Classe n’est pas égal à TCPIP_OWNER_MODULE_INFO_BASIC.
ERROR_NOT_ENOUGH_MEMORY
La mémoire n'est pas suffisante pour terminer cette opération.
ERROR_NOT_FOUND
L'élément est introuvable. Cette valeur est retournée si le membre dwOwningPid du MIB_TCP6ROW_OWNER_MODULE pointé par le paramètre pTcpEntry a été zéro ou n’a pas pu être trouvé.
ERROR_PARTIAL_COPY
Seule une partie d’une demande a été effectuée.

Notes

Le paramètre Tampon contient non seulement une structure avec des pointeurs vers des données spécifiques, par exemple, des pointeurs vers les chaînes sans arrêt qui contiennent le nom et le chemin du module propriétaire, mais les données réelles proprement dites ; c’est le nom et les chaînes de chemin d’accès. Par conséquent, lors du calcul de la taille de la mémoire tampon, vérifiez que vous avez suffisamment d’espace pour la structure ainsi que les données auxquelles les membres de la structure pointent.

La résolution des entrées de table TCP aux modules propriétaires est une bonne pratique. Dans quelques cas, le nom du module propriétaire retourné dans la structure TCPIP_OWNER_MODULE_BASIC_INFO peut être un nom de processus (tel que « svchost.exe »), un nom de service (tel que « RPC ») ou un nom de composant (tel que « timer.dll »).

Pour les ordinateurs s’exécutant sur Windows Vista ou version ultérieure, les membres pModuleName et pModulePath du TCPIP_OWNER_MODULE_BASIC_INFO récupérés par la fonction GetOwnerModuleFromTcpEntry peuvent pointer vers une chaîne vide pour certaines connexions TCP. Les applications qui démarrent les connexions TCP situées dans le dossier système Windows (C:\Windows\System32, par défaut) sont considérées comme protégées. Si la fonction GetOwnerModuleFromTcpEntry est appelée par un utilisateur qui n’est pas membre du groupe Administrateurs, l’appel de fonction réussit, mais les membres pModuleName et pModulePath pointent vers la mémoire qui contient une chaîne vide pour les connexions TCP démarrées par des applications protégées.

Pour les ordinateurs s’exécutant sur Windows Vista ou version ultérieure, l’accès aux membres pModuleName et pModulePath de la structure TCPIP_OWNER_MODULE_BASIC_INFO est limité par le contrôle de compte d’utilisateur (UAC). Si une application qui appelle cette fonction est exécutée par un utilisateur connecté en tant que membre du groupe Administrateurs autre que l’administrateur intégré, cet appel réussit, mais l’accès à ces membres retourne une chaîne vide, sauf si l’application a été marquée dans le fichier manifeste avec un élément demandéExecutionLevel défini pour exigerAdministrator. Si l’application sur Windows Vista ou version ultérieure n’a pas ce fichier manifeste, un utilisateur connecté en tant que membre du groupe Administrateurs autre que l’administrateur intégré doit ensuite exécuter l’application dans un interpréteur de commandes amélioré en tant qu’administrateur intégré (administrateur RunAs) pour l’accès aux membres pModuleName et pModulePath protégés à autoriser.

Configuration requise

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

Voir aussi

MIB_TCP6ROW_OWNER_MODULE

TCPIP_OWNER_MODULE_INFO_CLASS