Bagikan melalui


Fungsi SetIpInterfaceEntry

Fungsi SetIpInterfaceEntry mengatur properti antarmuka IP di komputer lokal.

Sintaks

NETIOAPI_API SetIpInterfaceEntry(
  _Inout_ PMIB_IPINTERFACE_ROW Row
);

Parameter

  • Baris [masuk, keluar]
    Penunjuk ke entri struktur MIB_IPINTERFACE_ROW untuk antarmuka. Pada input, driver Anda harus mengatur anggota Keluarga MIB_IPINTERFACE_ROW ke AF_INET6 atau AF_INET dan driver Anda harus menentukan anggota InterfaceLuid atau anggota InterfaceIndex dari MIB_IPINTERFACE_ROW. Pada pengembalian yang berhasil, anggota InterfaceLuid dari MIB_IPINTERFACE_ROW diisi jika anggota InterfaceIndex dari entri MIB_IPINTERFACE_ROW ditentukan.

Mengembalikan nilai

SetIpInterfaceEntry mengembalikan STATUS_SUCCESS jika fungsi berhasil.

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

Menampilkan kode Deskripsi
STATUS_INVALID_PARAMETER

Parameter yang tidak valid diteruskan ke fungsi. Kesalahan ini dikembalikan jika penunjuk NULL diteruskan dalam parameter Baris , anggota Keluarga dari struktur MIB_IPINTERFACE_ROW yang ditunjuk parameter Baris tidak ditentukan sebagai AF_INET atau AF_INET6, atau anggota InterfaceLuid dan InterfaceIndex dari struktur MIB_IPINTERFACE_ROW tidak ditentukan.

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_IPINTERFACE_ROW yang ditunjuk oleh parameter Baris .

Lainnya

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

Keterangan

Driver Anda harus menggunakan fungsi InitializeIpInterfaceEntry untuk menginisialisasi bidang entri struktur MIB_IPINTERFACE_ROW dengan nilai default. Driver kemudian dapat mengubah bidang dalam entri MIB_IPINTERFACE_ROW yang ingin dimodifikasi, lalu memanggil fungsi SetIpInterfaceEntry .

Pada input, driver Anda harus menginisialisasi anggota struktur MIB_IPINTERFACE_ROW berikut yang ditunjuk oleh parameter Baris .

  • Keluarga
    Atur ke AF_INET atau AF_INET6.

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

Pada output, anggota InterfaceLuid dari struktur MIB_IPINTERFACE_ROW yang ditunjuk parameter Baris diisi jika InterfaceIndex ditentukan.

SetIpInterfaceEntry mengabaikan MaxReassemblySize, MinRouterAdvertisementInterval, MaxRouterAdvertisementInterval, Connected, SupportsWakeUpPatterns, SupportsNeighborDiscovery, SupportsRouterDiscovery, ReachableTime, TransmitOffload, dan ReceiveOffload anggota struktur MIB_IPINTERFACE_ROW yang ditunjuk parameter Baris . Anggota ini diatur oleh tumpukan jaringan dan tidak dapat diubah dengan menggunakan fungsi SetIpInterfaceEntry .

Akses simultan yang tidak istimewa ke beberapa jaringan dengan persyaratan keamanan yang berbeda menciptakan lubang keamanan dan memungkinkan driver yang tidak istimewa untuk secara tidak sengaja menyampaikan data antara kedua jaringan. Contoh umumnya adalah akses simultan ke jaringan privat maya (VPN) dan Internet. Sistem operasi Windows Server 2003 dan Windows XP menggunakan model host yang lemah, di mana Remote Access Service (RAS) mencegah akses simultan tersebut dengan meningkatkan metrik rute dari semua rute default melalui antarmuka lain. Oleh karena itu, semua lalu lintas dirutekan melalui antarmuka VPN, mengganggu konektivitas jaringan lainnya.

Pada Windows Vista dan versi yang lebih baru dari sistem operasi Windows, secara default, model host yang kuat digunakan. Jika alamat IP sumber ditentukan dalam pencarian rute dengan menggunakan fungsi GetBestRoute2 , pencarian rute dibatasi untuk antarmuka alamat IP sumber. Modifikasi metrik rute oleh RAS tidak berpengaruh karena daftar rute potensial bahkan tidak memiliki rute untuk antarmuka VPN, yang memungkinkan lalu lintas ke Internet. Driver Anda dapat menggunakan anggota DisableDefaultRoutes dari struktur MIB_IPINTERFACE_ROW untuk menonaktifkan menggunakan rute default pada antarmuka. Klien VPN dapat menggunakan anggota ini sebagai langkah keamanan untuk membatasi penerowongan terpisah saat penerowongan terpisah tidak diperlukan oleh klien VPN. Klien VPN dapat memanggil fungsi SetIpInterfaceEntry untuk mengatur anggota DisableDefaultRoutes ke TRUE saat diperlukan. Klien VPN dapat meminta status anggota DisableDefaultRoutes saat ini dengan memanggil fungsi GetIpInterfaceEntry .

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

GetBestRoute2

GetIfEntry2

GetIfTable2

GetIfTable2Ex

GetIpInterfaceEntry

GetIpInterfaceTable

InitializeIpInterfaceEntry

MIB_IF_ROW2

MIB_IF_TABLE2

MIB_IPINTERFACE_ROW

MIB_IPINTERFACE_TABLE

NotifyIpInterfaceChange