共用方式為


GetUnicastIpAddressTable 函式

GetUnicastIpAddressTable函式會擷取本機電腦上的單播 IP 位址資料表。

語法

NETIOAPI_API GetUnicastIpAddressTable(
  _In_  ADDRESS_FAMILY              Family,
  _Out_ PMIB_UNICASTIPADDRESS_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 專案的多播 IP 位址資料表。

    • AF_INET6
      IPv6 位址系列。 指定此值時,此函式會傳回只包含 IPv6 專案的多播 IP 位址資料表。

    • AF_UNSPEC
      未指定位址系列。 指定此值時,此函式會傳回包含 IPv4 和 IPv6 專案的多播 IP 位址資料表。

  • 資料表 [out]
    MIB_UNICASTIPADDRESS_TABLE結構的指標,其中包含本機電腦上的單播 IP 位址專案資料表。

傳回值

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

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

傳回碼 描述
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 函式來取得傳回錯誤的訊息字串。

備註

GetUnicastIpAddressTable函式會列舉本機電腦上的單播 IP 位址,並在MIB_UNICASTIPADDRESS_TABLE結構中傳回這項資訊。

GetUnicastIpAddressTable 會傳回 Table 參數所指向緩衝區中MIB_UNICASTIPADDRESS_TABLE結構中的單播 IP 位址專案。 MIB_UNICASTIPADDRESS_TABLE 結構包含單播 IP 位址專案計數,以及每個單播 IP 位址專案的 MIB_UNICASTIPADDRESS_ROW 結構陣列。 當不再需要這些傳回的結構時,您的驅動程式應該藉由呼叫 FreeMibTable釋放記憶體。

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

請注意,傳回的MIB_UNICASTIPADDRESS_TABLE結構, Table 參數所指向的結構可能包含 NumEntries 成員與MIB_UNICASTIPADDRESS_TABLE結構之 Table 成員中第一個MIB_UNICASTIPADDRESS_ROW陣列專案的填補。 對齊方式的邊框間距也可能出現在MIB_UNICASTIPADDRESS_ROW陣列專案之間。 任何對MIB_UNICASTIPADDRESS_ROW陣列專案的存取都應該假設填補可能存在。

規格需求

目標平台

普遍

版本

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

標頭

Netioapi.h (包含 Netioapi.h)

程式庫

Netio.lib

IRQL

< DISPATCH_LEVEL

另請參閱

CreateUnicastIpAddressEntry

DeleteUnicastIpAddressEntry

FreeMibTable

GetUnicastIpAddressEntry

InitializeUnicastIpAddressEntry

MIB_UNICASTIPADDRESS_ROW

MIB_UNICASTIPADDRESS_TABLE

NotifyStableUnicastIpAddressTable

NotifyUnicastIpAddressChange

SetUnicastIpAddressEntry