Bagikan melalui


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
ERROR_INVALID_PARAMETER
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.
ERROR_FILE_NOT_FOUND
Antarmuka yang ditentukan tidak dapat ditemukan. Kesalahan ini dikembalikan jika antarmuka jaringan yang ditentukan oleh parameter InterfaceLuid atau InterfaceIndex tidak dapat ditemukan.
ERROR_NOT_SUPPORTED
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 .
Lainnya
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

Lihat juga

CreateIpForwardEntry2

DeleteIpForwardEntry2

GetIpForwardEntry2

GetIpForwardTable2

InitializeIpForwardEntry

MIB_IPFORWARD_ROW2

MIB_IPFORWARD_TABLE2

NotifyRouteChange2

SetIpForwardEntry2