Compartir a través de


Función GetExtendedUdpTable (iphlpapi.h)

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

Sintaxis

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

Parámetros

[out] pUdpTable

Puntero a la estructura de tabla que contiene los puntos de conexión UDP 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 pUdpTable, 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 puntos de conexión UDP. Si este parámetro se establece en TRUE, los puntos de conexión UDP 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 UDP de la tabla aparecen en el orden en que se recuperaron.

Los valores siguientes se comparan como se enumeran al ordenar los puntos de conexión UDP:

  1. Dirección IP local
  2. Identificador de ámbito local (aplicable cuando el parámetro ulAf se establece en AF_INET6)
  3. Puerto UDP local

[in] ulAf

La versión de IP usada por el punto de conexión UDP.

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

[in] TableClass

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

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

El valor de enumeración UDP_TABLE_CLASS se combina con el valor del parámetro ulAf para determinar la información de UDP 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 pUdpTable 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 UDP_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 UDP que se va a recuperar en la estructura a la que apunta el parámetro pUdpTable para cada valor TableClass posible.

Valor tableClass Estructura pUdpTable
UDP_TABLE_BASIC MIB_UDPTABLE
UDP_TABLE_OWNER_MODULE MIB_UDPTABLE_OWNER_MODULE
UDP_TABLE_OWNER_PID MIB_UDPTABLE_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 pUdpTable para cada valor TableClass posible.

Valor tableClass Estructura pUdpTable
UDP_TABLE_BASIC MIB_UDP6TABLE
UDP_TABLE_OWNER_MODULE MIB_UDP6TABLE_OWNER_MODULE
UDP_TABLE_OWNER_PID MIB_UDP6TABLE_OWNER_PID
 

La función GetExtendedUdpTable cuando se llama con el parámetro ulAf establecido en AF_INET6 y TableClass establecido en UDP_TABLE_BASIC solo se admite en Windows Vista y versiones posteriores.

En Windows Server 2003 con Service Pack 1 (SP1) y Windows XP con Service Pack 2 (SP2), la función GetExtendedUdpTable llamada con el parámetro ulAf establecido en AF_INET6 y TableClass establecido en UDP_TABLE_BASIC produce un error y devuelve ERROR_NOT_SUPPORTED.

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

Requisitos

   
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_UDP6TABLE

MIB_UDP6TABLE_OWNER_MODULE

MIB_UDP6TABLE_OWNER_PID

MIB_UDPTABLE

MIB_UDPTABLE_OWNER_MODULE

MIB_UDPTABLE_OWNER_PID

UDP_TABLE_CLASS