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


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

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

Метод RequestAllocator запрашивает распределитель во время пин-соединения.

Синтаксис

HRESULT RequestAllocator(
  [in]  IMemAllocator        *pPreferred,
  [in]  ALLOCATOR_PROPERTIES *pProps,
  [out] IMemAllocator        **ppActual
);

Параметры

[in] pPreferred

Указатель на интерфейс IMemAllocator на предпочтительном распределителе входного контакта или NULL.

[in] pProps

Указывает адрес структуры ALLOCATOR_PROPERTIES , выделенной вызывающим объектом. Вызывающий объект должен заполнить все свойства распределителя, необходимые входной пин-коду, и задать для остальных членов значение 0.

[out] ppActual

Адрес переменной, получающей указатель интерфейса IMemAllocator .

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

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

Код возврата Описание
E_FAIL
Сбой при инициализации распределителя.
VFW_E_BADALIGN
Указано недопустимое выравнивание.
S_OK
Распределитель был возвращен.

Комментарии

Подчиненный входной контакт должен вызывать этот метод во время процесса подключения. Если контакт имеет предпочтительный распределитель, укажите его в параметре pPreferred . Укажите любые требования к буферу, такие как размер или выравнивание буфера, в параметре pProps . Выходной контакт выбирает распределитель и возвращает указатель на него в параметре ppActual .

Вывод пин-кода не требуется для выполнения запросов входного пин-кода. Если входной контакт имеет абсолютные требования, он должен вызвать метод IMemAllocator::GetProperties для возвращаемого распределителя. Если свойства распределителя не подходят, подключение может завершиться ошибкой. После установки подключения входной контакт должен использовать распределитель, выбранный выходным контактом.

Пин-код ввода отвечает за фиксацию и списание распределителя.

Требования

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

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

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

Интерфейс IAsyncReader