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