Fungsi ExAllocateTimer (wdm.h)

ExAllocateTimer rutin mengalokasikan dan menginisialisasi objek timer.

Sintaks

PEX_TIMER ExAllocateTimer(
  [in, optional] PEXT_CALLBACK Callback,
  [in, optional] PVOID         CallbackContext,
  [in]           ULONG         Attributes
);

Parameter

[in, optional] Callback

Penunjuk ke rutinitas panggilan balik ExTimerCallback yang diimplementasikan driver. Sistem operasi memanggil rutinitas ini ketika timer kedaluwarsa. Parameter ini bersifat opsional dan dapat berupa NULL jika tidak diperlukan rutinitas panggilan balik.

[in, optional] CallbackContext

Nilai konteks untuk rutinitas panggilan balik yang ditujukkan oleh parameter Panggilan Balik . Sistem operasi meneruskan nilai ini sebagai parameter ke rutinitas panggilan balik ExTimerCallback , jika ditentukan. Parameter ini biasanya merupakan penunjuk ke struktur yang ditentukan pemanggil yang berisi informasi konteks yang digunakan oleh rutinitas panggilan balik. Parameter ini bersifat opsional dan dapat diatur ke NULL jika tidak ada informasi konteks yang diperlukan.

[in] Attributes

Atribut timer. Atur parameter ini ke nol atau ke bitwise-OR dari satu atau beberapa bit bendera timer berikut.

Bit bendera timer Deskripsi
EX_TIMER_HIGH_RESOLUTION Timer resolusi tinggi. Buat timer lebih tepat dengan menggunakan jam resolusi yang lebih tinggi untuk mendorong timer.
EX_TIMER_NO_WAKE Timer tidak bangun. Buat penundaan timer membangunkan prosesor untuk kedaluwarsa sampai waktu kedaluwarsa timer ditambah toleransi penundaannya terlampaui.
EX_TIMER_NOTIFICATION Timer pemberitahuan. Jadikan timer sebagai timer pemberitahuan alih-alih timer sinkronisasi. Jika bendera ini tidak diatur, timer adalah timer sinkronisasi.
 

Bit bendera EX_TIMER_NOTIFICATION dapat diatur terlepas dari bit bendera lain yang diatur.

Bit bendera EX_TIMER_HIGH_RESOLUTION dan EX_TIMER_NO_WAKE saling eksklusif. Jika penelepon mengatur kedua bit bendera ini, bug rutin memeriksanya.

Untuk informasi selengkapnya tentang atribut timer, lihat Keterangan.

Nilai kembali

Rutinitas ini mengembalikan penunjuk ke struktur EX_TIMER , jika panggilan berhasil. Struktur ini adalah objek timer yang telah dialokasikan dan diinisialisasi oleh rutinitas. Jika panggilan gagal, rutinitas mengembalikan NULL.

Keterangan

Rutinitas ini mengembalikan penunjuk ke objek timer baru. Untuk menggunakan timer, driver panggilan menyediakan pointer ini dalam panggilan berikutnya ke rutinitas ExSetTimer, ExCancelTimer, dan ExDeleteTimer . Jika driver menyediakan pointer ke rutinitas panggilan balik ExTimerCallback sebagai parameter input ke rutinitas ExAllocateTimer , sistem operasi meneruskan objek timer ini sebagai parameter input ke rutinitas ExTimerCallback .

Timer dapat menjadi timer pemberitahuan atau timer sinkronisasi. Ketika timer pemberitahuan disinyalkan, semua utas tunggu telah memenuhi penantian mereka. Status timer ini tetap disinyalir hingga diatur ulang secara eksplisit. Ketika timer sinkronisasi kedaluwarsa, statusnya diatur ke sinyal hingga satu utas tunggu dirilis. Kemudian, timer diatur ulang ke status tidak diberi sinyal.

Jika bit bendera EX_TIMER_HIGH_RESOLUTION diatur dalam Atribut, sistem operasi meningkatkan resolusi jam sistem, seperlunya, sehingga waktu kedaluwarsa lebih tepat sesuai dengan waktu kedaluwarsa nominal yang ditentukan dalam parameter DueTime dan Periode ke rutinitas ExSetTimer . Untuk informasi selengkapnya, lihat Timer Resolusi Tinggi.

Jika bit bendera EX_TIMER_NO_WAKE diatur dalam Atribut, timer menghindari prosesor yang tidak perlu bangun dari status daya rendah. Untuk informasi selengkapnya, lihat Timer Tanpa Bangun.

ExAllocateTimer mengalokasikan penyimpanan untuk objek timer. Ketika objek ini tidak lagi diperlukan, pemanggil bertanggung jawab untuk membebaskan objek ini dengan memanggil rutinitas ExDeleteTimer .

Parameter Panggilan balik bersifat opsional. Driver yang tidak menyediakan rutinitas ExTimerCallback dapat memulai operasi tunggu pada objek timer. Utas driver dapat memanggil rutinitas seperti KeWaitForSingleObject atau KeWaitForMultipleObjects untuk menunggu timer kedaluwarsa. Ketika timer kedaluwarsa, objek timer diberi sinyal.

Untuk informasi selengkapnya, lihat Rutinitas ExXxxTimer dan Objek EX_TIMER.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tersedia dimulai dengan Windows 8.1.
Target Platform Universal
Header wdm.h (termasuk Wdm.h, Ntddk.h, Ntifs.h)
Pustaka Ntoskrnl.lib
IRQL <= DISPATCH_LEVEL

Lihat juga

EX_TIMER

ExCancelTimer

ExDeleteTimer

ExSetTimer

ExTimerCallback