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 reenviarlo , 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
None
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:
- 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.
- Llame a WdfRequestSend para enviar la solicitud al destino de E/S.
Ejemplos
El ejemplo de código siguiente es una función de devolución de llamada EvtIoDefault 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 | Value |
---|---|
Plataforma de destino | Universal |
Versión mínima de KMDF | 1.0 |
Versión mínima de UMDF | 2.0 |
Encabezado | wdfrequest.h (incluir Wdf.h) |
Library | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | <=DISPATCH_LEVEL |
Reglas de cumplimiento de DDI | DriverCreate(kmdf), InvalidReqAccess(kmdf), InvalidReqAccessLocal(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), RequestFormattedValid(kmdf) |