KsMergeAutomationTables 函式 (ks.h)
KsMergeAutomationTables 函式會合併兩個自動化數據表。
語法
KSDDKAPI NTSTATUS KsMergeAutomationTables(
[out] PKSAUTOMATION_TABLE *AutomationTableAB,
[in, optional] PKSAUTOMATION_TABLE AutomationTableA,
[in, optional] PKSAUTOMATION_TABLE AutomationTableB,
[in, optional] KSOBJECT_BAG Bag
);
參數
[out] AutomationTableAB
儲存 KSAUTOMATION_TABLE 指標的位置指標。 這個結構是產生的合併自動化數據表。
[in, optional] AutomationTableA
KSAUTOMATION_TABLE 結構的指標,代表要合併之兩個自動化數據表的第一個。 此數據表是與重複項目相關的主要數據表。 如果為NULL,AutomationTableB 會複製到 AutomationTableAB,並選擇性地放在 Bag 中。
[in, optional] AutomationTableB
KSAUTOMATION_TABLE 結構的指標,代表要合併之兩個自動化數據表的第二個。 如果為NULL,AutomationTableA 會複製到 AutomationTableAB,並選擇性地放在 Bag 中。
[in, optional] Bag
新建立的自動化數據表會放在這個KSOBJECT_BAG (中,相當於類型 PVOID) ,以供稍後清除。 這是選擇性參數。
傳回值
KsMergeAutomationTables 會在合併成功完成時傳回STATUS_SUCCESS。 如果失敗,則會傳回錯誤碼。 最常見的錯誤碼是STATUS_INSUFFICIENT_RESOURCES,這表示系統資源不足,無法完成合併。
備註
如果 AutomationTableA 和 AutomationTableB 都是 NULL,則此例程不會執行任何動作,並傳回STATUS_SUCCESS。
AutomationTableA 中的項目在合併中具有優先權。如果有一個專案同時出現在 AutomationTableA 和 AutomationTableB 中,AutomationTableA 中的專案就是放在合併數據表中的專案。 如果提供新建立的自動化數據表,則會放在要求的物件包中。
如果輸入數據表在呼叫時位於物件包中,AVStream 會在 KsMergeAutomationTables 傳回之前,先從物件包中移除數據表。
如果 Bag 參數不是 NULL,minidriver 應該先取得與物件包相關聯的 mutex,再呼叫此例程。 如果包與釘選或篩選相關聯,則必須保留控件 Mutex。 如果包與篩選處理站或裝置相關聯,則應該保留裝置 Mutex。 如需詳細資訊,請參閱 AVStream中的 Mutexes。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 適用於 Microsoft Windows XP 和更新版本的作業系統和 DirectX 8.0 和更新版本的 DirectX 版本。 |
目標平台 | Universal |
標頭 | ks.h (包含 Ks.h) |
程式庫 | Ks.lib |
IRQL | PASSIVE_LEVEL |