Поделиться через


Метод IAMDevMemoryControl::WriteSync (strmif.h)

[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код использовал MediaPlayer, IMFMediaEngine и аудио- и видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]

Примечание Интерфейс IAMDevMemoryControl является устаревшим.
 
Используется для синхронизации с завершенной записью. Этот метод возвращает, когда все данные, записываемые в определенную область распределителя, полностью записываются в память.

Синтаксис

HRESULT WriteSync();

Возвращаемое значение

Возвращает значение HRESULT . Возможные значения:

Код возврата Описание
E_FAIL
Время ожидания истекло без этого метода, подтверждающего запись данных.
S_OK
Данные успешно записаны в память.
VFW_E_NOT_COMMITTED
Распределителем не был вызван метод IMemAllocator::Commit .

Комментарии

Этот метод гарантирует успешное выполнение всех предыдущих операций записи в выделенную память. Последующие операции записи в память требуют другого вызова WriteSync.

Этот метод зависит от реализации и используется (при необходимости) для синхронизации операций записи в память. Драйвер встроенной памяти обеспечивает реализацию.

Интерфейс IAMDevMemoryControl обычно находится в памяти, доступ к которому осуществляется через мост PCI. (PCI — это локальная шина для персональных компьютеров, которая обеспечивает высокоскоростной путь передачи данных между процессором и периферийными устройствами.) Память за мостом PCI должна быть синхронизирована после завершения операции записи памяти, если другое устройство будет обращаться к этой памяти из-за моста PCI. Это связано с тем, что доступ узла к памяти буферизуется через FIFO моста PCI (сначала в первом выходе), и узел будет предполагать, что запись завершена до того, как мост фактически записывает данные. Последующее действие устройства за мостом, например контроллера SCSI, может считывать память до завершения записи, если метод IAMDevMemoryControl::WriteSync не вызывается.

Требования

Требование Значение
Целевая платформа Windows
Header strmif.h (включая Dshow.h)

См. также раздел

Коды ошибок и успешного выполнения

Интерфейс IAMDevMemoryControl