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 物件 (KSFILTER 和 KSPIN) 都包含名為 Bag 的成員。 傳遞此參數中的該成員。
[in] Item
要加入至物件包之專案的指標。
[in, optional] Free
從物件包中移除專案或刪除物件包時所呼叫的函式。 此函式通常用來釋放與 Item 相關聯的任何易失記憶體。 函式的原型應該如下:
void Free (IN PVOID Data);
如果呼叫端未指定這個選擇性參數,則會在從物件包中移除或刪除物件包時,使用 ExFreePool 釋放 Item。
傳回值
會傳回STATUS_SUCCESS指出新增作業正常執行,或STATUS_INSUFFICIENT_RESOURCES表示作業無法繼續的系統資源。
備註
在呼叫 KsAddItemToObjectBag 之前,minidriver 必須取得與特定物件包相關聯的 Mutex。 如果 ObjectBag 是 KSDEVICE 或 KSFILTERFACTORY 的成員,請取得裝置 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 |