IoInitializeTimer-Funktion (wdm.h)
Die IoInitializeTimer-Routine richtet eine vom Treiber bereitgestellte IoTimer-Routine ein, die einem bestimmten Geräteobjekt zugeordnet ist.
Syntax
NTSTATUS IoInitializeTimer(
[in] PDEVICE_OBJECT DeviceObject,
[in] PIO_TIMER_ROUTINE TimerRoutine,
[in, optional] __drv_aliasesMem PVOID Context
);
Parameter
[in] DeviceObject
Zeiger auf ein Geräteobjekt, das ein Gerät darstellt, für das für E/A-Vorgänge ein Timeout möglich ist.
[in] TimerRoutine
Zeiger auf die vom Treiber bereitgestellte IoTimer-Routine .
[in, optional] Context
Zeiger auf den vom Treiber bestimmten Kontext, mit dem die IoTimer-Routine aufgerufen wird.
Rückgabewert
IoInitializeTimer gibt STATUS_SUCCESS zurück, wenn die IoTimer-Routine eingerichtet ist.
Hinweise
IoInitializeTimer sollte nur einmal pro Geräteobjekt aufgerufen werden.
Die IoTimer-Routine eines Treibers wird einmal pro Sekunde aufgerufen, nachdem der Treiber den Timer durch Aufrufen von IoStartTimer aktiviert hat. Der Treiber kann den Timer durch Aufrufen von IoStopTimer deaktivieren und mit IoStartTimer erneut aktivieren.
Die IoTimer-Routine des Treibers wird unter IRQL = DISPATCH_LEVEL aufgerufen und darf daher keinen auslagerungsfähigen Code enthalten.
Wenn der Timer ausgeführt wird, ruft der E/A-Manager einmal pro Sekunde die vom Treiber bereitgestellte IoTimer-Routine auf. Treiber, deren Timeoutroutinen in variablen Intervallen oder in Intervallen feiner Granularität aufgerufen werden sollen, können eine CustomTimerDpc-Routine einrichten und die Ke Xxx-Timerroutinen verwenden.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar ab Windows 2000. |
Zielplattform | Universell |
Header | wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h) |
Bibliothek | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI-Complianceregeln | HwStorPortProhibitedDDIs(storport), IrqlIoPassive5(wdm), PowerIrpDDis(wdm) |