Структура D3DCONTENTPROTECTIONCAPS (d3d9caps.h)

Описывает возможности защиты содержимого драйвера дисплея. Чтобы получить возможности, вызовите IDirect3DDevice9Video::GetContentProtectionCaps.

Синтаксис

typedef struct _D3DCONTENTPROTECTIONCAPS {
  DWORD     Caps;
  GUID      KeyExchangeType;
  UINT      BufferAlignmentStart;
  UINT      BlockAlignmentSize;
  ULONGLONG ProtectedMemorySize;
} D3DCONTENTPROTECTIONCAPS;

Члены

Caps

Побитовое ИЛИ с нулевым или более флагами.

Значение Значение
D3DCPCAPS_SOFTWARE
0x00000001
Шифрование реализуется в программном обеспечении драйвером.
D3DCPCAPS_HARDWARE
0x00000002
Шифрование реализуется на оборудовании с помощью GPU.
D3DCPCAPS_PROTECTIONALWAYSON
0x00000004
Защита содержимого всегда применяется к защищенной поверхности Direct3D, независимо от того, включает ли приложение защиту содержимого явным образом.
D3DCPCAPS_PARTIALDECRYPTION
0x00000008
Драйвер может использовать частично зашифрованные буферы. Если эта возможность отсутствует, весь буфер должен быть зашифрован или очищен.
D3DCPCAPS_CONTENTKEY
0x00000010
Драйвер может шифровать данные с помощью отдельного ключа содержимого, зашифрованного с помощью ключа сеанса. Дополнительные сведения см. в разделе IDirect3DCryptoSession9::D ecryptionBlt.
D3DCPCAPS_FRESHENSESSIONKEY
0x00000020
Драйвер может обновить сеансовый ключ без повторного согласования ключа. Чтобы обновить ключ сеанса, вызовите метод IDirect3DCryptoSession9::StartSessionKeyRefresh.
D3DCPCAPS_ENCRYPTEDREADBACK
0x00000040
Драйвер может считывать зашифрованные данные с защищенной поверхности с помощью метода IDirect3DCryptoSession9::EncryptionBlt .
D3DCPCAPS_ENCRYPTEDREADBACKKEY
0x00000080
Драйверу требуется отдельный ключ для чтения зашифрованных данных с защищенной поверхности. Чтобы получить этот второй ключ, вызовите IDirect3DCryptoSession9::GetEncryptionBltKey.
D3DCPCAPS_SEQUENTIAL_CTR_IV
0x00000100
Если тип шифрования D3DCRYPTOTYPE_AES128_CTR, приложение должно использовать последовательный счетчик в структуре DXVA2_AES_CTR_IV . Дополнительные сведения см. в примечаниях для DXVA2_AES_CTR_IV.

KeyExchangeType

Указывает тип обмена ключами, необходимый для согласования сеансового ключа. Определены следующие идентификаторы GUID.

Значение Значение
D3DKEYEXCHANGE_RSAES_OAEP
Декодер шифрует ключ сеанса с помощью схемы шифрования RSA — оптимальное заполнение асимметричного шифрования (RSAES-OAEP).
D3DKEYEXCHANGE_DXVA
Используйте механизм обмена ключами, определенный для DirectX Video Acceleration 2 (DXVA-2).

BufferAlignmentStart

Выравнивание памяти, необходимое для буферов, используемых подсистемой шифрования GPU. Если приложение использует буфер системной памяти для передачи зашифрованного содержимого в GPU или для чтения зашифрованного содержимого из GPU, начальный адрес буфера должен быть кратным этому значению.

BlockAlignmentSize

Выравнивание блоков, необходимое для криптографического модуля GPU. Размер зашифрованных данных должен быть кратным этому значению.

ProtectedMemorySize

Общий объем памяти, который можно использовать для хранения защищенных поверхностей.

Требования

   
Минимальная версия клиента Windows 7 [только классические приложения]
Минимальная версия сервера Windows Server 2008 R2 [только классические приложения]
Верхняя часть d3d9caps.h (включая D3d9.h)

См. также раздел

Структуры видео Direct3D

IDirect3DDevice9Video::GetContentProtectionCaps