KsRemoveItemFromObjectBag 函数 (ks.h)
KsRemoveItemFromObjectBag 函数从对象包中删除项目。
语法
KSDDKAPI ULONG KsRemoveItemFromObjectBag(
[in] KSOBJECT_BAG ObjectBag,
[in] PVOID Item,
[in] BOOLEAN Free
);
参数
[in] ObjectBag
此参数指定与要从中删除 Item 的 PVOID) 类型等效的KSOBJECT_BAG (。
[in] Item
指向要从请求的对象包中删除的项的指针。 请注意, Item 仅从请求的对象包中删除。 它不会从它可能位于的任何其他对象包中删除。
[in] Free
此参数指定从指定对象包中删除 Item 后,是否应释放 Item 。 仅当 Item 未包含在任何其他对象包中时,才将 Free 设置为 TRUE。
返回值
返回 对 Item 的引用数。 返回值为零表示 Item 在调用时不在 ObjectBag 中。
返回值 1 表示 Item 已成功从 ObjectBag 中删除,并且它不在任何其他对象包中。 如果在这种情况下请求了免费,AVStream 将使用 ExFreePool 或 KsAddItemToObjectBag 调用时间中指定的 Free 方法释放 Item。
一个上方的返回值指示该项存在于另一个对象包中,并且仍有引用。 在这种情况下,AVStream 从 ObjectBag 中删除了 Item,但不管 Free 的值如何,都未释放它。
注解
KsRemoveItemFromObjectBag 仅当对此项的引用数为零且请求了 free 时才释放 Item。
有关对象包的详细信息,请参阅 对象包。
请注意,必须与包关联的互斥体保持。 有关详细信息,请参阅 AVStream 中的互斥体。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 适用于 Microsoft Windows XP 及更高版本的操作系统以及 DirectX 8.0 及更高版本的 DirectX。 |
目标平台 | 通用 |
标头 | ks.h (包括 Ks.h) |
Library | Ks.lib |
IRQL | PASSIVE_LEVEL |