getMulticastIpAddressTable 函式 (netioapi.h)
GetMulticastIpAddressTable 函式會擷取本機電腦上的多播 IP 位址數據表。
語法
IPHLPAPI_DLL_LINKAGE _NETIOAPI_SUCCESS_ NETIOAPI_API GetMulticastIpAddressTable(
[in] ADDRESS_FAMILY Family,
[out] PMIB_MULTICASTIPADDRESS_TABLE *Table
);
參數
[in] Family
要擷取的位址系列。
位址系列的可能值會列在 Winsock2.h 頭檔中。 請注意,AF_位址系列和PF_通訊協定系列常數的值 (相同,例如, AF_INET 和 PF_INET) ,因此可以使用任一個常數。
在 Windows Vista 和更新版本的發行 Windows SDK 上,頭文件的組織已變更,而且此成員的可能值定義在 Ws2def.h 頭檔中。 請注意, Ws2def.h 頭文件會自動包含在 Winsock2.h 中,不應該直接使用。
目前支援的值是 AF_INET、 AF_INET6和 AF_UNSPEC。
[out] Table
MIB_MULTICASTIPADDRESS_TABLE 結構的指標,其中包含本機計算機上任何傳播IP位址專案的數據表。
傳回值
如果函式成功,傳回值會NO_ERROR。
如果函式失敗,傳回值就是下列其中一個錯誤碼。
傳回碼 | Description |
---|---|
|
無效的參數已傳遞至 函式。 如果在 Table 參數中傳遞 NULL 指標,或 Family 參數未指定為 AF_INET、AF_INET6 或 AF_UNSPEC,則會傳回此錯誤。 |
|
記憶體資源不足,無法完成作業。 |
|
找不到 Family 參數中指定的任何傳送 IP 位址專案。 |
|
不支援此要求。 如果本機計算機上沒有IPv4堆疊且已在Family參數中指定AF_INET,則會傳回此錯誤。 如果本機計算機上沒有IPv6堆棧,而且已在Family參數中指定AF_INET6,也會傳回此錯誤。 這個錯誤也會在不支援此函式的 Windows 版本上傳回。 |
|
使用 FormatMessage 取得傳回錯誤的訊息字串。 |
備註
GetMulticastIpAddressTable 函式是在 Windows Vista 和更新版本上定義。
The
GetMulticastIpAddressTable 函式會列舉本機系統上的多播IP位址,並在 MIB_MULTICASTIPADDRESS_TABLE 結構中傳回這項資訊。
多播IP位址專案會在Table 參數指向的緩衝區中傳回MIB_MULTICASTIPADDRESS_TABLE結構。 MIB_MULTICASTIPADDRESS_TABLE 結構包含多播IP位址專案計數,以及每個多播IP位址專案的MIB_MULTICASTIPADDRESS_ROW結構陣列。 當不再需要這些傳回的結構時,請呼叫 FreeMibTable釋放記憶體。
Family 參數必須初始化為 AF_INET、AF_INET6 或 AF_UNSPEC。
請注意,Table 參數所指向的傳回MIB_MULTICASTIPADDRESS_TABLE結構可能包含 NumEntries 成員與 MIB_MULTICASTIPADDRESS_TABLE 結構之 Table 成員中第一個MIB_MULTICASTIPADDRESS_ROW數位專案之間的對齊填補。 對齊方式的填補也可能出現在 MIB_MULTICASTIPADDRESS_ROW 數位專案之間。 任何對 MIB_MULTICASTIPADDRESS_ROW 陣列專案的存取都應該假設填補可能存在。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | netioapi.h (包含 Iphlpapi.h) |
程式庫 | Iphlpapi.lib |
Dll | Iphlpapi.dll |