- Implement NULL module case for EngFindImageProcAddress

- Add stubs for EngFindImageProcAddress()able not present yet

svn path=/trunk/; revision=9079
This commit is contained in:
Gé van Geldorp 2004-04-11 09:09:38 +00:00
parent eddb2f5168
commit b17d0f5101
2 changed files with 402 additions and 1 deletions

View file

@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* $Id: loader.c,v 1.15 2004/04/09 20:03:18 navaraf Exp $
/* $Id: loader.c,v 1.16 2004/04/11 09:09:38 gvg Exp $
*
*/
@ -151,6 +151,79 @@ EngFindImageProcAddress(IN HANDLE Module,
PVOID Function;
NTSTATUS Status;
ANSI_STRING ProcNameString;
unsigned i;
static struct
{
PCSTR ProcName;
PVOID ProcAddress;
}
Win32kExports[] =
{
{ "BRUSHOBJ_hGetColorTransform", BRUSHOBJ_hGetColorTransform },
{ "EngAlphaBlend", EngAlphaBlend },
{ "EngClearEvent", EngClearEvent },
{ "EngControlSprites", EngControlSprites },
{ "EngCreateEvent", EngCreateEvent },
{ "EngDeleteEvent", EngDeleteEvent },
{ "EngDeleteFile", EngDeleteFile },
{ "EngDeleteSafeSemaphore", EngDeleteSafeSemaphore },
{ "EngDeleteWnd", EngDeleteWnd },
{ "EngDitherColor", EngDitherColor },
{ "EngGetPrinterDriver", EngGetPrinterDriver },
{ "EngGradientFill", EngGradientFill },
{ "EngHangNotification", EngHangNotification },
{ "EngInitializeSafeSemaphore", EngInitializeSafeSemaphore },
{ "EngLockDirectDrawSurface", EngLockDirectDrawSurface },
{ "EngLpkInstalled", EngLpkInstalled },
{ "EngMapEvent", EngMapEvent },
{ "EngMapFile", EngMapFile },
{ "EngMapFontFileFD", EngMapFontFileFD },
{ "EngModifySurface", EngModifySurface },
{ "EngMovePointer", EngMovePointer },
{ "EngPlgBlt", EngPlgBlt },
{ "EngQueryDeviceAttribute", EngQueryDeviceAttribute },
{ "EngQueryPalette", EngQueryPalette },
{ "EngQuerySystemAttribute", EngQuerySystemAttribute },
{ "EngReadStateEvent", EngReadStateEvent },
{ "EngRestoreFloatingPointState", EngRestoreFloatingPointState },
{ "EngSaveFloatingPointState", EngSaveFloatingPointState },
{ "EngSetEvent", EngSetEvent },
{ "EngSetPointerShape", EngSetPointerShape },
{ "EngSetPointerTag", EngSetPointerTag },
{ "EngStretchBltROP", EngStretchBltROP },
{ "EngTransparentBlt", EngTransparentBlt },
{ "EngUnlockDirectDrawSurface", EngUnlockDirectDrawSurface },
{ "EngUnmapEvent", EngUnmapEvent },
{ "EngUnmapFile", EngUnmapFile },
{ "EngUnmapFontFileFD", EngUnmapFontFileFD },
{ "EngWaitForSingleObject", EngWaitForSingleObject },
{ "FONTOBJ_pfdg", FONTOBJ_pfdg },
{ "FONTOBJ_pjOpenTypeTablePointer", FONTOBJ_pjOpenTypeTablePointer },
{ "FONTOBJ_pQueryGlyphAttrs", FONTOBJ_pQueryGlyphAttrs },
{ "FONTOBJ_pwszFontFilePaths", FONTOBJ_pwszFontFilePaths },
{ "HeapVidMemAllocAligned", HeapVidMemAllocAligned },
{ "HT_Get8BPPMaskPalette", HT_Get8BPPMaskPalette },
{ "STROBJ_bEnumPositionsOnly", STROBJ_bEnumPositionsOnly },
{ "STROBJ_bGetAdvanceWidths", STROBJ_bGetAdvanceWidths },
{ "STROBJ_fxBreakExtra", STROBJ_fxBreakExtra },
{ "STROBJ_fxCharacterExtra", STROBJ_fxCharacterExtra },
{ "VidMemFree", VidMemFree },
{ "XLATEOBJ_hGetColorTransform", XLATEOBJ_hGetColorTransform }
};
if (NULL == Module)
{
DPRINT("Looking for win32k export %s\n", ProcName);
for (i = 0; i < sizeof(Win32kExports) / sizeof(Win32kExports[0]); i++)
{
if (0 == strcmp(ProcName, Win32kExports[i].ProcName))
{
DPRINT("Found it index %u address %p\n", i, Win32kExports[i].ProcName);
return Win32kExports[i].ProcAddress;
}
}
return NULL;
}
RtlInitAnsiString(&ProcNameString, ProcName);
Status = LdrGetProcedureAddress(Module,
&ProcNameString,

View file

@ -1263,3 +1263,331 @@ VidMemFree(
{
UNIMPLEMENTED;
}
/*
* @unimplemented
*/
HANDLE STDCALL
BRUSHOBJ_hGetColorTransform(
IN BRUSHOBJ *Brush)
{
UNIMPLEMENTED;
return NULL;
}
/*
* @unimplemented
*/
VOID STDCALL
EngClearEvent(
IN PEVENT Event)
{
UNIMPLEMENTED;
}
/*
* @unimplemented
*/
BOOL STDCALL
EngDeleteFile(
IN LPWSTR FileName)
{
UNIMPLEMENTED;
return FALSE;
}
/*
* @unimplemented
*/
VOID STDCALL
EngDeleteSafeSemaphore(
IN OUT ENGSAFESEMAPHORE *Semaphore)
{
UNIMPLEMENTED;
}
/*
* @unimplemented
*/
BOOL STDCALL
EngGetPrinterDriver(
IN HANDLE Printer,
IN LPWSTR Environment,
IN DWORD Level,
OUT BYTE *DrvInfo,
IN DWORD Buf,
OUT DWORD *Needed)
{
UNIMPLEMENTED;
return FALSE;
}
/*
* @unimplemented
*/
ULONG STDCALL
EngHangNotification(
IN HDEV Dev,
IN PVOID Reserved)
{
UNIMPLEMENTED;
return EHN_ERROR;
}
/*
* @unimplemented
*/
BOOL STDCALL
EngInitializeSafeSemaphore(
OUT ENGSAFESEMAPHORE *Semaphore)
{
UNIMPLEMENTED;
return FALSE;
}
/*
* @unimplemented
*/
PDD_SURFACE_LOCAL STDCALL
EngLockDirectDrawSurface(
IN HANDLE Surface)
{
UNIMPLEMENTED;
return NULL;
}
/*
* @unimplemented
*/
BOOL STDCALL
EngLpkInstalled()
{
UNIMPLEMENTED;
return FALSE;
}
/*
* @unimplemented
*/
PVOID STDCALL
EngMapFile(
IN LPWSTR Filename,
IN ULONG Size,
OUT ULONG_PTR *File)
{
UNIMPLEMENTED;
return NULL;
}
/*
* @unimplemented
*/
BOOL STDCALL
EngPlgBlt(
IN SURFOBJ *Dest,
IN SURFOBJ *Source,
IN SURFOBJ *Mask,
IN CLIPOBJ *Clip,
IN XLATEOBJ *Xlate,
IN COLORADJUSTMENT *ColorAdjustment,
IN POINTL *BrusOrigin,
IN POINTFIX *DestPoints,
IN RECTL *SourceRect,
IN POINTL *MaskPoint,
IN ULONG Mode)
{
UNIMPLEMENTED;
return FALSE;
}
/*
* @unimplemented
*/
BOOL STDCALL
EngQueryDeviceAttribute(
IN HDEV Device,
IN ENG_DEVICE_ATTRIBUTE Attribute,
IN VOID *In,
IN ULONG InSize,
OUT VOID *Out,
OUT ULONG OutSize)
{
UNIMPLEMENTED;
return FALSE;
}
/*
* @unimplemented
*/
LONG STDCALL
EngReadStateEvent(
IN PEVENT Event)
{
UNIMPLEMENTED;
return 0;
}
BOOL STDCALL
EngStretchBltROP(
IN SURFOBJ *Dest,
IN SURFOBJ *Source,
IN SURFOBJ *Mask,
IN CLIPOBJ *Clip,
IN XLATEOBJ *Xlate,
IN COLORADJUSTMENT *ColorAdjustment,
IN POINTL *BrushOrigin,
IN RECTL *DestRect,
IN RECTL *SourceRect,
IN POINTL *MaskPoint,
IN ULONG Mode,
IN BRUSHOBJ *BrushObj,
IN DWORD ROP4)
{
UNIMPLEMENTED;
return FALSE;
}
/*
* @unimplemented
*/
BOOL STDCALL
EngUnlockDirectDrawSurface(
IN PDD_SURFACE_LOCAL Surface)
{
UNIMPLEMENTED;
return FALSE;
}
/*
* @unimplemented
*/
BOOL STDCALL
EngUnmapFile(
IN ULONG_PTR File)
{
UNIMPLEMENTED;
return FALSE;
}
/*
* @unimplemented
*/
FD_GLYPHSET * STDCALL
FONTOBJ_pfdg(
IN FONTOBJ *FontObj)
{
UNIMPLEMENTED;
return NULL;
}
/*
* @unimplemented
*/
PBYTE STDCALL
FONTOBJ_pjOpenTypeTablePointer(
IN FONTOBJ *FontObj,
IN ULONG Tag,
OUT ULONG *Table)
{
UNIMPLEMENTED;
return NULL;
}
/*
* @unimplemented
*/
PFD_GLYPHATTR STDCALL
FONTOBJ_pQueryGlyphAttrs(
IN FONTOBJ *FontObj,
IN ULONG Mode)
{
UNIMPLEMENTED;
return NULL;
}
/*
* @unimplemented
*/
LPWSTR STDCALL
FONTOBJ_pwszFontFilePaths(
IN FONTOBJ *FontObj,
OUT ULONG *PathLength)
{
UNIMPLEMENTED;
return NULL;
}
/*
* @unimplemented
*/
LONG STDCALL
HT_Get8BPPMaskPalette(
IN OUT LPPALETTEENTRY PaletteEntry,
IN BOOL Use8BPPMaskPal,
IN BYTE CMYMask,
IN USHORT RedGamma,
IN USHORT GreenGamma,
IN USHORT BlueGamma)
{
UNIMPLEMENTED;
return 0;
}
/*
* @unimplemented
*/
BOOL STDCALL
STROBJ_bEnumPositionsOnly(
IN STROBJ *StringObj,
OUT ULONG *Count,
OUT PGLYPHPOS *Pos)
{
UNIMPLEMENTED;
return (BOOL) DDI_ERROR;
}
/*
* @unimplemented
*/
BOOL STDCALL
STROBJ_bGetAdvanceWidths(
IN STROBJ *StringObj,
IN ULONG First,
IN ULONG Count,
OUT POINTQF *Widths)
{
UNIMPLEMENTED;
return FALSE;
}
/*
* @unimplemented
*/
FIX STDCALL
STROBJ_fxBreakExtra(
IN STROBJ *StringObj)
{
UNIMPLEMENTED;
return (FIX) 0;
}
/*
* @unimplemented
*/
FIX STDCALL
STROBJ_fxCharacterExtra(
IN STROBJ *StringObj)
{
UNIMPLEMENTED;
return (FIX) 0;
}
/*
* @unimplemented
*/
HANDLE STDCALL
XLATEOBJ_hGetColorTransform(
IN XLATEOBJ *XlateObj)
{
UNIMPLEMENTED;
return NULL;
}