Интерфейс IMemAllocator (strmif.h)
[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать в новом коде MediaPlayer, IMFMediaEngine и аудио/видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]
Интерфейс IMemAllocator
выделяет примеры мультимедиа для перемещения данных между контактами.
Этот интерфейс используется контактами с общими распределителями, когда входной контакт предоставляет интерфейс IMemInputPin . Контакты согласовывают, какой контакт предоставит распределителю. Распределитель используется для выделения буферов памяти, извлечения пустых буферов и освобождения буферов. Не каждый фильтр создает собственный распределитель, поэтому один распределитель может использоваться несколькими фильтрами. Дополнительные сведения см. в разделе How Filters Connect.
Приложения обычно не используют этот интерфейс.
Чтобы использовать распределитель, выполните следующие действия.
- Вызовите метод IMemAllocator::SetProperties , чтобы указать требования к буферу, включая количество буферов и размер каждого буфера.
- Вызовите метод IMemAllocator::Commit для выделения буферов.
- Вызовите метод IMemAllocator::GetBuffer для получения примеров мультимедиа. Этот метод блокируется до тех пор, пока не станет доступен следующий пример.
- Завершив работу с каждым примером, вызовите метод IUnknown::Release в образце. Образец не удаляется, когда его число ссылок достигает нуля. Вместо этого пример возвращается в список бесплатных распределителя.
- Завершив использование распределителя, вызовите метод IMemAllocator::D ecommit , чтобы освободить память для буферов.
Наследование
Интерфейс IMemAllocator наследуется от интерфейса IUnknown . IMemAllocator также имеет следующие типы элементов:
Методы
Интерфейс IMemAllocator содержит следующие методы.
IMemAllocator::Commit Метод Commit выделяет буферную память. |
IMemAllocator::D commit Метод Decommit освобождает буферную память. |
IMemAllocator::GetBuffer Метод GetBuffer извлекает образец носителя, содержащий пустой буфер. |
IMemAllocator::GetProperties Метод GetProperties извлекает количество буферов, создаваемых распределителем, и свойства буфера. |
IMemAllocator::ReleaseBuffer Метод ReleaseBuffer освобождает пример носителя. |
IMemAllocator::SetProperties Метод SetProperties указывает количество выделенных буферов и размер каждого буфера. |
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | strmif.h (включая Dshow.h) |