Fungsi GetBestRoute2
Fungsi GetBestRoute2 mengambil entri rute IP di komputer lokal untuk rute terbaik ke alamat IP tujuan yang ditentukan.
Sintaksis
NETIOAPI_API GetBestRoute2(
_In_opt_ NET_LUID *InterfaceLuid,
_In_ NET_IFINDEX InterfaceIndex,
_In_opt_ const SOCKADDR_INET *SourceAddress,
_In_ const SOCKADDR_INET *DestinationAddress,
_In_ ULONG AddressSortOptions,
_Out_ PMIB_IPFORWARD_ROW2 BestRoute,
_Out_ SOCKADDR_INET *BestSourceAddress
);
Parameter
InterfaceLuid [in, opsional]
Pengidentifikasi unik lokal (LUID) untuk menentukan antarmuka jaringan yang terkait dengan entri rute IP.InterfaceIndex [in]
Nilai indeks lokal untuk menentukan antarmuka jaringan yang terkait dengan entri rute IP. Nilai indeks ini mungkin berubah ketika adaptor jaringan dinonaktifkan lalu diaktifkan, atau dalam keadaan lain, sehingga nilai ini tidak persisten.SourceAddress [in, opsional]
Alamat IP sumber. Driver Anda dapat menghilangkan parameter ini dan meneruskan penunjuk NULL.DestinationAddress [in]
Alamat IP tujuan.AddressSortOptions [in]
Sekumpulan opsi yang memengaruhi cara alamat IP diurutkan. Parameter ini saat ini tidak digunakan.BestRoute [out]
Penunjuk ke struktur MIB_IPFORWARD_ROW2 untuk rute terbaik dari alamat IP sumber ke alamat IP tujuan.BestSourceAddress [out]
Penunjuk ke alamat IP sumber terbaik.
Mengembalikan nilai
GetBestRoute2 mengembalikan STATUS_SUCCESS jika fungsi berhasil.
Jika fungsi gagal, GetBestRoute2 mengembalikan salah satu kode kesalahan berikut:
Mengembalikan kode | Deskripsi |
---|---|
STATUS_INVALID_PARAMETER | Parameter yang tidak valid diteruskan ke fungsi. Kesalahan ini dikembalikan jika penunjuk NULL diteruskan dalam parameter DestinationAddress, BestSourceAddress, atau bestRoute. Kesalahan ini juga dikembalikan jika parameter InterfaceLuid dan InterfaceIndex tidak ditentukan. Kesalahan ini juga dikembalikan jika parameter DestinationAddress tidak menentukan alamat dan keluarga IPv4 atau IPv6 |
STATUS_NOT_FOUND | Antarmuka yang ditentukan tidak dapat ditemukan. Kesalahan ini dikembalikan jika antarmuka jaringan yang interfaceLuid atau parameter InterfaceIndex tidak dapat ditemukan. |
STATUS_NOT_SUPPORTED | Permintaan tidak didukung. Kesalahan ini dikembalikan jika tidak ada tumpukan IPv4 yang terletak di komputer lokal dan alamat dan keluarga IPv4 ditentukan dalam parameter DestinationAddress, atau jika tidak ada tumpukan IPv6 yang terletak di komputer lokal dan alamat dan keluarga IPv4 ditentukan dalam parameter DestinationAddress. |
Lainnya | Gunakan fungsi FormatMessage untuk mendapatkan string pesan untuk kesalahan yang dikembalikan. |
Komentar
Fungsi GetBestRoute2 digunakan untuk mengambil entri struktur MIB_IPFORWARD_ROW2 untuk rute terbaik dari alamat IP sumber ke alamat IP tujuan.
Pada input, driver Anda harus menginisialisasi parameter berikut.
DestinationAddress
Atur ke alamat dan keluarga IPv4 atau IPv6 yang valid.InterfaceLuid atau InterfaceIndex
Parameter ini digunakan dalam urutan yang tercantum sebelumnya. Jadi, jika InterfaceLuid ditentukan, parameter ini digunakan untuk menentukan antarmuka. Jika tidak ada nilai yang diatur untuk interfaceLuid anggota (nilai parameter ini diatur ke nol), parameter InterfaceIndex selanjutnya digunakan untuk menentukan antarmuka.
Selain itu, pada input, driver Anda dapat menginisialisasi parameter SourceAddress ke alamat dan keluarga IPv4 atau IPv6 pilihan.
Pada output, ketika panggilan berhasil, GetBestRoute2 mengambil struktur MIB_IPFORWARD_ROW2 untuk rute terbaik dari alamat IP sumber alamat IP tujuan.
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 |