次の方法で共有


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

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

認定出力保護プロトコル (COPP) を使用するには、アプリケーションでまず、Video Mixing Render フィルター (VMR-7 または VMR-9) を含む DirectShow グラフをビルドする必要があります。 古いビデオ レンダラー フィルターでは、COPP はサポートされていません。 COPP メソッドを呼び出す前に、アプリケーションでビデオ再生グラフを作成し、デコーダーを VMR フィルターの入力ピンに接続する必要があります。 ビデオ ファイルを再生する必要はありません。

グラフを構築した後、 IAMCertifiedOutputProtection インターフェイスの VMR に対してクエリを実行し、 IAMCertifiedOutputProtection::KeyExchange を呼び出します。 このメソッドは、ドライバーの XML 証明書チェーンを UTF-8 形式で含むバイト配列へのポインターと共に、GUID として入力された 128 ビットの乱数を返します。 次のコードは、証明書チェーンを取得する方法を示しています。

GUID guidRandom;
BYTE *pbCertificateChain = NULL;
DWORD cbCertificateChainLen;   // Size of the certificate chain, in bytes.
hr = pCOPP->KeyExchange(&guidRandom, &pbCertificateChain,
         &cbCertificateChainLen);
if (SUCCEEDED(hr))
{
    // TODO: Validate the certificate chain and get the driver's
    // public key. 

    // When you are done, free the buffer that contains the 
    // certificate chain.
    CoTaskMemFree(pbCertificateChain);
}

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