GetExtendedUdpTable 函式 (iphlpapi.h)
GetExtendedUdpTable函式會擷取資料表,其中包含應用程式可用的 UDP 端點清單。
語法
IPHLPAPI_DLL_LINKAGE DWORD GetExtendedUdpTable(
[out] PVOID pUdpTable,
[in, out] PDWORD pdwSize,
[in] BOOL bOrder,
[in] ULONG ulAf,
[in] UDP_TABLE_CLASS TableClass,
[in] ULONG Reserved
);
參數
[out] pUdpTable
資料表結構的指標,其中包含可供應用程式使用的已篩選 UDP 端點。 如需如何根據特定輸入參數組合來判斷傳回之資料表類型的資訊,請參閱本檔中稍後的一節。
[in, out] pdwSize
pUdpTable中傳回之結構的估計大小,以位元組為單位。 如果此值設定太小, 則此 函式會傳回ERROR_INSUFFICIENT_BUFFER,而且此欄位將包含結構的正確大小。
[in] bOrder
值,指定是否應該排序 UDP 端點資料表。 如果此參數設定為 TRUE,資料表中的 UDP 端點會以遞增順序排序,從最低的本機 IP 位址開始。 如果此參數設定為 FALSE,資料表中的 UDP 端點會依擷取的順序顯示。
在排序 UDP 端點時,會比較下列值:
- 本機 IP 位址
- 當 ulAf 參數設定為 AF_INET6) 時,本機範圍識別碼 (適用
- 本機 UDP 埠
[in] ulAf
UDP 端點所使用的 IP 版本。
值 | 意義 |
---|---|
|
使用 IPv4。 |
|
使用 IPv6。 |
[in] TableClass
要擷取之 UDP 資料表結構的型別。 此參數可以是 UDP_TABLE_CLASS 列舉中的其中一個值。
在針對 Windows Vista 和更新版本發行的 Windows SDK 上,標頭檔的組織已變更,而且 UDP_TABLE_CLASS 列舉定義在 Iprtrmib.h 標頭檔中,而不是 在 Iphlpapi.h 標頭檔中。
UDP_TABLE_CLASS列舉值會與ulAf參數的值結合,以判斷要擷取的擴充 UDP 資訊。
[in] Reserved
保留的。 這個值必須為零。
傳回值
如果呼叫成功,則會傳回 值NO_ERROR 。
如果函式失敗,傳回值就是下列其中一個錯誤碼。
傳回碼 | 描述 |
---|---|
|
為數據表配置的空間量不足。 資料表的大小會在 pdwSize 參數中傳回,而且必須在此函式的後續呼叫中使用,才能成功擷取資料表。
如果 pUdpTable 參數為 Null,也會傳回此錯誤。 |
|
不正確參數已傳遞至 函式。 如果 TableClass 參數包含未定義于 UDP_TABLE_CLASS 列舉中的值,就會傳回此錯誤。 |
備註
此函式傳回的資料表類型取決於 ulAf 參數和 TableClass 參數的特定組合。
當ulAf參數設定為AF_INET時,下表會針對每個可能的TableClass值,指出pUdpTable參數指向的結構中擷取的 UDP 資料表類型。
TableClass 值 | pUdpTable 結構 |
---|---|
UDP_TABLE_BASIC | MIB_UDPTABLE |
UDP_TABLE_OWNER_MODULE | MIB_UDPTABLE_OWNER_MODULE |
UDP_TABLE_OWNER_PID | MIB_UDPTABLE_OWNER_PID |
當ulAf參數設定為AF_INET6時,下表會針對每個可能的TableClass值,指出要擷取pUdpTable參數所指向結構的 TCP 資料表類型。
TableClass 值 | pUdpTable 結構 |
---|---|
UDP_TABLE_BASIC | MIB_UDP6TABLE |
UDP_TABLE_OWNER_MODULE | MIB_UDP6TABLE_OWNER_MODULE |
UDP_TABLE_OWNER_PID | MIB_UDP6TABLE_OWNER_PID |
呼叫ulAf參數設為AF_INET6且TableClass設定為UDP_TABLE_BASIC時,GetExtendedUdpTable函式僅支援 Windows Vista 和更新版本。
在 Windows Server 2003 上,Service Pack 1 (SP1) 和 Windows XP 搭配 Service Pack 2 (SP2) ,呼叫的 GetExtendedUdpTable 函式會將 ulAf 參數設定為 AF_INET6 ,而 TableClass設定為 UDP_TABLE_BASIC 失敗並傳回 ERROR_NOT_SUPPORTED。
在針對 Windows Vista 和更新版本發行的 Windows SDK 上,標頭檔的組織已變更。 各種 MIB_UDPTABLE 結構是在 Udpmib.h 標頭檔中定義,而不是 在 Iprtrmib.h 標頭檔中定義。 請注意, Udpmib.h 標頭檔會自動包含在 Iprtrmib.h中,該檔案會自動包含在 Iphlpapi.h 標頭檔中。 Udpmib.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 |