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 对象(例如,KSFILTERKSPIN)都包含名为“Bag”的成员。 在此参数中传递该成员。

[in] Item

指向要添加到对象包的项目的指针。

[in, optional] Free

从对象包中删除项目或删除对象包时调用的函数。 此函数通常用于释放与 关联的任何动态内存。 函数的原型应如下所示:

void Free (IN PVOID Data);

如果调用方未指定此可选参数,则在从对象包中删除或删除对象包时,ExFreePool 释放 Item

返回值

返回STATUS_SUCCESS指示添加正常,或STATUS_INSUFFICIENT_RESOURCES指示作无法继续执行的系统资源。

言论

在调用 KsAddItemToObjectBag之前,微型驱动程序必须获取与特定对象包关联的互斥体。 如果 ObjectBagKSDEVICEKSFILTERFACTORY的成员,请获取设备互斥体。 如果包是 KSFILTER的成员,请获取筛选器控件互斥体。 如果包是 KSPIN 对象的成员,请获取父 KSFILTER 的筛选器控件互斥体。

有关详细信息,请参阅 AVStream 中的 对象包 和互斥体。

要求

要求 价值
最低支持的客户端 Microsoft Windows XP 及更高版本的作系统以及 DirectX 8.0 及更高版本的 DirectX 版本中提供。
目标平台 普遍
标头 ks.h (包括 Ks.h)
Ks.lib
IRQL PASSIVE_LEVEL

另请参阅

ExFreePool

KsAllocateObjectBag

KsCopyObjectBagItems

KsDiscard

KsFreeObjectBag

KsRemoveItemFromObjectBag

_KsEdit