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);
如果呼叫端未指定這個選擇性參數,Item 會在從物件包移除或刪除物件包時,釋放 ExFreePool。
傳回值
傳回STATUS_SUCCESS表示加法正常執行,或STATUS_INSUFFICIENT_RESOURCES表示作業無法繼續的系統資源不足。
言論
呼叫 KsAddItemToObjectBag之前,minidriver 必須取得與特定物件包相關聯的 mutex。 如果 ObjectBag 是 KSDEVICE 或 KSFILTERFACTORY的成員,請取得裝置 mutex。 如果包是 KSFILTER的成員,請取得篩選控件 Mutex。 如果包是 KSPIN 對象的成員,請取得父 KSFILTER 的篩選控制件 Mutex。
如需詳細資訊,請參閱AVStream 中的 物件包 和Mutexes。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Microsoft Windows XP 和更新版本的作系統和 DirectX 8.0 和更新版本的 DirectX 版本中提供。 |
目標平臺 | 普遍 |
標頭 | ks.h (包括 Ks.h) |
連結庫 | Ks.lib |
IRQL | PASSIVE_LEVEL |