Funzione GetExtendedUdpTable (iphlpapi.h)

La funzione GetExtendedUdpTable recupera una tabella contenente un elenco di endpoint UDP disponibili per l'applicazione.

Sintassi

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

Parametri

[out] pUdpTable

Puntatore alla struttura di tabella contenente gli endpoint UDP filtrati disponibili per l'applicazione. Per informazioni su come determinare il tipo di tabella restituito in base a combinazioni di parametri di input specifiche, vedere la sezione Osservazioni più avanti in questo documento.

[in, out] pdwSize

Dimensioni stimate della struttura restituite in pUdpTable, in byte. Se questo valore è impostato troppo piccolo, ERROR_INSUFFICIENT_BUFFER viene restituito da questa funzione e questo campo conterrà le dimensioni corrette della struttura.

[in] bOrder

Valore che specifica se la tabella dell'endpoint UDP deve essere ordinata. Se questo parametro è impostato su TRUE, gli endpoint UDP della tabella vengono ordinati in ordine crescente, a partire dall'indirizzo IP locale più basso. Se questo parametro è impostato su FALSE, gli endpoint UDP nella tabella vengono visualizzati nell'ordine in cui sono stati recuperati.

I valori seguenti vengono confrontati come elencati quando si ordinano gli endpoint UDP:

  1. Indirizzo IP locale
  2. ID ambito locale (applicabile quando il parametro ulAf è impostato su AF_INET6)
  3. Porta UDP locale

[in] ulAf

Versione di IP utilizzata dall'endpoint UDP.

Valore Significato
AF_INET
Viene usato IPv4.
AF_INET6
Viene usato IPv6.

[in] TableClass

Tipo della struttura di tabella UDP da recuperare. Questo parametro può essere uno dei valori dell'enumerazione UDP_TABLE_CLASS .

In Windows SDK rilasciato per Windows Vista e versioni successive l'organizzazione dei file di intestazione è stata modificata e l'enumerazione UDP_TABLE_CLASS viene definita nel file di intestazione Iprtrmib.h , non nel file di intestazione Iphlpapi.h .

Il valore di enumerazione UDP_TABLE_CLASS viene combinato con il valore del parametro ulAf per determinare le informazioni UDP estese da recuperare.

[in] Reserved

Riservato. Il valore deve essere zero.

Valore restituito

Se la chiamata ha esito positivo, viene restituito il valore NO_ERROR .

Se la funzione ha esito negativo, il valore restituito è uno dei codici di errore seguenti.

Codice restituito Descrizione
ERROR_INSUFFICIENT_BUFFER
Una quantità insufficiente di spazio è stata allocata per la tabella. Le dimensioni della tabella vengono restituite nel parametro pdwSize e devono essere usate in una chiamata successiva a questa funzione per recuperare correttamente la tabella.

Questo errore viene restituito anche se il parametro pUdpTable è NULL.

ERROR_INVALID_PARAMETER
Un parametro non valido è stato passato alla funzione. Questo errore viene restituito se il parametro TableClass contiene un valore non definito nell'enumerazione UDP_TABLE_CLASS .

Commenti

Il tipo di tabella restituito da questa funzione dipende dalla combinazione specifica del parametro ulAf e del parametro TableClass .

Quando il parametro ulAf è impostato su AF_INET, la tabella seguente indica il tipo di tabella UDP da recuperare nella struttura a cui punta il parametro pUdpTable per ogni valore TableClass possibile.

Valore TableClass Struttura pUdpTable
UDP_TABLE_BASIC MIB_UDPTABLE
UDP_TABLE_OWNER_MODULE MIB_UDPTABLE_OWNER_MODULE
UDP_TABLE_OWNER_PID MIB_UDPTABLE_OWNER_PID
 

Quando il parametro ulAf è impostato su AF_INET6, la tabella seguente indica il tipo di tabella TCP da recuperare nella struttura a cui punta il parametro pUdpTable per ogni valore TableClass possibile.

Valore TableClass Struttura pUdpTable
UDP_TABLE_BASIC MIB_UDP6TABLE
UDP_TABLE_OWNER_MODULE MIB_UDP6TABLE_OWNER_MODULE
UDP_TABLE_OWNER_PID MIB_UDP6TABLE_OWNER_PID
 

La funzione GetExtendedUdpTable quando viene chiamato con il parametro ulAf impostato su AF_INET6 e TableClass impostato su UDP_TABLE_BASIC è supportato solo in Windows Vista e versioni successive.

In Windows Server 2003 con Service Pack 1 (SP1) e Windows XP con Service Pack 2 (SP2), la funzione GetExtendedUdpTable denominata con il parametro ulAf impostato su AF_INET6 e TableClass impostato su UDP_TABLE_BASIC ha esito negativo e restituisce ERROR_NOT_SUPPORTED.

In Windows SDK rilasciato per Windows Vista e versioni successive l'organizzazione dei file di intestazione è stata modificata. Le varie strutture MIB_UDPTABLE sono definite nel file di intestazione Udpmib.h , non nel file di intestazione Iprtrmib.h . Si noti che il file di intestazione Udpmib.h viene automaticamente incluso in Iprtrmib.h, incluso automaticamente nel file di intestazione Iphlpapi.h . I file di intestazione Udpmib.h e Iprtrmib.h non devono mai essere usati direttamente.

Requisiti

   
Client minimo supportato Windows Vista, Windows XP con SP2 [app desktop | App UWP]
Server minimo supportato Windows Server 2008, Windows Server 2003 con SP1 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione iphlpapi.h
Libreria Iphlpapi.lib
DLL Iphlpapi.dll

Vedi anche

MIB_UDP6TABLE

MIB_UDP6TABLE_OWNER_MODULE

MIB_UDP6TABLE_OWNER_PID

MIB_UDPTABLE

MIB_UDPTABLE_OWNER_MODULE

MIB_UDPTABLE_OWNER_PID

UDP_TABLE_CLASS