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


Получение сведений о защищенных выходных данных

Драйвер мини-порта дисплея может получать запросы на получение сведений о защищенном выходе, связанном с физическим выходным соединителем графического адаптера. Функция DxgkDdiOPMGetInformation драйвера мини-порта дисплея передает указатель на структуру DXGKMDT_OPM_GET_INFO_PARAMETERS в параметре Parameters , который содержит информационный запрос. DxgkDdiOPMGetInformation записывает необходимые сведения в структуру DXGKMDT_OPM_REQUESTED_INFORMATION , на которую указывает параметр RequestedInformation . Элементы guidInformation и abParameters DXGKMDT_OPM_GET_INFO_PARAMETERS указать запрос информации. В зависимости от запроса информации драйвер мини-порта дисплея должен заполнить элементы структуры DXGKMDT_OPM_STANDARD_INFORMATION, DXGKMDT_OPM_OUTPUT_ID или DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT необходимыми сведениями и указать элемент abRequestedInformation DXGKMDT_OPM_REQUESTED_INFORMATION этой структуре. После того как драйвер задает элементы cbRequestedInformationSize (например, sizeof (DXGKMDT_OPM_STANDARD_INFORMATION)) и abRequestedInformation DXGKMDT_OPM_REQUESTED_INFORMATION, драйвер должен вычислить код проверки подлинности сообщения в режиме CBC (CBC) для данных в DXGKMDT_OPM_REQUESTED_INFORMATION и задать этот OMAC в элементе omac DXGKMDT_OPM_REQUESTED_INFORMATION. Дополнительные сведения о вычислении OMAC см. в разделе Алгоритм OMAC-1.

Примечание Перед возвратом DxgkDdiOPMGetInformation драйвер мини-порта дисплея должен убедиться, что OMAC, указанный в элементе omacDXGKMDT_OPM_GET_INFO_PARAMETERS , является правильным. Драйвер также должен убедиться, что порядковый номер, указанный в элементе ulSequenceNumber DXGKMDT_OPM_GET_INFO_PARAMETERS совпадает с порядковым номером, сохраненным драйвером в данный момент. Затем драйвер должен увеличить хранимый порядковый номер.

Примечание Драйвер должен возвращать 128-разрядное криптографически безопасное случайное число в элементе rnRandomNumber DXGKMDT_OPM_STANDARD_INFORMATION, DXGKMDT_OPM_OUTPUT_ID или DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT. Случайное число было создано отправляемым приложением и было указано в элементе rnRandomNumber DXGKMDT_OPM_GET_INFO_PARAMETERS.

Драйвер возвращает следующие сведения для указанного запроса:

  • Для DXGKMDT_OPM_GET_SUPPORTED_PROTECTION_TYPES задано в элементе guidInformation и не определено в элементе abParameters структуры DXGKMDT_OPM_GET_INFO_PARAMETERS, драйвер указывает доступные типы механизмов защиты. Чтобы указать доступные типы защиты, драйвер возвращает допустимое побитовое сочетание значений OR из перечисления DXGKMDT_OPM_PROTECTION_TYPE в элементе ulInformation DXGKMDT_OPM_STANDARD_INFORMATION. Допустимые значения DXGKMDT_OPM_PROTECTION_TYPE_HDCP и DXGKMDT_OPM_PROTECTION_TYPE_DPCP.

  • Для DXGKMDT_OPM_GET_CONNECTOR_TYPE задано в guidInformation и не определено в abParameters, драйвер указывает тип соединителя. Чтобы указать тип соединителя, драйвер возвращает допустимое побитовое сочетание значений OR из перечисления D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY в элементе ulInformation DXGKMDT_OPM_STANDARD_INFORMATION.

  • Для DXGKMDT_OPM_GET_VIRTUAL_PROTECTION_LEVEL или DXGKMDT_OPM_GET_ACTUAL_PROTECTION_LEVEL задано в guidInformation и тип защиты, заданный в abParameters, драйвер возвращает значение уровня защиты в элементе ulInformationDXGKMDT_OPM_STANDARD_INFORMATION. Если тип защиты является DXGKMDT_OPM_PROTECTION_TYPE_HDCP, значение уровня защиты будет из перечисления DXGKMDT_OPM_HDCP_PROTECTION_LEVEL . Если тип защиты является DXGKMDT_OPM_PROTECTION_TYPE_DPCP, значение уровня защиты будет из перечисления DXGKMDT_OPM_DPCP_PROTECTION_LEVEL .

    Запрос DXGKMDT_OPM_GET_VIRTUAL_PROTECTION_LEVEL возвращает текущий заданный уровень защиты для защищенных выходных данных. Запрос DXGKMDT_OPM_GET_ACTUAL_PROTECTION_LEVEL возвращает текущий заданный уровень защиты для физического соединителя, связанного с защищенными выходными данными.

  • Для DXGKMDT_OPM_GET_ADAPTER_BUS_TYPE, заданных в guidInformation и undefined в abParameters, драйвер определяет тип и реализацию шины, которая подключает графический адаптер к северному мосту набора микросхем материнской платы. Чтобы определить тип и реализацию шины, драйвер возвращает допустимое побитовое сочетание значений OR из перечисления DXGKMDT_OPM_BUS_TYPE_AND_IMPLEMENTATION в элементе ulInformation DXGKMDT_OPM_STANDARD_INFORMATION.

  • Для DXGKMDT_OPM_GET_CURRENT_HDCP_SRM_VERSION, заданных в guidInformation и undefined в abParameters, драйвер возвращает значение в элементе ulInformationDXGKMDT_OPM_STANDARD_INFORMATION , которое определяет номер версии текущего сообщения о возможности обновления системы (SRM) с высокой пропускной способностью (HDCP) для защищенного вывода. Наименее значимые биты (биты от 0 до 15) содержат номер версии SRM в формате с байтами. Дополнительные сведения о номере версии SRM см. в спецификации HDCP Версии 1.1.

  • Для DXGKMDT_OPM_GET_ACTUAL_OUTPUT_FORMAT, заданных в guidInformation и undefined в abParameters, драйвер возвращает сведения в членах DXGKMDT_OPM_ACTUAL_OUTPUT_FORMAT , описывающие форматирование сигнала, который проходит через физический соединитель, связанный с защищенным выходным данным.

  • Для DXGKMDT_OPM_GET_OUTPUT_ID, заданных в guidInformation и undefined в abParameters, драйвер возвращает сведения в членах DXGKMDT_OPM_OUTPUT_ID , которые идентифицируют выходной соединитель.

  • Для DXGKMDT_OPM_GET_DVI_CHARACTERISTICS задано в элементе guidInformation и не определено в элементе abParameters структуры DXGKMDT_OPM_GET_INFO_PARAMETERS, драйвер указывает электрические характеристики выходного соединителя DVI. Чтобы указать электрические характеристики DVI, драйвер возвращает одно из значений перечисления DXGKDT_OPM_DVI_CHARACTERISTICS в элементе ulInformationDXGKMDT_OPM_STANDARD_INFORMATION.