WDF_DEVICE_IO_BUFFER_RETRIEVAL 枚举 (wudfddi_types.h)
[警告: UMDF 2 是最新版本的 UMDF,并取代 UMDF 1。 所有新的 UMDF 驱动程序都应使用 UMDF 2 编写。 不会向 UMDF 1 添加任何新功能,并且较新版本的 Windows 10 上对 UMDF 1 的支持有限。 通用 Windows 驱动程序必须使用 UMDF 2。 有关详细信息,请参阅使用 UMDF 入门。]
WDF_DEVICE_IO_BUFFER_RETRIEVAL枚举用于指定 UMDF 何时向驱动程序提供 I/O 请求的缓冲区。
语法
typedef enum _WDF_DEVICE_IO_BUFFER_RETRIEVAL {
WdfDeviceIoBufferRetrievalInvalid,
WdfDeviceIoBufferRetrievalCopyImmediately,
WdfDeviceIoBufferRetrievalDeferred,
WdfDeviceIoBufferRetrievalMaximum
} WDF_DEVICE_IO_BUFFER_RETRIEVAL, *PWDF_DEVICE_IO_BUFFER_RETRIEVAL;
常量
WdfDeviceIoBufferRetrievalInvalid 预留给系统使用。 |
WdfDeviceIoBufferRetrievalCopyImmediately UMDF 在 UMDF 收到 I/O 请求后立即将其复制到 UMDF 驱动程序主机进程) ,使 I/O 请求的缓冲区可供驱动程序 (使用。 有关更多信息,请参见下面的“备注”部分。 |
WdfDeviceIoBufferRetrievalDeferred UMDF 仅当驱动程序尝试访问缓冲区时,将 I/O 请求的缓冲区复制到 UMDF 驱动程序主机进程) ,使 I/O 请求的缓冲区可供驱动程序 (使用。 有关更多信息,请参见下面的“备注”部分。 |
WdfDeviceIoBufferRetrievalMaximum 预留给系统使用。 |
注解
WDF_DEVICE_IO_BUFFER_RETRIEVAL枚举用作 IWDFDeviceInitialize2::SetIoTypePreference 的输入。
在版本 1.9 之前的 UMDF 版本中,UMDF 始终通过在 UMDF 收到 I/O 请求后立即将缓冲区复制到 UMDF 驱动程序主机进程) ,使驱动程序 (可以使用 I/O 请求的缓冲区。 IWDFIoRequest::GetInputMemory 和 IWDFIoRequest::GetOutputMemory 是驱动程序可以调用以访问缓冲区的唯一对象方法。
UMDF 1.9 及更高版本可以支持立即或延迟检索请求缓冲区。 所有新驱动程序都应启用延迟检索,因为它通常提供比即时检索更好的驱动程序性能。 如果驱动程序未启用延迟检索,则 UMDF 使用即时检索。
若要延迟检索缓冲区,驱动程序必须调用 IWDFDeviceInitialize2::SetIoTypePreference 并指定 WdfDeviceIoBufferRetrievalDeferred 值。 驱动程序启用延迟检索后,可以使用缓冲或直接 访问方法调用以下方法来访问请求缓冲区:
IWDFIoRequest2::RetrieveInputBuffer
IWDFIoRequest2::RetrieveInputMemory
IWDFIoRequest2::RetrieveOutputBuffer
IWDFIoRequest2::RetrieveOutputMemory
启用延迟检索的驱动程序不能使用 IWDFIoRequest::GetInputMemory 和 IWDFIoRequest::GetOutputMemory 访问缓冲区。
有关访问 I/O 请求的数据缓冲区的详细信息,请参阅 访问 UMDF-Based 驱动程序中的数据缓冲区。
要求
要求 | 值 |
---|---|
最低 UMDF 版本 | 1.9 |
标头 | wudfddi_types.h (包括 Wudfddi.h) |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈