Freigeben über


KeXxxTimer-Routinen, KTIMER-Objekte und DPCs

Ab Windows 2000 steht eine Reihe von KeXxxTimer-Routinen zum Verwalten von Zeitgebern zur Verfügung. Diese Routinen verwenden Zeitgeberobjekte, die auf der KTIMER-Struktur basieren. Zum Erstellen eines Timerobjekts weist ein Treiber zunächst Speicher für eine KTIMER-Struktur zu. Anschließend ruft der Treiber eine Routine wie KeInitializeTimer oder KeInitializeTimerEx auf, um diese Struktur zu initialisieren.

Ein Timer kann so festgelegt werden, dass er nur einmal abläuft oder wiederholt nach einem bestimmten Intervall abläuft. KeSetTimer legt immer einen Timer fest, der nur einmal abläuft. KeSetTimerEx akzeptiert einen optionalen Period-Parameter , der ein wiederkehrendes Zeitgeberintervall angibt.

Eine optionale CustomTimerDpc-Routine (ein Typ des verzögerten Prozeduraufrufs) kann entweder einem Benachrichtigungszeitgeber oder einem Synchronisierungszeitgeber zugeordnet werden. Diese Routine wird ausgeführt, wenn das angegebene Zeitintervall abläuft. Weitere Informationen finden Sie unter Verwenden von Timerobjekten.

Ein Timer kann ein Benachrichtigungszeitgeber oder ein Synchronisierungszeitgeber sein.

  • Wenn ein Benachrichtigungszeitgeber signalisiert wird, sind alle wartenden Threads zufrieden. Der Zustand des Timers bleibt signalisiert, bis er explizit zurückgesetzt wird.

  • Wenn ein Synchronisierungszeitgeber abläuft, wird der Zustand auf "Signalzustand" festgelegt, bis ein einzelner Wartethread freigegeben wird. Anschließend wird der Timer auf den Not-Signaled Zustand zurückgesetzt.

KeInitializeTimer erstellt immer Benachrichtigungstimer. KeInitializeTimerEx akzeptiert einen Type-Parameter , der notificationTimer oder SynchronizationTimer sein kann.

Die folgenden Themen enthalten weitere Informationen zu Timerobjekten und DPCs:

Verwenden von Timerobjekten

Timergenauigkeit

Registrieren und Einreihung einer CustomTimerDpc-Routine

Bereitstellen von CustomTimerDpc-Kontextinformationen

Verwenden einer CustomTimerDpc-Routine