Compartir a través de


Plug and Play (PnP) en WDDM 1.2 y versiones posteriores

Todos los controladores de miniporte de pantalla de Windows Display Driver Model (WDDM) 1.2 y versiones posteriores deben admitir el siguiente comportamiento en respuesta a las solicitudes de inicio y detención por parte de la infraestructura de Plug and Play (PnP). El comportamiento puede diferir en función de si el controlador devuelve un código correcto o de error, o si el hardware del sistema se basa en el sistema básico de entrada/salida (BIOS) o en la interfaz de firmware extensible unificada (UEFI).

Versión mínima de WDDM 1.2
Versión mínima de Windows 8
Implementación del controlador: gráficos completos y solo mostrar Mandatory
Requisitos y pruebas de WHCK

Device.Graphics.WDDM12.Display.PnpStopStartSupport

Pantalla del controlador de minipuerto PnP DDI

A partir de Windows 8, el subsistema del kernel de gráficos de Microsoft DirectX proporciona esta función a la que un controlador puede llamar si se inicia o reanuda el dispositivo de visualización desde la hibernación:

Estas funciones y estructura están disponibles para que el controlador de miniporte de pantalla implemente los requisitos de WDDM 1.2 y PnP posteriores:

Operación de inicio de PnP

Un proceso de inicio de Plug and Play (PnP) en el dispositivo de pantalla se produce durante el arranque o durante una actualización de un controlador de pantalla a otro. En este caso, el controlador debe llamar a la función DxgkCbAcquirePostDisplayOwnership para obtener información sobre el búfer de fotogramas y mantener la sincronización de visualización. La información del búfer de fotogramas se proporciona desde el firmware o desde el controlador WDDM 1.2 anterior que se cargó en el sistema.

Durante las llamadas que realiza el sistema operativo a la función DxgkDdiSetPowerState para volver al estado de alimentación D0 y a la función DxgkDdiStartDevice , el controlador WDDM 1.2 y versiones posteriores debe establecer la visibilidad de origen en false (DXGKARG_SETVIDPNSOURCEVISIBILITY.Visible = FALSE) para todos los destinos de red de la red (VidPN) activos. En este caso, el hardware de canalización de pantalla debe mantener las señales de sincronización con el monitor, pero la canalización debe seguir enviando datos de píxeles negros al monitor, independientemente de qué datos de píxeles estén presentes en la superficie que se está examinando actualmente. Esto significa que se garantiza que la canalización de píxeles esté en blanco para el monitor con todos los píxeles negros. Más adelante, cuando el primer fotograma se representa en el búfer de fotogramas, el sistema operativo establece la visibilidad del origen en true.

Todos estos procedimientos mantienen sincronizado el monitor y garantizan que el usuario no vea parpadeos ni parpadeos en la pantalla.

Estos son los códigos de retorno que el controlador debe devolver después de un proceso de inicio de PnP.

Código de retorno del controlador Descripción

Éxito

El comportamiento es el mismo que en Windows 7.

En el caso de un sistema basado en BIOS, si el controlador se inicia correctamente, el búfer de fotogramas sigue activo y el controlador debe estar listo para establecerse en un modo válido.

Fracaso

Para un sistema basado en BIOS, el controlador debe dejar el sistema en un estado compatible con BIOS.

Para un sistema basado en UEFI, el controlador debe dejar la pantalla en el mismo modo establecido por el Protocolo de salida de gráficos UEFI (GOP) para que el controlador de pantalla básico pueda usar la pantalla. El controlador debe devolver un código de error válido. Si el controlador no puede dejar el GOP en un estado que el controlador de pantalla básico puede usar, el controlador debe devolver el código de error STATUS_GRAPHICS_STALE_MODESET de Ntstatus.h y el sistema operativo hace que se produzca una comprobación de errores del sistema.

Operación de detención de PnP

Normalmente, un proceso de detención de Plug and Play (PnP) en el dispositivo de pantalla se produce cuando se actualiza un controlador a una nueva versión. En este caso, el sistema operativo llama a la función DxgkDdiStopDeviceAndReleasePostDisplayOwnership del controlador, que requiere que el controlador proporcione información precisa del búfer de fotogramas.

En la llamada DxgkDdiStopDeviceAndReleasePostDisplayOwnership, el controlador debe asegurarse de que la visibilidad de origen de los destinos de VidPn activos es verdadera (DXGKARG_SETVIDPNSOURCEVISIBILITY.True visible = ). Además, a partir de WDDM 1.2, el controlador debe asegurarse de que la superficie desde la que está programada la canalización de píxeles para examinar se rellena con píxeles negros. El controlador debe completar el relleno de la superficie con píxeles negros antes de que la visibilidad del origen esté establecida en true.

Asegúrese de implementar también DxgkDdiStopDevice en el controlador. En algunos casos, el sistema operativo podría llamar a DxgkDdiStopDevice en lugar de DxgkDdiStopDeviceAndReleasePostDisplayOwnership o después de una llamada a DxgkDdiStopDeviceAndReleasePostDisplayOwnership .

Estos son los códigos de retorno que el controlador debe devolver después de un proceso de detención de PnP.

Código de retorno del controlador Descripción

Correcto y el controlador devuelve información del modo

Antes de detener el controlador, debe configurar un búfer de fotogramas, utilizando la resolución actual, que el controlador de pantalla básico puede usar y el controlador debe devolver esta información cuando el sistema operativo llama a la función DxgkDdiStopDeviceAndReleasePostDisplayOwnership . La información del modo guardado no tiene que ser compatible con BIOS y el controlador de pantalla básico no ofrecerá un modo BIOS hasta que se reinicie el sistema.

El sistema operativo garantiza que no llamará a DxgkDdiStopDevice si DxgkDdiStopDeviceAndReleasePostDisplayOwnership devuelve STATUS_SUCCESS.

Correcto y el controlador establece los miembros Width y Height de la estructura de DXGK_DISPLAY_INFORMATION en cero

Este escenario solo es posible si el sistema tiene dos tarjetas gráficas, no hay monitores conectados al dispositivo de prueba automática (POST) actual y el sistema operativo llama a la función DxgkDdiStopDeviceAndReleasePostDisplayOwnership para detener el dispositivo POST.

En este caso, la pantalla actual continúa ejecutándose en el segundo adaptador de gráficos y el controlador de pantalla básico se ejecuta en modo sin cabeza en el adaptador que admite el dispositivo POST.

Fracaso

El sistema operativo llama a la interfaz del controlador de parada PnP de estilo Windows 7 a través de la función DxgkDdiStopDevice .

Para un sistema basado en BIOS, el controlador debe establecer la pantalla en un modo compatible con BIOS.

Para un sistema basado en UEFI, el controlador de pantalla básico se ejecuta en modo sin encabezado en el adaptador de gráficos.

Para obtener más requisitos sobre PnP y otras transiciones de estado, consulte Proporcionar transiciones de estado sin problemas en WDDM 1.2 y versiones posteriores.

Requisitos de certificación de hardware

Para obtener información sobre los requisitos que deben cumplir los dispositivos de hardware al implementar esta característica, consulte la documentación de WHCK pertinente en Device.Graphics.WDDM12.Display.PnpStopStartSupport.

Consulte Características de WDDM 1.2 para obtener una revisión de las características agregadas con Windows 8.