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