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 时启用此格式的写入操作。
  • 源图像位于非分页内存中。 显示微型端口驱动程序应将此源图像写入当前帧缓冲区,从 PostionXPositionY 参数指定的位置开始。
  • 显示微型端口驱动程序应使用 CPU 将图像块写入帧缓冲区。 当系统遇到停止错误时,可能是由显示设备上的连续超时检测和恢复 (TDR) 引起的。 在这种情况下,GPU) (图形处理单元可能处于未知状态。

    有关 TDR 的详细信息,请参阅 超时检测和恢复 (TDR)

使用非分页内存

调用此函数时,Windows 内核模式函数可能不可用。

可以在任何 IRQL 中调用 DxgkDdiSystemDisplayWrite,因此它必须位于不可分页的内存中。 DxgkDdiSystemDisplayWrite 不得调用任何位于可分页内存中的代码,也不得操作可分页内存中的任何数据。

要求

要求
最低受支持的客户端 Windows 8
最低受支持的服务器 Windows Server 2012
目标平台 桌面
标头 dispmprt.h
IRQL 任何级别 (请参阅“备注”部分)

另请参阅

DxgkCbAcquirePostDisplayOwnership

DxgkDdiAddDevice

DxgkDdiStopDeviceAndReleasePostDisplayOwnership

DxgkDdiSystemDisplayEnable