次の方法で共有


PFND3DDDI_DECRYPTIONBLT コールバック関数 (d3dumddi.h)

DecryptionBlt 関数は、保護されたサーフェスにデータを書き込みます。

構文

PFND3DDDI_DECRYPTIONBLT Pfnd3dddiDecryptionblt;

HRESULT Pfnd3dddiDecryptionblt(
  HANDLE hDevice,
  const D3DDDIARG_DECRYPTIONBLT *unnamedParam2
)
{...}

パラメーター

hDevice

ディスプレイ デバイスへのハンドル (グラフィックス コンテキスト)。

unnamedParam2

pData [in]

復号化されたビット ブロック転送 (bitblt) 操作のパラメーターを記述する D3DDDIARG_DECRYPTIONBLT 構造体へのポインター。

戻り値

DecryptionBlt は、次のいずれかの値を返します。

リターン コード 形容
S_OK 復号化されたビットblt操作が正常に実行されます。
E_OUTOFMEMORY DecryptionBlt は、完了するために必要なメモリを割り当てませんでした。
D3DDDIERR_NOTAVAILABLE ドライバーは DecryptionBlt 関数をサポートしていません。

備考

ハードウェアとドライバーは、必要に応じて、一部の暗号化の種類 DecryptionBlt をサポートできます。

呼び出し元のアプリケーションでコンテンツ キーを使用する必要がある場合、アプリケーションはコンテンツ キーを使用してデータを暗号化し、セッション キーを使用してコンテンツ キーを暗号化してから、D3DDDIARG_DECRYPTIONBLT のメンバー pContentKey が指すメモリ ブロックにコンテンツ キーを渡します。 pContentKey NULL 場合は、アプリケーションがセッション キーを使用してデータを暗号化したことを示します。

ドライバーの CreateCryptoSession 関数が、D3DDDIARG_CREATECRYPTOSESSION 構造体の CryptoType メンバーをD3DCRYPTOTYPE_AES128_CTRに設定して暗号化セッションを作成した場合、D3DDDIARG_DECRYPTIONBLTpIV メンバーは DXVADDI_PVP_HW_IV 構造体を指し、アプリケーションがバッファーの暗号化に使用した初期化ベクトルを含みます。 ドライバーの DecryptionBlt 関数は、初期化ベクターが以前に同じコンテンツ キー (またはコンテンツ キーが使用されていない場合はセッション キー) に使用されていたと判断した場合に失敗する必要があります。 アプリケーションは、アプリケーションが暗号化するバッファーごとに、DXVADDI_PVP_HW_IV構造体の IV メンバーをインクリメントする必要があります。 そのため、ドライバーの DecryptionBlt 関数は、IV メンバーが、DecryptionBltに渡された前の IV 値以下の場合に失敗する可能性があります。

ドライバーとハードウェアが部分的に暗号化されたバッファーをサポートしている場合、D3DDDIARG_DECRYPTIONBLTpEncryptedBlockInfo メンバーは、暗号化されているバッファーの部分と暗号化されていない部分を示します。 バッファー全体が暗号化されている場合は、pEncryptedBlockInfo を NULL する必要があります。

DecryptionBlt はサブ四角形を書き込めません。

Direct3D ランタイムは、D3DDDIARG_DECRYPTIONBLT 構造体の SrcSubResourceIndex メンバーによって指定されたソース サーフェイスがシステム メモリ内にあり、ストレッチや色空間変換などが実行されていないことを確認します。 アプリケーションでは、システム メモリ バッファーが適切に配置されていること、およびバッファーのサイズが宛先サーフェスと一致することを確認する必要があります。 ドライバーは、メモリの配置とバッファー サイズ (SrcResourceSize D3DDDIARG_DECRYPTIONBLT のメンバー) を確認し、これらの条件が正しくない場合は失敗する必要があります。

必要条件

要件 価値
サポートされる最小クライアント DecryptionBlt は、Windows 7 オペレーティング システム以降でサポートされています。
ターゲット プラットフォーム デスクトップ
ヘッダー d3dumddi.h (D3dumddi.h を含む)

関連項目

CreateCryptoSession

D3DDDIARG_CREATECRYPTOSESSION

D3DDDIARG_DECRYPTIONBLT

D3DDDI_DEVICEFUNCS