Author: sginsberg Date: Thu Nov 12 21:41:12 2009 New Revision: 44120
URL: http://svn.reactos.org/svn/reactos?rev=44120&view=rev Log: - Win32k doesn't know what "opaque" means. Store the module base address in the structure too for the code that relied on the handle being the base address.
Modified: trunk/reactos/subsystems/win32/win32k/include/driver.h trunk/reactos/subsystems/win32/win32k/ldr/loader.c trunk/reactos/subsystems/win32/win32k/ntuser/kbdlayout.c
Modified: trunk/reactos/subsystems/win32/win32k/include/driver.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/inc... ============================================================================== --- trunk/reactos/subsystems/win32/win32k/include/driver.h [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/include/driver.h [iso-8859-1] Thu Nov 12 21:41:12 2009 @@ -4,11 +4,13 @@
#include <winddi.h>
- - - - - +typedef struct _DRIVERS +{ + LIST_ENTRY ListEntry; + PVOID SectionPointer; + PVOID BaseAddress; + UNICODE_STRING DriverName; +}DRIVERS, *PDRIVERS;
BOOL DRIVER_RegisterDriver(LPCWSTR Name, PFN_DrvEnableDriver EnableDriver); PFN_DrvEnableDriver DRIVER_FindExistingDDIDriver(LPCWSTR Name);
Modified: trunk/reactos/subsystems/win32/win32k/ldr/loader.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/ldr... ============================================================================== --- trunk/reactos/subsystems/win32/win32k/ldr/loader.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/ldr/loader.c [iso-8859-1] Thu Nov 12 21:41:12 2009 @@ -25,13 +25,6 @@ #define NDEBUG #include <debug.h>
- -typedef struct _DRIVERS -{ - LIST_ENTRY ListEntry; - PVOID SectionPointer; - UNICODE_STRING DriverName; -}DRIVERS, *PDRIVERS;
extern LIST_ENTRY GlobalDriverListHead;
@@ -181,7 +174,7 @@ return NULL; } RtlInitAnsiString(&ProcNameString, ProcName); - Status = LdrGetProcedureAddress(Module, + Status = LdrGetProcedureAddress(((PDRIVERS)Module)->BaseAddress, &ProcNameString, 0, &Function); @@ -235,6 +228,7 @@ DriverInfo->DriverName.Buffer = ExAllocatePool(PagedPool, GdiDriverInfo.DriverName.MaximumLength); RtlCopyUnicodeString(&DriverInfo->DriverName, &GdiDriverInfo.DriverName); DriverInfo->SectionPointer = GdiDriverInfo.SectionPointer; + DriverInfo->BaseAddress = GdiDriverInfo.ImageAddress; InsertHeadList(&GlobalDriverListHead, &DriverInfo->ListEntry); } }
Modified: trunk/reactos/subsystems/win32/win32k/ntuser/kbdlayout.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/ntu... ============================================================================== --- trunk/reactos/subsystems/win32/win32k/ntuser/kbdlayout.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/win32k/ntuser/kbdlayout.c [iso-8859-1] Thu Nov 12 21:41:12 2009 @@ -163,7 +163,7 @@ DPRINT("Loaded %wZ\n", &FullLayoutPath);
RtlInitAnsiString( &kbdProcedureName, "KbdLayerDescriptor" ); - LdrGetProcedureAddress((PVOID)*phModule, + LdrGetProcedureAddress((*(PDRIVERS*)phModule)->BaseAddress, &kbdProcedureName, 0, (PVOID*)&layerDescGetFn);