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


Метод IAsyncReader::SyncRead (strmif.h)

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

Метод SyncRead выполняет синхронное чтение. Метод блокируется до завершения запроса. Расположение файлов и адрес буфера не обязательно должны быть выровнены. Если запрос не выровнен, метод выполняет операцию чтения в буфере.

Синтаксис

HRESULT SyncRead(
  [in]  LONGLONG llPosition,
  [in]  LONG     lLength,
  [out] BYTE     *pBuffer
);

Параметры

[in] llPosition

Указывает смещение байтов, с которого начинается чтение. Метод завершается ошибкой, если это значение находится за пределами конца файла.

[in] lLength

Указывает число считываемых байтов.

[out] pBuffer

Указатель на буфер, который получает данные.

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

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

Код возврата Описание
S_FALSE
Получено меньше байтов, чем запрошено. (Вероятно, достигнут конец файла.)
S_OK
Успешно.

Комментарии

Этот метод работает, даже если фильтр остановлен.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header strmif.h (включая Dshow.h)
Библиотека Strmiids.lib

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

Коды ошибок и успешности

Интерфейс IAsyncReader

IAsyncReader::SyncReadAligned