共用方式為


ID3D11VideoCoNtext::D ecryptionBlt 方法 (d3d11.h)

將加密的資料寫入受保護的表面。

語法

void DecryptionBlt(
  [in] ID3D11CryptoSession        *pCryptoSession,
  [in] ID3D11Texture2D            *pSrcSurface,
  [in] ID3D11Texture2D            *pDstSurface,
  [in] D3D11_ENCRYPTED_BLOCK_INFO *pEncryptedBlockInfo,
  [in] UINT                       ContentKeySize,
  [in] const void                 *pContentKey,
  [in] UINT                       IVSize,
  [in] void                       *pIV
);

參數

[in] pCryptoSession

ID3D11CryptoSession介面的指標。

[in] pSrcSurface

包含來源資料的介面指標。

[in] pDstSurface

寫入加密資料之受保護表面的指標。

[in] pEncryptedBlockInfo

D3D11_ENCRYPTED_BLOCK_INFO結構的指標,或Null

如果驅動程式支援部分加密的緩衝區, pEncryptedBlockInfo 會指出緩衝區的哪些部分已加密。 如果整個表面已加密,請將此參數設定為 Null

若要檢查驅動程式是否支援部分加密的緩衝區,請呼叫 ID3D11VideoDevice::GetContentProtectionCaps 並檢查 D3D11_CONTENT_PROTECTION_CAPS_PARTIAL_DECRYPTION 功能旗標。 如果驅動程式不支援部分加密的緩衝區,請將此參數設定為 Null

[in] ContentKeySize

加密內容金鑰的大小,以位元組為單位。

[in] pContentKey

緩衝區的指標,其中包含內容加密金鑰或 Null。 若要查詢驅動程式是否支援使用內容金鑰,請呼叫 ID3D11VideoDevice::GetContentProtectionCaps 並檢查 D3D11_CONTENT_PROTECTION_CAPS_CONTENT_KEY 功能旗標。

如果驅動程式支援內容金鑰,請使用內容金鑰來加密介面。 使用工作階段金鑰加密內容金鑰,並將產生的加密文字放在 pContentKey中。 如果驅動程式不支援內容金鑰,請使用工作階段金鑰來加密介面,並將 pContentKey 設定為 Null

[in] IVSize

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

[in] pIV

緩衝區的指標,其中包含初始化向量 (IV) 。

針對 128 位 AES-CTR 加密, pIV 會指向 D3D11_AES_CTR_IV 結構。 呼叫端會配置 結構並產生 IV。 當您產生第一個 IV 時,請將 結構初始化為亂數。 針對每個後續的 IV,只要遞增 結構的 IV 成員,確保值一律增加。 此程式可讓驅動程式驗證同一個 IV 永遠不會多次搭配相同的金鑰組使用。

針對其他加密類型,可能會使用不同的結構,或者加密可能不會使用 IV。

傳回值

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

備註

並非所有硬體或驅動程式都支援所有密碼編譯類型的功能。 只有在報告 D3D11_CONTENT_PROTECTION_CAPS_DECRYPTION_BLT 上限時,才能呼叫此函式。

此方法不支援寫入表面的子矩形。

如果硬體和驅動程式支援內容金鑰:

  • 資料會使用內容金鑰由呼叫端加密。
  • 內容金鑰是由呼叫端使用工作階段金鑰加密。
  • 加密的內容金鑰會傳遞至驅動程式。
否則,呼叫端會使用工作階段金鑰來加密資料,而 Null 會當做內容金鑰傳遞。

如果驅動程式和硬體支援部分加密的緩衝區, pEncryptedBlockInfo 會指出緩衝區的哪些部分已加密,但不是。 如果整個緩衝區已加密, pEncryptedBlockinfo 應該是 Null

D3D11_ENCRYPTED_BLOCK_INFO可讓應用程式指出緩衝區中的位元組已加密。 這會以位元組為單位指定,因此應用程式必須確定加密的區塊符合 GPU 的加密區塊對齊方式。

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

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

規格需求

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

另請參閱

ID3D11VideoCoNtext