EXT_DELETE_CALLBACK fungsi panggilan balik (wdm.h)
Rutinitas panggilan balik ExTimerDeleteCallback berjalan saat sistem operasi menghapus objek timer EX_TIMER .
Sintaks
EXT_DELETE_CALLBACK ExtDeleteCallback;
void ExtDeleteCallback(
[in, optional] PVOID Context
)
{...}
Parameter
[in, optional] Context
Nilai konteks dari anggota DeleteContext dari struktur EXT_DELETE_PARAMETERS yang sebelumnya diteruskan driver Anda sebagai parameter input ke rutinitas ExDeleteTimer .
Nilai kembali
Tidak ada
Keterangan
Sebagai opsi, driver Anda dapat menyediakan pointer ke rutinitas ExTimerDeleteCallback di anggota DeleteCallback dari struktur EXT_DELETE_PARAMETERS yang diteruskan driver Anda sebagai parameter input ke rutinitas ExDeleteTimer . Rutinitas ExTimerDeleteCallback dapat membebaskan penyimpanan atau sumber daya sistem lain yang sebelumnya dialokasikan driver untuk digunakan dengan objek timer yang sedang dihapus.
Jika driver menyediakan rutinitas ExTimerDeleteCallback , dan parameter Tunggu dalam panggilan ExDeleteRoutine adalah TRUE, rutinitas ExTimerDeleteCallback berjalan sebelum ExDeleteTimer kembali. Jika tidak, rutinitas ExTimerDeleteCallback mungkin berjalan sebelum atau sesudah panggilan ExDeleteTimer kembali. Rutinitas ExTimerDeleteCallback dipanggil hanya setelah objek timer dinonaktifkan untuk mencegah operasi timer lebih lanjut dan operasi timer yang tertunda pada objek timer dibatalkan atau diselesaikan. Objek timer ( struktur EX_TIMER ) yang diteruskan driver sebagai parameter input ke rutinitas ExDeleteTimer mungkin tidak lagi valid pada saat rutinitas ExTimerDeleteCallback berjalan.
Untuk informasi selengkapnya, lihat Rutinitas ExXxxTimer dan Objek EX_TIMER.
Contoh
Untuk menentukan rutinitas panggilan balik ExTimerDeleteCallback , Anda harus terlebih dahulu memberikan deklarasi fungsi yang mengidentifikasi jenis rutinitas panggilan balik yang Anda tentukan. Windows menyediakan sekumpulan tipe fungsi panggilan balik untuk driver. Mendeklarasikan fungsi menggunakan jenis fungsi panggilan balik membantu Analisis Kode untuk Driver, Pemverifikasi Driver Statis (SDV), dan alat verifikasi lainnya menemukan kesalahan, dan itu adalah persyaratan untuk menulis driver untuk sistem operasi Windows.
Misalnya, untuk menentukan rutinitas panggilan balik ExTimerDeleteCallback yang diberi nama MyExTimerDeleteCallback
, gunakan jenis fungsi EXT_DELETE_CALLBACK, seperti yang ditunjukkan dalam contoh kode ini:
EXT_DELETE_CALLBACK MyExTimerDeleteCallback;
Kemudian, terapkan rutinitas panggilan balik Anda sebagai berikut:
_Use_decl_annotations_
VOID
MyExTimerDeleteCallback(
PVOID Context
)
{...}
Jenis fungsi EXT_DELETE_CALLBACK didefinisikan dalam file header Wdm.h. Untuk mengidentifikasi kesalahan secara lebih akurat saat Anda menjalankan alat analisis kode, pastikan untuk menambahkan _Use_decl_annotations_
anotasi ke definisi fungsi Anda. Anotasi _Use_decl_annotations_
memastikan bahwa anotasi yang diterapkan ke jenis fungsi EXT_DELETE_CALLBACK dalam file header digunakan. Untuk informasi selengkapnya tentang persyaratan untuk deklarasi fungsi, lihat Mendeklarasikan Fungsi Menggunakan Jenis Peran Fungsi untuk Driver WDM. Untuk informasi selengkapnya tentang _Use_decl_annotations_
, lihat Menganotasi Perilaku Fungsi.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Tersedia dimulai dengan Windows 8.1. |
Target Platform | Desktop |
Header | wdm.h (termasuk Wdm.h, Ntddk.h, Ntifs.h) |
IRQL | Dipanggil di DISPATCH_LEVEL. |