KsAddItemToObjectBag 函式 (ks.h)

KsAddItemToObjectBag 函式會將物件或記憶體區塊新增至指定的物件包。

語法

KSDDKAPI NTSTATUS KsAddItemToObjectBag(
  [in]           KSOBJECT_BAG           ObjectBag,
  [in]           __drv_aliasesMem PVOID Item,
  [in, optional] PFNKSFREE              Free
);

參數

[in] ObjectBag

KSOBJECT_BAG (相当于要加入要求项目的 PVOID) 類型。 例如,每個 AVStream 物件 (KSFILTERKSPIN) 都包含名為 Bag 的成員。 傳遞此參數中的該成員。

[in] Item

要加入至物件包之專案的指標。

[in, optional] Free

從物件包中移除專案或刪除物件包時所呼叫的函式。 此函式通常用來釋放與 Item 相關聯的任何易失記憶體。 函式的原型應該如下:

void Free (IN PVOID Data);

如果呼叫端未指定這個選擇性參數,則會在從物件包中移除或刪除物件包時,使用 ExFreePool 釋放 Item

傳回值

會傳回STATUS_SUCCESS指出新增作業正常執行,或STATUS_INSUFFICIENT_RESOURCES表示作業無法繼續的系統資源。

備註

在呼叫 KsAddItemToObjectBag 之前,minidriver 必須取得與特定物件包相關聯的 Mutex。 如果 ObjectBagKSDEVICEKSFILTERFACTORY 的成員,請取得裝置 Mutex。 如果包是 KSFILTER 的成員,請取得篩選控件 Mutex。 如果包是 KSPIN 對象的成員,請取得父 KSFILTER 的篩選控件 Mutex。

如需詳細資訊,請參閱AVStream中的物件包和Mutex。

規格需求

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

另請參閱

ExFreePool

KsAllocateObjectBag

KsCopyObjectBagItems

KsDiscard

KsFreeObjectBag

KsRemoveItemFromObjectBag

_KsEdit