IAMDevMemoryControl::WriteSync 方法 (strmif.h)

[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayerIMFMediaEngine媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

注意IAMDevMemoryControl 接口已弃用。
 
用于与已完成的写入同步。 当写入特定分配器区域的任何数据完全写入内存时,此方法将返回 。

语法

HRESULT WriteSync();

返回值

返回 HRESULT 值。 可能的值如下所示:

返回代码 说明
E_FAIL
在没有此方法确认数据已写入的情况下发生超时。
S_OK
数据已成功写入内存。
VFW_E_NOT_COMMITTED
分配器尚未调用 IMemAllocator::Commit 方法。

注解

此方法保证以前对分配的内存执行的所有写入操作都已成功。 后续内存写入操作需要再次调用 WriteSync

此方法依赖于实现,并在必要时 (使用此方法,) 将内存写入操作同步到内存。 板载内存的驱动程序提供 实现。

IAMDevMemoryControl 接口通常位于通过外围组件互连 (PCI) 网桥访问的内存上。 (PCI 是个人计算机的本地总线,可在处理器和外围设备之间提供高速数据路径。) 如果其他设备将从 PCI 网桥后面访问该内存,则必须在内存写入操作完成后同步 PCI 桥后面的内存。 这是因为主机对内存的访问通过 PCI 桥 FIFO 缓冲 (先出先出) ,并且主机将假定在网桥实际写入数据之前已完成写入。 如果未调用 IAMDevMemoryControl::WriteSync 方法,则桥后面的设备(如 SCSI 控制器)的后续操作可能会在写入完成之前读取内存。

要求

要求
目标平台 Windows
标头 strmif.h (包括 Dshow.h)

另请参阅

错误和成功代码

IAMDevMemoryControl 接口