Rotinas KeXxxTimer, objetos KTIMER e DPCs
A partir do Windows 2000, um conjunto de rotinas ke xxxtimer está disponível para gerenciar temporizadores. Essas rotinas usam objetos de temporizador baseados na estrutura KTIMER . Para criar um objeto de temporizador, um driver primeiro aloca armazenamento para uma estrutura KTIMER . Em seguida, o driver chama uma rotina como KeInitializeTimer ou KeInitializeTimerEx para inicializar essa estrutura.
Um temporizador pode ser definido para expirar apenas uma vez ou expirar repetidamente após um determinado intervalo. KeSetTimer sempre define um temporizador que expirará apenas uma vez. KeSetTimerEx aceita um parâmetro Period opcional, que especifica um intervalo de temporizador recorrente.
Uma rotina CustomTimerDpc opcional (um tipo de chamada de procedimento adiado) pode ser associada a um temporizador de notificação ou a um temporizador de sincronização. Essa rotina é executada quando o intervalo de tempo especificado expira. Para obter mais informações, consulte Usando objetos timer.
Um temporizador pode ser um temporizador de notificação ou um temporizador de sincronização.
Quando um temporizador de notificação é sinalizado, todos os threads em espera têm sua espera atendida. O estado do temporizador permanece sinalizado até que seja redefinido explicitamente.
Quando um temporizador de sincronização expira, seu estado é definido como Sinalizado até que um único thread de espera seja liberado. Em seguida, o temporizador é redefinido para o estado Not-Signaled.
KeInitializeTimer sempre cria temporizadores de notificação. KeInitializeTimerEx aceita um parâmetro Type , que pode ser NotificationTimer ou SynchronizationTimer.
Os tópicos a seguir fornecem mais informações sobre objetos de temporizador e DPCs:
Registrando e enfileirando uma rotina CustomTimerDpc