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:
- Indirizzo IP locale
- ID ambito locale (applicabile quando il parametro ulAf è impostato su AF_INET6)
- Porta TCP locale
- Indirizzo IP remoto
- ID ambito remoto (applicabile quando il parametro ulAf è impostato su AF_INET6)
- Porta TCP remota
[in] ulAf
Versione di IP utilizzata dagli endpoint TCP.
Valore | Significato |
---|---|
|
Viene usato IPv4. |
|
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 |
---|---|
|
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. |
|
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 |