Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Все драйверы минипорта Windows Display Driver Model (WDDM) версий 1.2 и выше должны поддерживать следующее поведение в ответ на запросы о запуске и остановке со стороны инфраструктуры Plug and Play (PnP). Поведение может отличаться в зависимости от того, возвращает ли драйвер код успешного выполнения или сбоя либо системное оборудование основано на базовой системе ввода и вывода (BIOS) или едином расширяемом интерфейсе встроенного ПО (UEFI).
| Минимальная версия WDDM | 1.2 |
| Минимальная версия Windows | 8 |
| Реализация драйвера - Полные графические возможности и только отображение | Обязательно |
| Требования и тесты WHCK | Device.Graphics.WDDM12.Display.PnpStopStartSupport |
Отображение драйвера минипорта PnP DDI
Начиная с Windows 8 подсистема графического ядра Microsoft DirectX предоставляет эту функцию, которую драйвер может вызывать, если устройство отображения запущено или возобновляется из гибернации:
Эти функции и структура доступны для драйвера мини-порта отображения для реализации требований WDDM 1.2 и более поздних версий PnP:
- DxgkDdiStopDeviceAndReleasePostDisplayOwnership
- DxgkDdiSystemDisplayEnable
- DxgkDdiSystemDisplayWrite
- DXGK_DISPLAY_INFORMATION
Операция запуска PnP
Процесс запуска Plug and Play (PnP) на устройстве отображения происходит либо во время загрузки, либо во время обновления одного драйвера дисплея на другой. В этом случае драйвер должен вызвать функцию DxgkCbAcquirePostDisplayOwnership , чтобы получить сведения о буфере кадров и поддерживать синхронизацию отображения. Сведения о буфере кадров предоставляются либо из встроенного ПО, либо из предыдущего драйвера WDDM 1.2 и более поздних версий, загруженного в систему.
Во время вызовов функции операционной системы DxgkDdiSetPowerState с целью возврата к состоянию питания D0 и вызова функции DxgkDdiStartDevice, драйвер WDDM версии 1.2 и более поздних должен установить видимость источника в значение FALSE (DXGKARG_SETVIDPNSOURCEVISIBILITY.Visible = FALSE) для всех активных целевых объектов видеосетевой сети (VidPN). В этом случае оборудование системы отображения должно поддерживать сигналы синхронизации с монитором, но система должна продолжать отправлять данные черного пикселя в монитор независимо от того, какие данные пикселей присутствуют на поверхности, которая сейчас сканируется. Это означает, что конвейер пикселей гарантированно заполняет монитор черными пикселями. Позже, когда первый кадр рендерится в буфер кадров, операционная система устанавливает видимость источника в значение true.
Все эти процедуры синхронизируются с монитором и гарантируют, что пользователь не видит вспышки или мерцания на экране.
Это коды возврата, которые драйвер должен возвращать после процесса запуска PnP.
| Код возврата драйвера | Описание |
|---|---|
Успех |
Поведение совпадает с поведением в Windows 7. Для системы на основе BIOS, если драйвер успешно запускается, буфер кадров по-прежнему активен, и драйвер должен быть готов к настройке допустимого режима. |
Неудача |
Для системы на основе BIOS драйвер должен оставить систему в состоянии, совместимом с BIOS. Для системы на основе UEFI драйвер должен оставить дисплей в том же режиме, который был задан протоколом вывода графики UEFI (GOP), чтобы базовый драйвер отображения может использовать дисплей. Драйвер должен вернуть допустимый код ошибки. Если драйвер не может оставить GOP в пригодном для использования основным драйвером отображения состоянии, драйвер должен вернуть код ошибки STATUS_GRAPHICS_STALE_MODESET из Ntstatus.h, и операционная система инициирует проверку ошибок системы. |
Операция остановки PnP
Процесс остановки Plug and Play (PnP) на отображаемом устройстве обычно возникает при обновлении драйвера до новой версии. В этом случае операционная система вызывает функцию DxgkDdiStopDeviceAndReleasePostDisplayOwnership, которая требует от драйвера предоставить точные сведения о буфере кадров.
В вызове DxgkDdiStopDeviceAndReleasePostDisplayOwnership драйвер должен убедиться, что исходный вид для активных целевых объектов VidPn имеет значение true (DXGKARG_SETVIDPNSOURCEVISIBILITY.Видимый = TRUE). Кроме того, начиная с WDDM 1.2 драйвер должен убедиться, что поверхность, которую конвейер пикселей запрограммирован для сканирования на выход, заполнена черными пикселями. Драйвер должен завершить заполнение поверхности черными пикселями, прежде чем установить параметр видимости источника в значение true.
Не забудьте также реализовать DxgkDdiStopDevice в драйвере. В некоторых случаях операционная система может вызывать DxgkDdiStopDevice вместо DxgkDdiStopDeviceAndReleasePostDisplayOwnership, или после того, как вызов DxgkDdiStopDeviceAndReleasePostDisplayOwnership завершается ошибкой.
Это коды возврата, которые драйвер должен возвращать после процесса остановки PnP.
| Код возврата драйвера | Описание |
|---|---|
Успех и драйвер возвращают сведения о режиме |
Перед остановкой драйвера необходимо настроить буфер кадров, используя текущее разрешение, которое может использовать базовый драйвер отображения, и драйвер должен вернуть эти сведения, когда операционная система вызывает функцию DxgkDdiStopDeviceAndReleasePostDisplayOwnership . Сведения о сохраненном режиме не должны быть совместимы с BIOS, и базовый драйвер дисплея не будет предлагать режим BIOS до перезагрузки системы. Операционная система гарантирует, что она не будет вызывать DxgkDdiStopDevice , если DxgkDdiStopDeviceAndReleasePostDisplayOwnership возвращает STATUS_SUCCESS. |
Драйвер успешно устанавливает члены ширина и высота структуры DXGK_DISPLAY_INFORMATION равными нулю. |
Этот сценарий возможен только в том случае, если в системе есть два графических адаптера, мониторы не подключены к текущему устройству начальной самопроверки (POST), и операционная система вызывает функцию DXgkDdiStopDeviceAndReleasePostDisplayOwnership, чтобы остановить устройство POST. В этом случае текущий дисплей продолжает работать на втором графическом адаптере, а базовый драйвер дисплея выполняется в режиме без головы на адаптере, поддерживающем устройство POST. |
Неудача |
Операционная система вызывает интерфейс остановки драйвера PnP в стиле Windows 7 через функцию DxgkDdiStopDevice. Для системы на основе BIOS драйвер должен задать режим, совместимый с BIOS. В UEFI-совместимой системе базовый драйвер дисплея работает в режиме без пользовательского интерфейса на графическом адаптере. |
Дополнительные требования к PnP и другим переходам состояния см. в разделе "Обеспечение простого перехода состояния" в WDDM 1.2 и более поздних версиях.
Требования к сертификации оборудования
Сведения о требованиях, которые должны соответствовать аппаратным устройствам при реализации этой функции, см. в соответствующей документации по WHCK в Device.Graphics.WDDM12.Display.PnpStopStartSupport.
Ознакомьтесь с функциями WDDM 1.2, чтобы ознакомиться с функциями, добавленными в Windows 8.