Função WdfRequestGetStatus (wdfrequest.h)
[Aplica-se a KMDF e UMDF]
O método WdfRequestGetStatus retorna o status de uma solicitação de E/S.
Sintaxe
NTSTATUS WdfRequestGetStatus(
[in] WDFREQUEST Request
);
Parâmetros
[in] Request
Um identificador para um objeto de solicitação de estrutura.
Retornar valor
WdfRequestGetStatus retorna um valor NTSTATUS. Para obter mais informações sobre qual valor pode ser retornado, consulte a seção Comentários a seguir.
Um bug marcar ocorrerá se o driver fornecer um identificador de objeto inválido.
Comentários
O método WdfRequestGetStatus retorna um dos seguintes:
- Se a chamada de um driver para WdfRequestSend for bem-sucedida, WdfRequestGetStatus retornará o valor status definido pelo driver que chama WdfRequestComplete para concluir a solicitação especificada. O driver normalmente chama WdfRequestGetStatus de dentro de uma função de retorno de chamada CompletionRoutine .
- Se uma chamada de driver para WdfRequestSend falhar, WdfRequestGetStatus retornará um valor status que a estrutura definiu para descrever a falha. O driver pode chamar WdfRequestGetStatus imediatamente após chamar WdfRequestSend.
Para obter mais informações sobre a conclusão da solicitação, consulte Concluindo solicitações de E/S.
Exemplos
O exemplo de código a seguir é do driver de exemplo KbFiltr . Este exemplo envia uma solicitação de E/S para um destino de E/S. Se WdfRequestSend falhar, o exemplo usará o valor retornado WdfRequestGetStatus como entrada para WdfRequestComplete.
VOID
KbFilter_ForwardRequest(
IN WDFREQUEST Request,
IN WDFIOTARGET Target
)
{
WDF_REQUEST_SEND_OPTIONS options;
BOOLEAN ret;
NTSTATUS status;
WDF_REQUEST_SEND_OPTIONS_INIT(
&options,
WDF_REQUEST_SEND_OPTION_SEND_AND_FORGET
);
ret = WdfRequestSend(
Request,
Target,
&options
);
if (ret == FALSE) {
status = WdfRequestGetStatus (Request);
DebugPrint(("WdfRequestSend failed: 0x%x\n", status));
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), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), RequestGetStatusValid(kmdf) |