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


Метод IAMDevMemoryAllocator::GetDevMemoryObject (strmif.h)

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

Примечание Интерфейс IAMDevMemoryAllocator устарел.
 
Извлекает указатель интерфейса IUnknown на объект управления памятью устройства, который можно агрегировать с помощью пользовательского распределителя.

Синтаксис

HRESULT GetDevMemoryObject(
  [out] IUnknown **ppUnkInnner,
  [in]  IUnknown *pUnkOuter
);

Параметры

[out] ppUnkInnner

Адрес указателя на собственный IUnknown созданного объекта элемента управления. Этот внутренний интерфейс IUnknown должен быть освобожден при уничтожении внешнего объекта. Настраиваемый распределитель должен вызвать метод QueryInterface для этого указателя, чтобы получить интерфейс IAMDevMemoryControl .

[in] pUnkOuter

Указатель на собственный интерфейс IUnknown пользовательского распределителя. Этот интерфейс объединяет объект управления памятью устройства внутри пользовательского распределителя.

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

Возвращает значение HRESULT .

Комментарии

Объект управления памятью устройства необходим для агрегирования с пользовательским распределителем, так как отрисовщики, требующие использования встроенной памяти, будут запрашивать IAMDevMemoryControl при получении нового распределителя, чтобы убедиться, что память находится на том же устройстве. Это происходит потому, что аппаратный фильтр получит объект IMemAllocator , который может использовать или не использовать локальную память. Чтобы решить, является ли он совместимым распределителем, объект запрашивает интерфейс IAMDevMemoryControl для доступа к определенным методам. IAMDevMemoryControl создает агрегированный объект, который реализует методы IAMDevMemoryControl (часто это зависит от оборудования).

Правила реализации агрегирования внешнего объекта см. в документации по COM.

Требования

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

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

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

Интерфейс IAMDevMemoryAllocator