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