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 此图面的属性。 这允许驱动程序将目标图面从不透明转换为 nonopaque,从而允许 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 |