共用方式為


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 結構的指標,描述已加密之緩衝區的部分。

注意 如果整個緩衝區已加密, pEncryptedBlockinfo 應該設定為 NULL。
 

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。

注意 此函式不接受可能已設定的 Direct3D 版本 11 述詞。
 

規格需求

需求
最低支援的用戶端 Windows 8
最低支援的伺服器 Windows Server 2012
目標平台 桌面
標頭 d3d10umddi.h (包含 D3d10umddi.h)

另請參閱

D3D11_1DDI_AES_CTR_IV

D3D11_1DDI_ENCRYPTED_BLOCK_INFO

D3D11_1DDI_VIDEO_CONTENT_PROTECTION_CAPS