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

KeCancelTimer

KeInitializeDpc

KeInitializeTimer

KeInitializeTimerEx

KeReadStateTimer

KeSetTimerEx

KeWaitForMultipleObjects