共用方式為


ResolveIpNetEntry2 函式

ResolveIpNetEntry2 函式會解析本機電腦上鄰近 IP 位址專案的實體位址。

語法

NETIOAPI_API ResolveIpNetEntry2(
  _Inout_        PMIB_IPNET_ROW2 Row,
  _In_opt_ const SOCKADDR_INET   *SourceAddress
);

參數

  • [in, out]
    鄰近IP位址專案的 MIB_IPNET_ROW2 結構專案的指標。 成功傳回時,會使用鄰近IP位址的屬性來更新此結構。

  • SourceAddress [in, optional]
    選擇性來源IP位址的指標,用來選取介面以傳送鄰近IP位址專案的要求。

傳回值

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

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

傳回碼 描述
STATUS_BAD_NETWORK_NAME

找不到網路名稱。 如果無法連線到具有鄰近IP位址的網路,則會傳回此錯誤。

STATUS_INVALID_PARAMETER

無效的參數已傳遞至函式。 如果在 Row 參數中傳遞 NULL 指標,則會傳回此錯誤: 數據列 參數指向的 MIB_IPNET_ROW2 結構 位址 成員未設定為有效的 IPv4 或 IPv6 位址,或是未指定 InterfaceLuidInterfaceIndex MIB_IPNET_ROW2 成員。 如果在 位址 成員中傳遞回回位址,也會傳回此錯誤。

STATUS_NOT_FOUND

找不到指定的介面。 如果函式找不到 InterfaceLuidInterfaceIndex 所指定的網路介面,Row 參數所指向之MIB_IPNET_ROW2結構的成員,就會傳回此錯誤。

STATUS_NOT_SUPPORTED

不支援要求。 如果本機計算機上沒有 IPv4 堆棧,且 位址 成員中指定了 IPv4 位址,MIB_IPNET_ROW2結構 參數所指向的 IPv4 位址,或如果本機計算機上沒有 IPv6 堆棧,且已在 Address 成員中指定 IPv6 位址,則會傳回此錯誤。

其他

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

言論

ResolveIpNetEntry2 函式是用來解析本機電腦上鄰近 IP 位址專案的實體位址。 此函式會排清介面上IP位址相符的任何現有鄰近專案,然後傳送IPv4位址的ARP要求或IPv6位址的芳鄰請求來解析實體位址 (MAC) 位址。 如果指定 SourceAddress 參數,ResolveIpNetEntry2 選取具有此來源 IP 位址的介面以傳送要求。 如果未指定 SourceAddress 參數(NULL 傳入此參數),ResolveIpNetEntry2 會自動選取傳送要求的最佳介面。

您的驅動程式必須初始化 Row 參數指向的下列 MIB_IPNET_ROW2 結構成員。

  • 位址
    設定為有效的 IPv4 或 IPv6 位址和系列。

  • InterfaceLuidInterfaceIndex
    這些成員會依照稍早所列的順序使用。 因此,如果指定 InterfaceLuid,則會使用此成員來判斷介面。 如果未為 InterfaceLuid 成員設定任何值(此成員的值設定為零),則 InterfaceIndex 成員會接著用來判斷介面。

如果在 Address 中傳遞的 IP 位址 MIB_IPNET_ROW2 結構的成員,Row 參數所指向的 IP 位址是介面上現有鄰近 IP 位址的重複專案,則 ResolveIpNetEntry2 函式會在解析 IP 位址之前排清現有的專案。

在輸出中,當呼叫成功時,ResolveIpNetEntry2 擷取鄰近IP位址的其他屬性,並填入 Row 參數指向的MIB_IPNET_ROW2結構。 PhysicalAddressPhysicalAddressLeng th MIB_IPNET_ROW2 結構中的成員會初始化為有效的實體位址。

要求

目標平臺

通用

版本

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

頁眉

Netioapi.h (包括 Netioapi.h)

圖書館

Netio.lib

IRQL

< DISPATCH_LEVEL

另請參閱

CreateIpNetEntry2

DeleteIpNetEntry2

FlushIpNetTable2

GetIpNetEntry2

GetIpNetTable2

MIB_IPNET_ROW2

MIB_IPNET_TABLE2

SetIpNetEntry2