IWDFIoQueue::RetrieveNextRequestByFileObject 方法 (wudfddi.h)

警告

UMDF 2 是最新版本的 UMDF,取代了 UMDF 1。 所有新的 UMDF 驱动程序都应使用 UMDF 2 编写。 未向 UMDF 1 添加新功能,并且较新版本的 Windows 10 上对 UMDF 1 的支持有限。 通用 Windows 驱动程序必须使用 UMDF 2。 有关详细信息,请参阅使用 UMDF 入门

RetrieveNextRequestByFileObject 方法从 I/O 队列中检索其文件对象与指定文件对象匹配的下一个 I/O 请求。

语法

HRESULT RetrieveNextRequestByFileObject(
  [in]  IWDFFile      *pFile,
  [out] IWDFIoRequest **ppRequest
);

参数

[in] pFile

指向文件对象的 IWDFFile 接口的指针,该对象用于检索下一个 I/O 请求,其文件对象与此提供的文件对象匹配。

[out] ppRequest

指向缓冲区的指针,该缓冲区接收指向下一个请求对象的 IWDFIoRequest 接口的指针,该对象的文件对象与提供的文件对象匹配;如果队列为空或找不到下一个请求,则接收 NULL

返回值

RetrieveNextRequestByFileObject 返回以下值之一:

返回代码 说明
S_OK 已成功从 I/O 队列中检索下一个 I/O 请求。
HRESULT_FROM_NT (STATUS_WDF_PAUSED) 队列未调度请求。 如果设备正在进行电源状态转换,并且所有队列都停止调度请求,或者驱动程序显式调用 IWDFIoQueue::Stop 以停止调度请求,则会出现这种情况。 如果驱动程序尝试从由电源管理的手动队列中删除请求,并且该请求已关闭,或者队列已暂停,则也会发生这种情况。
HRESULT_FROM_WIN32 (ERROR_NO_MORE_ITEMS) 队列中没有请求。
HRESULT_FROM_NT (STATUS_INVALID_DEVICE_STATE) 调用是从并行队列检索请求。

RetrieveNextRequestByFileObject 也可能返回其他 HRESULT 值。

注解

如果驱动程序为手动调度 I/O 请求配置 I/O 队列,则驱动程序可以调用 RetrieveNextRequestByFileObject 方法来获取下一个请求,该请求的文件对象与队列中提供的文件对象匹配。 有关手动调度 I/O 请求的详细信息,请参阅 为 I/O 队列配置调度模式

如果多个 I/O 请求的文件对象与 pFile 参数指向的文件对象匹配,则 I/O 队列中存在第一个 I/O 请求。

示例

有关如何使用 RetrieveNextRequestByFileObject 方法的代码示例,请参阅 IWDFIoQueue::RetrieveNextRequest

要求

要求
结束支持 在 UMDF 2.0 及更高版本中不可用。
目标平台 桌面
最低 UMDF 版本 1.5
标头 wudfddi.h (包括 Wudfddi.h)
DLL WUDFx.dll

另请参阅