Bagikan melalui


Fungsi SetIpInterfaceEntry (netioapi.h)

Fungsi SetIpInterfaceEntry mengatur properti antarmuka IP di komputer lokal.

Sintaks

IPHLPAPI_DLL_LINKAGE _NETIOAPI_SUCCESS_ NETIOAPI_API SetIpInterfaceEntry(
  [in, out] PMIB_IPINTERFACE_ROW Row
);

Parameter

[in, out] Row

Penunjuk ke entri struktur MIB_IPINTERFACE_ROW untuk antarmuka. Pada input, anggota KeluargaMIB_IPINTERFACE_ROW harus diatur ke AF_INET6 atau AF_INET dan InterfaceLuid atau anggota InterfaceIndexdari MIB_IPINTERFACE_ROW harus ditentukan. Pada pengembalian yang berhasil, anggota InterfaceLuiddari MIB_IPINTERFACE_ROW diisi jika anggota InterfaceIndex dari entri MIB_IPINTERFACE_ROW ditentukan.

Nilai kembali

Jika fungsi berhasil, nilai yang dikembalikan adalah NO_ERROR.

Jika fungsi gagal, nilai yang dikembalikan adalah salah satu kode kesalahan berikut.

Menampilkan kode Deskripsi
ERROR_ACCESS_DENIED
Akses ditolak. Kesalahan ini dikembalikan dalam beberapa kondisi yang mencakup hal berikut: pengguna tidak memiliki hak istimewa administratif yang diperlukan di komputer lokal atau aplikasi tidak berjalan dalam shell yang ditingkatkan sebagai Administrator bawaan (administrator RunAs).
ERROR_FILE_NOT_FOUND
Sistem tidak dapat menemukan file yang ditentukan. Kesalahan ini dikembalikan jika antarmuka jaringan LUID atau indeks antarmuka yang ditentukan oleh anggota InterfaceLuid atau InterfaceIndexdari MIB_IPINTERFACE_ROW yang ditunjukkan oleh parameter Baris bukan nilai pada komputer lokal.
ERROR_INVALID_PARAMETER
Parameter yang tidak valid diteruskan ke fungsi. Kesalahan ini dikembalikan jika penunjuk NULL diteruskan dalam parameter Baris , anggota Keluargadari MIB_IPINTERFACE_ROW yang ditunjukkan oleh parameter Baris tidak ditentukan sebagai AF_INET atau AF_INET6, atau anggota InterfaceLuid atau InterfaceIndexdari MIB_IPINTERFACE_ROW yang ditunjukkan oleh parameter Baris tidak ditentukan.
ERROR_NOT_FOUND
Antarmuka yang ditentukan tidak dapat ditemukan. Kesalahan ini dikembalikan jika antarmuka jaringan yang ditentukan oleh anggota InterfaceLuid atau InterfaceIndexdari MIB_IPINTERFACE_ROW yang ditunjukkan oleh parameter Baris tidak cocok dengan keluarga alamat IP yang ditentukan dalam anggota Keluarga dalam struktur MIB_IPINTERFACE_ROW .
Lainnya
Gunakan FormatMessage untuk mendapatkan string pesan untuk kesalahan yang dikembalikan.

Keterangan

Fungsi SetIpInterfaceEntry didefinisikan pada Windows Vista dan yang lebih baru.

Fungsi SetIpInterfaceEntry dapat digunakan untuk memodifikasi entri antarmuka IP yang ada.

Pada input, anggota Keluarga dalam struktur MIB_IPINTERFACE_ROW yang ditunjukkan oleh parameter Baris harus diinisialisasi ke AF_INET atau AF_INET6. Selain input, setidaknya salah satu anggota berikut dalam struktur MIB_IPINTERFACE_ROW yang menunjuk ke parameter Baris harus diinisialisasi: InterfaceLuid atau InterfaceIndex.

Bidang 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 berikutnya digunakan untuk menentukan antarmuka.

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

MaxReassemblySize, MinRouterAdvertisementInterval, MaxRouterAdvertisementInterval , Connected, SupportsWakeUpPatterns, SupportsNeighborDiscovery, SupportsRouterDiscovery, ReachableTime, TransmitOffload, dan Anggota ReceiveOffload dari struktur MIB_IPINTERFACE_ROW yang ditunjukkan oleh Baris diabaikan ketika fungsi SetIpInterfaceEntry dipanggil. Anggota ini diatur oleh tumpukan jaringan dan tidak dapat diubah menggunakan fungsi SetIpInterfaceEntry .

Aplikasi biasanya akan memanggil fungsi GetIpInterfaceTable untuk mengambil entri antarmuka IP di komputer lokal atau memanggil fungsi GetIpInterfaceEntry untuk mengambil hanya entri antarmuka IP untuk dimodifikasi. Struktur MIB_IPINTERFACE_ROW untuk entri antarmuka IP tertentu kemudian dapat dimodifikasi dan penunjuk ke struktur ini diteruskan ke fungsi SetIpInterfaceEntry di parameter Baris . Namun untuk IPv4, aplikasi tidak boleh mencoba memodifikasi anggota SitePrefixLength dari struktur MIB_IPINTERFACE_ROW . Untuk IPv4, anggota SitePrefixLength harus diatur ke 0.

Metode lain yang mungkin untuk mengubah entri antarmuka IP yang ada adalah menggunakan fungsi InitializeIpInterfaceEntry untuk menginisialisasi bidang entri struktur MIB_IPINTERFACE_ROW dengan nilai default. Kemudian atur anggota Keluarga dan anggota InterfaceIndex atau InterfaceLuid dalam struktur MIB_IPINTERFACE_ROW yang ditunjukkan oleh parameter Baris agar sesuai dengan antarmuka IP yang akan diubah. Aplikasi kemudian dapat mengubah bidang dalam entri MIB_IPINTERFACE_ROW yang ingin dimodifikasi, lalu memanggil fungsi SetIpInterfaceEntry . Namun untuk IPv4, aplikasi tidak boleh mencoba memodifikasi anggota SitePrefixLength dari struktur MIB_IPINTERFACE_ROW . Untuk IPv4, anggota SitePrefixLength harus diatur ke 0. Perhatian harus digunakan dengan pendekatan ini karena satu-satunya cara untuk menentukan semua bidang yang diubah adalah dengan membandingkan bidang dalam MIB_IPINTERFACE_ROW entri antarmuka IP tertentu dengan bidang yang ditetapkan oleh fungsi InitializeIpInterfaceEntry ketika MIB_IPINTERFACE_ROW diinisialisasi ke nilai default.

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

Pada Windows Vista dan yang lebih baru, model host yang kuat digunakan secara default. Jika alamat IP sumber ditentukan dalam pencarian rute menggunakan GetBestRoute2 atau GetBestRoute, 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 sehingga memungkinkan lalu lintas ke Internet. Anggota DisableDefaultRoutes dari MIB_IPINTERFACE_ROW dapat digunakan untuk menonaktifkan menggunakan rute default pada antarmuka. Anggota ini dapat digunakan sebagai langkah keamanan oleh klien VPN untuk membatasi penerowongan terpisah saat penerowongan terpisah tidak diperlukan oleh klien VPN. Klien VPN dapat memanggil fungsi SetIpInterfaceEntry untuk mengatur anggota DisableDefaultRoutes ke TRUE jika diperlukan. Klien VPN dapat meminta status anggota DisableDefaultRoutes saat ini dengan memanggil fungsi GetIpInterfaceEntry .

The

Fungsi SetIpInterfaceEntry hanya dapat dipanggil oleh pengguna yang masuk sebagai anggota grup Administrator. Jika SetIpInterfaceEntry dipanggil oleh pengguna yang bukan anggota grup Administrator, panggilan fungsi akan gagal dan ERROR_ACCESS_DENIED dikembalikan. Fungsi ini juga dapat gagal karena kontrol akun pengguna (UAC) pada Windows Vista dan yang lebih baru. Jika aplikasi yang berisi fungsi ini dijalankan oleh pengguna yang masuk sebagai anggota grup Administrator selain Administrator bawaan, panggilan ini akan gagal kecuali aplikasi telah ditandai dalam file manifes dengan requestedExecutionLevel yang diatur ke requireAdministrator. Jika aplikasi tidak memiliki file manifes ini, pengguna yang masuk sebagai anggota grup Administrator selain Administrator bawaan kemudian harus menjalankan aplikasi dalam shell yang ditingkatkan sebagai Administrator bawaan (administrator RunAs) agar fungsi ini berhasil.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 [hanya aplikasi desktop]
Target Platform Windows
Header netioapi.h (termasuk Iphlpapi.h)
Pustaka Iphlpapi.lib
DLL Iphlpapi.dll

Lihat juga

GetBestRoute

GetBestRoute2

GetIfEntry2

GetIfTable2

GetIfTable2Ex

GetIpInterfaceEntry

GetIpInterfaceTable

Referensi Fungsi Pembantu IP

InitializeIpInterfaceEntry

MIB_IF_ROW2

MIB_IF_TABLE2

MIB_IPINTERFACE_ROW

MIB_IPINTERFACE_TABLE

NotifyIpInterfaceChange