Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Per allocare memoria per l'area di salvataggio del contesto di un contesto, il driver in modalità kernel può usare le allocazioni di contesto tramite DxgkCbCreateContextAllocation. Alcune nuove funzionalità vengono aggiunte alle allocazioni di contesto per renderle adatte al nuovo modello di indirizzi virtuali dell'unità di elaborazione grafica (GPU).
AccessoFisico
Un'allocazione del contesto può specificare i flag AccessedPhysically per indicare che l'allocazione deve essere allocata in modo contiguo in un segmento di memoria o mappata all'apertura se si accede dalla memoria di sistema.
Assegnazione di un indirizzo virtuale GPU a un'allocazione del contesto
Il gestore della memoria video espone un nuovo servizio DxgkCbMapContextAllocation al driver in modalità kernel per allocare un indirizzo virtuale GPU a un'allocazione del contesto.
Le allocazioni di contesto vengono mappate nello spazio indirizzi virtuale della GPU dell'applicazione associato al contesto specificato.
Nota Il driver deve prestare attenzione a non esporre informazioni con privilegi quando un'allocazione del contesto deve essere mappata direttamente a uno spazio indirizzi virtuale GPU dell'applicazione.
Questi servizi si comportano come la loro controparte nella modalità utente.
Aggiornamento del contenuto di un'allocazione del contesto
Potrebbe essere necessario che il driver in modalità kernel aggiorni il contenuto di un'allocazione del contesto. Ad esempio, un'allocazione di contesto privilegiato (AccessedPhysically, nessun mapping virtuale GPU) può contenere un riferimento alla directory delle pagine associata a un contesto specifico. Quando tramite DxgkDdiSetRootPageTable viene notificata al driver in modalità kernel la rilocazione della directory di pagine, il driver potrebbe dover aggiornare il contenuto dell'allocazione del contesto.
A questo scopo viene aggiunta una nuova interfaccia DDI (Device Driver Interface) DxgkCbUpdateContextAllocation. Questa DDI accoda una richiesta al gestore della memoria video per avviare l'aggiornamento dell'allocazione del contesto. L'allocazione del contesto da aggiornare viene mappata nell'area temporanea del processo di paging del gestore della memoria video, quindi il driver viene chiamato con una nuova operazione di paging UpdateContextAllocation per eseguire l'aggiornamento effettivo dell'allocazione del contesto. Il gestore della memoria video torna da DxgkCbUpdateContextAllocation dopo che l'aggiornamento è stato completato.
Il driver in modalità kernel può passare alcuni dati del driver privato tra le chiamate a DxgkCbUpdateContextAllocation e l'operazione di paging UpdateContextAllocation risultante.