共用方式為


PFND3DDDI_ENCRYPTIONBLT回呼函式 (d3dumddi.h)

EncryptionBlt 函式會從受保護的表面讀取加密的數據。

語法

PFND3DDDI_ENCRYPTIONBLT Pfnd3dddiEncryptionblt;

HRESULT Pfnd3dddiEncryptionblt(
  HANDLE hDevice,
  const D3DDDIARG_ENCRYPTIONBLT *unnamedParam2
)
{...}

參數

hDevice

顯示裝置的句柄 (圖形內容) 。

unnamedParam2

pData [in]

D3DDDIARG_ENCRYPTIONBLT 結構的指標,描述加密位區塊傳輸 (bitblt) 作業的參數。

傳回值

EncryptionBlt 會 傳回下列其中一個值:

傳回碼 描述
S_OK 已成功執行加密的 bitblt 作業。
E_OUTOFMEMORY EncryptionBlt 無法配置所需的記憶體,使其完成。
D3DDDIERR_NOTAVAILABLE 驅動程式不支援 EncryptionBlt 函式。

備註

硬體和驅動程式可以選擇性地支援 EncryptionBlt。 有些硬體可能也需要使用不同的密鑰來解密所讀取的數據。 驅動程式會在 pIV 成員 D3DDDIARG_ENCRYPTIONBLT所 指向的記憶體區塊中傳回此索引鍵。

如果驅動程式和硬體針對加密 bitblt 使用不同的金鑰,應用程式必須辨識此事實並使用密鑰。

如果密碼編譯類型 D3DCRYPTOTYPE_AES128_CTR,pIV 會指向應用程式配置的D3DAES_CTR_IV結構。 不過,驅動程式和硬體會填入D3DAES_CTR_IV結構的實際內容。 當驅動程式和硬體產生第一個初始化向量時,它們應該將D3DAES_CTR_IV結構的 IV 成員初始化為不太大) 的隨機數 (。 每個後續的初始化向量應該只會遞增 IV 成員,以確保 IV 一律會以值增加。 這個事實可讓應用程式驗證相同的 IV 永遠不會使用相同的金鑰組多次使用。

EncryptionBlt 無法讀回子矩形。 EncryptionBlt 也無法讀取部分加密的緩衝區,因為許多硬體型解決方案不允許從受保護的記憶體進行非加密讀取。

Direct3D 運行時間會確認 D3DDDIARG_ENCRYPTIONBLT的 DstSubResourceIndex 成員所指定的目的地介面位於系統記憶體中,而且不會執行延展、色彩空間轉換等等。 應用程式應該確保系統記憶體緩衝區已正確對齊,且緩衝區的大小符合來源介面。 驅動程式應該確認記憶體對齊方式和緩衝區大小 (DstResourceSize 成員D3DDDIARG_ENCRYPTIONBLT) ,如果這些條件不正確,則失敗。

規格需求

需求
最低支援的用戶端 從 Windows 7 操作系統開始支援 EncryptionBlt。
目標平台 桌面
標頭 d3dumddi.h (包含 D3dumddi.h)

另請參閱

D3DDDIARG_ENCRYPTIONBLT

D3DDDI_DEVICEFUNCS