Compartilhar via


Método IWDFIoRequest2::GetStatus (wudfddi.h)

[Aviso: UMDF 2 é a versão mais recente do UMDF e substitui UMDF 1. Todos os novos drivers UMDF devem ser gravados usando UMDF 2. Nenhum novo recurso está sendo adicionado ao UMDF 1 e há suporte limitado para UMDF 1 em versões mais recentes do Windows 10. Os drivers universais do Windows devem usar o UMDF 2. Para obter mais informações, consulte Introdução com UMDF.]

O método GetStatus retorna o status de uma solicitação de E/S.

Sintaxe

HRESULT GetStatus();

Retornar valor

GetStatus retorna um valor de status do tipo HRESULT, Esse valor indica o status atual da solicitação de E/S que a interface IWDFIoRequest2 representa.

Comentários

Um driver pode chamar GetStatus depois de chamar IWDFIoRequest::Send para enviar uma solicitação de E/S para um destino de E/S.

  • Se a chamada de um driver para Enviar for bem-sucedida, GetStatus retornará o valor status definido pelo driver que conclui a solicitação especificada.

    Se o driver especificar WDF_REQUEST_SEND_OPTION_SYNCHRONOUS para uma solicitação ao chamar Enviar, o driver poderá chamar GetStatus (ou IWDFIoRequest::GetCompletionParams) imediatamente após chamar Send.

    Se o driver não especificar WDF_REQUEST_SEND_OPTION_SYNCHRONOUS quando chama Enviar, o driver normalmente chama GetStatus (ou IWDFIoRequest::GetCompletionParams) de dentro de uma função de retorno de chamada IRequestCallbackRequestCompletion::OnCompletion .

  • Se a chamada de um driver para Enviar falhar, Enviar retornará um valor status que a estrutura definiu para descrever a falha. O driver pode chamar GetStatus (mas nãoIWDFIoRequest::GetCompletionParams) para obter o status atual da solicitação, mas nesse caso GetStatus retorna o mesmo código de falha retornado por Send.
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 envia uma solicitação de E/S para um destino de E/S. Se a chamada para Enviar for bem-sucedida, o exemplo obterá a interface IWDFIoRequest2, chamará GetStatus para obter o valor status da solicitação e chamará IWDFIoRequest::CompleteWithInformation para concluir a solicitação de E/S.

HRESULT hrSend = S_OK;
...
hrSend = fxRequest->Send(m_pIoTarget,
                         WDF_REQUEST_SEND_OPTION_SYNCHRONOUS,
                         0);
if (SUCCEEDED(hrSend))
{
    //
    // If send succeeded, complete the request and specify 
    // the current status value.
    //
    CComQIPtr<IWDFIoRequest2> fxRequest2 = fxRequest;
    hrSend = fxRequest2->GetStatus();
    fxRequest->CompleteWithInformation(hrSend, 0);
}
...

Requisitos

Requisito Valor
Fim do suporte Indisponível no UMDF 2.0 e posterior.
Plataforma de Destino Área de Trabalho
Versão mínima do UMDF 1,9
Cabeçalho wudfddi.h (inclua Wudfddi.h)
DLL WUDFx.dll

Confira também

IRequestCallbackRequestCompletion::OnCompletion

IWDFIoRequest2

IWDFIoRequest::CompleteWithInformation

IWDFIoRequest::GetCompletionParams

IWDFIoRequest::Send