Funzione GetExtendedTcpTable (iphlpapi.h)

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

Sintassi

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

Parametri

[out] pTcpTable

Puntatore alla struttura di tabella contenente gli endpoint TCP 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 pTcpTable, 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 di connessione TCP deve essere ordinata. Se questo parametro è impostato su TRUE, gli endpoint TCP della tabella vengono ordinati in ordine crescente, a partire dall'indirizzo IP locale più basso. Se questo parametro è impostato su FALSE, gli endpoint TCP nella tabella vengono visualizzati nell'ordine in cui sono stati recuperati.

I valori seguenti vengono confrontati (come elencato) quando si ordinano gli endpoint TCP:

  1. Indirizzo IP locale
  2. ID ambito locale (applicabile quando il parametro ulAf è impostato su AF_INET6)
  3. Porta TCP locale
  4. Indirizzo IP remoto
  5. ID ambito remoto (applicabile quando il parametro ulAf è impostato su AF_INET6)
  6. Porta TCP remota

[in] ulAf

Versione di IP utilizzata dagli endpoint TCP.

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

[in] TableClass

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

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

Il valore di enumerazione TCP_TABLE_CLASS viene combinato con il valore del parametro ulAf per determinare le informazioni TCP 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 pTcpTable è 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 TCP_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 TCP da recuperare nella struttura a cui punta il parametro pTcpTable per ogni valore TableClass possibile.

Valore TableClass struttura 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
 

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 pTcpTable per ogni valore TableClass possibile.

Valore TableClass struttura 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 funzione GetExtendedTcpTable denominata con il parametro ulAf impostata su AF_INET6 e tableClass impostata su TCP_TABLE_BASIC_LISTENER, TCP_TABLE_BASIC_CONNECTIONS o TCP_TABLE_BASIC_ALL non è supportata e restituisce ERROR_NOT_SUPPORTED.

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

Requisiti

Requisito Valore
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_TCP6TABLE

MIB_TCP6TABLE_OWNER_MODULE

MIB_TCP6TABLE_OWNER_PID

MIB_TCPTABLE

MIB_TCPTABLE_OWNER_MODULE

MIB_TCPTABLE_OWNER_PID

TCP_TABLE_CLASS