DXGKDDI_BEGINEXCLUSIVEACCESS funzione di callback (d3dkmddi.h)
Dxgkrnl chiama DxgkDdiBeginExclusiveAccess per notificare al driver in modalità kernel che sta per verificarsi un commutatore di dominio IOMMU.
Sintassi
DXGKDDI_BEGINEXCLUSIVEACCESS DxgkddiBeginexclusiveaccess;
NTSTATUS DxgkddiBeginexclusiveaccess(
IN_CONST_HANDLE hAdapter,
IN_PDXGKARG_BEGINEXCLUSIVEACCESS pBeginExclusiveAccess
)
{...}
Parametri
hAdapter
[in] Handle di un blocco di contesto associato a una scheda di visualizzazione.
pBeginExclusiveAccess
[in] Puntatore a una struttura di DXGKARG_BEGINEXCLUSIVEACCESS che contiene gli argomenti di input per DxgkDdiBeginExclusiveAccess.
Valore restituito
dxgkDdiBeginExclusiveAccess deve restituire STATUS_SUCCESS se l'operazione ha esito positivo. In caso contrario, deve restituire un NTSTATUS codice di errore appropriato.
Osservazioni
Il collegamento e lo scollegamento del dominio IOMMU è estremamente veloce, ma non è tuttavia attualmente atomico. Ciò significa che non è garantito che una transazione eseguita su PCIe venga convertita correttamente durante lo scambio in un dominio con mapping diversi.
Per gestire questa situazione, Dxgkrnl chiama la coppia DDI KMD seguente:
- DxgkDdiBeginExclusiveAccess per notificare al KmD che sta per verificarsi un commutatore di dominio IOMMU.
- DxgkDdiEndExclusiveAccess dopo il completamento dell'opzione di dominio IOMMU.
Il driver deve assicurarsi che l'hardware sia invisibile all'utente ogni volta che il dispositivo viene passato a un nuovo dominio IOMMU. Ovvero, il driver deve assicurarsi che non legga o scriva nella memoria di sistema dal dispositivo tra queste due chiamate.
Tra queste due chiamate, Dxgkrnl garantisce quanto segue:
- L'utilità di pianificazione verrà sospesa. Tutti i carichi di lavoro attivi verranno scaricati e non verranno inviati nuovi carichi di lavoro all'hardware o pianificati.
- Non verranno effettuate altre chiamate DDI.
Come parte di queste chiamate, il driver può scegliere di disabilitare e eliminare gli interrupt (inclusi gli interrupt vsync) per la durata dell'accesso esclusivo, anche senza notifica esplicita dal sistema operativo.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows 10, versione 1803 (WDDM 2.4) |
intestazione | d3dkmddi.h |
IRQL | PASSIVE_LEVEL |