KsMergeAutomationTables 関数 (ks.h)
KsMergeAutomationTables 関数は、2 つのオートメーション テーブルをマージします。
構文
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
マージする 2 つのオートメーション テーブルの最初を表すKSAUTOMATION_TABLE構造体へのポインター。 このテーブルは、重複するエントリに関する主要なテーブルです。 NULL の場合、AutomationTableB は AutomationTableAB にコピーされ、必要に応じて Bag に配置されます。
[in, optional] AutomationTableB
マージする 2 つのオートメーション テーブルの 2 つ目を表す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 でない場合、ミニドライバーは、このルーチンを呼び出す前に、オブジェクト バッグに関連付けられているミューテックスを受け取る必要があります。 バッグがピンまたはフィルターに関連付けられている場合は、制御ミューテックスを保持する必要があります。 バッグがフィルター ファクトリまたはデバイスに関連付けられている場合は、デバイス ミューテックスを保持する必要があります。 詳細については、「 AVStream のミューテックス」を参照してください。
「 オブジェクト バッグ 」および 「オートメーション テーブルの定義」も参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Microsoft Windows XP 以降のオペレーティング システムおよび DirectX 8.0 以降の DirectX バージョンで使用できます。 |
対象プラットフォーム | ユニバーサル |
Header | ks.h (Ks.h を含む) |
Library | Ks.lib |
IRQL | PASSIVE_LEVEL |