IAMDevMemoryControl::WriteSync 方法 (strmif.h)
[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayer、 IMFMediaEngine 和 媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
注意IAMDevMemoryControl 接口已弃用。
语法
HRESULT WriteSync();
返回值
返回 HRESULT 值。 可能的值如下所示:
返回代码 | 说明 |
---|---|
|
在没有此方法确认数据已写入的情况下发生超时。 |
|
数据已成功写入内存。 |
|
分配器尚未调用 IMemAllocator::Commit 方法。 |
注解
此方法保证以前对分配的内存执行的所有写入操作都已成功。 后续内存写入操作需要再次调用 WriteSync
。
此方法依赖于实现,并在必要时 (使用此方法,) 将内存写入操作同步到内存。 板载内存的驱动程序提供 实现。
IAMDevMemoryControl 接口通常位于通过外围组件互连 (PCI) 网桥访问的内存上。 (PCI 是个人计算机的本地总线,可在处理器和外围设备之间提供高速数据路径。) 如果其他设备将从 PCI 网桥后面访问该内存,则必须在内存写入操作完成后同步 PCI 桥后面的内存。 这是因为主机对内存的访问通过 PCI 桥 FIFO 缓冲 (先出先出) ,并且主机将假定在网桥实际写入数据之前已完成写入。 如果未调用 IAMDevMemoryControl::WriteSync 方法,则桥后面的设备(如 SCSI 控制器)的后续操作可能会在写入完成之前读取内存。
要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | strmif.h (包括 Dshow.h) |