在 UMDF 中重用框架请求对象
警告
UMDF 2 是 UMDF 的最新版本,取代了 UMDF 1。 所有新的 UMDF 驱动程序都应使用 UMDF 2 编写。 不会向 UMDF 1 添加任何新功能,并且较新版本的 Windows 10 上对 UMDF 1 的支持有限。 通用 Windows 驱动程序必须使用 UMDF 2。
存档的 UMDF 1 示例可在 Windows 11 版本 22H2 - 2022 年 5 月驱动程序示例更新中找到。
有关详细信息,请参阅使用 UMDF 入门。
为了提高驱动程序性能,创建许多几乎相同的异步请求并将其发送到 I/O 目标的基于框架的驱动程序可以重复使用请求对象,而不是为每个请求创建新的请求对象。 请求完成后,驱动程序可以重复使用请求对象。
如果驱动程序已通过调用 IWDFDevice::CreateRequest 创建了请求对象,则它可以通过调用 IWDFIoRequest2::Reuse 重用请求。 驱动程序还可以重用从其 I/O 队列中的框架收到的请求对象。
如果驱动程序为它重复使用的请求对象提供了 IRequestCallbackRequestCompletion::OnCompletion 回调函数,则驱动程序必须在调用 Reuse 后调用 IWDFIoRequest::SetCompletionCallback。