Fungsi KeCancelTimer (wdm.h)

KeCancelTimer rutin menghapus antrean objek timer sebelum interval timer, jika ada yang diatur, kedaluwarsa.

Sintaks

BOOLEAN KeCancelTimer(
  [in, out] PKTIMER unnamedParam1
);

Parameter

[in, out] unnamedParam1

Penunjuk ke objek timer yang diinisialisasi, di mana pemanggil menyediakan penyimpanan.

Nilai kembali

Jika objek timer yang ditentukan berada dalam antrean timer sistem, KeCancelTimer mengembalikan TRUE.

Keterangan

Jika objek timer saat ini berada dalam antrean timer sistem, objek tersebut akan dihapus dari antrean. Jika objek DPC dikaitkan dengan timer, objek tersebut juga dibatalkan. Jika tidak, tidak ada operasi yang dilakukan.

Rutinitas mengembalikan TRUE jika timer masih dalam antrean timer. Timer nonperiodic dihapus dari antrean sistem segera setelah kedaluwarsa. Dengan demikian, untuk timer nonperiodic, KeCancelTimer mengembalikan FALSE jika timer DPC telah diantrekan. Timer berkala selalu berada dalam antrean timer, sehingga KeCancelTimer selalu mengembalikan TRUE untuk timer berkala.

Perhatikan bahwa DPC yang sudah berjalan berjalan hingga selesai. Driver harus memastikan bahwa DPC telah selesai sebelum membebaskan sumber daya apa pun yang digunakan oleh DPC. Untuk timer nonperiodic, Anda dapat menggunakan primitif sinkronisasi, seperti objek peristiwa, untuk menyinkronkan antara driver dan DPC. Driver dapat memeriksa kode pengembalian KeCancelTimer untuk menentukan apakah DPC berjalan. Jika demikian, DPC dapat memberi sinyal peristiwa sebelum keluar, dan driver dapat menunggu peristiwa tersebut direset ke status tidak diberi sinyal.

Karena untuk timer berkala KeCancelTimer selalu mengembalikan TRUE, driver harus menggunakan teknik yang berbeda untuk menunggu sampai DPC selesai. Gunakan rutinitas KeFlushQueuedDpcs untuk memblokir hingga DPC dijalankan.

Driver tidak perlu menyinkronkan data yang disimpan dalam variabel global atau ekstensi objek driver. Sistem secara otomatis memanggil KeFlushQueuedDpcs sebelum membatalkan alokasi salah satu wilayah ini.

Untuk informasi selengkapnya tentang objek timer, lihat Objek Timer dan DPC.

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 <= DISPATCH_LEVEL
Aturan kepatuhan DDI HwStorPortProhibitedDDIs(storport), IrqlKeDispatchLte(wdm)

Lihat juga

KeInitializeTimer

KeReadStateTimer

KeSetTimer