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 |
---|---|
|
Ein Eingabeparameter ist ungültig. |
|
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) |