次の方法で共有


COPP の概要

[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayerIMFMediaEngineAudio/Video Capture を使用することを強くお勧めします。 Microsoft は、レガシ API を使用する既存のコードを、可能であれば新しい API を使用するように書き換えるよう提案しています。]

認定出力保護プロトコル (COPP) を使用するためにアプリケーションが実行する必要がある基本的な手順を次に示します。

ドライバーの証明書チェーンを取得する

  1. ビデオ ミキシング レンダラー (VMR-7 または VMR-9) または 拡張ビデオ レンダラー フィルター (EVR) を使用してビデオをレンダリングする DirectShow 再生グラフを作成します。
  2. IAMCertifiedOutputProtection インターフェイスの VMR に対してクエリを実行します。
  3. IAMCertifiedOutputProtection::KeyExchange を呼び出します。 このメソッドは、ドライバーから 128 ビットの乱数と、ドライバーの 2048 ビット RSA 公開キーを含む証明書チェーンを返します。

証明書チェーンを検証する

  1. 証明書チェーンを検証します。 証明書チェーンが無効な場合は、停止します。
  2. 証明書失効リスト (CRL) を確認します。 証明書チェーン内のいずれかの証明書が失効リストに表示される場合は、停止します。
  3. 証明書チェーンから RSA 公開キーを取得します。

COPP セッションを初期化する

  1. 128 ビット AES セッション キーを生成します。 このキーは、データに署名し、署名されたデータが改ざんされていないことを確認するために使用されます。
  2. 2 つの暗号で保護された 32 ビット乱数を生成します。 1 つ目は状態シーケンス番号、2 つ目はコマンド シーケンス番号です。 アプリケーションは、コマンドまたは状態要求を送信するたびに、対応するシーケンス番号をインクリメントし、この番号を COPP コマンドまたは要求データに含めます。
  3. グラフィックス ドライバーから 128 ビットの乱数、AES セッション キー、状態シーケンス番号、およびコマンド シーケンス番号を連結します。 ドライバーの公開キーを使用してこのバイト配列を暗号化し、結果を IAMCertifiedOutputProtection::SessionSequenceStart に渡します

COPP コマンドと状態要求を送信する

  1. IAMCertifiedOutputProtection::P rotectionStatus を呼び出して、使用可能な保護の種類とその他の情報を照会します。
  2. IAMCertifiedOutputProtection::P rotectionCommand を呼び出して、目的の保護レベルを設定します。
  3. 現在のローカル保護レベルのクエリを定期的に実行します。 ローカル保護レベルが予期せず変更された場合、または問題が検出された場合は、再生を停止します。

認定出力保護プロトコル (COPP) の使用