Routine KeXxxTimer, oggetti KTIMER e DPC
A partire da Windows 2000, è disponibile un set di routine Ke XxxTimer per gestire i timer. Queste routine usano oggetti timer basati sulla struttura KTIMER . Per creare un oggetto timer, un driver alloca prima l'archiviazione per una struttura KTIMER . Il driver chiama quindi una routine come KeInitializeTimer o KeInitializeTimerEx per inizializzare questa struttura.
Un timer può essere impostato per scadere una sola volta o per scadere ripetutamente dopo un determinato intervallo. KeSetTimer imposta sempre un timer che scade una sola volta. KeSetTimerEx accetta un parametro Period facoltativo, che specifica un intervallo timer ricorrente.
Una routine CustomTimerDpc facoltativa (un tipo di chiamata di routine posticipata) può essere associata a un timer di notifica o a un timer di sincronizzazione. Questa routine viene eseguita quando scade l'intervallo di tempo specificato. Per altre informazioni, vedere Uso di oggetti timer.
Un timer può essere un timer di notifica o un timer di sincronizzazione.
Quando viene segnalato un timer di notifica, tutti i thread in attesa hanno la loro attesa soddisfatta. Lo stato del timer rimane segnalato finché non viene reimpostato in modo esplicito.
Quando scade un timer di sincronizzazione, lo stato viene impostato su Signaled finché non viene rilasciato un singolo thread in attesa. Il timer viene quindi reimpostato sullo stato Not-Signaled.
KeInitializeTimer crea sempre timer di notifica. KeInitializeTimerEx accetta un parametro Type , che può essere NotificationTimer o SyncTimer.
Gli argomenti seguenti forniscono altre informazioni sugli oggetti timer e sui DPC:
Registrazione e accodamento di una routine CustomTimerDpc