Windows apps
Collapse the table of content
Expand the table of content
Information
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

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

 

 

Show:
© 2017 Microsoft