DirectX Graphics Kernel Subsystem (Dxgkrnl)
In diesem Artikel werden Kernelmodusschnittstellen beschrieben, die vom Windows-Betriebssystem über das DirectX-Grafik-Kernelsubsystem (Dxgkrnl.sys) implementiert werden.
Der Anzeigeporttreiber ist ein Teil von Dxgkrnl.sys. Ein Grafik-/Anzeigehardwareanbieter implementiert den Kernelmodus-Miniporttreiber (KMD).
Beschreibungen anderer von Dxgkrnl implementierter Funktionen finden Sie in artikeln wie:
VidPN-Objekte und -Schnittstellen
Unterstützen der pfadunabhängigen Drehung
Abrufen zusätzlicher Monitorzielmodi
Dxgkrnl-Schnittstelle
Die DriverEntry-Funktion einer KMD ruft die DxgkInitialize-Funktion des Betriebssystems auf, wodurch Dxgkrnl geladen und initialisiert wird.
Nach dem Laden stellt Dxgkrnl.sys der KMD Zeiger auf seine Funktionen bereit, indem eine DXGKRNL_INTERFACE Struktur an die DxgkDdiStartDevice-Funktion der KMD übergeben wird. Die Funktionszeiger von Dxgkrnl weisen ein DxgkCb-Präfix auf.
Die DXGKRNL_INTERFACE-Struktur enthält auch einen Ziehpunkt für einen bestimmten Anzeigeadapter. Der Anzeigeporttreiber generiert dieses Handle. Der KMD übergibt dieses Handle jedes Mal als Argument, wenn er eine der Funktionen in DXGKRNL_INTERFACE aufruft.
Anzeigeporttreiberschnittstellen
Die KMD ruft die Schnittstellen des Anzeigeporttreibers ab, indem die Dxgkrnl DxgkCbQueryServices-Funktion mit einem DXGK_SERVICES Wert aufgerufen wird, der den Typ der Schnittstelle angibt, die der KMD wünscht. Dienste, die der Anzeigeporttreiber bereitstellt, umfassen AGP-Dienste (Beschleunigter Grafikport), Debugberichtsdienste, Zeitoperationsdienste und vieles mehr.