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 .
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
IWDFIoRequest::CompleteWithInformation