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