Freigeben über


GetExtendedTcpTable-Funktion (iphlpapi.h)

Die GetExtendedTcpTable-Funktion ruft eine Tabelle ab, die eine Liste der TCP-Endpunkte enthält, die für die Anwendung verfügbar sind.

Syntax

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

Parameter

[out] pTcpTable

Ein Zeiger auf die Tabellenstruktur, die die gefilterten TCP-Endpunkte enthält, die für die Anwendung verfügbar sind. Informationen zum Bestimmen des Typs der zurückgegebenen Tabelle anhand bestimmter Eingabeparameterkombinationen finden Sie im Abschnitt Hinweise weiter unten in diesem Dokument.

[in, out] pdwSize

Die geschätzte Größe der in pTcpTable zurückgegebenen Struktur in Bytes. Wenn dieser Wert zu klein festgelegt ist, wird ERROR_INSUFFICIENT_BUFFER von dieser Funktion zurückgegeben, und dieses Feld enthält die richtige Größe der Struktur.

[in] bOrder

Ein Wert, der angibt, ob die TCP-Verbindungstabelle sortiert werden soll. Wenn dieser Parameter auf TRUE festgelegt ist, werden die TCP-Endpunkte in der Tabelle in aufsteigender Reihenfolge sortiert, beginnend mit der niedrigsten lokalen IP-Adresse. Wenn dieser Parameter auf FALSE festgelegt ist, werden die TCP-Endpunkte in der Tabelle in der Reihenfolge angezeigt, in der sie abgerufen wurden.

Beim Sortieren der TCP-Endpunkte werden die folgenden Werte verglichen (wie aufgeführt):

  1. Lokale IP-Adresse
  2. Lokale Bereichs-ID (gilt, wenn der ulAf-Parameter auf AF_INET6 festgelegt ist)
  3. Lokaler TCP-Port
  4. Remote-IP-Adresse
  5. Remotebereichs-ID (gilt, wenn der ulAf-Parameter auf AF_INET6 festgelegt ist)
  6. TCP-Remoteport

[in] ulAf

Die Von den TCP-Endpunkten verwendete IP-Version.

Wert Bedeutung
AF_INET
IPv4 wird verwendet.
AF_INET6
IPv6 wird verwendet.

[in] TableClass

Der Typ der abzurufenden TCP-Tabellenstruktur. Dieser Parameter kann einer der Werte aus der TCP_TABLE_CLASS-Enumeration sein.

Auf der Windows SDK für Windows Vista und höher veröffentlicht, wurde die organization der Headerdateien geändert, und die TCP_TABLE_CLASS-Enumeration wird in der Headerdatei Iprtrmib.h und nicht in der Headerdatei Iphlpapi.h definiert.

Der TCP_TABLE_CLASS Enumerationswerts wird mit dem Wert des ulAf-Parameters kombiniert, um die abzurufenden erweiterten TCP-Informationen zu bestimmen.

[in] Reserved

Reserviert. Dieser Wert muss null (0) sein.

Rückgabewert

Wenn der Aufruf erfolgreich ist, wird der Wert NO_ERROR zurückgegeben.

Wenn die Funktion fehlschlägt, ist der Rückgabewert einer der folgenden Fehlercodes.

Rückgabecode Beschreibung
ERROR_INSUFFICIENT_BUFFER
Für die Tabelle wurde nicht genügend Speicherplatz zugewiesen. Die Größe der Tabelle wird im pdwSize-Parameter zurückgegeben und muss in einem nachfolgenden Aufruf dieser Funktion verwendet werden, um die Tabelle erfolgreich abzurufen.

Dieser Fehler wird auch zurückgegeben, wenn der pTcpTable-ParameterNULL ist.

ERROR_INVALID_PARAMETER
Es wurde ein ungültiger Parameter an die Funktion übergeben. Dieser Fehler wird zurückgegeben, wenn der TableClass-Parameter einen Wert enthält, der in der TCP_TABLE_CLASS-Enumeration nicht definiert ist.

Hinweise

Der von dieser Funktion zurückgegebene Tabellentyp hängt von der spezifischen Kombination des ulAf-Parameters und des TableClass-Parameters ab.

Wenn der ulAf-Parameter auf AF_INET festgelegt ist, gibt die folgende Tabelle den TCP-Tabellentyp an, der in der Struktur abgerufen werden soll, auf die der pTcpTable-Parameter für jeden möglichen TableClass-Wert verweist.

TableClass-Wert pTcpTable-Struktur
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
 

Wenn der ulAf-Parameter auf AF_INET6 festgelegt ist, gibt die folgende Tabelle den TCP-Tabellentyp an, der in der Struktur abgerufen werden soll, auf die der pTcpTable-Parameter für jeden möglichen TableClass-Wert verweist.

TableClass-Wert pTcpTable-Struktur
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
 

Die GetExtendedTcpTable-Funktion , die aufgerufen wird, wobei der ulAf-Parameter auf AF_INET6 festgelegt ist, und die TableClass auf TCP_TABLE_BASIC_LISTENER, TCP_TABLE_BASIC_CONNECTIONS oder TCP_TABLE_BASIC_ALL festgelegt ist, wird nicht unterstützt und gibt ERROR_NOT_SUPPORTED zurück.

Auf der Windows SDK für Windows Vista und höher veröffentlicht, wurde die organization der Headerdateien geändert. Die verschiedenen MIB_TCPTABLE-Strukturen werden in der Headerdatei "Tcpmib.h " und nicht in der Headerdatei "Iprtrmib.h " definiert. Beachten Sie, dass die Tcpmib.h-Headerdatei automatisch in Iprtrmib.h enthalten ist, die automatisch in der Headerdatei Iphlpapi.h enthalten ist. Die Headerdateien Tcpmib.h und Iprtrmib.h sollten nie direkt verwendet werden.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista, Windows XP mit SP2 [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008, Windows Server 2003 mit SP1 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile iphlpapi.h
Bibliothek Iphlpapi.lib
DLL Iphlpapi.dll

Weitere Informationen

MIB_TCP6TABLE

MIB_TCP6TABLE_OWNER_MODULE

MIB_TCP6TABLE_OWNER_PID

MIB_TCPTABLE

MIB_TCPTABLE_OWNER_MODULE

MIB_TCPTABLE_OWNER_PID

TCP_TABLE_CLASS