Função WdfRequestFormatRequestUsingCurrentType (wdfrequest.h)
[Aplica-se a KMDF e UMDF]
O método WdfRequestFormatRequestUsingCurrentType formata uma solicitação de E/S especificada para que o driver possa encaminhá-la , não modificada, para o destino de E/S local do driver.
Sintaxe
void WdfRequestFormatRequestUsingCurrentType(
[in] WDFREQUEST Request
);
Parâmetros
[in] Request
Um identificador para um objeto de solicitação de estrutura que o driver recebeu de uma de suas filas de E/S.
Retornar valor
Nenhum
Comentários
Um bug marcar ocorrerá se o driver fornecer um identificador de objeto inválido.
Quando o driver recebe uma solicitação de E/S, às vezes, você deseja que o driver encaminhe a solicitação, não modificada, para seu destino de E/S local. Para encaminhar essa solicitação, o driver deve:
- Chame WdfRequestFormatRequestUsingCurrentType para formatar o objeto de solicitação para que a estrutura possa passar a solicitação para o destino de E/S local do driver.
- Chame WdfRequestSend para enviar a solicitação para o destino de E/S.
Exemplos
O exemplo de código a seguir é uma função de retorno de chamada EvtIoDefault que encaminha cada solicitação de E/S recebida, sem modificação, para o destino de E/S local do 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 |
---|---|
Plataforma de Destino | Universal |
Versão mínima do KMDF | 1.0 |
Versão mínima do UMDF | 2,0 |
Cabeçalho | wdfrequest.h (inclua Wdf.h) |
Biblioteca | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | <=DISPATCH_LEVEL |
Regras de conformidade da DDI | DriverCreate(kmdf), InvalidReqAccess(kmdf), InvalidReqAccessLocal(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), RequestFormattedValid(kmdf) |