Compartir a través de


Función WdfRequestFormatRequestUsingCurrentType (wdfrequest.h)

[Se aplica a KMDF y UMDF]

El método WdfRequestFormatRequestUsingCurrentType da formato a una solicitud de E/S especificada para que el controlador pueda reenviar, sin modificar, al destino de E/S local del controlador.

Sintaxis

void WdfRequestFormatRequestUsingCurrentType(
  [in] WDFREQUEST Request
);

Parámetros

[in] Request

Identificador de un objeto de solicitud de marco que el controlador recibió de una de sus colas de E/S.

Valor devuelto

Ninguno

Observaciones

Se produce una comprobación de errores si el controlador proporciona un identificador de objeto no válido.

Cuando el controlador recibe una solicitud de E/S, a veces querrá que el controlador reenvíe la solicitud, sin modificar, a su destino de E/S local. Para reenviar dicha solicitud, el controlador debe:

  1. Llame a WdfRequestFormatRequestUsingCurrentType para dar formato al objeto de solicitud para que el marco pueda pasar la solicitud al destino de E/S local del controlador.
  2. Llame a WdfRequestSend para enviar la solicitud al destino de E/S.
Para obtener más información sobre WdfRequestFormatRequestUsingCurrentType, vea solicitudes de E/S de reenvío.

Ejemplos

El ejemplo de código siguiente es un EvtIoDefault función de devolución de llamada que reenvía cada solicitud de E/S que recibe, sin modificaciones, al destino de E/S local del dispositivo.

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;
}

Requisitos

Requisito Valor
de la plataforma de destino de Universal
versión mínima de KMDF 1.0
versión mínima de UMDF 2.0
encabezado de wdfrequest.h (incluya Wdf.h)
biblioteca de Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
irQL <=DISPATCH_LEVEL
reglas de cumplimiento de DDI DriverCreate(kmdf), InvalidReqAccess(kmdf), InvalidReqAccessLocal(kmdf), KmdfIrq, KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), RequestFormattedValid(kmdf)

Consulte también

WdfRequestSend

WdfRequestWdmFormatUsingStackLocation