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)

Weitere Informationen

IoStartTimer

IoStopTimer

IoTimer

KeInitializeTimer

KeSetTimer