Freigeben über


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:

  1. 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.
  2. Rufen Sie WdfRequestSend auf, um die Anforderung an das E/A-Ziel zu senden.
Weitere Informationen zu WdfRequestFormatRequestUsingCurrentType finden Sie unter Weiterleiten von E/A-Anforderungen.

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)

Weitere Informationen

WdfRequestSend

WdfRequestWdmFormatUsingStackLocation