Freigeben über


KeInitializeTimerEx-Funktion (wdm.h)

Die KeInitializeTimerEx-Routine initialisiert ein erweitertes Kerneltimerobjekt.

Syntax

void KeInitializeTimerEx(
  [out] PKTIMER    Timer,
  [in]  TIMER_TYPE Type
);

Parameter

[out] Timer

Zeiger auf ein Zeitgeberobjekt, für das der Aufrufer den Speicher bereitstellt.

[in] Type

Gibt den Typ des Timerobjekts an, entweder NotificationTimer oder SynchronizationTimer.

Rückgabewert

Keine

Bemerkungen

Das Timerobjekt wird in einen nicht signalisierten Zustand initialisiert.

Der Speicher für ein Zeitgeberobjekt muss sich in der Geräteerweiterung eines vom Treiber erstellten Geräteobjekts, in der Controllererweiterung eines vom Treiber erstellten Controllerobjekts oder in einem nicht ausgelagerten Pool befinden, der vom Aufrufer zugewiesen wird.

Wenn ein Benachrichtigungszeitgeber abläuft, werden alle wartenden Threads freigegeben, und der Timer bleibt im signalierten Zustand, bis er explizit zurückgesetzt wird. Wenn ein Synchronisierungszeitgeber abläuft, wird er auf einen signalierten Zustand festgelegt, bis ein einzelner wartenden Thread freigegeben wird und dann der Timer auf einen nicht signalierten Zustand zurückgesetzt wird.

Aufrufer von KeInitializeTimerEx sollten unter IRQL = DISPATCH_LEVEL oder niedriger ausgeführt werden. Es ist am besten, Timer bei IRQL = PASSIVE_LEVEL zu initialisieren.

Weitere Informationen zu Timerobjekten finden Sie unter Timer-Objekte und DPCs.

Verwenden Sie KeSetTimer oder KeSetTimerEx , um zu definieren, wann der Timer abläuft.

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 <= DISPATCH_LEVEL (siehe Abschnitt Hinweise)
DDI-Complianceregeln HwStorPortProhibitedDDIs(storport), IrqlKeDispatchLte(wdm)

Weitere Informationen

KeCancelTimer

KeReadStateTimer

KeSetTimer

KeSetTimerEx

KeWaitForMultipleObjects

KeWaitForSingleObject