Inizializzazione della comunicazione con Direct3D versione 10 DDI
Per inizializzare la comunicazione con la DLL di visualizzazione in modalità utente della DLL versione 10 DDI, il runtime Direct3D versione 10 carica prima la DLL se la DLL non è ancora caricata. Il runtime Direct3D chiama successivamente la funzione OpenAdapter10 del driver di visualizzazione in modalità utente tramite la tabella di esportazione della DLL per aprire un'istanza della scheda grafica. La funzione OpenAdapter10 è l'unica funzione Direct3D esportata della DLL.
Nella chiamata alla funzione OpenAdapter10 del driver, il runtime fornisce la funzione di callback dell'adattatore pfnQueryAdapterInfoCb nel membro pAdapterCallbacks della struttura D3D10DDIARG_OPENADAPTER . Il runtime fornisce anche la versione nei membridell'interfaccia e della versione di D3D10DDIARG_OPENADAPTER. Il driver di visualizzazione in modalità utente deve verificare che possa usare questa versione del runtime. Il driver di visualizzazione in modalità utente non deve avere esito negativo nelle versioni più recenti del runtime perché le versioni di runtime più recenti possono usare versioni DDI precedenti e quindi possono comunicare correttamente con i driver che implementano le versioni DDI precedenti. Il driver di visualizzazione in modalità utente restituisce una tabella delle funzioni specifiche dell'adattatore nel membro pAdapterFuncs di D3D10DDIARG_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 visualizzato.
Il runtime chiama la funzione CreateDevice(D3D10) del driver di visualizzazione in modalità utente (una delle funzioni specifiche dell'adattatore del driver) per creare un dispositivo di visualizzazione per gestire una raccolta di stato di rendering e completare l'inizializzazione. Al termine dell'inizializzazione, il runtime Direct3D versione 10 può chiamare le funzioni Direct3D versione 10 fornite dal driver visualizzato e il driver di visualizzazione in modalità utente può chiamare le funzioni fornite dal runtime.
La funzione CreateDevice(D3D10) del driver di visualizzazione in modalità utente viene chiamata con una struttura D3D10DDIARG_CREATEDEVICE i cui membri sono configurati nel modo seguente per inizializzare la versione 10 DDI del driver di visualizzazione in modalità utente:
Il runtime imposta Interfaccia sulla versione dell'interfaccia richiesta dal driver di visualizzazione in modalità utente.
Il runtime imposta Versione 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 tra un runtime rilasciato con Windows Vista e un runtime rilasciato con un service pack successivo, che potrebbe contenere una correzione necessaria per il driver.
Il runtime imposta hRTDevice per specificare l'handle che il driver deve usare quando il driver esegue la chiamata al runtime.
Il runtime imposta hDrvDevice per specificare l'handle usato dal runtime nelle chiamate driver successive.
Il runtime fornisce una tabella delle funzioni di callback specifiche del dispositivo nella struttura di D3DDDI_DEVICECALLBACKS a cui pKTCallbacks punta. 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 visualizzato.
Il driver di visualizzazione in modalità utente restituisce una tabella delle funzioni specifiche del dispositivo nella struttura D3D10DDI_DEVICEFUNCS a cui pDeviceFuncs punta.
Il runtime fornisce una struttura DXGI_DDI_BASE_ARGS a cui punta DXGIBaseDDI . Il runtime e il driver di visualizzazione in modalità utente forniscono l'infrastruttura grafica DirectX DDI a questa struttura.
Il runtime imposta hRTCoreLayer per specificare l'handle che il driver deve usare quando il driver viene richiamato nel runtime per accedere alla funzionalità Direct3D 10 di base, ovvero nelle chiamate alle funzioni specificate dal membro pUMCallbacks .
Il runtime fornisce una tabella delle funzioni di callback principali nella struttura di D3D10DDI_CORELAYER_DEVICECALLBACKS a cui punta pUMCallbacks . Il driver di visualizzazione in modalità utente chiama le funzioni di callback di base fornite dal runtime per aggiornare lo stato.
Nota Il numero di dispositivi di visualizzazione (contesti grafici) che possono esistere simultaneamente è limitato solo dalla memoria di sistema disponibile.