KsRemoveItemFromObjectBag 函式 (ks.h)
KsRemoveItemFromObjectBag 函式會從物件包中移除專案。
語法
KSDDKAPI ULONG KsRemoveItemFromObjectBag(
[in] KSOBJECT_BAG ObjectBag,
[in] PVOID Item,
[in] BOOLEAN Free
);
參數
[in] ObjectBag
此參數會指定要從中移除 ItemKSOBJECT_BAG KSOBJECT_BAG (相當於類型 PVOID)。
[in] Item
要從要求的物件包中移除之專案的指標。 請注意,Item 只會從要求的物件包中移除。 它不會從它可能位於的任何其他物件包中移除。
[in] Free
此參數會指定一旦從指定的物件包中移除專案 專案 是否應該釋放。 只有在任何其他物件包中未包含 Item 時,Free設定為 true。
傳回值
傳回 Item上的參考數目。 零的傳回值表示 Item 不在呼叫時間 ObjectBag 中。
一個傳回值表示已成功從 ObjectBag 移除 Item,而且它不在任何其他物件包中。 如果在此案例中要求免費,AVStream 會使用 ExFreePool 或 KsAddItemToObjectBag 呼叫時間指定的 Free 方法,釋放 Item。
上方的傳回值表示專案存在於另一個物件包中,而且仍有參考。 在此情況下,AVStream 會從 ObjectBag中移除 Item,但不論 free 的值為何,都不會釋放它。
言論
KsRemoveItemFromObjectBag 只有在這個專案上的參考數為零且要求免費時,才會釋放 Item。
如需物件包的詳細資訊,請參閱 物件包。
請注意,必須保留與包相關聯的 Mutex。 如需詳細資訊,請參閱AVStream 中的Mutexes。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Microsoft Windows XP 和更新版本的作系統和 DirectX 8.0 和更新版本的 DirectX 版本中提供。 |
目標平臺 | 普遍 |
標頭 | ks.h (包括 Ks.h) |
連結庫 | Ks.lib |
IRQL | PASSIVE_LEVEL |