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

[Advertencia: UMDF 2 es la versión más reciente de UMDF y sustituye a UMDF 1. Todos los controladores UMDF nuevos deben escribirse con UMDF 2. No se agregan nuevas características a UMDF 1 y hay compatibilidad limitada con UMDF 1 en versiones más recientes de Windows 10. Los controladores universales de Windows deben usar UMDF 2. Para obtener más información, consulta Introducción con UMDF.

El método GetStatus devuelve el estado de una solicitud de E/S.

Sintaxis

HRESULT GetStatus();

Valor devuelto

GetStatus devuelve un valor de estado con tipo HRESULT. Este valor indica el estado actual de la solicitud de E/S que representa la interfaz IWDFIoRequest2 .

Comentarios

Un controlador puede llamar a GetStatus después de llamar a IWDFIoRequest::Send para enviar una solicitud de E/S a un destino de E/S.

  • Si la llamada de un controlador a Send se realiza correctamente, GetStatus devuelve el valor de estado establecido por el controlador que completa la solicitud especificada.

    Si el controlador especifica WDF_REQUEST_SEND_OPTION_SYNCHRONOUS para una solicitud cuando llama a Send, el controlador puede llamar a GetStatus (o IWDFIoRequest::GetCompletionParams) inmediatamente después de llamar a Send.

    Si el controlador no especifica WDF_REQUEST_SEND_OPTION_SYNCHRONOUS cuando llama a Send, el controlador normalmente llama a GetStatus (o IWDFIoRequest::GetCompletionParams) desde una función de devolución de llamada IRequestCallbackRequestCompletion::OnCompletion .

  • Si se produce un error en la llamada de un controlador a Send , Send devuelve un valor de estado que el marco ha establecido para describir el error. El controlador puede llamar a GetStatus (pero noIWDFIoRequest::GetCompletionParams) para obtener el estado actual de la solicitud, pero en este caso GetStatus devuelve el mismo código de error devuelto por Send .
Para obtener más información sobre la finalización de solicitudes, consulte Finalización de solicitudes de E/S.

Ejemplos

En el ejemplo de código siguiente se envía una solicitud de E/S a un destino de E/S. Si la llamada a Send se realiza correctamente, el ejemplo obtiene la interfaz IWDFIoRequest2 , llama a GetStatus para obtener el valor de estado de la solicitud y, a continuación, llama a IWDFIoRequest::CompleteWithInformation para completar la solicitud 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 Value
Finalización del soporte técnico No disponible en UMDF 2.0 y versiones posteriores.
Plataforma de destino Escritorio
Versión mínima de UMDF 1,9
Encabezado wudfddi.h (incluya Wudfddi.h)
Archivo DLL WUDFx.dll

Consulte también

IRequestCallbackRequestCompletion::OnCompletion

IWDFIoRequest2

IWDFIoRequest::CompleteWithInformation

IWDFIoRequest::GetCompletionParams

IWDFIoRequest::Send