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 にコピーされ、必要に応じて バッグに配置されます。
[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 バージョンで使用できます。 |
ターゲット プラットフォーム の | 万国 |
ヘッダー | ks.h (Ks.h を含む) |
ライブラリ | Ks.lib |
IRQL | PASSIVE_LEVEL |
関連項目
KsAddItemToObjectBag の
KsCopyObjectBagItems を する
KsRemoveItemFromObjectBag の