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

Создает сеанс шифрования для шифрования видеосодержимого, отправляемого в драйвер мини-порта дисплея.

Синтаксис

PFND3D11_1DDI_CREATECRYPTOSESSION Pfnd3d111DdiCreatecryptosession;

HRESULT Pfnd3d111DdiCreatecryptosession(
  D3D10DDI_HDEVICE hDevice,
  const D3D11_1DDIARG_CREATECRYPTOSESSION *pCreateData,
  D3D11_1DDI_HCRYPTOSESSION hCryptoSession,
  D3D11_1DDI_HRTCRYPTOSESSION hRTCryptoSession
)
{...}

Параметры

hDevice

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

pCreateData

Указатель на структуру D3D11_1DDIARG_CREATECRYPTOSESSION . Эта структура определяет атрибуты создаваемого сеанса шифрования.

hCryptoSession

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

hRTCryptoSession

Дескриптор сеанса шифрования, который драйвер должен использовать при обратном вызове в среду выполнения Direct3D.

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

Возвращает одно из следующих значений:

Код возврата Описание
S_OK Канал, прошедший проверку подлинности, успешно создан.
D3DDDIERR_DEVICEREMOVED Графический адаптер был удален.
D3DDDIERR_UNSUPPORTEDCRYPTO Указан тип шифрования, который не поддерживается профилем декодирования.
E_OUTOFMEMORY Память не была доступна для завершения операции.

Комментарии

Среда выполнения Direct3D вызывает CreateCryptoSession для создания криптографического сеанса, который среда выполнения использует для управления ключом сеанса и выполнения криптографических операций для видеосодержимого, хранящегося в защищенной памяти.

Среда выполнения вызывает CreateCryptoSession после вызова драйвера CalcPrivateCryptoSessionSize , чтобы определить размер частных данных в байтах, необходимых драйверу для сеанса шифрования. Среда выполнения выделяет для драйвера память для этих личных данных. Драйвер использует эту память для хранения личных данных, связанных с сеансом шифрования.

Когда среда выполнения вызывает CreateCryptoSession, она передает дескриптор в частную память данных в параметре hCryptoSession . Этот дескриптор фактически является указателем на память.

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

Если для элемента DecodeProfile структуры D3D11_1DDIARG_CREATECRYPTOSESSION задано значение NULL_GUID, сеанс шифрования не будет использоваться для декодирования DirectX Video Acceleration (DXVA). Если для DecodeProfile не задано значение NULL_GUID, драйвер должен завершить вызов с D3DDDIERR_UNSUPPORTEDCRYPTO , если член CryptoType имеет криптографический тип, который не поддерживается профилем декодирования.

Требования

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

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

CalcPrivateCryptoSessionSize

D3D11_1DDIARG_CREATECRYPTOSESSION

NegotiateCryptoSessionKeyExchange