共用方式為


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 端點時,會比較下列值:

  1. 本機 IP 位址
  2. ulAf 參數設定為 AF_INET6) 時,本機範圍識別碼 (適用
  3. 本機 UDP 埠

[in] ulAf

UDP 端點所使用的 IP 版本。

意義
AF_INET
使用 IPv4。
AF_INET6
使用 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

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

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

如果 pUdpTable 參數為 Null,也會傳回此錯誤。

ERROR_INVALID_PARAMETER
不正確參數已傳遞至 函式。 如果 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_INET6TableClass設定為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.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_UDP6TABLE

MIB_UDP6TABLE_OWNER_MODULE

MIB_UDP6TABLE_OWNER_PID

MIB_UDPTABLE

MIB_UDPTABLE_OWNER_MODULE

MIB_UDPTABLE_OWNER_PID

UDP_TABLE_CLASS