Bagikan melalui


Fungsi CreateIpForwardEntry2

Fungsi CreateIpForwardEntry2 membuat entri rute IP baru di komputer lokal.

Sintaks

NETIOAPI_API CreateIpForwardEntry2(
  _In_ const MIB_IPFORWARD_ROW2 *Row
);

Parameter

Menampilkan nilai

CreateIpForwardEntry2 mengembalikan STATUS_SUCCESS jika fungsi berhasil.

Jika fungsi gagal, CreateIpForwardEntry2 mengembalikan salah satu kode kesalahan berikut:

Menampilkan kode Deskripsi
STATUS_INVALID_PARAMETER

Parameter yang tidak valid diteruskan ke fungsi. Kesalahan ini dikembalikan jika salah satu situasi berikut terjadi:

  • Penunjuk NULL diteruskan dalam parameter Baris .

  • Anggota DestinationPrefix dari struktur MIB_IPFORWARD_ROW2 yang ditunjuk parameter Baris tidak ditentukan.

  • Anggota NextHop dari struktur MIB_IPFORWARD_ROW2 tidak ditentukan.

  • Anggota InterfaceLuid dan InterfaceIndex dari struktur MIB_IPFORWARD_ROW2 tidak ditentukan.

  • Anggota PreferredLifetime dari struktur MIB_IPFORWARD_ROW2 lebih besar dari anggota ValidLifetime .

  • Anggota SitePrefixLength dari struktur MIB_IPFORWARD_ROW2 lebih besar dari panjang awalan yang ditentukan oleh anggota DestinationPrefix .

Kesalahan ini dikembalikan jika penunjuk NULL diteruskan dalam parameter Baris , anggota DestinationPrefix dari struktur MIB_IPFORWARD_ROW2 yang diarahkan oleh parameter Baris tidak ditentukan, anggota NextHop dari struktur MIB_IPFORWARD_ROW2 tidak ditentukan, atau anggota InterfaceLuid dan InterfaceIndex dari struktur MIB_IPFORWARD_ROW2 tidak ditentukan. Kesalahan ini juga dikembalikan jika anggota PreferredLifetime yang ditentukan dalam struktur MIB_IPFORWARD_ROW2 lebih besar dari anggota ValidLifetime , atau jika SitePrefixLength dalam struktur MIB_IPFORWARD_ROW2 lebih besar dari panjang awalan yang ditentukan dalam anggota DestinationPrefix .

STATUS_NOT_FOUND

Antarmuka yang ditentukan tidak dapat ditemukan. Kesalahan ini dikembalikan jika fungsi tidak dapat menemukan antarmuka jaringan yang ditentukan oleh anggota InterfaceLuid atau InterfaceIndex dari struktur MIB_IPNET_ROW2 yang ditunjuk oleh parameter Baris .

STATUS_NOT_SUPPORTED

Permintaan tidak didukung. Kesalahan ini dikembalikan jika antarmuka yang ditentukan tidak mendukung rute. Kesalahan ini dikembalikan jika tidak ada tumpukan IPv4 yang terletak di komputer lokal dan AF_INET ditentukan dalam keluarga alamat di anggota DestinationPrefix dari struktur MIB_IPFORWARD_ROW2 yang ditunjuk parameter Baris , atau jika tidak ada tumpukan IPv6 yang terletak di komputer lokal dan AF_INET6 ditentukan untuk keluarga alamat di anggota DestinationPrefix .

ERROR_OBJECT_ALREADY_EXISTS

Objek sudah ada. Kesalahan ini dikembalikan jika anggota DestinationPrefix dari struktur MIB_IPFORWARD_ROW2 yang ditunjuk parameter Baris adalah duplikat entri rute IP yang ada pada antarmuka yang ditentukan oleh anggota InterfaceLuid atau InterfaceIndex dari struktur MIB_IPFORWARD_ROW2.

Lainnya

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

Keterangan

Fungsi CreateIpForwardEntry2 digunakan untuk menambahkan entri alamat IP tetangga baru di komputer lokal. Gunakan fungsi InitializeIpForwardEntry untuk menginisialisasi anggota entri struktur MIB_IPFORWARD_ROW2 dengan nilai default. Driver kemudian dapat mengubah anggota dalam entri MIB_IPFORWARD_ROW2 yang ingin dimodifikasi lalu memanggil CreateIpForwardEntry2.

Driver Anda harus menginisialisasi anggota struktur MIB_IPFORWARD_ROW2 berikut yang ditunjuk oleh parameter Baris :

  • Atur DestinationPrefix ke prefiks alamat IPv4 atau IPv6 yang valid.

  • Atur NextHop ke alamat dan keluarga IPv4 atau IPv6 yang valid.

  • Atur InterfaceLuid atau InterfaceIndex ke LUID atau nilai indeks antarmuka.

Anggota InterfaceLuid dan InterfaceIndex digunakan dalam urutan yang tercantum sebelumnya. Jadi, jika InterfaceLuid ditentukan, anggota ini digunakan untuk menentukan antarmuka untuk menambahkan entri rute IP. Jika tidak ada nilai yang ditetapkan untuk anggota InterfaceLuid (nilai anggota ini diatur ke nol), anggota InterfaceIndex berikutnya digunakan untuk menentukan antarmuka.

Offset metrik rute yang ditentukan dalam anggota Metrik dari struktur MIB_IPFORWARD_ROW2 yang ditunjuk parameter Baris hanya mewakili bagian dari metrik rute lengkap. Metrik lengkap adalah kombinasi dari offset metrik rute ini yang ditambahkan ke metrik antarmuka yang ditentukan dalam anggota Metrik dari struktur MIB_IPINTERFACE_ROW antarmuka terkait. Driver dapat mengambil metrik antarmuka dengan memanggil fungsi GetIpInterfaceEntry .

Anggota Usia dan Asal dari struktur MIB_IPFORWARD_ROW2 yang diabaikan oleh parameter Baris saat fungsi CreateIpForwardEntry2 dipanggil. Anggota ini diatur oleh tumpukan jaringan dan tidak dapat diatur dengan menggunakan fungsi CreateIpForwardEntry2 .

Fungsi CreateIpForwardEntry2 gagal jika anggota DestinationPrefix dan NextHop dari struktur MIB_IPFORWARD_ROW2 yang ditunjuk parameter Baris adalah duplikat entri rute IP yang ada pada antarmuka yang ditentukan dalam anggota InterfaceLuid atau InterfaceIndex .

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

DeleteIpForwardEntry2

GetBestRoute2

GetIpForwardEntry2

GetIpForwardTable2

GetIpInterfaceEntry

InitializeIpForwardEntry

MIB_IPFORWARD_ROW2

MIB_IPFORWARD_TABLE2

MIB_IPINTERFACE_ROW

NotifyRouteChange2

SetIpForwardEntry2