验证从用户模式发送到内核模式的专用数据
显示微型端口驱动程序必须验证从用户模式显示驱动程序发送的所有专用数据,以防止微型端口驱动程序崩溃、不响应 (挂起) 、断言或损坏内存(如果私有数据无效)。 但是,由于操作系统重置了“挂起”的硬件,因此显示微型端口驱动程序可以将指令发送到导致 GPU“挂起”的图形处理单元 (GPU) 。私有数据可以包括以下任一项:
命令缓冲区内容发送到微型端口驱动程序的 DxgkDdiRender 或 DXGKARG_RENDER 结构的 pCommand 缓冲区成员中的 DxgkDdiRenderKm 函数。
发送到以下微型端口驱动程序函数的数据:
- DXGKARG_CREATEALLOCATION 和DXGK_ALLOCATIONINFO 结构的 pPrivateDriverData 缓冲区成员中的 DxgkDdiCreateAllocation 函数。
- DXGKARG_ESCAPE 结构的 pPrivateDriverData 缓冲区成员中的 DxgkDdiEscape 函数。
- DXGKARG_ACQUIRESWIZZLINGRANGE 结构的 PrivateDriverData 32 位成员中的 DxgkDdiAcquireSwizzlingRange 函数。
- DXGKARG_RELEASESWIZZLINGRANGE 结构的PrivateDriverData 32 位成员中的 DxgkDdiReleaseSwizzlingRange 函数。
- 在 Type 成员中指定DXGKQAITYPE_UMDRIVERPRIVATE值时,DXGKARG_QUERYADAPTERINFO 结构的 pInputData 缓冲区成员中的 DxgkDdiQueryAdapterInfo 函数。