次の方法で共有


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

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

構文

PFND3DDDI_DECRYPTIONBLT Pfnd3dddiDecryptionblt;

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

パラメーター

hDevice

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

unnamedParam2

pData [in]

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

戻り値

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

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

注釈

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

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

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

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

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

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

要件

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

こちらもご覧ください

CreateCryptoSession

D3DDDIARG_CREATECRYPTOSESSION

D3DDDIARG_DECRYPTIONBLT

D3DDDI_DEVICEFUNCS