Validación de datos privados enviados desde el modo de usuario al modo kernel
Un controlador de minipuerto de pantalla debe validar todos los datos privados enviados desde el controlador de pantalla en modo de usuario para evitar que el controlador de miniporte se bloquee, no responda (colgar), aserciones o daños en la memoria si los datos privados no son válidos. Sin embargo, dado que el sistema operativo restablece el hardware que "se bloquea", el controlador de miniporte de pantalla puede enviar instrucciones a la unidad de procesamiento gráfico (GPU) que hace que la GPU se bloquee. Los datos privados pueden incluir cualquiera de los siguientes elementos:
Contenido del búfer de comandos enviado a la función DxgkDdiRender o DxgkDdiRenderKm del controlador de miniporte en el miembro del búfer pCommand de la estructura DXGKARG_RENDER .
Datos enviados a las siguientes funciones de controlador de minipuerto:
- La función DxgkDdiCreateAllocation de los miembros del búfer pPrivateDriverData de las estructuras DXGKARG_CREATEALLOCATION y DXGK_ALLOCATIONINFO .
- La función DxgkDdiEscape del miembro de búfer pPrivateDriverData de la estructura DXGKARG_ESCAPE .
- La función DxgkDdiAcquireSwizzlingRange en el miembro PrivateDriverData de 32 bits de la estructura DXGKARG_ACQUIRESWIZZLINGRANGE .
- La función DxgkDdiReleaseSwizzlingRange en el miembro PrivateDriverData de 32 bits de la estructura DXGKARG_RELEASESWIZZLINGRANGE .
- La función DxgkDdiQueryAdapterInfo del miembro de búfer pInputData de la estructura DXGKARG_QUERYADAPTERINFO cuando se especifica el valor DXGKQAITYPE_UMDRIVERPRIVATE en el miembro Type .