Sous-système de noyau DirectX Graphics (Dxgkrnl)
Cet article décrit les interfaces en mode noyau que le système d’exploitation Windows implémente via le sous-système du noyau graphique DirectX (Dxgkrnl.sys).
Le pilote de port d’affichage est une partie de Dxgkrnl.sys. Un fournisseur de matériel graphique/d’affichage implémente le pilote de miniport (KMD) en mode noyau.
Pour obtenir des descriptions d’autres fonctions implémentées par Dxgkrnl, consultez des articles tels que :
Prise en charge de la rotation indépendante du chemin
Obtention de modes cibles de moniteur supplémentaires
Dxgkrnl Interface
La fonction DriverEntry d’un KMD appelle la fonction DxgkInitialize du système d’exploitation, ce qui entraîne le chargement et l’initialisation de Dxgkrnl.
Une fois chargé, Dxgkrnl.sys fournit au KMD des pointeurs vers ses fonctions en passant une structure DXGKRNL_INTERFACE à la fonction DxgkDdiStartDevice du KMD. Les pointeurs de fonction de Dxgkrnl ont un préfixe DxgkCb .
La structure DXGKRNL_INTERFACE contient également un handle vers un adaptateur d’affichage particulier. Le pilote de port d’affichage génère ce handle. Le KMD transmet ce handle en tant qu’argument chaque fois qu’il appelle l’une des fonctions dans DXGKRNL_INTERFACE.
Afficher les interfaces du pilote de port
Le KMD obtient les interfaces du pilote de port d’affichage en appelant la fonction Dxgkrnl DxgkCbQueryServices avec une valeur DXGK_SERVICES qui spécifie le type d’interface souhaité par le KMD. Les services fournis par le pilote de port d’affichage incluent les services AGP (port graphique accéléré), les services de rapport de débogage, les services d’opération chronométrés, etc.