Bagikan melalui


Fungsi NotifyRouteChange2

Fungsi NotifyRouteChange2 mendaftarkan driver yang akan diberi tahu untuk perubahan entri rute IP pada komputer lokal.

Sintaks

NETIOAPI_API NotifyRouteChange2(
  _In_    ADDRESS_FAMILY             Family,
  _In_    PIPFORWARD_CHANGE_CALLBACK Callback,
  _In_    PVOID                      CallerContext,
  _In_    BOOLEAN                    InitialNotification,
  _Inout_ HANDLE                     *NotificationHandle
);

Parameter

  • Keluarga [in]
    Keluarga alamat untuk mendaftarkan driver untuk mengubah pemberitahuan.

    Nilai yang mungkin untuk keluarga alamat tercantum dalam file header Winsock2.h. Perhatikan bahwa nilai untuk keluarga alamat AF_ dan konstanta keluarga protokol PF_ identik (misalnya, AF_INET dan PF_INET), sehingga Anda dapat menggunakan salah satu konstanta.

    Pada Windows Vista dan versi sistem operasi Windows yang lebih baru, nilai yang mungkin untuk parameter Family ditentukan dalam file header Ws2def.h. Perhatikan bahwa file header Ws2def.h secara otomatis disertakan dalam Netioapi.h dan Anda tidak boleh menggunakan Ws2def.h secara langsung.

    Nilai berikut saat ini didukung untuk keluarga alamat:

    • AF_INET
      Keluarga alamat IPv4. Ketika nilai ini ditentukan, fungsi ini mendaftarkan driver hanya untuk pemberitahuan perubahan rute IPv4.

    • AF_INET6
      Keluarga alamat IPv6. Ketika nilai ini ditentukan, fungsi ini mendaftarkan driver hanya untuk pemberitahuan perubahan rute IPv6.

    • AF_UNSPEC
      Keluarga alamat tidak ditentukan. Ketika nilai ini ditentukan, fungsi ini mendaftarkan driver untuk pemberitahuan perubahan rute IPv4 dan IPv6.

  • Panggilan balik [in]
    Penunjuk ke fungsi untuk dipanggil saat perubahan terjadi. Fungsi ini dipanggil ketika pemberitahuan antarmuka diterima.

  • CallerContext [in]
    Konteks pengguna yang diteruskan ke fungsi panggilan balik yang ditentukan dalam parameter Panggilan Balik saat pemberitahuan antarmuka diterima.

  • InitialNotification [in]
    Nilai yang menunjukkan apakah panggilan balik harus dipanggil segera setelah pendaftaran untuk pemberitahuan perubahan selesai. Pemberitahuan awal ini tidak menunjukkan perubahan yang terjadi pada rute IP. Tujuan parameter ini untuk memberikan konfirmasi bahwa panggilan balik terdaftar.

  • NotificationHandle [in, out]
    Penunjuk ke struktur MIB_IPINTERFACE_ROW untuk diinisialisasi. Saat pengembalian berhasil, anggota dalam struktur ini diinisialisasi dengan informasi default untuk antarmuka di komputer lokal.

Mengembalikan nilai

NotifyRouteChange2 mengembalikan STATUS_SUCCESS jika fungsi berhasil.

Jika fungsi gagal, NotifyRouteChange2 mengembalikan salah satu kode kesalahan berikut.

Menampilkan kode Deskripsi
ERROR_INVALID_HANDLE

Terjadi kesalahan internal di mana handel tidak valid ditemukan.

STATUS_INVALID_PARAMETER

Parameter yang tidak valid diteruskan ke fungsi. Kesalahan ini dikembalikan jika parameter Family tidak AF_INET, AF_INET6, atau AF_UNSPEC.

STATUS_NOT_ENOUGH_MEMORY

Memori tidak cukup.

Lainnya

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

Keterangan

Driver Anda harus mengatur parameter Family ke AF_INET, AF_INET6, atau AF_UNSPEC.

Pemanggilan fungsi panggilan balik yang ditentukan dalam parameter Callback diserialisasikan. Fungsi panggilan balik harus didefinisikan sebagai fungsi jenis VOID. Parameter yang diteruskan ke fungsi panggilan balik mencakup yang berikut ini.

Parameter Deskripsi

IN PVOID CallerContext

Parameter CallerContext yang diteruskan ke fungsi NotifyRouteChange2 saat mendaftarkan driver untuk pemberitahuan perubahan.

DI Baris PMIB_IPFORWARD_ROW2 OPSIONAL

Penunjuk ke entri MIB_IPFORWARD_ROW2 untuk entri rute IP yang diubah. Parameter ini adalah penunjuk NULL ketika nilai MIB_NOTIFICATION_TYPE yang diteruskan dalam parameter NotificationType ke fungsi panggilan balik diatur ke MibInitialNotification. Situasi ini hanya dapat terjadi jika parameter InitialNotification yang diteruskan ke NotifyRouteChange2 diatur ke TRUE saat mendaftarkan driver untuk pemberitahuan perubahan.

IN MIB_NOTIFICATION_TYPE NotificationType

Jenis pemberitahuan. Anggota ini bisa menjadi salah satu nilai dari jenis enumerasi MIB_NOTIFICATION_TYPE .

Untuk membatalkan pendaftaran driver untuk pemberitahuan perubahan, panggil fungsi CancelMibChangeNotify2 , melewati parameter NotificationHandle yang dikembalikan NotifyRouteChange2 .

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

CancelMibChangeNotify2

CreateIpForwardEntry2

DeleteIpForwardEntry2

GetBestRoute2

GetIpForwardEntry2

GetIpForwardTable2

InitializeIpForwardEntry

MIB_IPFORWARD_ROW2

MIB_IPFORWARD_TABLE2

MIB_NOTIFICATION_TYPE

SetIpForwardEntry2