IAMCertifiedOutputProtection::KeyExchange メソッド (strmif.h)
[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayer、IMFMediaEngine、Audio/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 値を返します。 使用可能な値は次のとおりです。
リターン コード | 説明 |
---|---|
|
成功しました。 |
|
無効な状態です。 アプリケーションが予期しないデータを渡したか、 IAMCertifiedOutputProtection メソッドを間違った順序で呼び出した可能性があります。 このエラーが発生した場合、アプリケーションは VMR の現在のインスタンスを解放する必要があります。 |
|
ディスプレイ デバイスは COPP をサポートしていません。または VMR がまだディスプレイ デバイスに接続されていません。 |
|
ディスプレイ デバイスに対応するモニターはありません。 このエラーは、表示モードが変更された場合に発生する可能性があります。または、ユーザーがモニターをオフにするか、モニターを削除します。 |
解説
グラフィックス ドライバーの証明書には、ドライバーの公開暗号化キーが含まれています。
このメソッドがE_UNEXPECTEDを返す場合、アプリケーションは、VMR を解放し、VMR の新しいインスタンスを作成し、新しいインスタンスでもう一度呼び出 KeyExchange
すことによって、新しい COPP セッションを作成する必要があります。
要件
サポートされている最小のクライアント | WINDOWS XP と SP2 [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2003 R2 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | strmif.h (Dshow.h を含む) |
Library | Strmiids.lib |