EVT_IDD_CX_MONITOR_ASSIGN_SWAPCHAIN funzione di callback (iddcx.h)
EVT_IDD_CX_MONITOR_ASSIGN_SWAPCHAIN viene chiamato dal sistema operativo per informare il driver di visualizzazione indiretto (IDD) di una modifica della modalità per i monitoraggi nella scheda.
Sintassi
EVT_IDD_CX_MONITOR_ASSIGN_SWAPCHAIN EvtIddCxMonitorAssignSwapchain;
NTSTATUS EvtIddCxMonitorAssignSwapchain(
[in] IDDCX_MONITOR MonitorObject,
[in] const IDARG_IN_SETSWAPCHAIN *pInArgs
)
{...}
Parametri
[in] MonitorObject
Handle IDDCX_MONITOR creato dal driver opaco usato dal sistema operativo per identificare il monitoraggio interessato dalla modifica della modalità.
[in] pInArgs
Puntatore a una struttura IDARG_IN_SETSWAPCHAIN contenente informazioni per il driver da usare per impostare la swapchain indiretta.
Valore restituito
(NTSTATUS) Se l'operazione ha esito positivo, la funzione di callback deve restituire STATUS_SUCCESS o un altro valore di stato per cui NT_SUCCESS(stato) equivale a TRUE. Se si verifica un errore, l'IDD deve restituire STATUS_GRAPHICS_INDIRECT_DISPLAY_ABANDON_SWAPCHAIN se esiste una buona probabilità che l'errore non si verifichi di nuovo. In caso contrario, deve restituire un codice di errore NTSTATUS appropriato. Vedere la sezione Osservazioni.
Commenti
Il sistema operativo chiama EvtIddCxMonitorAssignSwapChain in modo che l'IDD possa configurare il meccanismo di elaborazione dei fotogrammi. Ad esempio, un IDD potrebbe creare un nuovo thread per inizializzare i dispositivi D3D e quindi eseguire il ciclo sui fotogrammi di elaborazione (vedere l'esempio di driver ID).
Se EvtIddCxMonitorAssignSwapChain restituisce esito positivo, l'IDD possiede l'oggetto IDARG_IN_SETSWAPCHAIN.hSwapChain ed è responsabile della chiamata a WdfObjectDelete per rilasciare l'oggetto swapchain quando interrompe l'elaborazione dei fotogrammi. L'elaborazione swapchain può interrompere l'elaborazione dei fotogrammi quando EvtIddCxMonitorUnassignSwapChain viene chiamato o quando si verifica un errore nel ciclo di elaborazione del frame dopo aver restituito l'esito positivo a EvtIddCxMonitorAssignAswapChain. Questo vale sia per gli adattatori console che per gli ID remoti e per tutte le versioni iddCx.
A partire da Windows 10, versione 1903, per ridurre l'impatto dell'utente (ad esempio, tempo trascorso in attesa di iddCx per controllare il driver), IddCx verificherà immediatamente il bug del driver se EvtIddCxMonitorAssignSwapChain segnala un codice di errore diverso da STATUS_GRAPHICS_INDIRECT_DISPLAY_ABANDON_SWAPCHAIN.
Se il driver restituisce STATUS_GRAPHICS_INDIRECT_DISPLAY_ABANDON_SWAPCHAIN, IddCx informerà il compositore desktop. È necessario creare una nuova swapchain, quindi il sistema operativo chiamerà di nuovo EvtIddCxMonitorAssignSwapChain. Un driver ID deve usare questo codice restituito solo se esiste una buona probabilità che l'errore appena verificato non si verifichi di nuovo. Ovvero, un driver ID non deve lasciare gli utenti con un desktop inutilizzabile perché ha restituito il codice di errore ancora non ha fatto nulla per garantire che lo stesso errore non si verifichi di nuovo. Ad esempio, se un driver rileva un errore durante la creazione del dispositivo D3D nell'adattatore di rendering, potrebbe chiamare IddCxAdapterSetRenderAdapter per passare a un'altra scheda (forse un'altra GPU o WARP) e quindi restituire STATUS_GRAPHICS_INDIRECT_DISPLAY_ABANDON_SWAPCHAIN. Il sistema operativo creerà una nuova swapchain nella nuova scheda di rendering e si spera di evitare l'errore. Anche se questo codice di errore viene definito a partire da Windows 10 versione 1903, un driver ID può restituire questo codice di errore nelle versioni precedenti del sistema operativo, senza effetto.
La risoluzione delle superfici nella swapchain sarà sempre la stessa risoluzione del set di modalità di destinazione.
Il formato delle superfici sarà uno dei formati supportati dal driver, ma il formato di ogni buffer acquisito può cambiare tra i formati supportati da frame a frame. Il driver deve controllare il formato di ogni buffer acquisito.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 10 |
Server minimo supportato | Windows Server 2016 |
Piattaforma di destinazione | Windows |
Intestazione | iddcx.h |
IRQL | requires_same |