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


Интерфейс IAsyncReader (strmif.h)

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

Интерфейс IAsyncReader выполняет асинхронный запрос данных к фильтру.

Этот интерфейс предоставляется выходными контактами, которые выполняют асинхронные операции чтения. Интерфейс используется контактом ввода в нижнем фильтре. Приложения не используют этот интерфейс. Фильтр "Источник асинхронного файла " предоставляет этот интерфейс на выходе.

Разработчики фильтров. Реализуйте этот интерфейс, если выходной контакт доставляет данные в виде потока байтов (MEDIATYPE_Stream) и поддерживает модель извлечения. В процессе подключения проверка, запрашивает IAsyncReader ли подчиненный закрепления интерфейс. В противном случае закрепление должно завершиться сбоем подключения или установить другой транспорт. (Если закрепление является производным от CBasePin, выполните это проверка в методе CBasePin::CheckConnect.)

Дополнительные сведения об использовании этого интерфейса см. в следующих разделах:

Наследование

Интерфейс IAsyncReader наследуется от интерфейса IUnknown . IAsyncReader также имеет следующие типы элементов:

Методы

Интерфейс IAsyncReader содержит эти методы.

 
IAsyncReader::BeginFlush

Метод BeginFlush начинает операцию очистки. (IAsyncReader.BeginFlush)
IAsyncReader::EndFlush

Метод EndFlush завершает операцию очистки. (IAsyncReader.EndFlush)
IAsyncReader::Length

Метод Length извлекает общую длину потока.
IAsyncReader::Request

Метод Request помещает в очередь асинхронный запрос данных.
IAsyncReader::RequestAllocator

Метод RequestAllocator запрашивает распределителя во время подключения закрепления.
IAsyncReader::SyncRead

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

Метод SyncReadAligned выполняет синхронное чтение. Метод блокируется до завершения запроса. Позиции файлов и адрес буфера должны быть выровнены; проверка свойства распределителя для требуемого выравнивания.
IAsyncReader::WaitForNext

Метод WaitForNext ожидает завершения следующего ожидающего запроса на чтение.

Требования

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