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 構造体へのポインター。
ContentKeySize
コンテンツ キーのサイズ (バイト単位)。
pContentKey
ビット ブロック転送 (bitblt) データの暗号化を解除するために必要なコンテンツ キーを含むメモリ ブロックへのポインター。
pContentKey が NULL に設定されていない場合、バッファー データは指定されたコンテンツ キーを使用して暗号化されます。 このキーのデータは、セッション キーと AES-ECB アルゴリズムを使用して暗号化されます。
pContentKey が NULL の場合、グラフィックス アダプターは、データの暗号化を解除するために別のコンテンツ キーを必要としません。 この場合、セッション キーを使用してデータの暗号化を解除します。
IVSize
初期化ベクトル (IV) のサイズ (バイト単位)。
pIV
bitblt データの暗号化を解除するために必要な初期化ベクターを含むメモリ ブロックへのポインター。 詳細については、「解説」セクションを参照してください。
pIV が NULL の場合、グラフィックス アダプターは、データの暗号化を解除するために個別の初期化ベクトルを必要としません。 つまり、セッション キーはデータの暗号化を解除するために使用されます。
戻り値
何一つ
備考
128 ビット AES-CTR 暗号化の場合、pIV パラメーターは、アプリケーションによって割り当てられる D3D11_1DDI_AES_CTR_IV 構造を指します。 ただし、この構造体の実際の内容は、ドライバーまたはグラフィックス アダプターによって入力されます。 最初の IV が生成されると、ドライバーまたはアダプターは、この構造体の IV メンバーを乱数に初期化します。 後続の IV ごとに、呼び出し元は IV メンバーをインクリメントし、値が常に増加することを確認します。 この手順により、アプリケーションは、同じ IV が同じキー ペアで複数回使用されることはないことを検証できます。
他の暗号化の種類の場合は、別の構造が使用されるか、暗号化で IV が使用されない可能性があります。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 8 |
サポートされる最小サーバー | Windows Server 2012 |
ターゲット プラットフォーム の | デスクトップ |
ヘッダー | d3d10umddi.h (D3d10umddi.h を含む) |