WdfRequestAllocateTimer-Funktion (wdfrequest.h)

[Gilt für KMDF und UMDF]

Die WdfRequestAllocateTimer-Methode ordnet einen Timer für eine angegebene E/A-Anforderung zu.

Syntax

NTSTATUS WdfRequestAllocateTimer(
  [in] WDFREQUEST Request
);

Parameter

[in] Request

Ein Handle für ein Frameworkanforderungsobjekt.

Rückgabewert

WdfRequestAllocateTimer 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_INVALID_PARAMETER
Ein Eingabeparameter ist ungültig.
STATUS_INSUFFICIENT_RESOURCES
Ein Timer konnte nicht zugeordnet werden.
 

Diese Methode kann auch andere NTSTATUS-Werte zurückgeben.

Eine Fehlerüberprüfung tritt auf, wenn der Treiber ein ungültiges Objekthandle bereitstellt.

Hinweise

Wenn Ihr Treiber beim Aufrufen von WdfRequestSend einen Timeoutwert angibt, sollte er WdfRequestAllocateTimer aufrufen, bevor WdfRequestSend aufgerufen wird. Dadurch wird sichergestellt, dass der Aufruf von WdfRequestSend nicht fehlschlägt , wenn nicht genügend Systemressourcen vorhanden sind, um einen Timer zuzuordnen.

Wenn für die angegebene Anforderung bereits ein Timer zugeordnet ist, gibt WdfRequestAllocateTimer STATUS_SUCCESS zurück.

Beispiele

Im folgenden Codebeispiel wird eine WDF_REQUEST_SEND_OPTIONS-Struktur initialisiert, ein Timerobjekt für die E/A-Anforderung zugeordnet und dann WdfRequestSend aufgerufen.

NTSTATUS  status;
WDF_REQUEST_SEND_OPTIONS  options;
BOOLEAN  requestSend;

WDF_REQUEST_SEND_OPTIONS_INIT(
                              &options,
                              WDF_REQUEST_SEND_OPTION_TIMEOUT
                              );

WDF_REQUEST_SEND_OPTIONS_SET_TIMEOUT(
                                     &options,
                                     WDF_ABS_TIMEOUT_IN_SEC(TIME_OUT_VALUE)
                                     );
status = WdfRequestAllocateTimer(
                                 request
                                 );
if (!NT_SUCCESS(status)){
    return status;
...
    requestSend = WdfRequestSend(
                                 request,
                                 ioTarget,
                                 &options
                                 );
}

Anforderungen

Anforderung Wert
Zielplattform Universell
KMDF-Mindestversion 1.0
UMDF-Mindestversion 2.0
Kopfzeile wdfrequest.h (include Wdf.h)
Bibliothek Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL <=DISPATCH_LEVEL
DDI-Complianceregeln DriverCreate(kmdf), InvalidReqAccess(kmdf), InvalidReqAccessLocal(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Weitere Informationen

WDF_ABS_TIMEOUT_IN_SEC

WDF_REQUEST_SEND_OPTIONS_INIT

WdfRequestSend