Función GetOwnerModuleFromTcp6Entry (iphlpapi.h)
La función GetOwnerModuleFromTcp6Entry recupera datos sobre el módulo que emitió el enlace de contexto para un punto de conexión TCP IPv6 específico en una fila de tabla MIB.
Sintaxis
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
);
Parámetros
[in] pTcpEntry
Puntero a una estructura de MIB_TCP6ROW_OWNER_MODULE que contiene la entrada del punto de conexión TCP IPv6 que se usa para obtener el módulo propietario.
[in] Class
Valor de enumeración TCPIP_OWNER_MODULE_INFO_CLASS que indica el tipo de datos que se van a obtener con respecto al módulo propietario. La enumeración TCPIP_OWNER_MODULE_INFO_CLASS se define en el archivo de encabezado Iprtrmib.h .
Este parámetro debe establecerse en TCPIP_OWNER_MODULE_INFO_BASIC.
[out] pBuffer
Puntero a un búfer que contiene una estructura TCPIP_OWNER_MODULE_BASIC_INFO con los datos del módulo propietario. El tipo de datos devueltos en este búfer se indica mediante el valor del parámetro Class .
Las estructuras siguientes se usan para los datos del búfer cuando Class se establece en el valor correspondiente.
Valor de enumeración de clase | Formato de datos del búfer |
---|---|
TCPIP_OWNER_MODULE_BASIC_INFO | TCPIP_OWNER_MODULE_BASIC_INFO |
[in, out] pdwSize
Tamaño estimado de la estructura devuelta en Buffer, en bytes. Si este valor se establece demasiado pequeño, esta función devuelve ERROR_INSUFFICIENT_BUFFER y este campo contendrá el tamaño de estructura correcto.
Valor devuelto
Si la llamada de función se realiza correctamente, se devuelve el valor NO_ERROR .
Si se produce un error en la función, el valor devuelto es uno de los siguientes códigos de error.
Código devuelto | Descripción |
---|---|
|
No se asignó espacio suficiente para la tabla. El tamaño de la tabla se devuelve en el parámetro pdwSize y se debe usar en una llamada posterior a esta función para recuperar correctamente la tabla. |
|
Un parámetro es incorrecto. Este valor se devuelve si cualquiera de los parámetros pTcpEntry o pdwSize son NULL. Este valor también se devuelve si el parámetro Class no es igual a TCPIP_OWNER_MODULE_INFO_BASIC. |
|
Memoria insuficiente para completar la operación. |
|
No se encontró el elemento. Este valor se devuelve si el miembro dwOwningPid del MIB_TCP6ROW_OWNER_MODULE apuntado por el parámetro pTcpEntry era cero o no se encontró. |
|
Solo se completó parte de una solicitud. |
Comentarios
El parámetro Buffer no solo contiene una estructura con punteros a datos específicos, por ejemplo, punteros a las cadenas terminadas en cero que contienen el nombre y la ruta de acceso del módulo propietario, sino los propios datos reales; es el nombre y las cadenas de ruta de acceso. Por lo tanto, al calcular el tamaño del búfer, asegúrese de que tiene espacio suficiente para la estructura, así como para los datos a los que apuntan los miembros de la estructura.
La resolución de entradas de tabla TCP para módulos propietarios es un procedimiento recomendado. En algunos casos, el nombre del módulo propietario devuelto en la estructura TCPIP_OWNER_MODULE_BASIC_INFO puede ser un nombre de proceso (como "svchost.exe"), un nombre de servicio (como "RPC") o un nombre de componente (como "timer.dll").
En el caso de los equipos que se ejecutan en Windows Vista o versiones posteriores, los miembros pModuleName y pModulePath del TCPIP_OWNER_MODULE_BASIC_INFO recuperados por la función GetOwnerModuleFromTcpEntry pueden apuntar a una cadena vacía para algunas conexiones TCP. Las aplicaciones que inician conexiones TCP ubicadas en la carpeta del sistema de Windows (C:\Windows\System32, de forma predeterminada) se consideran protegidas. Si un usuario llama a la función GetOwnerModuleFromTcpEntry que no es miembro del grupo Administradores, la llamada de función se realizará correctamente, pero los miembros pModuleName y pModulePath apuntarán a la memoria que contiene una cadena vacía para las conexiones TCP iniciadas por las aplicaciones protegidas.
En el caso de los equipos que se ejecutan en Windows Vista o versiones posteriores, el acceso a los miembros pModuleName y pModulePath de la estructura de TCPIP_OWNER_MODULE_BASIC_INFO está limitado por el control de cuentas de usuario (UAC). Si un usuario inicia sesión como miembro del grupo Administradores que llama a esta función, esta llamada se realizará correctamente, pero el acceso a estos miembros devolverá una cadena vacía a menos que la aplicación se haya marcado en el archivo de manifiesto con un valor requestedExecutionLevel establecido en requireAdministrator. Si la aplicación en Windows Vista o posterior carece de este archivo de manifiesto, un usuario que haya iniciado sesión como miembro del grupo Administradores que no sea el administrador integrado debe ejecutar la aplicación en un shell mejorado como administrador integrado (administrador de RunAs) para tener acceso a los miembros pModuleName y pModulePath protegidos que se van a permitir.
Requisitos
Cliente mínimo compatible | Windows Vista, Windows XP con SP2 [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2008, Windows Server 2003 con SP1 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | iphlpapi.h |
Library | Iphlpapi.lib |
Archivo DLL | Iphlpapi.dll |