Fungsi GetBestRoute2 (netioapi.h)
Fungsi GetBestRoute2 mengambil entri rute IP di komputer lokal untuk rute terbaik ke alamat IP tujuan yang ditentukan.
Sintaks
IPHLPAPI_DLL_LINKAGE _NETIOAPI_SUCCESS_ NETIOAPI_API GetBestRoute2(
[in, optional] NET_LUID *InterfaceLuid,
[in] NET_IFINDEX InterfaceIndex,
[in] const SOCKADDR_INET *SourceAddress,
[in] const SOCKADDR_INET *DestinationAddress,
[in] ULONG AddressSortOptions,
[out] PMIB_IPFORWARD_ROW2 BestRoute,
[out] SOCKADDR_INET *BestSourceAddress
);
Parameter
[in, optional] InterfaceLuid
Pengidentifikasi unik lokal (LUID) untuk menentukan antarmuka jaringan yang terkait dengan entri rute IP.
[in] InterfaceIndex
Nilai indeks lokal untuk menentukan antarmuka jaringan yang terkait dengan entri rute IP. Nilai indeks ini dapat berubah ketika adaptor jaringan dinonaktifkan dan kemudian diaktifkan, atau dalam keadaan lain, dan tidak boleh dianggap persisten.
[in] SourceAddress
Alamat IP sumber. Parameter ini dapat dihilangkan dan diteruskan sebagai penunjuk NULL .
[in] DestinationAddress
Alamat IP tujuan.
[in] AddressSortOptions
Sekumpulan opsi yang memengaruhi cara alamat IP diurutkan. Parameter ini saat ini tidak digunakan.
[out] BestRoute
Penunjuk ke MIB_IPFORWARD_ROW2 untuk rute terbaik dari alamat IP sumber ke alamat IP tujuan.
[out] BestSourceAddress
Penunjuk ke alamat IP sumber terbaik.
Mengembalikan nilai
Jika fungsi berhasil, nilai yang dikembalikan NO_ERROR.
Jika fungsi gagal, nilai yang dikembalikan adalah salah satu kode kesalahan berikut.
Menampilkan kode | Deskripsi |
---|---|
|
Parameter yang tidak valid diteruskan ke fungsi. Kesalahan ini dikembalikan jika penunjuk NULL diteruskan di parameter DestinationAddress, BestSourceAddress, atau BestRoute . Kesalahan ini juga dikembalikan jika parameter DestinationAddress tidak menentukan alamat dan keluarga IPv4 atau IPv6. |
|
Antarmuka yang ditentukan tidak dapat ditemukan. Kesalahan ini dikembalikan jika antarmuka jaringan yang ditentukan oleh parameter InterfaceLuid atau InterfaceIndex tidak dapat ditemukan. |
|
Permintaan tidak didukung. Kesalahan ini dikembalikan jika tidak ada tumpukan IPv4 di komputer lokal dan alamat dan keluarga IPv4 ditentukan dalam parameter DestinationAddress . Kesalahan ini juga dikembalikan jika tidak ada tumpukan IPv6 di komputer lokal dan alamat dan keluarga IPv6 ditentukan dalam parameter DestinationAddress . |
|
Gunakan FormatMessage untuk mendapatkan string pesan untuk kesalahan yang dikembalikan. |
Keterangan
Fungsi GetBestRoute2 didefinisikan pada Windows Vista dan yang lebih baru.
Fungsi GetBestRoute2 digunakan untuk mengambil entri struktur MIB_IPFORWARD_ROW2 untuk rute terbaik dari alamat IP sumber ke alamat IP tujuan.
Pada input, parameter DestinationAddress harus diinisialisasi ke alamat dan keluarga IPv4 atau IPv6 yang valid. Pada input, parameter SourceAddress dapat diinisialisasi ke alamat dan keluarga IPv4 atau IPv6 pilihan. Selain itu, setidaknya salah satu parameter berikut harus diinisialisasi: InterfaceLuid atau InterfaceIndex.
Parameter digunakan dalam urutan yang tercantum di atas. Jadi, jika InterfaceLuid ditentukan, maka anggota ini digunakan untuk menentukan antarmuka. Jika tidak ada nilai yang ditetapkan untuk anggota InterfaceLuid (nilai anggota ini diatur ke nol), maka anggota InterfaceIndex selanjutnya digunakan untuk menentukan antarmuka.
Pada output saat panggilan berhasil, GetBestRoute2 mengambil dan MIB_IPFORWARD_ROW2 struktur untuk rute terbaik dari alamat IP sumber alamat IP tujuan.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows Vista [aplikasi desktop | Aplikasi UWP] |
Server minimum yang didukung | Windows Server 2008 [aplikasi desktop | Aplikasi UWP] |
Target Platform | Windows |
Header | netioapi.h (termasuk Iphlpapi.h) |
Pustaka | Iphlpapi.lib |
DLL | Iphlpapi.dll |