IWDFIoRequest::GetOutputMemory 方法 (wudfddi.h)

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

GetOutputMemory 方法检索表示 I/O 请求的输出缓冲区的内存对象。

语法

void GetOutputMemory(
  [out] IWDFMemory **ppWdfMemory
);

参数

[out] ppWdfMemory

指向变量的指针,该变量接收指向内存对象的引用计数 IWDFMemory 接口的指针。 请注意,返回 NULL 有效;在这种情况下,没有与 I/O 请求关联的输出内存。

返回值

备注

使用 缓冲 I/O 访问方法的驱动程序可以调用 GetOutputMemory 来获取 I/O 请求的输出缓冲区。

在驱动程序完成 I/O 请求之前,驱动程序必须为内存对象调用 IWDFMemory::Release 方法。 请求完成后,将释放基础内存对象。

与 I/O 请求关联的输出缓冲区包含 (的信息,例如,驱动程序向请求发起方提供的磁盘) 数据。 驱动程序可以调用 GetOutputMemory 来获取读取请求或设备 I/O 控制请求的输出缓冲区,但不能为写入请求 (获取输出缓冲区,因为写入请求不提供输出数据) 。 若要访问输出缓冲区,驱动程序必须调用 IWDFMemory::GetDataBuffer 方法。

UMDF 在收到 I/O 请求时,在将 I/O 请求添加到驱动程序的 I/O 队列之前创建 I/O 请求的内存对象。 如果 UMDF 无法为内存对象分配内存,它将以失败返回状态完成 I/O 请求,并且不会将 I/O 请求传递给驱动程序。

有关访问 I/O 请求的数据缓冲区的详细信息,请参阅 访问 UMDF-Based 驱动程序中的数据缓冲区

示例

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

要求

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

另请参阅

IWDFIoQueue::RetrieveNextRequest

IWDFIoRequest

IWDFMemory

IWDFMemory::GetDataBuffer