Condividi tramite


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

Vedi anche

EvtIddCxMonitorUnassignSwapChain

IDARG_IN_SETSWAPCHAIN