共用方式為


D3DCONTENTPROTECTIONCAPS 結構 (d3d9caps.h)

描述顯示驅動程式的內容保護功能。 若要取得功能,請呼叫 IDirect3DDevice9Video::GetContentProtectionCaps

語法

typedef struct _D3DCONTENTPROTECTIONCAPS {
  DWORD     Caps;
  GUID      KeyExchangeType;
  UINT      BufferAlignmentStart;
  UINT      BlockAlignmentSize;
  ULONGLONG ProtectedMemorySize;
} D3DCONTENTPROTECTIONCAPS;

成員

Caps

OR 為零個或多個旗標。

意義
D3DCPCAPS_SOFTWARE
0x00000001
驅動程式會在軟體中實作加密。
D3DCPCAPS_HARDWARE
0x00000002
加密是由 GPU 在硬體中實作。
D3DCPCAPS_PROTECTIONALWAYSON
0x00000004
不論應用程式是否明確啟用內容保護,內容保護一律會套用至受保護的 Direct3D 表面。
D3DCPCAPS_PARTIALDECRYPTION
0x00000008
驅動程式可以使用部分加密的緩衝區。 如果這項功能不存在,整個緩衝區必須經過加密或清除。
D3DCPCAPS_CONTENTKEY
0x00000010
驅動程式可以使用使用工作階段金鑰加密的個別內容金鑰來加密資料。 如需詳細資訊,請參閱 IDirect3DCryptoSession9::D ecryptionBlt
D3DCPCAPS_FRESHENSESSIONKEY
0x00000020
驅動程式可以重新整理工作階段金鑰,而不需重新交涉金鑰。 若要重新整理工作階段金鑰,請呼叫 IDirect3DCryptoSession9::StartSessionKeyRefresh
D3DCPCAPS_ENCRYPTEDREADBACK
0x00000040
驅動程式可以使用 IDirect3DCryptoSession9::EncryptionBlt 方法,從受保護的表面讀取加密的資料。
D3DCPCAPS_ENCRYPTEDREADBACKKEY
0x00000080
驅動程式需要個別的金鑰,才能從受保護的表面讀取加密的資料。 若要取得第二個金鑰,請呼叫 IDirect3DCryptoSession9::GetEncryptionBltKey
D3DCPCAPS_SEQUENTIAL_CTR_IV
0x00000100
如果加密類型 D3DCRYPTOTYPE_AES128_CTR,應用程式必須在 DXVA2_AES_CTR_IV 結構中使用循序計數。 如需詳細資訊,請參閱 DXVA2_AES_CTR_IV的備註。

KeyExchangeType

指定交涉工作階段金鑰所需的金鑰交換類型。 定義下列 GUID。

意義
D3DKEYEXCHANGE_RSAES_OAEP
解碼器會使用 RSA 加密配置 - 最佳非對稱加密填補 (RSAES-OAEP) 來加密工作階段金鑰。
D3DKEYEXCHANGE_DXVA
使用針對 DirectX 視訊加速 2 所定義的金鑰交換器制, (DXVA-2) 。

BufferAlignmentStart

GPU 密碼編譯引擎所使用的緩衝區所需的記憶體對齊方式。 如果應用程式使用系統記憶體緩衝區將加密的內容傳遞至 GPU,或從 GPU 讀取加密的內容,緩衝區的起始位址必須是此值的倍數。

BlockAlignmentSize

GPU 密碼編譯引擎所需的區塊對齊方式。 要加密的資料大小必須是此值的倍數。

ProtectedMemorySize

可用來保存受保護表面的記憶體總量。

需求

   
最低支援的用戶端 Windows 7 [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 R2 [僅限桌面應用程式]
標頭 d3d9caps.h (包含 D3d9.h)

另請參閱

Direct3D 視訊結構

IDirect3DDevice9Video::GetContentProtectionCaps