D3DCONTENTPROTECTIONCAPS structure
Describes the content protection capabilities of a display driver. To get the capabilities, call IDirect3DDevice9Video::GetContentProtectionCaps.
Syntax
typedef struct _D3DCONTENTPROTECTIONCAPS { DWORD Caps; GUID KeyExchangeType; UINT BufferAlignmentStart; UINT BlockAlignmentSize; ULONGLONG ProtectedMemorySize; } D3DCONTENTPROTECTIONCAPS;
Members
- Caps
-
Bitwise OR of zero or more flags.
Value Meaning - D3DCPCAPS_SOFTWARE
- 0x00000001
The encryption is implemented in software by the driver.
- D3DCPCAPS_HARDWARE
- 0x00000002
The encryption is implemented in hardware by the GPU.
- D3DCPCAPS_PROTECTIONALWAYSON
- 0x00000004
Content protection is always applied to a protected Direct3D surface, regardless of whether the application explicitly enables content protection.
- D3DCPCAPS_PARTIALDECRYPTION
- 0x00000008
The driver can use partially encrypted buffers. If this capability is not present, the entire buffer must be either encrypted or clear.
- D3DCPCAPS_CONTENTKEY
- 0x00000010
The driver can encrypt data using a separate content key that is encrypted using the session key. For more information, see IDirect3DCryptoSession9::DecryptionBlt.
- D3DCPCAPS_FRESHENSESSIONKEY
- 0x00000020
The driver can refresh the session key without renegotiating the key. To refresh the session key, call IDirect3DCryptoSession9::StartSessionKeyRefresh.
- D3DCPCAPS_ENCRYPTEDREADBACK
- 0x00000040
The driver can read back encrypted data from a protected surface, using the IDirect3DCryptoSession9::EncryptionBlt method.
- D3DCPCAPS_ENCRYPTEDREADBACKKEY
- 0x00000080
The driver requires a separate key to read encrypted data from a protected surface. To get this second key, call IDirect3DCryptoSession9::GetEncryptionBltKey.
- D3DCPCAPS_SEQUENTIAL_CTR_IV
- 0x00000100
If the encryption type is D3DCRYPTOTYPE_AES128_CTR, the application must use a sequential count in the DXVA2_AES_CTR_IV structure. For more information, see the remarks for DXVA2_AES_CTR_IV.
- KeyExchangeType
-
Specifies the type of key exchange required to negotiate the session key. The following GUIDs are defined.
- BufferAlignmentStart
-
The memory alignment required for buffers used by the GPU cryptographic engine. If the application uses a system memory buffer to pass encrypted content to the GPU, or to read back encrypted content from the GPU, the buffer's starting address must be a multiple of this value.
- BlockAlignmentSize
-
The block alignment required by the GPU cryptographic engine. The size of data to be encrypted must be a multiple of this value.
- ProtectedMemorySize
-
The total amount of memory that can be used to hold protected surfaces.
Requirements
|
Minimum supported client |
Windows 7 [desktop apps only] |
|---|---|
|
Minimum supported server |
Windows Server 2008 R2 [desktop apps only] |
|
Header |
|
See also