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