Condividi tramite


Inizializzazione della comunicazione con il driver di visualizzazione User-Mode Direct3D

Per inizializzare la comunicazione con la DLL DDI del driver di visualizzazione in modalità utente Di Microsoft Direct3D versione 11, il runtime Direct3D carica prima la DLL. Il runtime Direct3D chiama quindi la funzione OpenAdapter del driver di visualizzazione in modalità utente tramite la tabella di esportazione della DLL per aprire un'istanza della scheda grafica. La funzione OpenAdapter è l'unica funzione esportata della DLL.

Nella chiamata alla funzione OpenAdapter del driver, il runtime fornisce la funzione di callback dell'adapter pfnQueryAdapterInfoCb nel membro pAdapterCallbacks della struttura D3DDDIARG_OPENADAPTER . Il runtime fornisce anche la versione nei membri dell'interfaccia e della versione di D3DDDIARG_OPENADAPTER. Il driver di visualizzazione in modalità utente deve verificare che possa usare questa versione del runtime. Il driver di visualizzazione in modalità utente restituisce una tabella delle relative funzioni specifiche dell'adattatore nel membro pAdapterFuncs di D3DDDIARG_OPENADAPTER.

Il driver di visualizzazione in modalità utente deve chiamare la funzione di callback dell'adattatore pfnQueryAdapterInfoCb per eseguire query sulle funzionalità hardware grafiche dal driver miniport di visualizzazione.

Il runtime chiama la funzione CreateDevice del driver di visualizzazione in modalità utente (una delle funzioni specifiche dell'adattatore del driver) per creare un dispositivo di visualizzazione per la gestione di una raccolta di stato di rendering e per completare l'inizializzazione. Al termine dell'inizializzazione, il runtime Direct3D può chiamare le funzioni fornite dal driver di visualizzazione e il driver di visualizzazione in modalità utente può chiamare le funzioni fornite dal runtime.

La funzione CreateDevice del driver di visualizzazione in modalità utente viene chiamata con una struttura D3DDDIARG_CREATEDEVICE i cui membri sono configurati nel modo seguente per inizializzare l'interfaccia del driver di visualizzazione in modalità utente:

  • Il runtime imposta Interface sulla versione dell'interfaccia richiesta dal runtime dal driver di visualizzazione in modalità utente.

  • Il runtime imposta Version su un numero che il driver può usare per identificare quando è stato compilato il runtime. Ad esempio, il driver può usare il numero di versione per distinguere un runtime rilasciato con Windows Vista e un runtime rilasciato con un Service Pack successivo, che potrebbe contenere una correzione richiesta dal driver.

  • Il runtime imposta hDevice per specificare l'handle che il driver deve usare quando il driver chiama di nuovo nel runtime. Il driver genera un handle univoco e lo passa di nuovo al runtime in hDevice. Il runtime deve usare l'handle hDevice restituito nelle chiamate driver successive.

  • Il runtime fornisce una tabella delle funzioni di callback specifiche del dispositivo nella struttura D3DDDI_DEVICECALLBACKS a cui punta pCallbacks . Il driver di visualizzazione in modalità utente chiama le funzioni di callback fornite dal runtime per accedere ai servizi in modalità kernel nel driver miniport di visualizzazione.

  • Il driver di visualizzazione in modalità utente restituisce una tabella delle relative funzioni specifiche del dispositivo nella struttura D3DDDI_DEVICEFUNCS a cui punta pDeviceFuncs .

Nota

Il numero di dispositivi di visualizzazione (contesti grafici) che possono esistere simultaneamente è limitato solo dalla memoria di sistema disponibile.