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

要修改的图面的句柄。 此参数是由 EngCreateDeviceBitmapEngCreateDeviceSurface 或从 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 引擎使用 pvScan0lDelta 直接绘制到图面。 如果这些参数为 NULL,则图面与 GDI 不透明,GDI 将还原调用 DrvCopyBits 以执行驱动程序未挂钩的绘图操作。

DrvEnableSurface 将句柄返回到主图面后,请勿在该图柄上调用 EngModifySurface。 在某些情况下,这样做可能会导致 bug 检查。 有关详细信息,请参阅 Microsoft 知识库文章330248

要求

要求
最低受支持的客户端 适用于 Windows 2000 及更高版本的 Windows 操作系统。
目标平台 通用
标头 winddi.h (包括 Winddi.h)
Library Win32k.lib
DLL Win32k.sys

另请参阅

DrvCopyBits

EngAssociateSurface