GetAnycastIpAddressTable 函式
GetAnycastIpAddressTable 函式會擷取本機電腦上的 anycast IP 位址數據表。
語法
NETIOAPI_API GetAnycastIpAddressTable(
_In_ ADDRESS_FAMILY Family,
_Out_ PMIB_ANYCASTIPADDRESS_TABLE *Table
);
參數
系列 [in]
要擷取的位址系列。位址系列可能的值會列在 Winsock2.h 頭檔中。 請注意,AF_位址系列和PF_通訊協定系列常數的值完全相同(例如,AF_INET和PF_INET),因此您可以使用任一常數。
在 Windows Vista 和更新版本的 Windows 作業系統上,Family 參數的可能值定義於 Ws2def.h 頭檔中。 請注意,Ws2def.h 頭檔會自動包含在 Netioapi.h 中,您絕對不應該直接使用 Ws2def.h。
位址系列目前支援下列值:
AF_INET
IPv4 位址系列。 指定這個值時,此函式會傳回只包含IPv4專案的 anycast IP 位址數據表。AF_INET6
IPv6 位址系列。 指定此值時,此函式會傳回只包含IPv6專案的 anycast IP 位址表。AF_UNSPEC
未指定位址系列。 指定這個值時,此函式會傳回包含 IPv4 和 IPv6 專案的 anycast IP 位址數據表。
資料表 [out]
MIB_ANYCASTIPADDRESS_TABLE 結構的指標,其中包含本機計算機上任何廣播IP位址專案的數據表。
傳回值
如果函式成功,GetAnycastIpAddressTable 會傳回STATUS_SUCCESS。
如果函式失敗, GetAnycastIpAddressTable 會傳回下列其中一個錯誤碼:
傳回碼 | 描述 |
---|---|
STATUS_INVALID_PARAMETER | 無效的參數已傳遞至函式。 如果在 Table 參數中傳遞 NULL 指標或 Family 參數未指定為AF_INET、AF_INET6或AF_UNSPEC,則會傳回此錯誤。 |
STATUS_NOT_ENOUGH_MEMORY | 記憶體資源不足,無法完成作業。 |
STATUS_NOT_FOUND | 找不到 Family 參數中指定的任何傳送 IP 位址專案。 |
STATUS_NOT_SUPPORTED | 不支援此要求。 如果本機計算機上沒有IPv4堆棧,且在Family 參數中指定了AF_INET,或本機計算機上沒有IPv6堆棧,且在Family參數中指定了AF_INET6,則會傳回此錯誤。 這個錯誤也會在不支援此函式的 Windows 版本上傳回。 |
其他 | 使用 FormatMessage 函式來取得傳回錯誤的訊息字串。 |
備註
GetAnycastIpAddressTable 函式會列舉本機電腦上的 anycast IP 位址,並在MIB_ANYCASTIPADDRESS_TABLE結構中傳回這項資訊。
Anycast IP 位址專案會在 Table 參數指向的緩衝區MIB_ANYCASTIPADDRESS_TABLE結構中傳回。 MIB_ANYCASTIPADDRESS_TABLE 結構包含任何廣播IP位址專案計數,以及每個任何播IP位址專案的MIB_ANYCASTIPADDRESS_ROW結構陣列。 當不再需要這些傳回的結構時,您的驅動程式應該呼叫 FreeMibTable來釋放記憶體。
您的驅動程序必須將Family參數初始化為 AF_INET、AF_INET6或 AF_UNSPEC。
請注意,傳回的 MIB_ANYCASTIPADDRESS_TABLE 結構,Table 參數指向的 可能會包含 NumEntries 成員與 MIB_ANYCASTIPADDRESS_TABLE 結構之 Table 成員中第一個MIB_ANYCASTIPADDRESS_ROW數位專案之間的間距。 對齊的邊框間距也可能存在於MIB_ANYCASTIPADDRESS_ROW陣列項目之間。 任何對MIB_ANYCASTIPADDRESS_ROW陣列專案的存取都應該假設填補可能存在。
需求
目標平台 |
萬用 |
版本 |
可在 Windows Vista 和更新版本的 Windows 作業系統中使用。 |
頁首 |
Netioapi.h (包括 Netioapi.h) |
程式庫 |
Netio.lib |
IRQL |
< DISPATCH_LEVEL |