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 函数时,显示微型端口驱动程序必须遵循以下准则:- 源图像的颜色格式始终采用 D3DDDIFORMAT 枚举的 D3DDDIFMT_R8G8B8(每像素 24 位)或 D3DDDIFMT_A8R8G8B8 (32 bpp) 格式。 调用其 DxgkDdiSystemDisplayEnable 时,显示微型端口驱动程序以前已设置显示模式以启用此格式的写入作。
- 源图像位于非分页内存中。 显示微型端口驱动程序应将此源图像写入当前帧缓冲区,从 PostionX 指定的位置开始,并 PositionY 参数。
-
显示微型端口驱动程序应使用 CPU 将图像块写入帧缓冲区。 当系统遇到停止错误时,它可能是由显示设备上的连续超时检测和恢复(TDR)引起的。 在这种情况下,图形处理单元(GPU)可能处于未知状态。
有关 TDR 的详细信息,请参阅 超时检测和恢复(TDR)。
使用非分页内存
调用此函数时,Windows 内核模式函数可能不可用。DxgkDdiSystemDisplayWrite 可在任何 IRQL 上调用,因此它必须位于不可分页的内存中。 DxgkDdiSystemDisplayWrite 不得调用任何在可分页内存中的代码,并且不得作可分页内存中的任何数据。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 8 |
支持的最低服务器 | Windows Server 2012 |
目标平台 | 桌面 |
标头 | dispmprt.h |
IRQL | 任何级别 (请参阅“备注”部分) |
另请参阅
DxgkCbAcquirePostDisplayOwnership