Fungsi KeSetTimer (wdm.h)
Rutinitas KeSetTimer mengatur interval absolut atau relatif di mana objek timer akan diatur ke status yang disinyalkan dan, secara opsional, memasok rutinitas CustomTimerDpc untuk dijalankan ketika interval tersebut kedaluwarsa.
Sintaks
BOOLEAN KeSetTimer(
[in, out] PKTIMER Timer,
[in] LARGE_INTEGER DueTime,
[in, optional] PKDPC Dpc
);
Parameter
[in, out] Timer
Penunjuk ke objek timer yang diinisialisasi dengan KeInitializeTimer atau KeInitializeTimerEx.
[in] DueTime
Menentukan waktu absolut atau relatif di mana timer akan kedaluwarsa. Jika nilai parameter DueTime negatif, waktu kedaluwarsa relatif terhadap waktu sistem saat ini. Jika tidak, waktu kedaluwarsa adalah absolut. Waktu kedaluwarsa dinyatakan dalam unit waktu sistem (interval 100 nanodetik). Waktu kedaluwarsa absolut melacak perubahan apa pun dalam waktu sistem; waktu kedaluwarsa relatif tidak terpengaruh oleh perubahan waktu sistem.
[in, optional] Dpc
Penunjuk ke objek DPC yang diinisialisasi oleh KeInitializeDpc. Parameter ini bersifat opsional.
Nilai kembali
Jika objek timer sudah berada dalam antrean timer sistem, KeSetTimer mengembalikan TRUE.
Keterangan
Rutinitas KeSetTimer melakukan hal berikut:
Menghitung waktu kedaluwarsa.
Mengatur timer ke status tidak diberi sinyal.
Menyisipkan objek timer dalam antrean timer sistem.
Jika objek timer sudah berada dalam antrean timer, objek tersebut dibatalkan secara implisit sebelum diatur ke waktu kedaluwarsa baru. Panggilan ke KeSetTimer sebelum DueTime yang ditentukan sebelumnya telah kedaluwarsa membatalkan timer dan panggilan ke Dpc, jika ada, yang terkait dengan panggilan sebelumnya.
Jika parameter Dpc ditentukan, objek DPC dikaitkan dengan objek timer. Ketika timer kedaluwarsa, objek timer dihapus dari antrean timer sistem dan statusnya diatur ke sinyal. Jika objek DPC dikaitkan dengan timer ketika diatur, objek DPC dimasukkan dalam antrean DPC sistem untuk dijalankan segera setelah kondisi mengizinkan setelah interval timer berakhir.
Waktu kedaluwarsa diukur relatif terhadap jam sistem, dan akurasi yang dapat dideteksi oleh sistem operasi ketika timer kedaluwarsa dibatasi oleh granularitas jam sistem. Untuk informasi selengkapnya, lihat Akurasi Timer.
Hanya satu instansiasi objek DPC tertentu yang dapat diantrekan pada saat tertentu. Untuk menghindari potensi kondisi balapan, DPC yang diteruskan ke KeSetTimer tidak boleh diteruskan ke KeInsertQueueDpc.
Driver harus membatalkan timer aktif apa pun dalam rutinitas Bongkar. Gunakan KeCancelTimer untuk membatalkan timer apa pun.
Penelepon KeSetTimer dapat menentukan satu waktu kedaluwarsa untuk timer. Untuk mengatur timer berulang, gunakan KeSetTimerEx.
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
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