Поделиться через


функция обратного вызова PFND3D11_1DDI_DECRYPTIONBLT (d3d10umddi.h)

Записывает зашифрованные данные в защищенную поверхность. Эта функция вызывается только в том случае, если D3D11_1DDI_CONTENT_PROTECTION_CAPS_DECRYPTION_BLT задан в caps член структуры D3D11_1DDI_VIDEO_CONTENT_PROTECTION_CAPS.

Синтаксис

PFND3D11_1DDI_DECRYPTIONBLT Pfnd3d111DdiDecryptionblt;

void Pfnd3d111DdiDecryptionblt(
  D3D10DDI_HDEVICE hDevice,
  D3D11_1DDI_HCRYPTOSESSION hCryptoSession,
  D3D10DDI_HRESOURCE hSrcResource,
  D3D10DDI_HRESOURCE hDstResource,
  const D3D11_1DDI_ENCRYPTED_BLOCK_INFO *pEncryptedBlockInfo,
  UINT ContentKeySize,
  const VOID *pContentKey,
  UINT IVSize,
  const VOID *pIV
)
{...}

Параметры

hDevice

Дескриптор устройства отображения (графический контекст).

hCryptoSession

Дескриптор частных данных драйвера для криптографического сеанса. Этот дескриптор был создан средой выполнения Direct3D и передан драйверу в вызове функции CreateCryptoSession.

hSrcResource

Дескриптор ресурса, содержащего исходные данные.

hDstResource

Указатель на ресурс, в котором записываются зашифрованные данные.

pEncryptedBlockInfo

Указатель на структуру D3D11_1DDI_ENCRYPTED_BLOCK_INFO, описывающую части буфера, зашифрованные.

Примечание Если весь буфер зашифрован, pEncryptedBlockinfo должно иметь значение NULL.
 

ContentKeySize

Размер ключа содержимого в байтах.

pContentKey

Указатель на блок памяти, содержащий ключ содержимого, необходимый для расшифровки данных передачи (bitblt).

Если pContentKey не задано значение NULL, буферные данные шифруются с помощью указанного ключа содержимого. Данные для этого ключа шифруются с помощью ключа сеанса с алгоритмом AES-ECB.

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

IVSize

Размер в байтах вектора инициализации (IV).

pIV

Указатель на блок памяти, содержащий вектор инициализации, необходимый для расшифровки данных bitblt. Дополнительные сведения см. в разделе "Примечания".

Примечание   

Если pIV имеет значение NULL, графический адаптер не требует отдельного вектора инициализации для расшифровки данных. То есть ключ сеанса используется для расшифровки данных.

 

Возвращаемое значение

Никакой

Замечания

Для 128-разрядного шифрования AES-CTR параметр p IV указывает на структуру D3D11_1DDI_AES_CTR_IV, выделенную приложением. Однако фактическое содержимое этой структуры заполняется драйвером или графическим адаптером. При создании первого IV драйвер или адаптер инициализирует IV член этой структуры случайным числом. Для каждого последующего IV вызывающий объект увеличивает IV член, гарантируя, что значение всегда увеличивается. Эта процедура позволяет приложению проверить, что один и тот же IV никогда не используется несколько раз с одной парой ключей.

Для других типов шифрования может использоваться другая структура или шифрование может не использовать IV.

Примечание Эта функция не учитывает предикат Direct3D версии 11, который может быть задан.
 

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 8
минимальный поддерживаемый сервер Windows Server 2012
целевая платформа Настольный
заголовка d3d10umddi.h (include D3d10umddi.h)

См. также

D3D11_1DDI_AES_CTR_IV

D3D11_1DDI_ENCRYPTED_BLOCK_INFO

D3D11_1DDI_VIDEO_CONTENT_PROTECTION_CAPS