Fungsi IoDeleteDevice (wdm.h)

Rutinitas IoDeleteDevice menghapus objek perangkat dari sistem, misalnya, ketika perangkat yang mendasar dihapus dari sistem.

Sintaks

void IoDeleteDevice(
  [in] PDEVICE_OBJECT DeviceObject
);

Parameter

[in] DeviceObject

Arahkan ke objek perangkat yang akan dihapus.

Nilai kembali

Tidak ada

Keterangan

Saat menangani permintaan IRP_MN_REMOVE_DEVICE PnP, driver PnP memanggil IoDeleteDevice untuk menghapus objek perangkat terkait. Lihat Menangani Permintaan IRP_MN_REMOVE_DEVICE untuk detailnya.

Driver warisan harus memanggil rutinitas ini ketika sedang dibongkar atau ketika rutinitas DriverEntry mengalami kesalahan inisialisasi yang fatal, seperti tidak dapat menginisialisasi perangkat fisik dengan benar. Rutinitas ini juga dipanggil ketika driver mengonfigurasi ulang perangkatnya secara dinamis. Misalnya, driver disk yang dipanggil untuk mempartisi ulang disk akan memanggil IoDeleteDevice untuk merobek objek perangkat yang mewakili partisi yang akan diganti.

Driver harus merilis sumber daya tertentu yang penyimpanan yang disediakan driver dalam ekstensi perangkatnya sebelum memanggil IoDeleteDevice. Misalnya, jika driver menyimpan pointer ke objek interupsinya di ekstensi perangkat, driver harus memanggil IoDisconnectInterrupt sebelum memanggil IoDeleteDevice.

Driver dapat memanggil IoDeleteDevice hanya sekali untuk objek perangkat tertentu.

Ketika driver memanggil IoDeleteDevice, manajer I/O menghapus objek perangkat target jika tidak ada referensi yang luar biasa untuk itu. Namun, jika ada referensi yang luar biasa tetap ada, manajer I/O menandai objek perangkat sebagai "hapus tertunda" dan menghapus objek perangkat saat referensi dirilis.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tersedia dimulai dengan Windows 2000.
Target Platform Universal
Header wdm.h (termasuk Wdm.h, Ntddk.h, Ntifs.h)
Pustaka NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL
Aturan kepatuhan DDI DeleteDevice(wdm), HwStorPortProhibitedDDIs(storport), IrqlIoApcLte(wdm), PnpSurpriseRemove(wdm), RemoveLockCheck(wdm)

Lihat juga

IoCreateDevice

IoDisconnectInterrupt