WDDM-Architektur
Das Windows Display Driver Model (WDDM) verfügt über Komponenten für den Benutzermodus und den Kernelmodus. Die folgende Abbildung zeigt die verschiedenen Komponenten der WDDM-Architektur.
Vom System bereitgestellte Module werden in der Abbildung als weiße Kästchen dargestellt. Graue Felder stellen Module dar, die Partner bereitstellen können. Anwendungen können vom System bereitgestellt oder von Partnern entwickelt werden.
Vom System bereitgestellte Module
Die folgenden vom System bereitgestellten Module sind Teil der WDDM-Architektur:
Die Direct3D-Laufzeit ist eine Benutzermoduskomponente, die eine Anwendungs-API für Anwendungen bereitstellt. Es bietet verschiedene Dienste und ist für die Verwaltung der Interaktion zwischen einer Anwendung, dem Benutzermodusgrafiktreiber (UMD) und gdi32.dll verantwortlich.
gdi32.dll ist eine Benutzermodusbibliothek, mit der eine D3D-Laufzeit oder ein Partnergrafikclient verknüpft ist. Eine Laufzeit oder ein Client ruft einen gdi32 „thunk” auf, der den Aufruf an die entsprechende Kernelmodusfunktion im DirectX-Kernelsubsystem (Dxgkrnl) weitergibt.
Dxgkrnl ist die Kernkomponente des Kernelmodusgrafik-Subsystems des Windows-Betriebssystems. Es erleichtert die Kommunikation zwischen dem Betriebssystem, der UMD und dem Kernelmodus-Miniporttreiber (KMD). Dxgkrnl enthält Unterkomponenten wie den Anzeigeporttreiber, den Speicher-Manager (VidMm) und den Scheduler (VidSch). Dxgkrnl besteht aus den folgenden Systemdateien:
- dxgmms2.sys, die den GPU/NPU-Planer und den Videospeicher-Manager für WDDM-Version 2.0 und höher implementiert.
- dxgmms1.sys, die den GPU/NPU-Planer und den Videospeicher-Manager für WDDM-Versionen vor 2.0 implementiert.
- dxgkrnl.sys, die alles andere im DirectX-Kernel-Subsystem verarbeitet, einschließlich des Ladens der erforderlichen dxgmms.sys-Datei, der anfänglichen Verarbeitung von D3DKMTXxx-Aufrufen aus dem Benutzermodus, Anzeigemodi, GPU-Virtualisierung, Energieverwaltung, Schnittstelle mit der Kernel-EXE usw.
Win32 GDI und Win32k.sys sind Legacykomponenten, die von einigen Anwendungen noch verwendet werden.
Von Drittanbietern bereitgestellte Module
Die UMD ist eine DLL (Dynamic Link Library), die von der Direct3D-Laufzeit geladen wird.
Die KMD kommuniziert mit Dxgkrnl und der Grafikhardware.
Ein Grafikhardwareanbieter muss sowohl eine UMD als auch eine KMD bereitstellen.
- Ein Partnergrafikclient eines Drittanbieters ist eine Benutzermoduskomponente, die über eine eigene API und ein eigenes Framework verfügt. Es ruft gdi32 Thunks auf, um mit dem Kernelmodus-Grafiksubsystem zu kommunizieren. Die von Microsoft bekannten Clients werden in D3DKMT_CLIENTHINT aufgeführt.