функция обратного вызова 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 , описывающую зашифрованные части буфера.
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 никогда не используется более одного раза с одной и той же парой ключей.
Для других типов шифрования может использоваться другая структура или шифрование может не использовать инициализацию.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 8 |
Минимальная версия сервера | Windows Server 2012 |
Целевая платформа | Персональный компьютер |
Верхняя часть | d3d10umddi.h (включая D3d10umddi.h) |