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, auf dem E/A-Vorgänge zeitüberschreitungen können.
[in] TimerRoutine
Zeiger auf die vom Treiber bereitgestellte IoTimer- Routine.
[in, optional] Context
Zeiger auf den vom Treiber bestimmten Kontext, mit dem seine IoTimer- Routine aufgerufen wird.
Rückgabewert
IoInitializeTimer gibt STATUS_SUCCESS zurück, wenn die IoTimer Routine eingerichtet ist.
Bemerkungen
IoInitializeTimer- sollte pro Geräteobjekt nur einmal aufgerufen werden.
Die IoTimer- Routine eines Treibers wird einmal pro Sekunde aufgerufen, nachdem der Treiber den Timer durch Aufrufen IoStartTimer-aktiviert hat. Der Treiber kann den Timer deaktivieren, indem er IoStopTimer- aufruft und es mit IoStartTimer-erneut aktivieren kann.
Die IoTimer- Routine des Treibers wird bei IRQL = DISPATCH_LEVEL aufgerufen und darf daher keinen ausgelagerten 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 der feineren Granularität aufgerufen werden sollen, können eine CustomTimerDpc- Routine einrichten und die KeXxxTimer Routinen verwenden.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Ab Windows 2000 verfügbar. |
Zielplattform- | Universal |
Header- | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Library | NtosKrnl.lib |
DLL- | NtosKrnl.exe |
IRQL- | PASSIVE_LEVEL |
DDI-Complianceregeln | HwStorPortProhibitedDDIs(storport), IrqlIoPassive5(wdm), PowerIrpDDis(wdm) |