Threading und Synchronisierungsebene 1
Auf Ebene 1 des Threadings und der Synchronisierung lässt WDDM keine Erneuteinführung innerhalb einer bestimmten Funktionsklasse zu. Das heißt, nur ein Thread kann den Treiber innerhalb einer bestimmten Klasse eingeben. Aufrufe von mehreren Level One-Klassen und Level Zero-Aufrufen können jedoch gleichzeitig eingegeben werden. Obwohl zwei oder mehr Threads aus verschiedenen Klassen der ersten Ebene und Threads aus Aufrufen der Nullebene gleichzeitig im Treiber ausgeführt werden können, können keine zwei Threads zu einem einzelnen Prozess gehören.
WDDM kategorisiert Aufrufe des Anzeige-Miniporttreibers, die unter ebene 1 des Threadings und der Synchronisierung erfolgen, in klassen, die nicht wiederreentlasten, z. B. die folgenden Klassen. Weitere Klassen sind VidMm, virtuelle Computer und vGPUs.
Pointer-Klasse
WDDM lässt keinen Aufruf einer der Zeigerklassenfunktionen auf wiederholte Weise zu. Das heißt, höchstens ein Thread kann zu einem bestimmten Zeitpunkt innerhalb einer der folgenden Funktionen ausgeführt werden:
GPU Scheduler-Klasse
WDDM lässt den Aufruf einer der GPU-Planerladeklassenfunktionen nicht auf wiederholte Weise zu. Das heißt, höchstens ein Thread kann zu einem bestimmten Zeitpunkt innerhalb einer der folgenden Funktionen ausgeführt werden:
- DxgkDdiBuildPagingBuffer
- DxgkDdiPatch
- DxgkDdiPreemptCommand
- DxgkDdiQueryDependentEngineGroup
- DxgkDdiQueryEngineStatus
- DxgkDdiResetEngine
- DxgkDdiSubmitCommand
Swizzling Range-Klasse
WDDM lässt keinen Aufruf einer der Swizzling Range-Klassenfunktionen auf wiederholte Weise zu. Das heißt, höchstens ein Thread kann zu einem bestimmten Zeitpunkt innerhalb einer der folgenden Funktionen ausgeführt werden:
Overlay-Klasse
WDDM lässt keinen Aufruf einer der Überlagerungsklassenfunktionen auf wiederholte Weise zu. Das heißt, höchstens ein Thread kann zu einem bestimmten Zeitpunkt innerhalb einer der folgenden Funktionen ausgeführt werden:
Untergeordnete E/A-Klasse
WDDM lässt keinen Aufruf einer der untergeordneten E/A-Klassenfunktionen auf wiederholte Weise zu. Das heißt, höchstens ein Thread kann innerhalb einer der folgenden Funktionen pro untergeordnetem Gerät zu einem bestimmten Zeitpunkt ausgeführt werden.
Die untergeordneten E/A-Klassenfunktionen werden pro untergeordnetem Gerät synchronisiert (d. h. gleichzeitige Aufrufe mehrerer untergeordneter Geräte sind zulässig). Wenn jedoch interne Abhängigkeiten zwischen untergeordneten Geräten vorhanden sind, muss der Anzeige-Miniporttreiber Aufrufe nach Bedarf blockieren.
- DxgkDdiQueryChildStatus
- DxgkDdiQueryConnectionChange
- DxgkDdiQueryDeviceDescriptor
- DxgkDdiDisplayDetectControl
- DxgkDdiI2CReceiveDataFromDisplay
- DxgkDdiI2CTransmitDataToDisplay
- DxgkDdiOPMConfigureProtectedOutput
- DxgkDdiOPMCreateProtectedOutput
- DxgkDdiOPMDestroyProtectedOutput
- DxgkDdiOPMGetCertificate
- DxgkDdiOPMGetCertificateSize
- DxgkDdiOPMGetCOPPCompatibleInformation
- DxgkDdiOPMGetInformation
- DxgkDdiOPMGetRandomNumber
- DxgkDdiOPMSetSigningKeyAndSequenceNumbers
Display-Klasse
WDDM lässt einen Aufruf einer der Anzeigeklassenfunktionen nicht auf wiederholte Weise zu. Das heißt, höchstens ein Thread kann zu einem bestimmten Zeitpunkt innerhalb einer der folgenden Funktionen ausgeführt werden: