Compartir a través de


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 nuevos controladores UMDF deben escribirse mediante 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 a 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 de IWDFIoRequest2.

Observaciones

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 un IRequestCallbackRequestCompletion::OnCompletion función de devolución de llamada.

  • Si se produce un error en la llamada de un controlador a Enviar, Enviar 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 que Enviar devuelto.
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 Valor
fin del soporte técnico No disponible en UMDF 2.0 y versiones posteriores.
de la plataforma de destino de Escritorio
versión mínima de UMDF 1.9
encabezado de wudfddi.h (incluya Wudfddi.h)
DLL de WUDFx.dll

Consulte también

IRequestCallbackRequestCompletion::OnCompletion

IWDFIoRequest2

IWDFIoRequest::CompleteWithInformation

IWDFIoRequest::GetCompletionParams

IWDFIoRequest::Send