Метод IMemAllocator::D ecommit (strmif.h)
[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код использовал MediaPlayer, IMFMediaEngine и аудио- и видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]
Метод Decommit
освобождает буферную память.
Синтаксис
HRESULT Decommit();
Возвращаемое значение
Возвращает S_OK в случае успешного выполнения или значение HRESULT , указывающее причину ошибки.
Комментарии
Все потоки, ожидающие в методе IMemAllocator::GetBuffer , возвращаются с ошибкой. Дальнейшие вызовы GetBuffer завершаются ошибкой , пока не будет вызван метод IMemAllocator::Commit .
Цель Decommit
метода — предотвратить получение фильтрами дополнительных образцов из распределителя. Фильтры, которые уже содержат количество ссылок в образце, не затрагиваются. Однако после того, как фильтр освобождает пример и количество ссылок становится равным нулю, пример больше недоступен.
Распределитель может освободить память, принадлежащая любому образцу, с нулем ссылок. Таким образом, Decommit
метод "освобождает" память в том смысле, что фильтры перестают иметь доступ к ней. То, возвращается ли память в кучу, зависит от реализации распределителя. Некоторые распределители ожидают, пока не будет использовать собственный метод деструктора. Однако при удалении выделенная память не должна оставлять выделенную память. Поэтому деструктор распределителя должен ждать, пока не будут освобождены все его образцы.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | strmif.h (включая Dshow.h) |
Библиотека | Strmiids.lib |