IWDFIoRequest2::GetStatus 方法 (wudfddi.h)
[警告: UMDF 2 是最新版本的 UMDF,取代了 UMDF 1。 所有新的 UMDF 驱动程序都应使用 UMDF 2 编写。 未向 UMDF 1 添加新功能,并且较新版本的 Windows 10 上对 UMDF 1 的支持有限。 通用 Windows 驱动程序必须使用 UMDF 2。 有关详细信息,请参阅使用 UMDF 入门。]
GetStatus 方法返回 I/O 请求的状态。
语法
HRESULT GetStatus();
返回值
GetStatus 返回 HRESULT 类型的状态值,此值指示 IWDFIoRequest2 接口表示的 I/O 请求的当前状态。
注解
驱动程序可以在调用 IWDFIoRequest::Send 后调用 GetStatus,以将 I/O 请求发送到 I/O 目标。
-
如果驱动程序对 Send 的调用成功, GetStatus 将返回由完成指定请求的驱动程序设置的状态值。
如果驱动程序在调用 Send 时为请求指定WDF_REQUEST_SEND_OPTION_SYNCHRONOUS,则驱动程序可以在调用 Send 后立即) 调用 GetStatus (或 IWDFIoRequest::GetCompletionParams。
如果驱动程序在调用 Send 时未指定WDF_REQUEST_SEND_OPTION_SYNCHRONOUS,驱动程序通常会从 IRequestCallbackRequestCompletion::OnCompletion 回调函数中) 调用 GetStatus (或 IWDFIoRequestRequest::GetCompletionParams。
- 如果驱动程序调用 Send 失败, 则 Send 将返回框架为描述失败而设置的状态值。 驱动程序可以调用 GetStatus (但不调用IWDFIoRequest::GetCompletionParams) 来获取请求的当前状态,但在这种情况下 ,GetStatus 返回的失败代码与 Send 返回的相同。
示例
下面的代码示例将 I/O 请求发送到 I/O 目标。 如果 调用 Send 成功,则示例获取 IWDFIoRequest2 接口,调用 GetStatus 以获取请求的状态值,然后调用 IWDFIoRequest::CompleteWithInformation 来完成 I/O 请求。
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);
}
...
要求
要求 | 值 |
---|---|
结束支持 | 在 UMDF 2.0 及更高版本中不可用。 |
目标平台 | 桌面 |
最低 UMDF 版本 | 1.9 |
标头 | wudfddi.h (包括 Wudfddi.h) |
DLL | WUDFx.dll |
另请参阅
IRequestCallbackRequestCompletion::OnCompletion
IWDFIoRequest::CompleteWithInformation