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 中。

一個傳回值表示 專案 已成功從 ObjectBag 移除,而且它不在任何其他物件包中。 如果在此案例中要求免費,AVStream 會使用在 KsAddItemToObjectBag 呼叫時間指定的 ExFreePool 或 Free 方法釋放 Item

上方的傳回值表示專案存在於另一個物件包中,而且該物件包上仍有參考。 在此情況下,AVStream 已從 ObjectBag 移除 Item,但不會釋放它,而不論 Free 的值為何。

備註

KsRemoveItemFromObjectBag 只有在此項目的參考數目為零且要求免費時,才會釋放 Item

如需物件包的詳細資訊,請參閱 物件包

請注意,必須保留與包相關聯的 Mutex。 如需詳細資訊,請參閱 AVStream中的 Mutexes

規格需求

需求
最低支援的用戶端 適用於 Microsoft Windows XP 和更新版本的作業系統和 DirectX 8.0 和更新版本的 DirectX 版本。
目標平台 Universal
標頭 ks.h (包含 Ks.h)
程式庫 Ks.lib
IRQL PASSIVE_LEVEL

另請參閱

KsAddItemToObjectBag

KsAllocateObjectBag

KsCopyObjectBagItems

KsDiscard

KsFreeObjectBag

KsMergeAutomationTables