EngModifySurface 函数 (winddi.h)
EngModifySurface 函数通知 GDI 驱动程序创建的图面的属性。
语法
ENGAPI BOOL EngModifySurface(
HSURF hsurf,
HDEV hdev,
FLONG flHooks,
FLONG flSurface,
DHSURF dhsurf,
VOID *pvScan0,
LONG lDelta,
VOID *pvReserved
);
参数
hsurf
要修改的图面的句柄。 此参数是由 EngCreateDeviceBitmap 或 EngCreateDeviceSurface 或从 SURFOBJ 结构的 hsurf 成员返回的图面句柄。
hdev
图面要与之关联的设备的句柄。 这是 GDI 传递给 DrvCompletePDEV 的句柄。
flHooks
一组标志,用于控制在指定图面上发生 GDI 绘制时驱动程序可以挂钩的函数。 这可以是 EngAssociateSurface 引用页上列出的任何HOOK_Xxx 值的按位 OR。
flSurface
描述图面属性的一组标志。 目前,当图面位于视频内存中时,驱动程序应将此设置为MS_NOTSYSTEMMEMORY。
dhsurf
标识驱动程序的图面。 驱动程序可以将此设置为任何内容;如果函数成功,GDI 会将生成的表面的 SURFOBJ 结构的 dhsurf 成员设置为此值。
pvScan0
指向位图开头的虚拟地址的指针。
lDelta
位图的虚拟地址步长;也就是说,一个位图行的开头和下一行之间的字节数。
pvReserved
为保留,并且必须始终设置为 NULL。
返回值
成功后,EngModifySurface 返回 TRUE ;否则返回 FALSE。
注解
EngModifySurface 允许驱动程序修改 设备管理的表面 ,并通知 GDI 此图面的属性。 这允许驱动程序将目标图面从不透明转换为非平面,从而允许 GDI 在图面上绘制。
DIB 引擎使用 pvScan0 和 lDelta 直接绘制到图面。 如果这些参数为 NULL,则图面与 GDI 不透明,GDI 将还原调用 DrvCopyBits 以执行驱动程序未挂钩的绘图操作。
DrvEnableSurface 将句柄返回到主图面后,请勿在该图柄上调用 EngModifySurface。 在某些情况下,这样做可能会导致 bug 检查。 有关详细信息,请参阅 Microsoft 知识库文章330248。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 适用于 Windows 2000 及更高版本的 Windows 操作系统。 |
目标平台 | 通用 |
标头 | winddi.h (包括 Winddi.h) |
Library | Win32k.lib |
DLL | Win32k.sys |