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 端點時,會比較下列值 (,如) 所列:
- 本機 IP 位址
- 當 ulAf 參數設定為 AF_INET6) 時,本機範圍標識碼 (適用
- 本機 TCP 連接埠
- 遠端 IP 位址
- 當 ulAf 參數設定為 AF_INET6) 時,遠端範圍標識碼 (適用
- 遠端 TCP 連接埠
[in] ulAf
TCP 端點所使用的IP版本。
值 | 意義 |
---|---|
|
使用 IPv4。 |
|
使用 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 |
---|---|
|
為數據表配置的空間量不足。 數據表的大小會在 pdwSize 參數中傳回,而且必須在後續呼叫此函式時使用,才能成功擷取數據表。
如果 pTcpTable 參數為 NULL,也會傳回 此錯誤。 |
|
無效的參數已傳遞至 函式。 如果 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_LISTENER、 TCP_TABLE_BASIC_CONNECTIONS 或 TCP_TABLE_BASIC_ALL ,並傳回 ERROR_NOT_SUPPORTED。
在針對 Windows Vista 和更新版本發行的 Windows SDK 上,頭文件的組織已變更。 各種 MIB_TCPTABLE 結構是在 Tcpmib.h 頭文件中定義,而不是 在 Iprtrmib.h 頭文件中定義。 請注意, Tcpmib.h 頭文件會自動包含在 Iprtrmib.h 中,該檔案會自動包含在 Iphlpapi.h 頭檔中。 不應該直接使用 Tcpmib.h 和 Iprtrmib.h 頭檔。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista、Windows XP SP2 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2008、Windows Server 2003 SP1 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | iphlpapi.h |
程式庫 | Iphlpapi.lib |
Dll | Iphlpapi.dll |