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.
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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk