共用方式為


GetIpNetTable2 函式

GetIpNetTable2 函式會擷取本機電腦上的IP鄰近數據表。

語法

NETIOAPI_API GetIpNetTable2(
  _In_  ADDRESS_FAMILY    Family,
  _Out_ PMIB_IPNET_TABLE2 *Table
);

參數

  • 家庭 [in]
    要擷取的位址系列。

    位址系列可能的值會列在 Winsock2.h 頭檔中。 請注意,AF_位址系列和PF_通訊協定系列常數的值完全相同(例如,AF_INET和PF_INET),因此您可以使用任一常數。

    在 Windows Vista 和更新版本的 Windows作系統上,Ws2def.h 頭文件中定義了 Family 參數的可能值。 請注意,Ws2def.h 頭檔會自動包含在 Netioapi.h 中,您絕對不應該直接使用 Ws2def.h。

    位址系列目前支援下列值:

    • AF_INET
      IPv4 位址系列。 指定此值時,此函式會傳回只包含IPv4項目的鄰近IP位址表。

    • AF_INET6
      IPv6 位址系列。 指定此值時,此函式會傳回只包含IPv6項目的鄰近IP位址表。

    • AF_UNSPEC
      未指定位址系列。 指定這個值時,此函式會傳回包含 IPv4 和 IPv6 專案的鄰近 IP 位址表。

  • 數據表 [out]
    MIB_IPNET_TABLE2 結構的指標,其中包含本機計算機上的鄰近IP位址專案數據表。

傳回值

如果函式成功,GetIpNetTable2 會傳回STATUS_SUCCESS。

如果函式失敗,GetIpNetTable2 會傳回下列其中一個錯誤碼:

傳回碼 描述
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堆棧,且AF_INET6是在 Family 參數中指定,則會傳回此錯誤。 這個錯誤也會在不支援此函式的 Windows 版本上傳回。

其他

使用 FormatMessage 函式取得傳回錯誤的訊息字串。

言論

GetIpNetTable2 函式會列舉本機電腦上的鄰近 IP 位址,並在 MIB_IPNET_TABLE2 結構中傳回這項資訊。

GetIpNetTable2 會傳回 Table 參數指向之緩衝區中MIB_IPNET_TABLE2結構的鄰近 IP 位址專案。 MIB_IPNET_TABLE2 結構包含鄰近IP位址專案計數,以及每個鄰近IP位址專案 MIB_IPNET_ROW2 結構的陣列。 當不再需要這些傳回的結構時,您的驅動程式應該呼叫freeMibTable 來釋放記憶體。

您的驅動程式必須將 Family 參數初始化為 AF_INET、AF_INET6 或 AF_UNSPEC。

請注意,傳回的MIB_IPNET_TABLE2結構,Table 參數指向的 ,可能包含 NumEntries 成員與 Table 中第一個MIB_IPNET_ROW2數位專案之間的填補,MIB_IPNET_TABLE2 結構 成員。 對齊方式的填補也可能存在於MIB_IPNET_ROW2陣列項目之間。 任何對MIB_IPNET_ROW2陣列專案的存取都應該假設填補可能存在。

要求

目標平臺

通用

版本

可在 Windows Vista 和更新版本的 Windows作系統中使用。

頁眉

Netioapi.h (包括 Netioapi.h)

圖書館

Netio.lib

IRQL

< DISPATCH_LEVEL

另請參閱

CreateIpNetEntry2

FlushIpNetTable2

FreeMibTable

GetIpNetEntry2

MIB_IPNET_ROW2

MIB_IPNET_TABLE2

ResolveIpNetEntry2

SetIpNetEntry2