ID3D11VideoContext::EncryptionBlt 方法 (d3d11.h)

從受保護的表面讀取加密的數據。

語法

void EncryptionBlt(
  [in] ID3D11CryptoSession *pCryptoSession,
  [in] ID3D11Texture2D     *pSrcSurface,
  [in] ID3D11Texture2D     *pDstSurface,
  [in] UINT                IVSize,
  [in] void                *pIV
);

參數

[in] pCryptoSession

密碼編譯會話之 ID3D11CryptoSession 介面的指標。

[in] pSrcSurface

受保護表面之 ID3D11Texture2D 介面的指標。

[in] pDstSurface

接收加密數據之介面之 ID3D11Texture2D 介面的指標。

[in] IVSize

pIV 緩衝區的大小,以位元組為單位。

[in] pIV

接收初始化向量之緩衝區的指標, (IV) 。 呼叫端會配置此緩衝區,但驅動程式會產生IV。

若為128位 AES-CTR 加密, pIV 會指向 D3D11_AES_CTR_IV 結構。 當驅動程式產生第一個IV時,它會將結構初始化為隨機數。 針對每個後續的 IV,驅動程式只會遞增 結構的 IV 成員,以確保值一律增加。 應用程式可以驗證相同的 IV 永遠不會使用相同的金鑰組多次使用。

傳回值

如果此方法成功,則會傳回 S_OK。 否則,它會傳回 HRESULT 錯誤碼。

備註

並非所有驅動程式都支援此方法。 若要查詢驅動程式功能,請呼叫 ID3D11VideoDevice::GetContentProtectionCaps ,並在 D3D11_VIDEO_CONTENT_PROTECTION_CAPS 結構的 Caps 成員中檢查 D3D11_CONTENT_PROTECTION_CAPS_ENCRYPTED_READ_BACK 旗標。

某些驅動程式可能需要個別的密鑰來解密所讀取的數據。 若要檢查此需求,請呼叫 GetContentProtectionCaps 並檢查 D3D11_CONTENT_PROTECTION_CAPS_ENCRYPTED_READ_BACK_KEY 旗標。 如果存在此旗標,請呼叫 ID3D11VideoContext::GetEncryptionBltKey 以取得解密密鑰。

此方法有下列限制:

  • 不支援回讀子矩形。
  • 不支援回讀部分加密表面。
  • 受保護的表面必須是螢幕外純螢幕或轉譯目標。
  • 目的地介面必須是 D3D11_USAGE_STAGING 資源。
  • 受保護的表面無法進行多重取樣。
  • 不支援延展和色彩空間轉換。

此函式不接受可能已設定的 D3D11 述詞。

如果應用程式使用 D3D11 查詢,則使用低於 11 的功能層級時,此函式可能不會考慮 D3D11_QUERY_EVENTD3D11_QUERY_TIMESTAMPD3D11_QUERY_PIPELINE_STATISTICS 不會針對任何功能層級包含此函式。

規格需求

需求
最低支援的用戶端 Windows 8 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2012 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 d3d11.h

另請參閱

ID3D11VideoContext