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

暗号化されたデータを保護されたサーフェスに書き込みます。 この関数は、D3D11_1DDI_VIDEO_CONTENT_PROTECTION_CAPS構造体Caps メンバーにD3D11_1DDI_CONTENT_PROTECTION_CAPS_DECRYPTION_BLTが設定されている場合にのみ呼び出されます。

構文

PFND3D11_1DDI_DECRYPTIONBLT Pfnd3d111DdiDecryptionblt;

void Pfnd3d111DdiDecryptionblt(
  D3D10DDI_HDEVICE hDevice,
  D3D11_1DDI_HCRYPTOSESSION hCryptoSession,
  D3D10DDI_HRESOURCE hSrcResource,
  D3D10DDI_HRESOURCE hDstResource,
  const D3D11_1DDI_ENCRYPTED_BLOCK_INFO *pEncryptedBlockInfo,
  UINT ContentKeySize,
  const VOID *pContentKey,
  UINT IVSize,
  const VOID *pIV
)
{...}

パラメーター

hDevice

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

hCryptoSession

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

hSrcResource

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

hDstResource

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

pEncryptedBlockInfo

暗号化されるバッファーの部分を記述する D3D11_1DDI_ENCRYPTED_BLOCK_INFO 構造体へのポインター。

メモ バッファー全体が暗号化されている場合は、 pEncryptedBlockinfo を NULL に設定する必要があります。
 

ContentKeySize

コンテンツ キーのサイズ (バイト単位)。

pContentKey

ビット ブロック転送 (bitblt) データの暗号化を解除するために必要なコンテンツ キーを含むメモリ ブロックへのポインター。

pContentKey が NULL に設定されていない場合、バッファー データは指定されたコンテンツ キーを使用して暗号化されます。 このキーのデータは、セッション キーと AES-ECB アルゴリズムを使用して暗号化されます。

pContentKey が NULL の場合、グラフィックス アダプターでは、データの暗号化を解除するために別のコンテンツ キーは必要ありません。 この場合、セッション キーを使用してデータの暗号化を解除します。

IVSize

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

pIV

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

  

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

 

戻り値

なし

解説

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 を含む)

こちらもご覧ください

D3D11_1DDI_AES_CTR_IV

D3D11_1DDI_ENCRYPTED_BLOCK_INFO

D3D11_1DDI_VIDEO_CONTENT_PROTECTION_CAPS