KeXxxTimer-rutiner, KTIMER-objekt och DPC:er

Från och med Windows 2000 finns en uppsättning KeXxxTimer-rutiner tillgängliga för att hantera timers. De här rutinerna använder tidsinställda objekt som baseras på KTIMER-strukturen . För att skapa ett tidsinställt objekt allokerar en drivrutin först lagring för en KTIMER-struktur . Sedan anropar drivrutinen en rutin som KeInitializeTimer eller KeInitializeTimerEx för att initiera den här strukturen.

En timer kan ställas in på att förfalla bara en gång eller att den ska upphöra att gälla upprepade gånger efter ett visst intervall. KeSetTimer anger alltid en timer som bara upphör att gälla en gång. KeSetTimerEx accepterar en valfri periodparameter som anger ett återkommande tidsintervall.

En valfri CustomTimerDpc-rutin (en typ av uppskjutet proceduranrop) kan associeras med antingen en meddelandetimer eller en synkroniseringstimer. Den här rutinen körs när det angivna tidsintervallet upphör att gälla. Mer information finns i Använda tidsinställda objekt.

En timer kan vara en meddelandetimer eller en synkroniseringstimer.

  • När en meddelandetimer signaleras får alla väntande trådar sin väntan uppfylld. Timerns tillstånd förblir signalerat tills det uttryckligen återställs.

  • När en synkroniseringstimer upphör att gälla ställs dess tillstånd in på 'signaliserat' tills en enda väntande tråd släpps. Sedan återställs timern till tillståndet Not-Signaled.

KeInitializeTimer skapar alltid meddelandetimers. KeInitializeTimerEx accepterar en typparameter , som kan vara NotificationTimer eller SynchronizationTimer.

Följande avsnitt innehåller mer information om tidsinställda objekt och DPC:er:

Använda timerobjekt

Timernoggrannhet

Registrera och köa en CustomTimerDpc-rutin

Tillhandahålla CustomTimerDpc-kontextinformation

Använda en customTimerDPC-rutin