Share via


Função GetExtendedUdpTable (iphlpapi.h)

A função GetExtendedUdpTable recupera uma tabela que contém uma lista de pontos de extremidade UDP disponíveis para o aplicativo.

Sintaxe

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

Um ponteiro para a estrutura da tabela que contém os pontos de extremidade UDP filtrados disponíveis para o aplicativo. Para obter informações sobre como determinar o tipo de tabela retornado com base em combinações de parâmetros de entrada específicas, consulte a seção Comentários mais adiante neste documento.

[in, out] pdwSize

O tamanho estimado da estrutura retornada em pUdpTable, em bytes. Se esse valor for definido muito pequeno, ERROR_INSUFFICIENT_BUFFER será retornado por essa função e esse campo conterá o tamanho correto da estrutura.

[in] bOrder

Um valor que especifica se a tabela de ponto de extremidade UDP deve ser classificada. Se esse parâmetro for definido como TRUE, os pontos de extremidade UDP na tabela serão classificados em ordem crescente, começando com o endereço IP local mais baixo. Se esse parâmetro for definido como FALSE, os pontos de extremidade UDP na tabela aparecerão na ordem em que foram recuperados.

Os seguintes valores são comparados conforme listado ao ordenar os pontos de extremidade UDP:

  1. Endereço IP local
  2. ID do escopo local (aplicável quando o parâmetro ulAf é definido como AF_INET6)
  3. Porta UDP local

[in] ulAf

A versão do IP usada pelo ponto de extremidade UDP.

Valor Significado
AF_INET
O IPv4 é usado.
AF_INET6
IPv6 é usado.

[in] TableClass

O tipo da estrutura da tabela UDP a ser recuperada. Esse parâmetro pode ser um dos valores da enumeração UDP_TABLE_CLASS .

No SDK do Windows lançado para Windows Vista e posterior, a organização dos arquivos de cabeçalho foi alterada e a enumeração UDP_TABLE_CLASS é definida no arquivo de cabeçalho Iprtrmib.h , não no arquivo de cabeçalho Iphlpapi.h .

O valor de enumeração UDP_TABLE_CLASS é combinado com o valor do parâmetro ulAf para determinar as informações de UDP estendidas a serem recuperadas.

[in] Reserved

Reservado. Esse valor precisa ser zero.

Valor retornado

Se a chamada for bem-sucedida, o valor NO_ERROR será retornado.

Se a função falhar, o valor retornado será um dos seguintes códigos de erro.

Código de retorno Descrição
ERROR_INSUFFICIENT_BUFFER
Uma quantidade insuficiente de espaço foi alocada para a tabela. O tamanho da tabela é retornado no parâmetro pdwSize e deve ser usado em uma chamada subsequente para essa função para recuperar a tabela com êxito.

Esse erro também será retornado se o parâmetro pUdpTable for NULL.

ERROR_INVALID_PARAMETER
Um parâmetro inválido foi passado para a função. Esse erro será retornado se o parâmetro TableClass contiver um valor que não está definido na enumeração UDP_TABLE_CLASS .

Comentários

O tipo de tabela retornado por essa função depende da combinação específica do parâmetro ulAf e do parâmetro TableClass .

Quando o parâmetro ulAf é definido como AF_INET, a tabela a seguir indica o tipo de tabela UDP a ser recuperado na estrutura apontada pelo parâmetro pUdpTable para cada valor TableClass possível.

Valor de TableClass Estrutura pUdpTable
UDP_TABLE_BASIC MIB_UDPTABLE
UDP_TABLE_OWNER_MODULE MIB_UDPTABLE_OWNER_MODULE
UDP_TABLE_OWNER_PID MIB_UDPTABLE_OWNER_PID
 

Quando o parâmetro ulAf é definido como AF_INET6, a tabela a seguir indica o tipo de tabela TCP a ser recuperado na estrutura apontada pelo parâmetro pUdpTable para cada valor TableClass possível.

Valor de TableClass Estrutura pUdpTable
UDP_TABLE_BASIC MIB_UDP6TABLE
UDP_TABLE_OWNER_MODULE MIB_UDP6TABLE_OWNER_MODULE
UDP_TABLE_OWNER_PID MIB_UDP6TABLE_OWNER_PID
 

A função GetExtendedUdpTable quando chamada com o parâmetro ulAf definido como AF_INET6 e o TableClass definido como UDP_TABLE_BASIC só tem suporte no Windows Vista e posterior.

No Windows Server 2003 com Service Pack 1 (SP1) e Windows XP com Service Pack 2 (SP2), a função GetExtendedUdpTable chamada com o parâmetro ulAf definido como AF_INET6 e o TableClass definido como UDP_TABLE_BASIC falha e retorna ERROR_NOT_SUPPORTED.

No SDK do Windows lançado para Windows Vista e posterior, a organização dos arquivos de cabeçalho foi alterada. As várias estruturas MIB_UDPTABLE são definidas no arquivo de cabeçalho Udpmib.h , não no arquivo de cabeçalho Iprtrmib.h . Observe que o arquivo de cabeçalho Udpmib.h é incluído automaticamente em Iprtrmib.h, que é incluído automaticamente no arquivo de cabeçalho Iphlpapi.h . Os arquivos de cabeçalho Udpmib.h e Iprtrmib.h nunca devem ser usados diretamente.

Requisitos

   
Cliente mínimo com suporte Windows Vista, Windows XP com SP2 [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2008, Windows Server 2003 com SP1 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho iphlpapi.h
Biblioteca Iphlpapi.lib
DLL Iphlpapi.dll

Confira também

MIB_UDP6TABLE

MIB_UDP6TABLE_OWNER_MODULE

MIB_UDP6TABLE_OWNER_PID

MIB_UDPTABLE

MIB_UDPTABLE_OWNER_MODULE

MIB_UDPTABLE_OWNER_PID

UDP_TABLE_CLASS