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 释放 Item。
返回值
返回STATUS_SUCCESS指示添加正常,或STATUS_INSUFFICIENT_RESOURCES指示作无法继续执行的系统资源。
言论
在调用 KsAddItemToObjectBag之前,微型驱动程序必须获取与特定对象包关联的互斥体。 如果 ObjectBag 是 KSDEVICE 或 KSFILTERFACTORY的成员,请获取设备互斥体。 如果包是 KSFILTER的成员,请获取筛选器控件互斥体。 如果包是 KSPIN 对象的成员,请获取父 KSFILTER 的筛选器控件互斥体。
有关详细信息,请参阅 AVStream 中的 对象包 和互斥体。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Microsoft Windows XP 及更高版本的作系统以及 DirectX 8.0 及更高版本的 DirectX 版本中提供。 |
目标平台 | 普遍 |
标头 | ks.h (包括 Ks.h) |
库 | Ks.lib |
IRQL | PASSIVE_LEVEL |