Проверка частных данных, отправленных из пользовательского режима в режим ядра
Драйвер мини-порта дисплея должен проверять все личные данные, отправленные из драйвера дисплея пользовательского режима, чтобы предотвратить сбой драйвера мини-порта, не отвечать (зависать), утверждать или повреждать память, если частные данные недопустимы. Тем не менее, поскольку операционная система сбрасывает оборудование, которое "зависает", драйвер мини-порта дисплея может отправлять инструкции в графический процессор (GPU), которые вызывают "зависание" GPU. Частные данные могут включать в себя любой из следующих элементов:
Содержимое буфера команд, отправленное в функцию DxgkDdiRender или DxgkDdiRenderKm драйвера мини-порта в элементе буфера pCommandструктуры DXGKARG_RENDER .
Данные отправляются в следующие функции драйвера мини-порта:
- Функция DxgkDdiCreateAllocation в буфере pPrivateDriverData членов DXGKARG_CREATEALLOCATION и DXGK_ALLOCATIONINFO структур.
- Функция DxgkDdiEscape в элементе буфера pPrivateDriverData структуры DXGKARG_ESCAPE .
- Функция DxgkDdiAcquireSwizzlingRange в 32-разрядном элементе PrivateDriverDataструктуры DXGKARG_ACQUIRESWIZZLINGRANGE .
- Функция DxgkDdiReleaseSwizzlingRange в 32-разрядном элементе PrivateDriverDataструктуры DXGKARG_RELEASESWIZZLINGRANGE .
- Функция DxgkDdiQueryAdapterInfo в элементе буфера pInputDataструктуры DXGKARG_QUERYADAPTERINFO , когда значение DXGKQAITYPE_UMDRIVERPRIVATE указано в элементе Type .