Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
[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.
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
IWDFIoRequest::CompleteWithInformation