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


Функция 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

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

void Free (IN PVOID Data);

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

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

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

Замечания

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

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

Требования

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

См. также

ExFreePool

KsAllocateObjectBag

KsCopyObjectBagItems

KsDiscard

KsFreeObjectBag

KsRemoveItemFromObjectBag

_KsEdit