WdfTimerCreate-Funktion (wdftimer.h)

[Gilt für KMDF und UMDF]

Die WdfTimerCreate-Methode erstellt ein Framework-Timerobjekt.

Syntax

C++
NTSTATUS WdfTimerCreate(
  [in]  PWDF_TIMER_CONFIG      Config,
  [in]  PWDF_OBJECT_ATTRIBUTES Attributes,
  [out] WDFTIMER               *Timer
);

Parameter

[in] Config

Ein Zeiger auf eine WDF_TIMER_CONFIG Struktur.

[in] Attributes

Ein Zeiger auf eine WDF_OBJECT_ATTRIBUTES Struktur, die Objektattribute für das neue Timerobjekt enthält.

[out] Timer

Ein Zeiger auf eine Position, die ein Handle für das neue Framework-Timerobjekt empfängt.

Rückgabewert

WdfTimerCreate gibt STATUS_SUCCESS zurück, wenn der Vorgang erfolgreich ist. Andernfalls gibt diese Methode möglicherweise einen der folgenden Werte zurück:

Rückgabecode Beschreibung
STATUS_WDF_PARENT_NOT_SPECIFIED
Der parameter Attributes war NULL, oder das ParentObject Member der WDF_OBJECT_ATTRIBUTES Struktur, die Attributes angibt, war NULL-.
STATUS_INVALID_PARAMETER
Es wurde ein ungültiger Parameter angegeben.
STATUS_INVALID_DEVICE_REQUEST
Das ParentObject Member der WDF_OBJECT_ATTRIBUTES-Struktur hat nicht auf ein Framework-Geräteobjekt oder auf ein Objekt verwiesen, dessen Übergeordnete Kette zu einem Framework-Geräteobjekt führt.
STATUS_INSUFFICIENT_RESOURCES
Nicht genügend Arbeitsspeicher vorhanden.
STATUS_WDF_INCOMPATIBLE_EXECUTION_LEVEL
Die AutomaticSerialization- Member der WDF_TIMER_CONFIG-Struktur wurde auf TRUEfestgelegt, die Ausführungsebene des übergeordneten Geräteobjekts wurde jedoch auf WdfExecutionLevelPassivefestgelegt.
 

Eine Liste mit anderen Rückgabewerten, die von der WdfTimerCreate Methode möglicherweise zurückgegeben werden, finden Sie unter Framework Object Creation Errors.

Diese Methode kann auch andere NTSTATUS-Wertezurückgeben.

Bemerkungen

Wenn ihr Treiber WdfTimerCreateaufruft, muss er eine WDF_OBJECT_ATTRIBUTES Struktur bereitstellen und ein übergeordnetes Objekt im ParentObject-Element der Struktur angeben Member. Das übergeordnete Objekt kann ein Framework-Geräteobjekt oder ein objekt sein, dessen Übergeordnete Kette zu einem Framework-Geräteobjekt führt. Das Framework löscht das Timerobjekt, wenn es das Geräteobjekt löscht.

Nach dem Erstellen eines Timerobjekts muss der Treiber WdfTimerStart- aufrufen, um die Zeitgeberuhr zu starten, unabhängig davon, ob der Timer regelmäßig ist oder nicht.

Wenn Ihr Treiber EvtCleanupCallback oder EvtDestroyCallback- Rückruffunktionen für das Framework-Timerobjekt bereitstellt, beachten Sie, dass das Framework diese Rückruffunktionen bei IRQL = PASSIVE_LEVEL aufruft.

Weitere Informationen zu Framework-Timerobjekten finden Sie unter Using Timers.

Beispiele

Im folgenden Codebeispiel wird eine WDF_TIMER_CONFIG Struktur und eine WDF_OBJECT_ATTRIBUTES Struktur initialisiert und anschließend WdfTimerCreateaufgerufen.

C++
WDF_TIMER_CONFIG  timerConfig;
WDF_OBJECT_ATTRIBUTES  timerAttributes;
WDFTIMER  timerHandle;
NTSTATUS  status;

WDF_TIMER_CONFIG_INIT(
                      &timerConfig,
                      MyEvtTimerFunc
                      );

timerConfig.AutomaticSerialization = TRUE;

WDF_OBJECT_ATTRIBUTES_INIT(&timerAttributes);
timerAttributes.ParentObject = DeviceHandle;

status = WdfTimerCreate(
                        &timerConfig,
                        &timerAttributes,
                        &timerHandle
                        );

if (!NT_SUCCESS(status)) {
    return status;
}

Anforderungen

Anforderung Wert
Zielplattform- Universal
Minimale KMDF-Version 1.0
Mindest-UMDF-Version 2.0
Header- wdftimer.h (include Wdf.h)
Library Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL- <=DISPATCH_LEVEL
DDI-Complianceregeln DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Siehe auch

WDF_OBJECT_ATTRIBUTES

WDF_OBJECT_ATTRIBUTES_INIT

WDF_TIMER_CONFIG

WDF_TIMER_CONFIG_INIT

WdfTimerStart-