EVT_WDF_OBJECT_CONTEXT_DESTROY fungsi panggilan balik (wdfobject.h)

[Berlaku untuk KMDF dan UMDF]

Fungsi panggilan balik peristiwa EvtDestroyCallback driver melakukan operasi yang terkait dengan penghapusan objek kerangka kerja.

Sintaks

EVT_WDF_OBJECT_CONTEXT_DESTROY EvtWdfObjectContextDestroy;

void EvtWdfObjectContextDestroy(
  [in] WDFOBJECT Object
)
{...}

Parameter

[in] Object

Handel ke objek kerangka kerja.

Nilai kembali

Tidak ada

Keterangan

Driver dapat menentukan fungsi panggilan balik EvtDestroyCallback dalam struktur WDF_OBJECT_ATTRIBUTES . Struktur ini digunakan sebagai input ke semua metode kerangka kerja yang membuat objek kerangka kerja, seperti WdfDeviceCreate.

Kerangka kerja memanggil fungsi panggilan balik EvtDestroyCallback setelah jumlah referensi objek dikurangi menjadi nol. Kerangka kerja menghapus objek segera setelah fungsi panggilan balik EvtDestroyCallback kembali.

EvtDestroyCallback dapat mengakses konteks objek tetapi tidak dapat memanggil metode apa pun pada objek.

Jika driver menyediakan fungsi panggilan balik EvtCleanupCallback dan fungsi panggilan balik EvtDestroyCallback untuk objek, kerangka kerja memanggil fungsi panggilan balik EvtCleanupCallback terlebih dahulu.

Saat objek dihapus, kerangka kerja juga menghapus turunan objek. Kerangka kerja memanggil fungsi panggilan balik EvtCleanupCallback objek anak sebelum memanggil fungsi panggilan balik EvtCleanupCallback objek induk. Selanjutnya, jika jumlah referensi anak adalah nol, kerangka kerja memanggil fungsi panggilan balik EvtDestroyCallback objek anak. Terakhir, jika jumlah referensi induk adalah nol, kerangka kerja memanggil fungsi panggilan balik EvtDestroyCallback objek induk.

Ketika driver membuat objek, terkadang mengalokasikan buffer memori khusus objek dan menyimpan penunjuk buffer di ruang konteks objek. Fungsi panggilan balik EvtCleanupCallback atau EvtDestroyCallback driver dapat membatalkan alokasi buffer memori ini.

Untuk informasi selengkapnya tentang menghapus objek kerangka kerja, lihat Siklus Hidup Objek Kerangka Kerja.

Biasanya, kerangka kerja memanggil fungsi panggilan balik EvtDestroyCallback di IRQL <= DISPATCH_LEVEL. Namun, kerangka kerja memanggil fungsi panggilan balik di IRQL = PASSIVE_LEVEL dalam situasi berikut:

  • Jenis handel objek adalah WDFDEVICE, WDFDRIVER, WDFDPC, WDFINTERRUPT, WDFIOTARGET, WDFQUEUE, WDFSTRING, WDFTIMER, atau WDFWORKITEM.
  • Jenis handel objek adalah WDFMEMORY atau WDFLOOKASIDE, dan driver telah menentukan PagedPool untuk parameter PoolType ke WdfMemoryCreate atau WdfLookasideListCreate.
Dimulai dengan versi 1.9 dari kerangka kerja, file header wdfroletypes.h berisi beberapa jenis fungsi alternatif khusus jenis objek untuk fungsi panggilan balik EvtDestroyCallback . Jenis alternatif ini membantu alat verifikasi untuk menentukan apakah driver menggunakan fungsi panggilan balik dengan benar. Gunakan tabel berikut untuk menentukan jenis fungsi mana yang akan digunakan.
Jenis Objek Jenis Fungsi
Objek perangkat EVT_WDF_DEVICE_CONTEXT_DESTROY
Objek antrean I/O EVT_WDF_IO_QUEUE_CONTEXT_DESTROY_CALLBACK
Objek file EVT_WDF_FILE_CONTEXT_DESTROY_CALLBACK
Semua objek lainnya EVT_WDF_OBJECT_CONTEXT_DESTROY

Persyaratan

Persyaratan Nilai
Target Platform Universal
Versi KMDF minimum 1,0
Versi UMDF minimum 2.0
Header wdfobject.h (termasuk Wdf.h)
IRQL Lihat bagian Keterangan.

Lihat juga

EvtCleanupCallback

WDF_OBJECT_ATTRIBUTES