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


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

Функция DXGKDDI_OPM_GET_COPP_COMPATIBLE_INFORMATION извлекает сведения, совместимые с протоколом COPP, из заданного защищенного выходного объекта.

Синтаксис

DXGKDDI_OPM_GET_COPP_COMPATIBLE_INFORMATION DxgkddiOpmGetCoppCompatibleInformation;

NTSTATUS DxgkddiOpmGetCoppCompatibleInformation(
  [in]  PVOID MiniportDeviceContext,
  [in]  HANDLE ProtectedOutputHandle,
  [in]  const DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS *Parameters,
  [out] PDXGKMDT_OPM_REQUESTED_INFORMATION RequestedInformation
)
{...}

Параметры

[in] MiniportDeviceContext

Дескриптор для блока контекста, связанного с видеоадаптером. Ранее функция DxgkDdiAddDevice драйвера мини-порта дисплея предоставляла этот дескриптор подсистеме графического ядра DirectX.

[in] ProtectedOutputHandle

Дескриптор защищенного выходного объекта. Функция DxgkDdiOPMCreateProtectedOutput создает защищенный выходной объект и возвращает дескриптор объекту . Защищенный выходной объект, соответствующий этому дескриптору, должен иметь семантику COPP.

[in] Parameters

Указатель на структуру DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS , содержащую тип сведений, совместимых с COPP, для извлечения из защищенного выходного объекта, дескриптор которого указан в параметре ProtectedOutputHandle . DxgkDdiOPMGetCOPPCompatibleInformation определяет, содержат ли параметры допустимый запрос от приложения, которое косвенно создало защищенный выходной объект. Дополнительные сведения см. в разделе «Примечания».

[out] RequestedInformation

Указатель на структуру DXGKMDT_OPM_REQUESTED_INFORMATION , которая получает сведения, совместимые с COPP защищенного выходного объекта, если dxgkDdiOPMGetCOPPCompatibleInformation возвращает успешно.

Если DxgkDdiOPMGetCOPPCompatibleInformation завершается сбоем, значение, на которое указывает RequestedInformation , остается неизменным.

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

DxgkDdiOPMGetCOPPCompatibleInformation возвращает STATUS_SUCCESS или код ошибки Ntstatus.h .

Комментарии

Подсистема ядра графики DirectX должна вызывать DxgkDdiOPMGetCOPPCompatibleInformation , только если выходные данные имеют семантику COPP.

Прежде чем подсистема графического ядра DirectX передает защищенный дескриптор вывода параметру ProtectedOutputHandle в вызове DxgkDdiOPMGetCOPPCompatibleInformation, подсистема графического ядра DirectX всегда передает защищенный дескриптор вывода функциям DxgkDdiOPMSetSigningKeyAndSequenceNumbers и DxgkDdiOPMGetRandomNumbers .

Ниже приведены некоторые факты, относящиеся к DxgkDdiOPMGetCOPPCompatibleInformation и не относящиеся к функции DxgkDdiOPMGetInformation :

  • Подсистема ядра графики DirectX может передавать дескриптор в защищенный выход только семантикой COPP.

  • Структура DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS , на которую указывает параметр Parameters , не подписана.

  • Подсистема графического ядра DirectX может передавать идентификаторы GUID DXGKMDT_OPM_GET_ACP_AND_CGMSA_SIGNALING и DXGKMDT_OPM_GET_CONNECTED_HDCP_DEVICE_INFORMATION в элементе guidInformation DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS.

  • Подсистема ядра графики DirectX не может передать guid DXGKMDT_OPM_GET_CURRENT_HDCP_SRM_VERSION в элементе guidInformation DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS.

  • Подсистема графического ядра DirectX может указывать DXGKMDT_OPM_PROTECTION_TYPE_COPP_COMPATIBLE_HDCP в первых 4 байтах элемента abParameters DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS вместе с идентификатором GUID DXGKMDT_OPM_GET_VIRTUAL_PROTECTION_LEVEL или DXGKMDT_OPM_GET_ACTUAL_PROTECTION_LEVEL в элементе guidInformation DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS.

  • Подсистема графического ядра DirectX не может указать DXGKMDT_OPM_PROTECTION_TYPE_HDCP в первых 4 байтах элемента abParameters DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS вместе с идентификатором GUID DXGKMDT_OPM_GET_VIRTUAL_PROTECTION_LEVEL или DXGKMDT_OPM_GET_ACTUAL_PROTECTION_LEVEL в элементе guidInformation DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS.

Драйвер должен выполнить следующую последовательность при вызове функции DxgkDdiOPMGetCOPPCompatibleInformation .

  1. Убедитесь, что защищенный дескриптор вывода, переданный параметру ProtectedOutputHandleобъекта DxgkDdiOPMGetCOPPCompatibleInformation , имеет семантику COPP.

  2. Получение запрошенных сведений.

  3. Скопируйте случайное число, указанное членом rnRandomNumberDXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS , в элемент rnRandomNumber структуры DXGKMDT_OPM_STANDARD_INFORMATION, DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT, DXGKMDT_OPM_ACP_AND_CGMSA_SIGNALING или DXGKMDT_OPM_CONNECTED_HDCP_DEVICE_INFORMATION. Используемая структура зависит от типа сведений, запрошенных вызывающей стороной. Структура задается в элементе abRequestedInformationструктуры DXGKMDT_OPM_REQUESTED_INFORMATION , на которую указывает параметр RequestedInformation .

  4. Подпишите структуру DXGKMDT_OPM_REQUESTED_INFORMATION и поместите подпись в элемент omac DXGKMDT_OPM_REQUESTED_INFORMATION. Для подписывания структуры следует использовать блочный шифр AES и алгоритм подписывания OMAC-1. Сведения об AES см. на веб-сайте RSA Laboratories . Сведения об OMAC-1 см. на странице справочника по DXGKMDT_OPM_OMAC .

Изначально подсистема графического ядра DirectX вызывает DxgkDdiOPMGetCOPPCompatibleInformation для получения сведений о выходных данных, а затем вызывает DxgkDdiOPMConfigureProtectedOutput один или несколько раз для настройки выходных данных. Впоследствии подсистема графического ядра DirectX вызывает DxgkDdiOPMGetCOPPCompatibleInformation без вызова DxgkDdiOPMConfigureProtectedOutput.

DxgkDdiOPMGetCOPPCompatibleInformation должен быть доступным для страниц.

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть dispmprt.h (включая Dispmprt.h)
IRQL PASSIVE_LEVEL (см. раздел "Примечания")

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

DxgkDdiAddDevice

DxgkDdiOPMConfigureProtectedOutput

DxgkDdiOPMCreateProtectedOutput

DxgkDdiOPMGetInformation

DxgkDdiOPMGetRandomNumber

DxgkDdiOPMSetSigningKeyAndSequenceNumbers

DXGKMDT_OPM_COPP_COMPATIBLE_GET_INFO_PARAMETERS

DXGKMDT_OPM_OMAC

DXGKMDT_OPM_REQUESTED_INFORMATION