Функция KsRemoveItemFromObjectBag (ks.h)

Функция KsRemoveItemFromObjectBag удаляет элемент из контейнера объектов.

Синтаксис

KSDDKAPI ULONG KsRemoveItemFromObjectBag(
  [in] KSOBJECT_BAG ObjectBag,
  [in] PVOID        Item,
  [in] BOOLEAN      Free
);

Параметры

[in] ObjectBag

Этот параметр задает KSOBJECT_BAG (эквивалент типа PVOID), из которого удаляется Item.

[in] Item

Указатель на элемент, удаляемый из запрошенного контейнера объектов. Обратите внимание, что Item удаляется только из запрошенного контейнера объектов. Он не удаляется из других мешков предметов, в которые он может находиться.

[in] Free

Этот параметр указывает, следует ли освобождать Item после его удаления из указанного контейнера объектов. Задайте для свойства Free значение TRUE , только если Item не содержится в других контейнерах объектов.

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

Возвращает количество ссылок на Item. Возвращаемое нулевое значение указывает, что Item не был в ObjectBag во время вызова.

Возвращаемое значение 1 указывает, что элемент был успешно удален из ObjectBag и что он не был в другом контейнере объектов. Если в этом случае запрашивается бесплатный, AVStream освобождает Item с помощью ExFreePool или метода Free, указанного во время вызова KsAddItemToObjectBag .

Возвращаемое значение выше одного указывает, что элемент присутствует в другом контейнере объектов и что на него по-прежнему имеются ссылки. В этом случае AVStream удалил элемент из ObjectBag, но не освободил его независимо от значения Free.

Комментарии

KsRemoveItemFromObjectBag освобождает Item только в том случае, если количество ссылок на этот элемент равно нулю и был запрошен бесплатный.

Дополнительные сведения о контейнерах объектов см. в разделе Контейнеры объектов.

Обратите внимание, что мьютекс, связанный с сумкой, должен быть удержан. Дополнительные сведения см. в разделе Мьютексы в AVStream.

Требования

Требование Значение
Минимальная версия клиента Доступно в операционных системах Microsoft Windows XP и более поздних версиях, а также DirectX 8.0 и более поздних версиях.
Целевая платформа Универсальное
Верхняя часть ks.h (включая Ks.h)
Библиотека Ks.lib
IRQL PASSIVE_LEVEL

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

KsAddItemToObjectBag

KsAllocateObjectBag

KsCopyObjectBagItems

KsDiscard

KsFreeObjectBag

KsMergeAutomationTables