Compartir a través de


Rutinas keXxxTimer, objetos KTIMER y DDC

A partir de Windows 2000, hay disponible un conjunto de rutinas de temporizador KeXxx para administrar temporizadores. Estas rutinas usan objetos de temporizador basados en la estructura KTIMER . Para crear un objeto de temporizador, un controlador asigna primero almacenamiento para una estructura KTIMER . A continuación, el controlador llama a una rutina como KeInitializeTimer o KeInitializeTimerEx para inicializar esta estructura.

Un temporizador se puede establecer para que expire una sola vez o para que expire repetidamente después de un intervalo determinado. KeSetTimer siempre establece un temporizador que expirará una vez. KeSetTimerEx acepta un parámetro Period opcional, que especifica un intervalo de temporizador periódico.

Una rutina CustomTimerDpc opcional (un tipo de llamada de procedimiento diferido) se puede asociar a un temporizador de notificación o a un temporizador de sincronización. Esta rutina se ejecuta cuando expira el intervalo de tiempo especificado. Para obtener más información, vea Uso de objetos timer.

Un temporizador puede ser un temporizador de notificación o un temporizador de sincronización.

  • Cuando se señala un temporizador de notificación, todos los subprocesos en espera tienen su espera satisfecho. El estado del temporizador permanece señalado hasta que se restablece explícitamente.

  • Cuando expira un temporizador de sincronización, su estado se establece en Signaled hasta que se libera un único subproceso en espera. A continuación, el temporizador se restablece al estado Not-Signaled.

KeInitializeTimer siempre crea temporizadores de notificación. KeInitializeTimerEx acepta un parámetro Type , que puede ser NotificationTimer o SynchronizationTimer.

En los temas siguientes se proporciona más información sobre objetos de temporizador y DDC:

Uso de objetos de temporizador

Precisión del temporizador

Registro y puesta en cola de una rutina CustomTimerDpc

Proporcionar información de contexto de CustomTimerDpc

Usar una rutina CustomTimerDpc