- Half-implement MmPageEntireDriver and use it to set the module instance for win32k...
authorJames Tabor <james.tabor@reactos.org>
Mon, 13 Jul 2009 05:00:17 +0000 (05:00 +0000)
committerJames Tabor <james.tabor@reactos.org>
Mon, 13 Jul 2009 05:00:17 +0000 (05:00 +0000)
- I mean no disrespect to the Arm developers, I'm an admire of your great work with ReactOS! By my commits you can see the need for the offset address when calling internal procs in win32k.
- References: MmPageEntireDriver, http://www.osronline.com/ddkx/kmarch/k106_7os2.htm

svn path=/trunk/; revision=41939

reactos/ntoskrnl/mm/ARM3/drvmgmt.c
reactos/subsystems/win32/win32k/main/dllmain.c

index 93f7fd0..ab8e9a4 100644 (file)
@@ -119,7 +119,8 @@ MmPageEntireDriver(IN PVOID AddressWithinSection)
     //
     // We should find the driver loader entry and return its base address
     //
-    UNIMPLEMENTED;
+    PLDR_DATA_TABLE_ENTRY pLdrDataTabEntry = MiLookupDataTableEntry(AddressWithinSection);
+    if (pLdrDataTabEntry) return pLdrDataTabEntry->DllBase;
     return NULL;
 }
 
index 53b133e..bd45e34 100644 (file)
@@ -27,6 +27,8 @@
 #define NDEBUG
 #include <debug.h>
 
+HANDLE hModuleWin;
+
 PGDI_HANDLE_TABLE INTERNAL_CALL GDIOBJ_iAllocHandleTable(OUT PSECTION_OBJECT *SectionObject);
 BOOL INTERNAL_CALL GDI_CleanupForProcess (struct _EPROCESS *Process);
 /* FIXME */
@@ -387,6 +389,8 @@ DriverEntry (
       return STATUS_UNSUCCESSFUL;
     }
 
+  hModuleWin = MmPageEntireDriver(DriverEntry);
+
     /*
      * Register Object Manager Callbacks
      */