D3DCONTENTPROTECTIONCAPS structure (d3d9caps.h)
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 |
---|---|
|
The encryption is implemented in software by the driver. |
|
The encryption is implemented in hardware by the GPU. |
|
Content protection is always applied to a protected Direct3D surface, regardless of whether the application explicitly enables content protection. |
|
The driver can use partially encrypted buffers. If this capability is not present, the entire buffer must be either encrypted or clear. |
|
The driver can encrypt data using a separate content key that is encrypted using the session key. For more information, see IDirect3DCryptoSession9::DecryptionBlt. |
|
The driver can refresh the session key without renegotiating the key. To refresh the session key, call IDirect3DCryptoSession9::StartSessionKeyRefresh. |
|
The driver can read back encrypted data from a protected surface, using the IDirect3DCryptoSession9::EncryptionBlt method. |
|
The driver requires a separate key to read encrypted data from a protected surface. To get this second key, call IDirect3DCryptoSession9::GetEncryptionBltKey. |
|
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
Requirement | Value |
---|---|
Minimum supported client | Windows 7 [desktop apps only] |
Minimum supported server | Windows Server 2008 R2 [desktop apps only] |
Header | d3d9caps.h (include D3d9.h) |