次の方法で共有


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

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

  

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

 

戻り値

なし

解説

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

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

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

メモ この関数では、設定されている可能性がある Direct3D バージョン 11 述語は使用されません。
 

要件

要件
サポートされている最小のクライアント Windows 8
サポートされている最小のサーバー Windows Server 2012
対象プラットフォーム デスクトップ
Header d3d10umddi.h (D3d10umddi.h を含む)

こちらもご覧ください

CreateCryptoSession

D3D11_1DDI_AES_CTR_IV