共用方式為


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

另請參閱

KsAddItemToObjectBag

KsAllocateObjectBag

KsCopyObjectBagItems

KsDiscard

KsFreeObjectBag

KsMergeAutomationTables