Bagikan melalui


Fungsi GetBestRoute2

Fungsi GetBestRoute2 mengambil entri rute IP di komputer lokal untuk rute terbaik ke alamat IP tujuan yang ditentukan.

Sintaks

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 [keluar]
    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:

Menampilkan kode Deskripsi
STATUS_INVALID_PARAMETER

Parameter yang tidak valid diteruskan ke fungsi. Kesalahan ini dikembalikan jika pointer NULL diteruskan di 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 ditentukan parameter InterfaceLuid atau 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 IPv4 dan keluarga ditentukan dalam parameter DestinationAddress .

Lainnya

Gunakan fungsi FormatMessage untuk mendapatkan string pesan untuk kesalahan yang dikembalikan.

Keterangan

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 anggota InterfaceLuid (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 yang lebih baru dari sistem operasi Windows.

Header

Netioapi.h (termasuk Netioapi.h)

Pustaka

Netio.lib

IRQL

< DISPATCH_LEVEL

Lihat juga

CreateIpForwardEntry2

DeleteIpForwardEntry2

GetIpForwardEntry2

GetIpForwardTable2

InitializeIpForwardEntry

MIB_IPFORWARD_ROW2

MIB_IPFORWARD_TABLE2

NotifyRouteChange2

SetIpForwardEntry2