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


Метод CBaseAllocator.Decommit

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

Метод Decommit удаляет распределитель. Этот метод реализует метод IMemAllocator::D ecommit .

Синтаксис

HRESULT Decommit();

Параметры

Этот метод не имеет параметров.

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

Возвращает S_OK.

Комментарии

После вызова этого метода вызовы метода CBaseAllocator::GetBuffer завершатся ошибкой. По мере выпуска примеров они возвращаются в список бесплатных. При возвращении последнего примера распределитель вызывает метод CBaseAllocator::Free , который освобождает выделенную память. (В базовом классе Free является чисто виртуальным методом.)

Кроме того, этот метод освобождает все потоки, заблокированные при вызовах GetBuffer . Вызовы GetBuffer завершаются ошибкой .

Требования

Требование Значение
Заголовок
Amfilter.h (включая Streams.h)
Библиотека
Strmbase.lib (розничные сборки);
Strmbasd.lib (отладочные сборки)

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

Класс CBaseAllocator