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 位址,或是未指定 InterfaceLuid 和 InterfaceIndex MIB_IPNET_ROW2 成員。 如果在 位址 成員中傳遞回回位址,也會傳回此錯誤。 |
STATUS_NOT_FOUND | 找不到指定的介面。 如果函式找不到 InterfaceLuid 或 InterfaceIndex 所指定的網路介面,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 位址和系列。InterfaceLuid 或 InterfaceIndex
這些成員會依照稍早所列的順序使用。 因此,如果指定 InterfaceLuid,則會使用此成員來判斷介面。 如果未為 InterfaceLuid 成員設定任何值(此成員的值設定為零),則 InterfaceIndex 成員會接著用來判斷介面。
如果在 Address 中傳遞的 IP 位址 MIB_IPNET_ROW2 結構的成員,Row 參數所指向的 IP 位址是介面上現有鄰近 IP 位址的重複專案,則 ResolveIpNetEntry2 函式會在解析 IP 位址之前排清現有的專案。
在輸出中,當呼叫成功時,ResolveIpNetEntry2 擷取鄰近IP位址的其他屬性,並填入 Row 參數指向的MIB_IPNET_ROW2結構。 PhysicalAddress 和 PhysicalAddressLeng th MIB_IPNET_ROW2 結構中的成員會初始化為有效的實體位址。
要求
目標平臺 |
通用 |
版本 |
可在 Windows Vista 和更新版本的 Windows作系統中使用。 |
頁眉 |
Netioapi.h (包括 Netioapi.h) |
圖書館 |
Netio.lib |
IRQL |
< DISPATCH_LEVEL |