IRP_MN_REMOVE_DEVICE

Semua driver PnP harus menangani IRP ini.

Nilai

0x02

Kode Utama

IRP_MJ_PNP

Ketika Dikirim

Manajer PnP menggunakan IRP ini untuk mengarahkan driver untuk menghapus representasi perangkat lunak perangkat (objek perangkat, dan sebagainya). Manajer PnP mengirimkan IRP ini ketika perangkat telah dihapus dengan tertib (misalnya, dimulai oleh pengguna dalam program Cabut atau Lepaskan Perangkat Keras), secara mengejutkan (pengguna menarik perangkat dari slotnya tanpa peringatan sebelumnya), atau ketika pengguna meminta untuk memperbarui driver.

Pada sistem Windows 2000 dan yang lebih baru, manajer PnP juga mengirim IRP ini jika salah satu driver di tumpukan perangkat gagal permintaan IRP_MN_START_DEVICE untuk perangkat.

Untuk penghapusan perangkat yang teratur, manajer PnP mengirimkan IRP_MN_QUERY_REMOVE_DEVICE sebelum menghapus IRP. Dalam hal ini, perangkat berada dalam status hapus tertunda saat penghapusan IRP tiba. Untuk penghapusan perangkat kejutan pada Microsoft Windows 2000 atau yang lebih baru, manajer PnP mengirimkan IRP_MN_SURPRISE_REMOVAL sebelum menghapus IRP. Dalam hal ini, perangkat dalam keadaan terhapus secara mendadak ketika IRP penghapusan tiba. Driver juga dapat menerima hapus IRP sebelum perangkat dimulai. Dalam hal ini, perangkat berada dalam status tidak dimulai ketika IRP tiba.

Manajer PnP mengirimkan IRP ini di IRQL PASSIVE_LEVEL dalam konteks utas sistem.

Parameter Input

Tidak ada

Parameter Output

Tidak ada

Blok Status I/O

Driver harus mengatur Irp-IoStatus.Status> ke STATUS_SUCCESS. Driver tidak boleh gagal dalam IRP ini.

Operasi

IRP ini ditangani terlebih dahulu oleh driver di bagian atas tumpukan perangkat dan kemudian oleh setiap driver yang lebih rendah di tumpukan.

Menanggapi IRP ini, driver melakukan tugas-tugas seperti mematikan perangkat, menghapus representasi perangkat lunak perangkat (objek perangkat, dan sebagainya), dan merilis sumber daya apa pun untuk perangkat.

Untuk informasi selengkapnya tentang menangani IRP ini, lihat Menangani Permintaan IRP_MN_REMOVE_DEVICE. Untuk informasi umum tentang mendukung penghapusan perangkat, lihat Menghapus Perangkat.

Mengirim IRP ini

Dicadangkan untuk penggunaan sistem. Driver tidak boleh mengirim IRP ini.

Jika driver bus mendeteksi bahwa satu (atau beberapa) perangkat anaknya (PDO anak) telah dihapus secara fisik dari komputer, driver bus memanggil IoInvalidateDeviceRelations untuk melaporkan perubahan ke manajer PnP. Manajer PnP kemudian mengirim hapus RUN untuk perangkat apa pun yang telah menghilang.

Persyaratan

Header

Wdm.h (termasuk Wdm.h, Ntddk.h, atau Ntifs.h)

Lihat juga

IoInvalidateDeviceRelations

IoRegisterPlugPlayNotification

IRP_MN_CANCEL_REMOVE_DEVICE

IRP_MN_QUERY_REMOVE_DEVICE

IRP_MN_SURPRISE_REMOVAL