Plug and Play (PnP) no WDDM 1.2 e posterior
Todos os drivers de miniportor WDDM (Modelo de Driver de Exibição do Windows) 1.2 e posterior devem dar suporte ao comportamento a seguir em resposta às solicitações de início e parada pela infraestrutura de Plug and Play (PnP). O comportamento pode ser diferente dependendo se o driver retorna um código de êxito ou falha ou se o hardware do sistema é baseado no BIOS (sistema de entrada/saída) básico ou uefi (Interface de Firmware Extensível Unificado).
Versão mínima do WDDM | 1,2 |
Versão mínima do Windows | 8 |
Implementação do driver – elementos gráficos completos e somente Exibição | Obrigatório |
Requisitos e testes do WHCK | Device.Graphics.WDDM12.Display.PnpStopStartSupport |
Exibir dDI PnP do driver de miniporto
A partir de Windows 8, o subsistema de kernel de elementos gráficos do Microsoft DirectX fornece essa função que um driver pode chamar se o dispositivo de exibição for iniciado ou retomado da hibernação:
Essas funções e estrutura estão disponíveis para o driver de miniporto de exibição implementar o WDDM 1.2 e os requisitos posteriores do PnP:
- DxgkDdiStopDeviceAndReleasePostDisplayOwnership
- DxgkDdiSystemDisplayEnable
- DxgkDdiSystemDisplayWrite
- DXGK_DISPLAY_INFORMATION
Operação de início do PnP
Um processo inicial de Plug and Play (PnP) no dispositivo de exibição ocorre durante a inicialização ou durante uma atualização de um driver de exibição para outro. Nesse caso, o driver deve chamar a função DxgkCbAcquirePostDisplayOwnership para obter informações sobre o buffer de quadros e manter a sincronização de exibição. As informações de buffer de quadro são fornecidas do firmware ou do driver anterior do WDDM 1.2 e posterior que foi carregado no sistema.
Durante as chamadas que o sistema operacional faz à função DxgkDdiSetPowerState para retornar ao estado de energia D0 e para a função DxgkDdiStartDevice, o driver WDDM 1.2 e posterior deve definir a visibilidade da origem como false (DXGKARG_SETVIDPNSOURCEVISIBILITY.FALSE Visível = ) para todos os destinos VidPN (rede VidPN) de vídeo ativo. Nesse caso, o hardware do pipeline de exibição deve manter sinais de sincronização com o monitor, mas o pipeline deve continuar a enviar dados de pixel preto para o monitor, independentemente de quais dados de pixel estão presentes na superfície que está sendo verificada no momento. Isso significa que o pipeline de pixels tem a garantia de estar apagando o monitor com todos os pixels pretos. Posteriormente, quando o primeiro quadro é renderizado no buffer de quadros, o sistema operacional define a visibilidade da fonte como true.
Todos esses procedimentos mantêm o monitor sincronizado e garantem que o usuário não veja flashes ou cintilações na tela.
Esses são os códigos de retorno que o driver deve retornar após um processo de início de PnP.
Código de retorno do driver | Descrição |
---|---|
Sucesso |
O comportamento é o mesmo que no Windows 7. Para um sistema baseado em BIOS, se o driver for iniciado com êxito, o buffer de quadros ainda estará ativo e o driver deverá estar pronto para ser definido como um modo válido. |
Falha |
Para um sistema baseado em BIOS, o driver deve deixar o sistema em um estado compatível com BIOS. Para um sistema baseado em UEFI, o driver deve deixar a exibição no mesmo modo que foi definido pelo PROTOCOLOP (Protocolo de Saída Gráfica) UEFI para que o driver de exibição básico possa usar a exibição. O driver deve retornar um código de erro válido. Se o driver não puder deixar o GOP em um estado que possa ser usado pelo driver de exibição básico, o driver deverá retornar o código de erro STATUS_GRAPHICS_STALE_MODESET de Ntstatus.h e o sistema operacional fará com que ocorra uma verificação de bugs do sistema. |
Operação de parada PnP
Um processo de parada de Plug and Play (PnP) no dispositivo de exibição normalmente ocorre quando um driver está sendo atualizado para uma nova versão. Nesse caso, o sistema operacional chama a função DxgkDdiStopDeviceAndReleasePostDisplayOwnership do driver, que exige que o driver forneça informações precisas de buffer de quadro.
Na chamada DxgkDdiStopDeviceAndReleasePostDisplayOwnership , o driver deve garantir que a visibilidade de origem para os destinos VidPn ativos seja verdadeira (DXGKARG_SETVIDPNSOURCEVISIBILITY.Visível = TRUE). Além disso, a partir do WDDM 1.2, o driver precisa garantir que a superfície da qual o pipeline de pixels está programado para verificar seja preenchida com pixels pretos. O driver deve concluir o preenchimento da superfície com pixels pretos antes que a visibilidade da origem seja definida como true.
Certifique-se de também implementar DxgkDdiStopDevice em seu driver. Em alguns casos, o sistema operacional pode chamar DxgkDdiStopDevice em vez de DxgkDdiStopDeviceAndReleasePostDisplayOwnership ou após uma chamada para DxgkDdiStopDeviceAndReleasePostDisplayOwnership falhar.
Esses são os códigos de retorno que o driver deve retornar após um processo de parada PnP.
Código de retorno do driver | Descrição |
---|---|
Êxito e o driver retorna informações de modo |
Antes que o driver seja interrompido, ele deve configurar um buffer de quadro, usando a resolução atual, que o driver de exibição básico pode usar e o driver deve retornar essas informações quando o sistema operacional chamar a função DxgkDdiStopDeviceAndReleasePostDisplayOwnership . As informações do modo salvo não precisam ser compatíveis com o BIOS e o driver de exibição básico não oferecerá um modo BIOS até que o sistema seja reinicializado. O sistema operacional garante que ele não chamará DxgkDdiStopDevice se DxgkDdiStopDeviceAndReleasePostDisplayOwnership retornar STATUS_SUCCESS. |
Êxito e o driver define os membros Width e Height da estrutura DXGK_DISPLAY_INFORMATION como zero |
Esse cenário só será possível se o sistema tiver duas placas gráficas, nenhum monitor estiver conectado ao dispositivo post (auto-teste) power-on atual e o sistema operacional chamar a função DxgkDdiStopDeviceAndReleasePostDisplayOwnership para interromper o dispositivo POST. Nesse caso, a exibição atual continua sendo executada no segundo adaptador gráfico e o driver de exibição básico é executado no modo sem cabeça no adaptador que dá suporte ao dispositivo POST. |
Falha |
O sistema operacional chama a interface do driver de parada PnP do Windows 7 por meio da função DxgkDdiStopDevice . Para um sistema baseado em BIOS, o driver deve definir a exibição em um modo compatível com BIOS. Para um sistema baseado em UEFI, o driver de exibição básico é executado no modo sem cabeça no adaptador gráfico. |
Para obter mais requisitos sobre PnP e outras transições de estado, consulte Fornecendo transições de estado perfeitas no WDDM 1.2 e posterior.
Requisitos de certificação de hardware
Para obter informações sobre os requisitos que os dispositivos de hardware devem atender ao implementar esse recurso, consulte a documentação relevante do WHCK em Device.Graphics.WDDM12.Display.PnpStopStartSupport.
Consulte Recursos do WDDM 1.2 para obter uma revisão dos recursos adicionados com Windows 8.