PFND3D11_1DDI_CREATECRYPTOSESSION コールバック関数 (d3d10umddi.h)
ディスプレイ ミニポート ドライバーに送信されるビデオ コンテンツを暗号化する暗号化セッションを作成します。
構文
PFND3D11_1DDI_CREATECRYPTOSESSION Pfnd3d111DdiCreatecryptosession;
HRESULT Pfnd3d111DdiCreatecryptosession(
D3D10DDI_HDEVICE hDevice,
const D3D11_1DDIARG_CREATECRYPTOSESSION *pCreateData,
D3D11_1DDI_HCRYPTOSESSION hCryptoSession,
D3D11_1DDI_HRTCRYPTOSESSION hRTCryptoSession
)
{...}
パラメーター
hDevice
ディスプレイ デバイスへのハンドル (グラフィックス コンテキスト)。
pCreateData
D3D11_1DDIARG_CREATECRYPTOSESSION構造体へのポインター。 この構造体は、作成する暗号化セッションの属性を指定します。
hCryptoSession
暗号化セッションのドライバーのプライベート データへのハンドル。 詳細については、「解説」を参照してください。
hRTCryptoSession
ドライバーが Direct3D ランタイムに呼び出すときに使用する暗号化セッションのハンドル。
戻り値
次の値のいずれか。
リターン コード | 説明 |
---|---|
S_OK | 認証されたチャネルが正常に作成されました。 |
D3DDDIERR_DEVICEREMOVED | グラフィックス アダプターが削除されました。 |
D3DDDIERR_UNSUPPORTEDCRYPTO | デコード プロファイルでサポートされていない暗号化の種類が指定されました。 |
E_OUTOFMEMORY | 操作を完了するためにメモリを使用できませんでした。 |
注釈
Direct3D ランタイムは CreateCryptoSession を 呼び出して、ランタイムがセッション キーを管理し、保護されたメモリに格納されているビデオ コンテンツの暗号化操作を実行するために使用する暗号化セッションを作成します。
ランタイムは、ドライバーの CalcPrivateCryptoSessionSize を呼び出した後、CreateCryptoSession を呼び出して、暗号化セッションにドライバーが必要とするプライベート データのサイズをバイト単位で決定します。 ランタイムは、ドライバーのこのプライベート データのメモリを割り当てます。 ドライバーは、このメモリを使用して、暗号化セッションに関連するプライベート データを格納します。
ランタイムが CreateCryptoSession を呼び出すと、 hCryptoSession パラメーターのプライベート データ メモリにハンドルが渡されます。 このハンドルは、実際にはメモリへのポインターです。
ドライバーは、暗号化セッションの作成に使用されたディスプレイ デバイスへのハンドルを追跡する必要があります。 ドライバーは、これらの呼び出しで指定されたディスプレイ デバイスが暗号化セッションの作成に使用されたディスプレイ デバイスと異なる場合、 NegotiateCryptoSessionKeyExchange など、この作成された暗号化セッションを使用する後続のすべての呼び出しに失敗する必要があります。
D3D11_1DDIARG_CREATECRYPTOSESSION構造体の DecodeProfile メンバーが NULL_GUID に設定されている場合、暗号化セッションは DirectX Video Acceleration (DXVA) デコードには使用されません。 DecodeProfile が NULL_GUID に設定されていない場合、CryptoType メンバーがデコード プロファイルでサポートされていない暗号化の種類に設定されている場合、ドライバーは D3DDDIERR_UNSUPPORTEDCRYPTO で呼び出しを失敗させる必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 8 |
サポートされている最小のサーバー | Windows Server 2012 |
対象プラットフォーム | デスクトップ |
Header | d3d10umddi.h (D3d10umddi.h を含む) |