[ros-diffs] [sginsberg] 44120: - 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.

sginsberg at svn.reactos.org sginsberg at svn.reactos.org
Thu Nov 12 21:41:13 CET 2009


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/include/driver.h?rev=44120&r1=44119&r2=44120&view=diff
==============================================================================
--- 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/loader.c?rev=44120&r1=44119&r2=44120&view=diff
==============================================================================
--- 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/ntuser/kbdlayout.c?rev=44120&r1=44119&r2=44120&view=diff
==============================================================================
--- 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);




More information about the Ros-diffs mailing list