次の方法で共有


IAMCertifiedOutputProtection::KeyExchange メソッド (strmif.h)

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

KeyExchange メソッドは、グラフィックス ドライバーの証明書を返します。

構文

HRESULT KeyExchange(
  [out] GUID  *pRandom,
  [out] BYTE  **VarLenCertGH,
  [out] DWORD *pdwLengthCertGH
);

パラメーター

[out] pRandom

グラフィックス ドライバーによって生成された 128 ビットの乱数を受け取ります。 この値は、 IAMCertifiedOutputProtection::SessionSequenceStart メソッドで 使用します。

[out] VarLenCertGH

グラフィックス ドライバーの証明書を含むバッファーへのポインターを受け取ります。 メソッドは、バッファーのメモリを割り当てます。 呼び出し元は 、CoTaskMemFree を呼び出してメモリを解放する必要があります。

[out] pdwLengthCertGH

VarLenCertGH で返されるバッファーの長さを受け取ります。

戻り値

HRESULT 値を返します。 使用可能な値は次のとおりです。

リターン コード 説明
S_OK
成功しました。
E_UNEXPECTED
無効な状態です。 アプリケーションが予期しないデータを渡したか、 IAMCertifiedOutputProtection メソッドを間違った順序で呼び出した可能性があります。 このエラーが発生した場合、アプリケーションは VMR の現在のインスタンスを解放する必要があります。
VFW_E_NO_COPP_HW
ディスプレイ デバイスは COPP をサポートしていません。または VMR がまだディスプレイ デバイスに接続されていません。
ERROR_GRAPHICS_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE
ディスプレイ デバイスに対応するモニターはありません。 このエラーは、表示モードが変更された場合に発生する可能性があります。または、ユーザーがモニターをオフにするか、モニターを削除します。

解説

グラフィックス ドライバーの証明書には、ドライバーの公開暗号化キーが含まれています。

このメソッドがE_UNEXPECTEDを返す場合、アプリケーションは、VMR を解放し、VMR の新しいインスタンスを作成し、新しいインスタンスでもう一度呼び出 KeyExchange すことによって、新しい COPP セッションを作成する必要があります。

要件

   
サポートされている最小のクライアント WINDOWS XP と SP2 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2003 R2 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー strmif.h (Dshow.h を含む)
Library Strmiids.lib

関連項目

IAMCertifiedOutputProtection インターフェイス

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