Freigeben über


WdfRequestAllocateTimer-Funktion (wdfrequest.h)

[Gilt für KMDF und UMDF]

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

Syntax

NTSTATUS WdfRequestAllocateTimer(
  [in] WDFREQUEST Request
);

Parameter

[in] Request

Ein Handle zu einem Framework-Anforderungsobjekt.

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-Wertezurückgeben.

Wenn der Treiber ein ungültiges Objekthandle bereitstellt, tritt eine Fehlerüberprüfung auf.

Bemerkungen

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

Wenn bereits ein Timer für die angegebene Anforderung 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 zugewiesen, und anschließend wird WdfRequestSendaufgerufen.

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- Universal
Minimale KMDF-Version 1.0
Mindest-UMDF-Version 2.0
Header- wdfrequest.h (include Wdf.h)
Library Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL- <=DISPATCH_LEVEL
DDI-Complianceregeln DriverCreate(kmdf), InvalidReqAccess(kmdf), InvalidReqAccessLocal(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Siehe auch

WDF_ABS_TIMEOUT_IN_SEC

WDF_REQUEST_SEND_OPTIONS_INIT

WdfRequestSend-