次の方法で共有


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