共用方式為


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指標、Row參數指向的 MIB_IPNET_ROW2結構的Address成員未設定為有效的 IPv4 或 IPv6 位址,或是未指定 MIB_IPNET_ROW2 結構的InterfaceLuidInterfaceIndex成員,就會傳回此錯誤。 如果在 Address 成員中傳遞回送位址,也會傳回此錯誤。

STATUS_NOT_FOUND

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

STATUS_NOT_SUPPORTED

不支援此要求。 如果本機電腦上沒有 IPv4 堆疊,而且在Row參數指向之 MIB_IPNET_ROW2 結構的Address成員中指定了 IPv4 位址,或如果本機電腦上沒有 IPv6 堆疊,且位址成員中指定了 IPv6 位址,則會傳回此錯誤。

其他

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

備註

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

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

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

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

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

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

規格需求

目標平台

普遍

版本

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

標頭

Netioapi.h (包含 Netioapi.h)

程式庫

Netio.lib

IRQL

< DISPATCH_LEVEL

另請參閱

CreateIpNetEntry2

DeleteIpNetEntry2

FlushIpNetTable2

GetIpNetEntry2

GetIpNetTable2

MIB_IPNET_ROW2

MIB_IPNET_TABLE2

SetIpNetEntry2