KeXxxTimer-Routinen, KTIMER-Objekte und DPCs
Ab Windows 2000 steht eine Reihe von Ke Xxx-Timerroutinen zum Verwalten von Zeitgebern zur Verfügung. Diese Routinen verwenden Timerobjekte, die auf der KTIMER-Struktur basieren. Um ein Timerobjekt zu erstellen, ordnet 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 Timerintervall angibt.
Eine optionale CustomTimerDpc-Routine (eine Art verzögerter Prozeduraufruf) kann entweder einem Benachrichtigungstimer 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 Benachrichtigungstimer oder ein Synchronisierungszeitgeber sein.
Wenn ein Benachrichtigungstimer signalisiert wird, wird die Wartezeit für alle wartenden Threads erfüllt. Der Zustand des Timers bleibt so lange signalisiert, bis er explizit zurückgesetzt wird.
Wenn ein Synchronisierungszeitgeber abläuft, wird sein Status auf Signaled festgelegt, bis ein einzelner wartenden Thread freigegeben wird. Anschließend wird der Timer auf den Not-Signaled Zustand zurückgesetzt.
KeInitializeTimer erstellt immer Benachrichtigungszeitgeber. KeInitializeTimerEx akzeptiert einen Type-Parameter , der NotificationTimer oder SynchronizationTimer sein kann.
Die folgenden Themen enthalten weitere Informationen zu Timerobjekten und DPCs:
Registrieren und Warteschlangen einer CustomTimerDpc-Routine