Fungsi WdfObjectDelete (wdfobject.h)

[Berlaku untuk KMDF dan UMDF]

Metode WdfObjectDelete menghapus objek kerangka kerja dan objek turunannya.

Sintaks

void WdfObjectDelete(
  [in] WDFOBJECT Object
);

Parameter

[in] Object

Handel ke objek kerangka kerja.

Nilai kembali

Tidak ada

Keterangan

Pemeriksaan bug terjadi jika driver menyediakan handel objek yang tidak valid.

Catatan

Fungsi panggilan balik yang dipanggil pada PASSIVE_LEVEL tidak dapat menghapus objek timer. Untuk informasi selengkapnya, lihat fungsi panggilan balik EVT_WDF_TIMER.

Setelah driver memanggil WdfObjectDelete, objek yang ditentukan dihapus setelah jumlah referensinya menjadi nol.

Driver tidak dapat memanggil WdfObjectDelete untuk menghapus objek kerangka kerja berikut, karena kerangka kerja selalu menangani penghapusan objek ini:

  • Objek daftar anak kerangka kerja (WDFCHILDLIST)
  • Objek perangkat kerangka kerja (WDFDEVICE), kecuali driver telah memanggil WdfControlDeviceInitAllocate dan membuat objek perangkat kontrol, yang terkadang harus dihapus oleh driver
  • Objek driver kerangka kerja (WDFDRIVER)
  • Objek file kerangka kerja (WDFFILEOBJECT)
  • Objek interupsi kerangka kerja (WDFINTERRUPT)
  • Objek antrean kerangka kerja (WDFQUEUE), jika objek mewakili antrean I/O default atau jika driver telah memanggil WdfDeviceConfigureRequestDispatching untuk menyiapkan antrean untuk menerima semua permintaan I/O dari jenis tertentu
  • Objek pipa USB kerangka kerja (WDFUSBPIPE)
  • Objek antarmuka USB kerangka kerja (WDFUSBINTERFACE)
  • Objek penyedia WMI kerangka kerja (WDFWMIPROVIDER)
  • Objek daftar rentang sumber daya (WDFIORESLIST)
  • Objek daftar sumber daya (WDFCMRESLIST)
  • Objek daftar persyaratan sumber daya (WDFIORESREQLIST)
Lihat Ringkasan Objek Kerangka Kerja untuk daftar lengkap objek kerangka kerja.

Metode WdfObjectDelete dapat kembali sebelum kerangka kerja menghapus objek dan objek turunannya. Urutan di mana kerangka kerja menghapus objek anak tidak dapat diprediksi.

Untuk informasi selengkapnya tentang WdfObjectDelete dan aturan pembersihan untuk hierarki objek kerangka kerja, lihat Siklus Hidup Objek Kerangka Kerja.

Metode WdfObjectDelete harus dipanggil di IRQL <= DISPATCH_LEVEL. Jika driver Anda menghapus objek perangkat kontrol, WdfObjectDelete harus dipanggil di IRQL = PASSIVE_LEVEL. Demikian pula, jika driver Anda menghapus buffer umum, WdfObjectDelete harus dipanggil di IRQL = PASSIVE_LEVEL.

Contoh

Contoh kode berikut menghapus objek kerangka kerja dan objek turunannya.

WdfObjectDelete(Object);

Persyaratan

Persyaratan Nilai
Target Platform Universal
Versi KMDF minimum 1,0
Versi UMDF minimum 2.0
Header wdfobject.h (termasuk Wdf.h)
Pustaka Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL Lihat bagian Keterangan.
Aturan kepatuhan DDI AddPdoToStaticChildList(kmdf), ControlDeviceDeleted(kmdf), CtlDeviceFinishInitDeviceAdd(kmdf), CtlDeviceFinishInitDrEntry(kmdf), DriverCreate(kmdf), InvalidReqAccessLocal(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), MemAfterReqCompletedIntIoctlA(kmdf), MemAfterReqCompletedIoctlA(kmdf), MemAfterReqCompletedReadA(kmdf), MemAfterReqCompletedWriteA(kmdf), ReqDelete(kmdf), ReqSendFail(kmdf)

Lihat juga

WdfControlDeviceInitAllocate

WdfObjectCreate