次の方法で共有


PFND3D11_1DDI_ENCRYPTIONBLT コールバック関数 (d3d10umddi.h)

保護されたサーフェスから暗号化されたデータを読み取ります。

構文

PFND3D11_1DDI_ENCRYPTIONBLT Pfnd3d111DdiEncryptionblt;

void Pfnd3d111DdiEncryptionblt(
  D3D10DDI_HDEVICE hDevice,
  D3D11_1DDI_HCRYPTOSESSION hCryptoSession,
  D3D10DDI_HRESOURCE hSrcResource,
  D3D10DDI_HRESOURCE hDstResource,
  UINT IVSize,
  const VOID *pIV
)
{...}

パラメーター

hDevice

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

hCryptoSession

暗号化セッションのドライバーのプライベート データへのハンドル。 このハンドルは Direct3D ランタイムによって作成され、CreateCryptoSession 関数の呼び出しでドライバーに渡されました。

hSrcResource

ソース データを含むリソースへのハンドル。

hDstResource

暗号化されたデータが書き込まれるリソースへのポインター。

IVSize

初期化ベクトル (IV) のサイズ (バイト単位)。

pIV

bitblt データの暗号化に必要な初期化ベクトルを含むメモリ ブロックへのポインター。 詳細については、「解説」セクションを参照してください。

ノート  

pIV が NULL の場合、グラフィックス アダプターは、データを暗号化するために個別の初期化ベクトルを必要としません。 つまり、セッション キーはデータの暗号化に使用されます。

 

戻り値

何一つ

備考

この関数には、次の制限があります。

  • 関数は、サブレクトグルまたは部分的に暗号化されたサーフェスを読み取ることができません。
  • 関数は、部分的に暗号化されたバッファーを読み取ることができません。 多くのハードウェア ベースの暗号化ソリューションでは、保護されたメモリからの暗号化されていない読み取りは許可されません。
  • 保護されるサーフェスは、画面外のプレーン サーフェスまたはレンダー ターゲットである必要があります。
  • 宛先サーフェスは、前述のように、適切なアラインメントを使用して作成されたシステム メモリ サーフェスである必要があります。
  • 保護されたサーフェスをマルチサンプリングすることはできません。
  • この関数は、ストレッチや色空間の変換をサポートしていません。
128 ビット AES-CTR 暗号化の場合、pIV パラメーターは、アプリケーションによって割り当てられる D3D11_1DDI_AES_CTR_IV 構造を指します。 ただし、この構造体の実際の内容は、ドライバーまたはグラフィックス アダプターによって入力されます。 最初の IV が生成されると、ドライバーまたはアダプターは、この構造体の IV メンバーを乱数に初期化します。 後続の IV ごとに、呼び出し元は IV メンバーをインクリメントし、値が常に増加することを確認します。 この手順により、アプリケーションは、同じ IV が同じキー ペアで複数回使用されることはないことを検証できます。

他の暗号化の種類の場合は、別の構造が使用されるか、暗号化で IV が使用されない可能性があります。

この関数は、設定されている可能性がある Direct3D バージョン 11 述語を受け入れない点に注意してください。
 

必要条件

要件 価値
サポートされる最小クライアント Windows 8
サポートされる最小サーバー Windows Server 2012
ターゲット プラットフォーム デスクトップ
ヘッダー d3d10umddi.h (D3d10umddi.h を含む)

関連項目

CreateCryptoSession

D3D11_1DDI_AES_CTR_IV