Fungsi ResolveIpNetEntry2
Fungsi ResolveIpNetEntry2 menyelesaikan alamat fisik untuk entri alamat IP tetangga di komputer lokal.
Sintaksis
NETIOAPI_API ResolveIpNetEntry2(
_Inout_ PMIB_IPNET_ROW2 Row,
_In_opt_ const SOCKADDR_INET *SourceAddress
);
Parameter
Baris [masuk, keluar]
Penunjuk ke entri struktur MIB_IPNET_ROW2 untuk entri alamat IP tetangga. Pada pengembalian yang berhasil, struktur ini diperbarui dengan properti untuk alamat IP tetangga.SourceAddress [in, opsional]
Penunjuk ke alamat IP sumber opsional yang digunakan untuk memilih antarmuka untuk mengirim permintaan untuk entri alamat IP tetangga.
Mengembalikan nilai
ResolveIpNetEntry2 mengembalikan STATUS_SUCCESS jika fungsi berhasil.
Jika fungsi gagal, ResolveIpNetEntry2 mengembalikan salah satu kode kesalahan berikut:
Mengembalikan kode | Deskripsi |
---|---|
STATUS_BAD_NETWORK_NAME | Nama jaringan tidak dapat ditemukan. Kesalahan ini dikembalikan jika jaringan dengan alamat IP tetangga tidak dapat dijangkau. |
STATUS_INVALID_PARAMETER | Parameter yang tidak valid diteruskan ke fungsi. Kesalahan ini dikembalikan jika penunjuk NULL diteruskan dalam parameter Baris, anggota Alamat dari struktur MIB_IPNET_ROW2 yang baris tidak diatur ke alamat IPv4 atau IPv6 yang valid, atau InterfaceLuid dan InterfaceIndex anggota struktur MIB_IPNET_ROW2 tidak ditentukan. Kesalahan ini juga dikembalikan jika alamat loopback diteruskan di anggota Alamat. |
STATUS_NOT_FOUND | Antarmuka yang ditentukan tidak dapat ditemukan. Kesalahan ini dikembalikan jika fungsi tidak dapat menemukan antarmuka jaringan yang ditentukan oleh InterfaceLuid atau InterfaceIndex anggota struktur MIB_IPNET_ROW2 yang ditunjuk oleh parameter Baris. |
STATUS_NOT_SUPPORTED | Permintaan tidak didukung. Kesalahan ini dikembalikan jika tidak ada tumpukan IPv4 yang terletak di komputer lokal dan alamat IPv4 ditentukan dalam Alamat anggota struktur MIB_IPNET_ROW2 yang ditunjuk parameter Baris, atau jika tidak ada tumpukan IPv6 yang terletak di komputer lokal dan alamat IPv6 ditentukan dalam alamat anggota. |
Lainnya | Gunakan fungsi FormatMessage untuk mendapatkan string pesan untuk kesalahan yang dikembalikan. |
Komentar
Fungsi ResolveIpNetEntry2 digunakan untuk menyelesaikan alamat fisik untuk entri alamat IP tetangga di komputer lokal. Fungsi ini menghapus entri tetangga yang ada yang cocok dengan alamat IP pada antarmuka dan kemudian menyelesaikan alamat alamat fisik (MAC) dengan mengirim permintaan ARP untuk alamat IPv4 atau permintaan Ajakan Tetangga (NS) untuk alamat IPv6. Jika parameter SourceAddress ditentukan, ResolveIpNetEntry2 memilih antarmuka dengan alamat IP sumber ini untuk mengirim permintaan. Jika parameter SourceAddress tidak ditentukan ( NULL diteruskan dalam parameter ini), ResolveIpNetEntry2 secara otomatis memilih antarmuka terbaik untuk mengirim permintaan.
Driver Anda harus menginisialisasi anggota struktur MIB_IPNET_ROW2 berikut yang ditunjuk oleh parameter Baris.
Alamat
Atur ke alamat dan keluarga IPv4 atau IPv6 yang valid.InterfaceLuid atau InterfaceIndex
Anggota ini digunakan dalam urutan yang tercantum sebelumnya. Jadi jika InterfaceLuid ditentukan, anggota ini digunakan untuk menentukan antarmuka. Jika tidak ada nilai yang ditetapkan untuk anggota InterfaceLuid (nilai anggota ini diatur ke nol), anggota InterfaceIndex selanjutnya digunakan untuk menentukan antarmuka.
Jika alamat IP yang diteruskan di Alamat anggota struktur MIB_IPNET_ROW2 yang ditunjukkan parameter Baris adalah duplikat alamat IP tetangga yang ada pada antarmuka, fungsi ResolveIpNetEntry2 menghapus entri yang ada sebelum menyelesaikan alamat IP.
Pada output, ketika panggilan berhasil, ResolveIpNetEntry2 mengambil properti lain untuk alamat IP tetangga dan mengisi struktur MIB_IPNET_ROW2 yang ditunjuk oleh parameter Baris. PhysicalAddress dan physicalAddressLength anggota dalam struktur MIB_IPNET_ROW2 diinisialisasi ke alamat fisik yang valid.
Persyaratan
Platform target |
Universal |
Versi |
Tersedia di Windows Vista dan versi sistem operasi Windows yang lebih baru. |
Header |
Netioapi.h (termasuk Netioapi.h) |
Perpustakaan |
Netio.lib |
IRQL |
< DISPATCH_LEVEL |