Plug and Play (PnP) in WDDM 1.2 e versioni successive
Tutti i driver miniport visualizzati windows (WDDM) 1.2 e versioni successive devono supportare il comportamento seguente in risposta all'avvio e all'arresto delle richieste dall'infrastruttura Plug and Play (PnP). Il comportamento può variare a seconda che il driver restituisca un codice di esito positivo o negativo o se l'hardware di sistema si basa sul sistema di input/output (BIOS) di base o ueFI (Unified Extensible Firmware Interface).
Versione minima di WDDM | 1,2 |
Versione minima di Windows | 8 |
Implementazione del driver- Grafica completa e solo visualizzazione | Obbligatorio |
Requisiti e test WHCK | Device.Graphics.WDDM12.Display.PnpStopStartSupport |
Visualizzare il driver miniport PnP DDI
A partire da Windows 8, il sottosistema kernel grafico Microsoft DirectX fornisce questa funzione che un driver può chiamare se il dispositivo di visualizzazione viene avviato o ripreso dall'ibernazione:
Queste funzioni e struttura sono disponibili per il driver miniport di visualizzazione per implementare i requisiti PnP di WDDM 1.2 e versioni successive:
- DxgkDdiStopDeviceAndReleasePostDisplayOwnership
- DxgkDdiSystemDisplayEnable
- DxgkDdiSystemDisplayWrite
- DXGK_DISPLAY_INFORMATION
Operazione di avvio PnP
Un processo di avvio Plug and Play (PnP) nel dispositivo di visualizzazione si verifica durante l'avvio o durante un aggiornamento da un driver di visualizzazione a un altro. In questo caso il driver deve chiamare la funzione DxgkCbAcquirePostDisplayOwnership per ottenere informazioni sul buffer dei fotogrammi e per mantenere la sincronizzazione dello schermo. Le informazioni sul buffer dei frame vengono fornite dal firmware o dal driver WDDM 1.2 precedente e versioni successive caricate nel sistema.
Durante le chiamate il sistema operativo effettua la funzione DxgkDdiSetPowerState per tornare allo stato di alimentazione D0 e alla funzione DxgkDdiStartDevice , il driver WDDM 1.2 e versioni successive deve impostare la visibilità di origine su false (DXGKARG_SETVIDPNSOURCEVISIBILITY.Visibile = FALSE) per tutte le destinazioni di rete attiva presenti in rete (VidPN). In questo caso l'hardware della pipeline di visualizzazione deve mantenere i segnali di sincronizzazione con il monitor, ma la pipeline deve continuare a inviare dati pixel neri al monitor indipendentemente dai dati pixel presenti nella superficie attualmente in fase di analisi. Ciò significa che la pipeline in pixel è garantita la spaziatura del monitor con tutti i pixel neri. Successivamente, quando viene eseguito il rendering del primo frame nel buffer dei frame, il sistema operativo imposta la visibilità dell'origine su true.
Tutte queste procedure mantengono il monitoraggio sincronizzato e assicurano che l'utente non visualizzi flash o flicker sullo schermo.
Questi sono i codici restituiti che il driver deve restituire dopo un processo di avvio PnP.
Codice restituito del driver | Descrizione |
---|---|
Successo |
Il comportamento è identico a quello di Windows 7. Per un sistema basato su BIOS, se il driver viene avviato correttamente, il buffer dei frame è ancora attivo e il driver deve essere pronto per essere impostato su una modalità valida. |
Fallimento |
Per un sistema basato su BIOS, il driver deve lasciare il sistema in uno stato compatibile con BIOS. Per un sistema basato su UEFI, il driver deve lasciare lo schermo nella stessa modalità impostata dal GOP (UEFI Graphics Output Protocol) in modo che il driver di visualizzazione di base possa usare lo schermo. Il driver deve restituire un codice di errore valido. Se il driver non può lasciare gop in uno stato che può essere utilizzato dal driver di visualizzazione di base, il driver deve restituire il codice di errore STATUS_GRAPHICS_STALE_MODESET da Ntstatus.h e il sistema operativo causa un controllo di bug del sistema. |
Operazione di arresto PnP
Un processo di arresto Plug and Play (PnP) nel dispositivo di visualizzazione si verifica in genere quando un driver viene aggiornato a una nuova versione. In questo caso il sistema operativo chiama la funzione DxgkDdiStopDeviceAndReleasePostDisplayOwnership del driver, che richiede al driver di fornire informazioni accurate sul buffer dei frame.
Nella chiamata DxgkDdiStopDeviceAndReleasePostDisplayOwnership il driver deve garantire che la visibilità di origine per le destinazioni VidPn attive sia true (DXGKARG_SETVIDPNSOURCEVISIBILITY.Visibile = TRUE). Inoltre, a partire da WDDM 1.2 il driver deve assicurarsi che la superficie da cui è programmata l'analisi della pipeline di pixel venga riempita con pixel neri. Il driver deve completare il riempimento della superficie con pixel neri prima che la visibilità dell'origine sia impostata su true.
Assicurarsi di implementare anche DxgkDdiStopDevice nel driver. In alcuni casi il sistema operativo potrebbe chiamare DxgkDdiStopDevice anziché DxgkDdiStopDeviceAndReleasePostDisplayOwnership o dopo un errore di chiamata a DxgkDdiStopDeviceAndReleasePostDisplayOwnership .
Questi sono i codici restituiti che il driver deve restituire dopo un processo di arresto PnP.
Codice restituito del driver | Descrizione |
---|---|
Operazione riuscita e il driver restituisce informazioni sulla modalità |
Prima che il driver venga arrestato, deve configurare un buffer di fotogrammi, usando la risoluzione corrente, che il driver di visualizzazione di base può usare e il driver deve restituire queste informazioni quando il sistema operativo chiama la funzione DxgkDdiStopDeviceAndReleasePostDisplayOwnership . Le informazioni sulla modalità salvate non devono essere compatibili con il BIOS e il driver di visualizzazione di base non offrirà una modalità BIOS fino al riavvio del sistema. Il sistema operativo garantisce che non chiamerà DxgkDdiStopDevice se DxgkDdiStopDeviceAndReleasePostDisplayOwnership restituisce STATUS_SUCCESS. |
Operazione riuscita e il driver imposta i membri Width e Height della struttura DXGK_DISPLAY_INFORMATION su zero |
Questo scenario è possibile solo se il sistema dispone di due schede grafiche, nessun monitor è connesso al dispositivo autotest (POST) corrente e il sistema operativo chiama la funzione DxgkDdiStopDeviceAndReleasePostDisplayOwnership per arrestare il dispositivo POST. In questo caso la visualizzazione corrente continua a essere eseguita sulla seconda scheda grafica e il driver di visualizzazione di base viene eseguito in modalità headless sulla scheda che supporta il dispositivo POST. |
Fallimento |
Il sistema operativo chiama l'interfaccia del driver di arresto PnP di windows 7 tramite la funzione DxgkDdiStopDevice . Per un sistema basato su BIOS, il driver deve impostare lo schermo in modalità compatibile con BIOS. Per un sistema basato su UEFI, il driver di visualizzazione di base viene eseguito in modalità headless sulla scheda grafica. |
Per altri requisiti su PnP e altre transizioni di stato, vedere Fornire transizioni di stato senza problemi in WDDM 1.2 e versioni successive.
Requisiti di certificazione hardware
Per informazioni sui requisiti che i dispositivi hardware devono soddisfare quando implementano questa funzionalità, fare riferimento alla documentazione WHCK pertinente in Device.Graphics.WDDM12.Display.PnpStopStartSupport.
Per una revisione delle funzionalità aggiunte con Windows 8, vedere funzionalità di WDDM 1.2.