共用方式為


GetExtendedTcpTable 函式 (iphlpapi.h)

GetExtendedTcpTable 函式會擷取數據表,其中包含應用程式可用的 TCP 端點清單。

語法

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

參數

[out] pTcpTable

數據表結構的指標,其中包含可供應用程式使用的已篩選 TCP 端點。 如需如何根據特定輸入參數組合來判斷傳回之數據表類型的資訊,請參閱本檔稍後的一節。

[in, out] pdwSize

pTcpTable 中傳回之結構的估計大小,以位元組為單位。 如果此值設定太小, 則此 函式會傳回ERROR_INSUFFICIENT_BUFFER,而且此欄位將包含正確的結構大小。

[in] bOrder

值,指定是否應該排序 TCP 連接資料表。 如果此參數設定為 TRUE,數據表中的 TCP 端點會以遞增順序排序,從最低的本機 IP 地址開始。 如果此參數設定為 FALSE,數據表中的 TCP 端點會以擷取的順序顯示。

排序 TCP 端點時,會比較下列值 (,如) 所列:

  1. 本機 IP 位址
  2. 當 ulAf 參數設定為 AF_INET6) 時,本機範圍標識碼 (適用
  3. 本機 TCP 連接埠
  4. 遠端 IP 位址
  5. 當 ulAf 參數設定為 AF_INET6) 時,遠端範圍標識碼 (適用
  6. 遠端 TCP 連接埠

[in] ulAf

TCP 端點所使用的IP版本。

意義
AF_INET
使用 IPv4。
AF_INET6
使用 IPv6。

[in] TableClass

要擷取之 TCP 數據表結構的型別。 這個參數可以是 TCP_TABLE_CLASS 列舉中的其中一個值。

在針對 Windows Vista 和更新版本發行的 Windows SDK 上,頭檔的組織已變更,而且TCP_TABLE_CLASS列舉是在 Iprtrmib.h 頭文件中定義,而不是在 Iphlpapi.h 頭檔中定義。

TCP_TABLE_CLASS列舉值會與ulAf參數的值結合,以判斷要擷取的擴充 TCP 資訊。

[in] Reserved

保留的。 這個值必須為零。

傳回值

如果呼叫成功,則會傳回 NO_ERROR 值。

如果函式失敗,傳回值就是下列其中一個錯誤碼。

傳回碼 Description
ERROR_INSUFFICIENT_BUFFER
為數據表配置的空間量不足。 數據表的大小會在 pdwSize 參數中傳回,而且必須在後續呼叫此函式時使用,才能成功擷取數據表。

如果 pTcpTable 參數為 NULL,也會傳回 此錯誤

ERROR_INVALID_PARAMETER
無效的參數已傳遞至 函式。 如果 TableClass 參數包含 TCP_TABLE_CLASS列舉中 未定義的值,就會傳回此錯誤。

備註

此函式所傳回的數據表類型取決於 ulAf 參數和 TableClass 參數的特定組合。

ulAf 參數設定為 AF_INET 時,下表會指出每個可能 TableClass 值的 pTcpTable 參數所指向結構中要擷取的 TCP 數據表類型。

TableClass 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
 

ulAf 參數設定為 AF_INET6 時,下表會指出每個可能 TableClass 值的 pTcpTable 參數所指向結構中要擷取的 TCP 數據表類型。

TableClass 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
 

不支援呼叫的 GetExtendedTcpTable 函式, 並將 ulAf 參數設定為 AF_INET6 ,且 TableClass 設定為 TCP_TABLE_BASIC_LISTENERTCP_TABLE_BASIC_CONNECTIONSTCP_TABLE_BASIC_ALL ,並傳回 ERROR_NOT_SUPPORTED

在針對 Windows Vista 和更新版本發行的 Windows SDK 上,頭文件的組織已變更。 各種 MIB_TCPTABLE 結構是在 Tcpmib.h 頭文件中定義,而不是 在 Iprtrmib.h 頭文件中定義。 請注意, Tcpmib.h 頭文件會自動包含在 Iprtrmib.h 中,該檔案會自動包含在 Iphlpapi.h 頭檔中。 不應該直接使用 Tcpmib.hIprtrmib.h 頭檔。

規格需求

需求
最低支援的用戶端 Windows Vista、Windows XP SP2 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2008、Windows Server 2003 SP1 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 iphlpapi.h
程式庫 Iphlpapi.lib
Dll Iphlpapi.dll

另請參閱

MIB_TCP6TABLE

MIB_TCP6TABLE_OWNER_MODULE

MIB_TCP6TABLE_OWNER_PID

MIB_TCPTABLE

MIB_TCPTABLE_OWNER_MODULE

MIB_TCPTABLE_OWNER_PID

TCP_TABLE_CLASS