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


функция обратного вызова 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

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

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

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

IVSize

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

pIV

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

Примечание  

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

 

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

None

Remarks

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

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

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

Требования

Требование Значение
Минимальная версия клиента Windows 8
Минимальная версия сервера Windows Server 2012
Целевая платформа Персональный компьютер
Верхняя часть d3d10umddi.h (включая D3d10umddi.h)

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

D3D11_1DDI_AES_CTR_IV

D3D11_1DDI_ENCRYPTED_BLOCK_INFO

D3D11_1DDI_VIDEO_CONTENT_PROTECTION_CAPS