EngFindImageProcAddress-Makro (winddi.h)
Die EngFindImageProcAddress-Funktion gibt die Adresse einer Funktion in einem ausführbaren Modul zurück.
Syntax
void EngFindImageProcAddress(
h,
[in] procname
);
Parameter
h
Handle mit dem Bild, in dem die Funktion gefunden werden kann. Dieses Handle wurde durch Aufrufen von EngLoadImage abgerufen. Dieser Parameter kann unter Windows NT 4.0 SP3 und höheren Versionen NULL sein, einschließlich Windows 2000 und höherer Betriebssystemversionen.
[in] procname
Zeiger auf die Zeichenfolge, die den Namen der zu findenden Funktion angibt.
Rückgabewert
Keine
Bemerkungen
Ein Treiber muss das Image zuvor über einen Aufruf von EngLoadImage in den Kernelmodus geladen haben.
Die durch lpProcName identifizierte Funktion muss vom geladenen Modul exportiert werden. Dies wird mithilfe des EXPORTS-Schlüssels im Modul erreicht . DEF-Datei .
Ein Treiber kann EngFindImageProcAddress nicht aufrufen, wobei hModule unter einer Version von Windows NT 4.0 vor SP3 auf NULL festgelegt ist. Daher muss der Treiber eine Versionsüberprüfung durchführen, um sicherzustellen, dass auf dem System diese Version oder Windows 2000 oder höher ausgeführt wird. Insbesondere wenn der iEngineVersion-Wert , der an die DrvEnableDriver-Funktion des Treibers übergeben wird, größer oder gleich DDI_DRIVER_VERSION_SP3 ist, kann der Treiber EngFindImageProcAddress mit einem NULL-Wert für hModule aufrufen.
Um die Adresse einer GDI-Dienstroutine abzurufen, die für Windows 2000 und höhere Betriebssystemversionen neu ist, kann der Treiber EngFindImageProcAddress aufrufen, wobei der Zeichenfolgenname der Funktion und hModule auf NULL festgelegt ist. Der lpProcName-Parameter kann das Äquivalent einer der folgenden Funktionen sein, wenn hModuleNULL ist:
BRUSHOBJ_hGetColorTransform | EngAlphaBlend |
EngClearEvent | EngControlSprites |
EngCreateEvent | EngDeleteEvent |
EngDeleteFile | EngDeleteSafeSemaphor |
EngDeleteWnd | EngDitherColor |
EngGetPrinterDriver | EngGradientFill |
EngHangNotification | EngInitializeSafeSemaphor |
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 |
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar in Windows 2000 und höheren Versionen der Windows-Betriebssysteme. |
Zielplattform | Universell |
Header | winddi.h (einschließlich Winddi.h) |
Bibliothek | Win32k.lib |
DLL | Win32k.sys |