PFND3D11_1DDI_DECRYPTIONBLT回呼函式 (d3d10umddi.h)
將加密的數據寫入受保護的表面。 只有在D3D11_1DDI_CONTENT_PROTECTION_CAPS_DECRYPTION_BLT是在 D3D11_1DDI_VIDEO_CONTENT_PROTECTION_CAPS結構的Caps 成員中設定時,才會呼叫此函式。
語法
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) |