DXGKDDI_SYSTEM_DISPLAY_WRITE回调函数 (dispmprt.h)
由操作系统调用,以请求显示微型端口驱动程序将图像块写入显示设备。
从 Windows 8 开始,操作系统在出现系统停止错误后执行 bug 检查操作期间调用此函数。 仅当之前通过调用 DxgkDdiSystemDisplayEnable 重置显示设备时,操作系统才会调用此函数。
语法
DXGKDDI_SYSTEM_DISPLAY_WRITE DxgkddiSystemDisplayWrite;
void DxgkddiSystemDisplayWrite(
[in] PVOID MiniportDeviceContext,
[in] PVOID Source,
[in] UINT SourceWidth,
[in] UINT SourceHeight,
[in] UINT SourceStride,
[in] UINT PositionX,
[in] UINT PositionY
)
{...}
参数
[in] MiniportDeviceContext
与显示适配器关联的上下文块的句柄。 显示微型端口驱动程序的 DxgkDdiAddDevice 函数以前向 Microsoft DirectX 图形内核子系统提供了此句柄。
[in] Source
指向要写入到 bug 检查屏幕的源图像的起始地址的指针,该屏幕显示有关系统停止错误的信息。
[in] SourceWidth
一个 UINT 值,该值指定指定源图像的宽度(以像素为单位)。
[in] SourceHeight
一个 UINT 值,该值指定指定源图像的高度(以像素为单位)。
[in] SourceStride
一个 UINT 值,该值指定指定源图像的每一行的字节数。
[in] PositionX
一个 UINT 值,该值指定指定源图像应在显示设备上写入的起始 X 坐标。
[in] PositionY
一个 UINT 值,该值指定指定源图像应在显示设备上写入的起始 Y 坐标。
返回值
无
备注
源图像限制
调用其 DxgkDdiSystemDisplayWrite 函数时,显示微型端口驱动程序必须遵循以下准则:- 源图像的颜色格式始终采用 D3DDDIFMT_R8G8B8 (每像素 24 位) 或 D3DDDIFMT_A8R8G8B8 (32 bpp D3DDDIFORMAT 枚举) 格式。 显示微型端口驱动程序之前已设置显示模式,以便在调用其 DxgkDdiSystemDisplayEnable 时启用此格式的写入操作。
- 源图像位于非分页内存中。 显示微型端口驱动程序应将此源图像写入当前帧缓冲区,从 PostionX 和 PositionY 参数指定的位置开始。
-
显示微型端口驱动程序应使用 CPU 将图像块写入帧缓冲区。 当系统遇到停止错误时,可能是由显示设备上的连续超时检测和恢复 (TDR) 引起的。 在这种情况下,GPU) (图形处理单元可能处于未知状态。
有关 TDR 的详细信息,请参阅 超时检测和恢复 (TDR) 。
使用非分页内存
调用此函数时,Windows 内核模式函数可能不可用。可以在任何 IRQL 中调用 DxgkDdiSystemDisplayWrite,因此它必须位于不可分页的内存中。 DxgkDdiSystemDisplayWrite 不得调用任何位于可分页内存中的代码,也不得操作可分页内存中的任何数据。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 8 |
最低受支持的服务器 | Windows Server 2012 |
目标平台 | 桌面 |
标头 | dispmprt.h |
IRQL | 任何级别 (请参阅“备注”部分) |
另请参阅
DxgkCbAcquirePostDisplayOwnership