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.
Valor de retorno
WdfRequestGetStatus retorna um valor NTSTATUS. Para obter mais informações sobre qual valor pode ser retornado, consulte a seção Comentários a seguir.
Uma verificação de bug ocorre se o driver fornece um identificador de objeto inválido.
Observações
O método WdfRequestGetStatus retorna um dos seguintes:
- Se a chamada de um driver para WdfRequestSend for bem-sucedida, WdfRequestGetStatus retornará o valor de 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 de 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 Concluir 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 WdfRequestGetStatus valor retornado 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 |
---|---|
da 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 de DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), RequestGetStatusValid(kmdf) |