WdfRequestFormatRequestUsingCurrentType-Funktion (wdfrequest.h)
[Gilt für KMDF und UMDF]
Die WdfRequestFormatRequestUsingCurrentType-Methode formatiert eine angegebene E/A-Anforderung, sodass der Treiber sie unverändert an das lokale E/A-Ziel des Treibers weiterleiten kann.
Syntax
void WdfRequestFormatRequestUsingCurrentType(
[in] WDFREQUEST Request
);
Parameter
[in] Request
Ein Handle für ein Frameworkanforderungsobjekt, das der Treiber aus einer seiner E/A-Warteschlangen empfangen hat.
Rückgabewert
Keine
Bemerkungen
Eine Fehlerüberprüfung tritt auf, wenn der Treiber ein ungültiges Objekthandle bereitstellt.
Wenn Ihr Treiber eine E/A-Anforderung empfängt, möchten Sie manchmal, dass der Treiber die Anforderung unverändert an sein lokales E/A-Ziel weiterleitt. Um eine solche Anforderung weiterzuleiten, muss der Treiber:
- Rufen Sie WdfRequestFormatRequestUsingCurrentType auf, um das Anforderungsobjekt so zu formatieren, dass das Framework die Anforderung an das lokale E/A-Ziel des Treibers übergeben kann.
- Rufen Sie WdfRequestSend auf, um die Anforderung an das E/A-Ziel zu senden.
Beispiele
Das folgende Codebeispiel ist eine EvtIoDefault-Rückruffunktion , die jede E/A-Anforderung, die sie empfängt, ohne Änderung an das lokale E/A-Ziel des Geräts weiterleitet.
VOID
MyEvtIoDefault(
WDFQUEUE Queue,
WDFREQUEST Request
)
{
WDF_REQUEST_SEND_OPTIONS options;
NTSTATUS status;
WdfRequestFormatRequestUsingCurrentType(Request);
WDF_REQUEST_SEND_OPTIONS_INIT(
&options,
WDF_REQUEST_SEND_OPTION_SEND_AND_FORGET
);
ret = WdfRequestSend (
Request,
WdfDeviceGetIoTarget(WdfIoQueueGetDevice(Queue)),
&options
);
if (!ret) {
status = WdfRequestGetStatus(Request);
WdfRequestComplete(
Request,
status
);
}
return;
}
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Universell |
KMDF-Mindestversion | 1.0 |
UMDF-Mindestversion | 2.0 |
Kopfzeile | wdfrequest.h (einschließen von 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), RequestFormattedValid(kmdf) |