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 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 codice di errore NTSTATUS appropriato.
Commenti
Il collegamento e lo scollegamento del dominio IOMMU è estremamente veloce, ma non è tuttavia attualmente atomico. Ciò significa che non è garantito che una transazione emessa 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 cambio 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 passa 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 o pianificati nell'hardware.
- 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 notifiche esplicite dal sistema operativo.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 10 versione 1803 (WDDM 2.4) |
Intestazione | d3dkmddi.h |
IRQL | PASSIVE_LEVEL |