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,這表示系統資源不足,無法完成合併。

備註

如果 AutomationTableAAutomationTableB 都是 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

另請參閱

KsAddItemToObjectBag

KsCopyObjectBagItems

KsRemoveItemFromObjectBag