Expand Minimize

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.

ValueMeaning
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.

ValueMeaning
D3DKEYEXCHANGE_RSAES_OAEP

The decoder encrypts the session key using RSA Encryption Scheme - Optimal Asymmetric Encryption Padding (RSAES-OAEP).

D3DKEYEXCHANGE_DXVA

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

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

Direct3D Video Structures
IDirect3DDevice9Video::GetContentProtectionCaps

 

 

Community Additions

ADD
Show:
© 2014 Microsoft