Supporto di DXGI DDI
Per supportare l'interfaccia del driver di dispositivo DXGI (Microsoft DirectX Graphics Infrastructure), il driver di visualizzazione in modalità utente deve includere il file di intestazione Dxgiddi.h . Dxgiddi.h include anche il file di intestazione Dxgitype.h , che contiene definizioni condivise con costrutti DXGI a livello di applicazione. Dxgiddi.h definisce diversi punti di ingresso del driver di visualizzazione in modalità utente e una funzione di callback DXGI che il driver può usare per comunicare con il kernel (incluso il driver miniport visualizzato).
Il runtime Di Microsoft Direct3D fornisce l'accesso all'DDI DXGI nella struttura DXGI_DDI_BASE_ARGS che il membro DXGIBaseDDIdella strutturaD3D10DDIARG_CREATEDEVICE punta a una chiamata alla funzione CreateDevice(D3D10). Il driver di visualizzazione in modalità utente fornisce puntatori alle funzioni DXGI.
Il driver implementa queste funzioni tramite membri delle strutture a cui puntano i membri pDXGIDDIBaseFunctionsXxx di DXGI_DDI_BASE_ARGS . Il driver deve registrare il puntatore alla tabella delle funzioni di callback DXGI che il membro pDXGIBaseCallbacks di DXGI_DDI_BASE_ARGS punta a per un uso successivo. Il driver deve registrare il puntatore alla tabella delle funzioni di callback DXGI anziché registrare il singolo puntatore alla funzione di callback DXGI perché il runtime Direct3D può modificare l'indirizzo della funzione di callback ogni volta che non è presente alcun thread all'interno del driver di visualizzazione in modalità utente.
Esiste un ulteriore requisito del driver di visualizzazione in modalità utente DXGI per i rasterizzatori software. Tale driver di visualizzazione in modalità utente (più specificamente, qualsiasi driver che non supporta l'hardware condiviso con l'implementazione DDI direct3D versione 9 nella scheda grafica) deve restituire il valore DXGI_STATUS_NO_REDIRECTION anziché il valore S_OK dalla funzione CreateDevice(D3D10). Questo valore restituito indica a DXGI che non deve usare il percorso di presentazione della risorsa condivisa per influire sulla comunicazione con Desktop Window Manager (DWM). Il percorso di presentazione delle risorse condivise viene creato quando si chiamano le funzioni di risorsa condivisa, ovvero CreateResource(D3D10) e OpenResource(D3D10) con il set di flag di D3D10_DDI_RESOURCE_MISC_SHARED. Tuttavia, DXGI deve usare tecniche rilevanti per una swapchain i cui buffer sono disponibili solo per la CPU. Ad esempio, DXGI deve spostare i dati di rendering dal buffer di back al desktop, diversamente dal percorso della presentazione della risorsa condivisa. In questa situazione, DXGI chiama effettivamente la funzione PresentDXGI del driver per spostare i dati di rendering anziché la comunicazione con DWM.
Funzioni DIRECT3D versione 10 DXGI
Questa sezione descrive le funzioni DXGI (Microsoft DirectX Graphics Infrastructure) fornite dalla DLL del driver di visualizzazione in modalità utente al runtime di Microsoft Direct3D versione 10. Il driver fornisce puntatori alle funzioni DXGI tramite membri della struttura DXGI_DDI_BASE_FUNCTIONS in una chiamata alla funzione CreateDevice(D3D10) del driver di visualizzazione in modalità utente.
BltDXGI: GetGammaCapsDXGI
PresentDXGI: QueryResourceResidencyDXGI
ResolveSharedResourceDXGI: RotateResourceIdentitiesDXGI
SetDisplayModeDXGI: SetResourcePriorityDXGI
Funzioni DIRECT3D versione 11.1 DXGI
Questa sezione descrive le funzioni DXGI (Microsoft DirectX Graphics Infrastructure), implementate dai driver di visualizzazione in modalità utente, aggiunti per il runtime di Microsoft Direct3D versione 11.1. Direct3D 11.1 è stato introdotto con Windows 8.
La DLL del driver di visualizzazione in modalità utente esporta la funzione OpenAdapter10_2 e fornisce puntatori a funzioni specifiche della scheda tramite membri della strutturaD3D10_2DDI_ADAPTERFUNCS quando il runtime chiama CreateDevice(D3D10).
Il driver fornisce puntatori alle funzioni DXGI direct3D versione 11.1 tramite membri della struttura DXGI1_2_DDI_BASE_FUNCTIONS in una chiamata alla funzione CreateDevice(D3D10) specifica del driver di visualizzazione in modalità utente.
Funzioni DIRECT3D versione 11.2 DXGI
Le pagine di riferimento in questa sezione descrivono le funzioni DXGI (Microsoft DirectX Graphics Infrastructure), implementate dai driver di visualizzazione in modalità utente, aggiunti per il runtime di Microsoft Direct3D versione 11.2. Direct3D 11.2 è stato introdotto con Windows 8.1.
La DLL del driver di visualizzazione in modalità utente esporta la funzione OpenAdapter10_2 e fornisce puntatori a funzioni specifiche della scheda tramite membri della struttura D3D10_2DDI_ADAPTERFUNCS quando il runtime chiama CreateDevice(D3D10).
Il driver fornisce puntatori alle funzioni DXGI direct3D versione 11.2 tramite membri della struttura DXGI1_3_DDI_BASE_FUNCTIONS in una chiamata alla funzione CreateDevice(D3D10) specifica del driver di visualizzazione in modalità utente.
PFNDDXGIDDI_PRESENT_MULTIPLANE_OVERLAYCB: PFNDDXGIDDI_PRESENTCB
PFNDDXGIDDI_SUBMITPRESENTBLTTOHWQUEUECB: PFNDDXGIDDI_SUBMITPRESENTTOHWQUEUECB
Nota
Le funzioni DXGI aggiuntive supportate dal runtime Direct3D 11.2 sono incluse nella sezione Funzioni di sovrapposizione Multiplane implementate dal driver in modalità utente.