Note
Access to this page requires authorization. You can try signing in or .
Access to this page requires authorization. You can try .
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.
| Value | Meaning |
|---|---|
|
The decoder encrypts the session key using RSA Encryption Scheme - Optimal Asymmetric Encryption Padding (RSAES-OAEP). |
|
Use the key exchange mechanism defined for DirectX Video Acceleration 2 (DXVA-2). |
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) |
See also
Feedback
Was this page helpful?
