Validation des données privées envoyées du mode utilisateur au mode noyau
Un pilote miniport d’affichage doit valider toutes les données privées envoyées à partir du pilote d’affichage en mode utilisateur pour empêcher le pilote miniport de se bloquer, de ne pas répondre (se bloquer), d’affirmer ou d’endommager la mémoire si les données privées ne sont pas valides. Toutefois, étant donné que le système d’exploitation réinitialise le matériel qui « se bloque », le pilote miniport d’affichage peut envoyer des instructions à l’unité de traitement graphique (GPU) qui provoquent le « blocage » du GPU. Les données privées peuvent inclure l’un des éléments suivants :
Contenu de la mémoire tampon de commande envoyé à la fonction DxgkDdiRender ou DxgkDdiRenderKm du pilote miniport dans le membre de mémoire tampon pCommand de la structure DXGKARG_RENDER .
Données envoyées aux fonctions de pilote miniport suivantes :
- Fonction DxgkDdiCreateAllocation dans les membres de mémoire tampon pPrivateDriverData des structures DXGKARG_CREATEALLOCATION et DXGK_ALLOCATIONINFO .
- Fonction DxgkDdiEscape dans le membre de mémoire tampon pPrivateDriverData de la structure DXGKARG_ESCAPE .
- Fonction DxgkDdiAcquireSwizzlingRange dans le membre PrivateDriverData 32 bits de la structure DXGKARG_ACQUIRESWIZZLINGRANGE .
- Fonction DxgkDdiReleaseSwizzlingRange dans le membre PrivateDriverData 32 bits de la structure DXGKARG_RELEASESWIZZLINGRANGE .
- Fonction DxgkDdiQueryAdapterInfo dans le membre de mémoire tampon pInputData de la structure DXGKARG_QUERYADAPTERINFO lorsque la valeur DXGKQAITYPE_UMDRIVERPRIVATE est spécifiée dans le membre Type .