EngFindImageProcAddress 宏 (winddi.h)
EngFindImageProcAddress 函数返回可执行模块中函数的地址。
语法
void EngFindImageProcAddress(
h,
[in] procname
);
参数
h
可在其中找到函数的图像的句柄。 此句柄是通过调用 EngLoadImage 获取的。 在 Windows NT 4.0 SP3 及更高版本(包括 Windows 2000 及更高版本的操作系统)上,此参数可以为 NULL。
[in] procname
指向指定要定位的函数名称的字符串的指针。
返回值
无
备注
驱动程序之前必须通过调用 EngLoadImage 将映像加载到内核模式。
由 lpProcName 标识的函数必须由加载的模块导出。 这是通过使用模块的 中的 EXPORTS 键来实现的 。DEF 文件。
在 SP3 之前的任何 Windows NT 4.0 版本上,驱动程序无法调用 hModule 设置为 NULL 的 EngFindImageProcAddress。 因此,驱动程序必须执行版本检查,以确保系统运行的是该版本或 Windows 2000 或更高版本。 具体而言,如果传递给驱动程序的 DrvEnableDriver 函数的 iEngineVersion 值大于或等于 DDI_DRIVER_VERSION_SP3,则驱动程序可以使用 hModule 的 NULL 值调用 EngFindImageProcAddress。
若要获取 Windows 2000 及更高操作系统版本新增的 GDI 服务例程的地址,驱动程序可以使用函数的字符串名称调用 EngFindImageProcAddress ,并将 hModule 设置为 NULL。 当 hModule 为 NULL 时,lpProcName 参数可以是以下任何函数的等效文本字符串:
BRUSHOBJ_hGetColorTransform | EngAlphaBlend |
EngClearEvent | EngControlSprites |
EngCreateEvent | EngDeleteEvent |
EngDeleteFile | EngDeleteSafeSemaphore |
EngDeleteWnd | EngDitherColor |
EngGetPrinterDriver | EngGradientFill |
EngHangNotification | EngInitializeSafeSemaphore |
EngLockDirectDrawSurface | EngLpkInstalled |
EngMapEvent | EngMapFile |
EngMapFontFileFD | EngModifySurface |
EngMovePointer | EngPlgBlt |
EngQueryDeviceAttribute | EngQueryPalette |
EngQuerySystemAttribute | EngReadStateEvent |
EngRestoreFloatingPointState | EngSaveFloatingPointState |
EngSetEvent | EngSetPointerShape |
EngSetPointerTag | EngStretchBltROP |
EngTransparentBlt | EngUnlockDirectDrawSurface |
EngUnmapEvent | EngUnmapFile |
EngUnmapFontFileFD | EngWaitForSingleObject |
FONTOBJ_pfdg | FONTOBJ_pjOpenTypeTablePointer |
FONTOBJ_pQueryGlyphAttrs | FONTOBJ_pwszFontFilePaths |
HeapVidMemAllocAligned | HT_Get8BPPMaskPalette |
STROBJ_bEnumPositionsOnly | STROBJ_bGetAdvanceWidths |
STROBJ_fxBreakExtra | STROBJ_fxCharacterExtra |
VidMemFree | XLATEOBJ_hGetColorTransform |
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 Windows 2000 及更高版本的 Windows 操作系统中可用。 |
目标平台 | 通用 |
标头 | winddi.h (包括 Winddi.h) |
Library | Win32k.lib |
DLL | Win32k.sys |