Fungsi IoUnregisterPlugPlayNotificationEx (wdm.h)

Rutinitas IoUnregisterPlugPlayNotificationEx membatalkan pendaftaran rutinitas panggilan balik driver untuk pemberitahuan peristiwa Plug and Play (PnP).

Sintaks

NTSTATUS IoUnregisterPlugPlayNotificationEx(
  [in] PVOID NotificationEntry
);

Parameter

[in] NotificationEntry

Pointer ke nilai buram yang mewakili pendaftaran untuk dibatalkan. Pemanggil sebelumnya mendapatkan nilai ini dengan memanggil rutinitas IoRegisterPlugPlayNotification .

Nilai kembali

IoUnregisterPlugPlayNotificationEx mengembalikan STATUS_SUCCESS jika parameter NotificationEntry valid.

Keterangan

Driver mode kernel memanggil rutinitas ini untuk menghapus pendaftaran untuk menerima pemberitahuan PnP. Artinya, panggilan IoUnregisterPlugPlayNotificationEx membatalkan pendaftaran rutinitas panggilan balik driver untuk satu kategori peristiwa PnP. Driver sebelumnya mendapatkan pendaftaran ini dengan memanggil rutinitas IoRegisterPlugPlayNotification .

Setelah panggilan IoUnregisterPlugPlayNotificationEx kembali, pendaftaran yang ditentukan dibatalkan dan tidak ada panggilan balik lebih lanjut yang dapat terjadi.

Rutinitas IoUnregisterPlugPlayNotification mirip dengan IoUnregisterPlugPlayNotificationEx, kecuali tidak dapat menjamin bahwa tidak ada panggilan balik lebih lanjut yang dapat terjadi setelah panggilan IoUnregisterPlugPlayNotification kembali.

Sering kali, driver memanggil IoUnregisterPlugPlayNotificationEx dari rutinitas panggilan balik pemberitahuan. Dalam kebanyakan kasus, driver dapat dengan aman menghapus pendaftaran rutinitas panggilan balik pemberitahuan dengan cara ini. Namun, tidak aman bagi rutinitas panggilan balik pemberitahuan untuk memanggil IoUnregisterPlugPlayNotificationEx untuk membatalkan pendaftaran dirinya sendiri jika berikut ini benar:

  • Driver menetapkan bendera PNPNOTIFY_DEVICE_INTERFACE_INCLUDE_EXISTING_INTERFACES dalam nilai parameter EventCategoryFlags yang disediakan ke panggilan IoRegisterPlugPlayNotification yang mendaftarkan rutinitas panggilan balik pemberitahuan.

  • Panggilan IoRegisterPlugPlayNotification yang mendaftarkan rutinitas panggilan balik pemberitahuan belum kembali.

Rutinitas panggilan balik tidak boleh memanggil rutinitas apa pun yang mungkin memblokir eksekusi utas tempat rutinitas panggilan balik berjalan. Misalnya, jika rutinitas panggilan balik yang dirancang dengan buruk menempatkan item kerja yang memanggil IoUnregisterPlugPlayNotificationEx dalam antrean item kerja, dan kemudian menunggu utas pekerja menyelesaikan item kerja, itu akan mengakibatkan kebuntuan sistem operasi.

Driver harus membatalkan pendaftaran rutinitas panggilan balik pemberitahuan terlebih dahulu, lalu membebaskan buffer konteks apa pun yang terkait dengan rutinitas.

Driver tidak dapat dibongkar sampai menghapus semua pendaftaran pemberitahuan PnP-nya karena setiap pendaftaran aktif menyimpan referensi yang dihitung ke objek driver yang mewakili gambar driver yang dimuat.

Untuk informasi selengkapnya, lihat Menggunakan Pemberitahuan PnP.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tersedia dimulai dengan Windows 7.
Target Platform Universal
Header wdm.h (termasuk Wdm.h, Ntddk.h, Ntifs.h)
Pustaka NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Aturan kepatuhan DDI HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

Lihat juga

IoRegisterPlugPlayNotification

IoUnregisterPlugPlayNotification