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

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

Синтаксис

KSDDKAPI NTSTATUS KsAddItemToObjectBag(
  [in]           KSOBJECT_BAG           ObjectBag,
  [in]           __drv_aliasesMem PVOID Item,
  [in, optional] PFNKSFREE              Free
);

Параметры

[in] ObjectBag

KSOBJECT_BAG (эквивалент типа PVOID), к которому добавляется запрошенный элемент. Каждый объект AVStream (например, KSFILTER и KSPIN) содержит элемент с именем Bag. Передайте этот элемент в этом параметре.

[in] Item

Указатель на элемент, добавляемый в контейнер объектов.

[in, optional] Free

Функция, вызываемая при удалении элемента из контейнера объектов или при удалении контейнера объектов. Эта функция обычно используется для освобождения любой динамической памяти, связанной с Item. Функция должна быть прообразована следующим образом:

void Free (IN PVOID Data);

Если вызывающий объект не указывает этот необязательный параметр, item освобождается с помощью ExFreePool при удалении из контейнера объектов или при удалении контейнера объектов.

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

Либо возвращает STATUS_SUCCESS, указывающее, что сложение прошло нормально, либо STATUS_INSUFFICIENT_RESOURCES, указывающее на нехватку системных ресурсов для продолжения операции.

Комментарии

Перед вызовом KsAddItemToObjectBag мини-диск должен получить мьютекс, связанный с конкретным контейнером объектов. Если ObjectBag является членом KSDEVICE или KSFILTERFACTORY, получите мьютекс устройства. Если контейнер является членом KSFILTER, получите мьютекс элемента управления фильтром. Если контейнер является членом объекта KSPIN , получите мьютекс родительского элемента управления фильтром KSFILTER.

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

Требования

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

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

ExFreePool

KsAllocateObjectBag

KsCopyObjectBagItems

KsDiscard

KsFreeObjectBag

KsRemoveItemFromObjectBag

_KsEdit