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


Обеспечение простого перехода состояния в WDDM 1.2 и более поздних версиях

Начиная с Windows 8, некоторые функции помогают свести к минимуму или исключить вспышки экрана и мерцания во время загрузки, при переходе из состояний более низкого энергопотребления и во время перехода к управлению операционной системой при обновлении драйверов или проверках системных ошибок. Кроме того, встроенное ПО системы на Windows 8 и более поздних компьютерах должно определять собственное разрешение и время встроенной панели дисплея во время включения питания и передавать эти сведения операционной системе. Это поведение должно поддерживаться моделью WDDM 1.2 и более поздних версий.

Минимальная версия WDDM 1,2
Минимальная версия Windows 8
Реализация драйвера — только полная графика и дисплей Обязательный
Требования и тесты WHCK

System.Client.Firmware.UEFI.GOP.Display

Device.Graphics... PnpStopStartSupport

Device.Graphics... DisplayOutputControl

Переход с встроенного ПО на операционную систему

Все Windows 8 системы, предназначенные для номеров SKU клиента, должны поддерживать протокол GOP для интерфейса UEFI. На этапе загрузки GOP устанавливает собственное время и собственное разрешение на интегрированной панели дисплея системы. Когда операционная система будет готова взять на себя владение дисплеем, GOP передает буфер кадров, который можно использовать для сканирования на дисплее. В настоящее время операционная система не пытается сбросить время отображения или разрешение, а просто использует предоставленный буфер кадров, тем самым устраняя одну вспышку экрана.

Сертификационные требования к оборудованию

Сведения о требованиях, которым должны соответствовать аппаратные устройства при реализации этой функции, см. в соответствующей документации WHCK по System.Client.Firmware.UEFI.GOP.Display.

Переход с операционной системы на драйвер

Когда операционная система передает права владения дисплеем драйверу WDDM после загрузки, она инициирует запуск Plug and Play (PnP) устройства, вызывая функцию DxgkDdiStartDevice. Кроме того, после возобновления режима гибернации операционная система запускает устройство, вызывая функцию DxgkDdiSetPowerState с параметром DeviceUid , равным DISPLAY_ADAPTER_HW_ID (определяется в Video.h). В настоящее время обычно экран пуст (отображается как черный), а графический драйвер WDDM берет на себя управление.

Драйвер может вызвать функцию DxgkCbAcquirePostDisplayOwnership (доступную начиная с Windows 8), чтобы запросить у операционной системы точное состояние текущего буфера кадров и режим отображения, заданный встроенным ПО и загрузчиком. Благодаря сведениям в DXGK_DISPLAY_INFORMATION структуре, полученной этой функцией, драйвер может сохранить контроллер дисплея активным и не вызвать повторную синхронизацию монитора. Так как драйвер также содержит подробные сведения о буфере кадров, можно выполнить более плавный переход.

Дополнительные сведения о запуске PnP приведены в Plug and Play (PnP) в WDDM 1.2 и более поздних версиях.

Переход с драйвера на операционную систему

Операционная система может запросить остановку PnP устройства отображения, вызвав функцию DxgkDdiStopDevice . В настоящее время обычно экран не отображается (отображается как черный), а операционная система берет на себя управление дисплеем. Операционная система может вызывать функцию DxgkDdiStopDeviceAndReleasePostDisplayOwnership (доступна начиная с Windows 8), которая требует от драйвера WDDM настроить буфер кадров, настроенный для сканирования. Операционная система может выполнять отрисовку в этом буфере кадров, когда она управляет дисплеем, что позволяет выполнять плавный переход.

Дополнительные сведения об остановке PnP, включая дополнительные сценарии, приведены в Plug and Play (PnP) в WDDM 1.2 и более поздних версий.

Сертификационные требования к оборудованию

Дополнительные сведения об этой передачи см. в соответствующей документации по WHCK на сайте Device.Graphics... PnpStopStartSupport.

Переход на операционную систему без отключения драйвера

Иногда операционная система испытывает неустранимую ошибку и должна выдавать системную ошибку проверка. В некоторых случаях операционная система должна взять на себя управление дисплеем, но не может остановить драйвер WDDM. Драйверы WDDM 1.2 и более поздних версий необходимы для реализации функций DxgkDdiSystemDisplayEnable и DxgkDdiSystemDisplayWrite , которые позволяют операционной системе легко перейти в состояние, в котором она может отображать экран ошибки при сохранении графического интерфейса с высоким разрешением и глубиной цвета. Этот переход устраняет мешающая пользовательский интерфейс.

Сертификационные требования к оборудованию

Сведения о требованиях, которым должны соответствовать аппаратные устройства при реализации этой функции, см. в соответствующей документации по WHCK на сайте Device.Graphics... DisplayOutputControl.

Windows 8 изменения режима встроенного ПО

Это изменения в режиме отображения встроенного ПО перед тем, как встроенное ПО передает управление операционной системе:

Драйверы WDDM 1.2 и более поздних версий (DXGKDDI_INTERFACE_VERSION>= DXGKDDI_INTERFACE_VERSION_WIN8)
Чтобы устранить вспышки дисплея, начиная с Windows 8, запросы на изменение режима Int10 не вызываются во встроенном ПО для драйверов WDDM 1.2 и более поздних версий.

Кроме того, если во время выключения монитора происходит изменение режима, операционная система вызывает функцию DxgkDdiCommitVidPn Только один раз, при этом параметру pCommitVidPnArg присвоено значение, которое будет иметь значение, если монитор включен, а для элемента PathPoweredOffэлемента pCommitVidPnArg-Flags> задано значение TRUE.

Драйверы WDDM 1.0 и 1.1 (DXGKDDI_INTERFACE_VERSION<DXGKDDI_INTERFACE_VERSION_WIN8)
Для драйверов WDDM версий 1.0 и 1.1, работающих на Windows 8, во время загрузки или при выходе из режима гибернации, выполняются вызовы режима Int10 VGA 0x12, устанавливающие разрешение дисплея в исходное высокое разрешение монитора. До Windows 8 вызов int10 VGA mode 0x12 устанавливал разрешение дисплея 640 x 480 пикселей со скоростью 16 бит на пиксель без мигающего курсора, чтобы отобразить изображение экрана-заставки операционной системы.

Однако для драйверов WDDM версий 1.0 и 1.1, которые указывают, что они не поддерживают режим высокого разрешения, начиная с Windows 8 загрузки в режимЕ VGA 0x12 устанавливает разрешение экрана 640 x 480 пикселей со скоростью 16 бит на пиксель без мигающего курсора. Когда система возобновит работу из режима гибернации, разрешение дисплея по-прежнему будет установлено в исходном высоком разрешении монитора.

Кроме того, если во время выключения монитора происходит изменение режима, операционная система вызывает функцию DxgkDdiCommitVidPn, как описано выше для драйверов WDDM 1.2, а также вызывает DxgkDdiCommitVidPnво второй раз с пустой сетью видеотрансляции (VidPN) в pCommitVidPnArg-hFunctionalVidPn> и ни один из значений флагов, заданных в pCommitVidPnArg-Flags.>

Эта двухкомпонентная последовательность вызовов также возникает, когда система возобновляется после гибернации, а создание синхронизации монитора остается включенным. В этом случае драйвер не должен предпринимать никаких действий при получении второго вызова DxgkDdiCommitVidPn.