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);
如果调用方未指定此可选参数,则从对象包中删除或删除对象包时,使用 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) |
Library | Ks.lib |
IRQL | PASSIVE_LEVEL |