DXGKDDI_BEGINEXCLUSIVEACCESS Rückruffunktion (d3dkmddi.h)
Dxgkrnl ruft DxgkDdiBeginExclusiveAccess auf, um den Kernelmodustreiber zu benachrichtigen, dass ein IOMMU-Domänenwechsel im Näheren steht.
Syntax
DXGKDDI_BEGINEXCLUSIVEACCESS DxgkddiBeginexclusiveaccess;
NTSTATUS DxgkddiBeginexclusiveaccess(
IN_CONST_HANDLE hAdapter,
IN_PDXGKARG_BEGINEXCLUSIVEACCESS pBeginExclusiveAccess
)
{...}
Parameter
hAdapter
[in] Ein Handle für einen Kontextblock, der einer Grafikkarte zugeordnet ist.
pBeginExclusiveAccess
[in] Zeiger auf eine DXGKARG_BEGINEXCLUSIVEACCESS-Struktur , die die Eingabeargumente für DxgkDdiBeginExclusiveAccess enthält.
Rückgabewert
DxgkDdiBeginExclusiveAccess sollte STATUS_SUCCESS zurückgeben, wenn der Vorgang erfolgreich ist. Andernfalls sollte ein entsprechender NTSTATUS-Fehlercode zurückgegeben werden.
Hinweise
Das Anfügen und Trennen von IOMMU-Domänen ist extrem schnell, aber derzeit nicht atomar. Dies bedeutet, dass eine über PCIe ausgestellte Transaktion nicht garantiert richtig übersetzt wird, während sie in eine Domäne mit unterschiedlichen Zuordnungen getauscht wird.
Um diese Situation zu bewältigen, ruft Dxgkrnl das folgende KMD-DDI-Paar auf:
- DxgkDdiBeginExclusiveAccess , um KMD zu benachrichtigen, dass ein IOMMU-Domänenwechsel im Entstehen ist.
- DxgkDdiEndExclusiveAccess nach Abschluss des IOMMU-Domänenwechsels.
Der Treiber muss sicherstellen, dass seine Hardware im Hintergrund ist, wenn das Gerät in eine neue IOMMU-Domäne gewechselt wird. Das heißt, der Treiber muss sicherstellen, dass er zwischen diesen beiden Aufrufen nicht vom Gerät liest oder in den Systemspeicher schreibt.
Zwischen diesen beiden Aufrufen garantiert Dxgkrnl Folgendes:
- Der Planer wird angehalten. Alle aktiven Workloads werden geleert, und es werden keine neuen Workloads an die Hardware gesendet oder geplant.
- Es werden keine anderen DDI-Aufrufe durchgeführt.
Im Rahmen dieser Aufrufe kann der Treiber Interrupts (einschließlich vsync-Interrupts) für die Dauer des exklusiven Zugriffs deaktivieren und unterdrücken, auch ohne explizite Benachrichtigung vom Betriebssystem.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 10, Version 1803 (WDDM 2.4) |
Kopfzeile | d3dkmddi.h |
IRQL | PASSIVE_LEVEL |