Compartir a través de


Función GetExtendedTcpTable (iphlpapi.h)

La función GetExtendedTcpTable recupera una tabla que contiene una lista de puntos de conexión TCP disponibles para la aplicación.

Sintaxis

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
);

Parámetros

[out] pTcpTable

Puntero a la estructura de tabla que contiene los puntos de conexión TCP filtrados disponibles para la aplicación. Para obtener información sobre cómo determinar el tipo de tabla devuelta en función de combinaciones de parámetros de entrada específicas, vea la sección Comentarios más adelante en este documento.

[in, out] pdwSize

Tamaño estimado de la estructura devuelta en pTcpTable, en bytes. Si este valor se establece demasiado pequeño, esta función devuelve ERROR_INSUFFICIENT_BUFFER y este campo contendrá el tamaño correcto de la estructura.

[in] bOrder

Valor que especifica si se debe ordenar la tabla de conexión TCP. Si este parámetro se establece en TRUE, los puntos de conexión TCP de la tabla se ordenan en orden ascendente, empezando por la dirección IP local más baja. Si este parámetro se establece en FALSE, los puntos de conexión TCP de la tabla aparecen en el orden en que se recuperaron.

Los valores siguientes se comparan (como se muestra) al ordenar los puntos de conexión TCP:

  1. Dirección IP local
  2. Identificador de ámbito local (aplicable cuando el parámetro ulAf se establece en AF_INET6)
  3. Puerto TCP local
  4. Dirección IP remota
  5. Identificador de ámbito remoto (aplicable cuando el parámetro ulAf está establecido en AF_INET6)
  6. Puerto TCP remoto

[in] ulAf

La versión de IP usada por los puntos de conexión TCP.

Valor Significado
AF_INET
Se usa IPv4.
AF_INET6
Se usa IPv6.

[in] TableClass

Tipo de la estructura de tabla TCP que se va a recuperar. Este parámetro puede ser uno de los valores de la enumeración TCP_TABLE_CLASS .

En el Windows SDK publicado para Windows Vista y versiones posteriores, la organización de archivos de encabezado ha cambiado y la enumeración TCP_TABLE_CLASS se define en el archivo de encabezado Iprtrmib.h, no en el archivo de encabezado Iphlpapi.h.

El valor de enumeración TCP_TABLE_CLASS se combina con el valor del parámetro ulAf para determinar la información TCP extendida que se va a recuperar.

[in] Reserved

Reservado. Este valor debe ser cero.

Valor devuelto

Si la llamada 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
ERROR_INSUFFICIENT_BUFFER
Se asignó una cantidad insuficiente de espacio 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.

Este error también se devuelve si el parámetro pTcpTable es NULL.

ERROR_INVALID_PARAMETER
Se pasó un parámetro no válido a la función. Este error se devuelve si el parámetro TableClass contiene un valor que no está definido en la enumeración TCP_TABLE_CLASS .

Comentarios

El tipo de tabla devuelto por esta función depende de la combinación específica del parámetro ulAf y del parámetro TableClass .

Cuando el parámetro ulAf se establece en AF_INET, la tabla siguiente indica el tipo de tabla TCP que se va a recuperar en la estructura a la que apunta el parámetro pTcpTable para cada valor TableClass posible.

Valor tableClass Estructura 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
 

Cuando el parámetro ulAf se establece en AF_INET6, la tabla siguiente indica el tipo de tabla TCP que se va a recuperar en la estructura a la que apunta el parámetro pTcpTable para cada valor TableClass posible.

Valor tableClass Estructura 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 función GetExtendedTcpTable denominada con el parámetro ulAf establecido en AF_INET6 y TableClass establecido en TCP_TABLE_BASIC_LISTENER, TCP_TABLE_BASIC_CONNECTIONS o TCP_TABLE_BASIC_ALL no se admite y devuelve ERROR_NOT_SUPPORTED.

En el Windows SDK publicado para Windows Vista y versiones posteriores, la organización de archivos de encabezado ha cambiado. Las distintas estructuras de MIB_TCPTABLE se definen en el archivo de encabezado Tcpmib.h , no en el archivo de encabezado Iprtrmib.h . Tenga en cuenta que el archivo de encabezado Tcpmib.h se incluye automáticamente en Iprtrmib.h, que se incluye automáticamente en el archivo de encabezado Iphlpapi.h . Los archivos de encabezado Tcpmib.h e Iprtrmib.h nunca deben usarse directamente.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista, Windows XP con SP2 [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2008, Windows Server 2003 con SP1 [aplicaciones de escritorio | Aplicaciones para UWP]
Plataforma de destino Windows
Encabezado iphlpapi.h
Library Iphlpapi.lib
Archivo DLL Iphlpapi.dll

Consulte también

MIB_TCP6TABLE

MIB_TCP6TABLE_OWNER_MODULE

MIB_TCP6TABLE_OWNER_PID

MIB_TCPTABLE

MIB_TCPTABLE_OWNER_MODULE

MIB_TCPTABLE_OWNER_PID

TCP_TABLE_CLASS