警告
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 |