Alexandre Julliard : winevdm: Move the loading of the system drivers into their specific 16-bit module.

Alexandre Julliard julliard at winehq.org
Tue Dec 29 09:06:38 CST 2009


Module: wine
Branch: master
Commit: 40a264b0e736884c7458f49962fbf694f6dcbe0e
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=40a264b0e736884c7458f49962fbf694f6dcbe0e

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Mon Dec 28 16:23:13 2009 +0100

winevdm: Move the loading of the system drivers into their specific 16-bit module.

---

 dlls/kernel32/kernel16.c       |    1 +
 dlls/mmsystem.dll16/mmsystem.c |    3 ++-
 dlls/user.exe16/user.c         |    3 +++
 dlls/user32/user_main.c        |    3 ---
 programs/winevdm/winevdm.c     |    7 -------
 5 files changed, 6 insertions(+), 11 deletions(-)

diff --git a/dlls/kernel32/kernel16.c b/dlls/kernel32/kernel16.c
index 3acb932..77cbd57 100644
--- a/dlls/kernel32/kernel16.c
+++ b/dlls/kernel32/kernel16.c
@@ -86,6 +86,7 @@ BOOL WINAPI KERNEL_DllEntryPoint( DWORD reasion, HINSTANCE16 inst, WORD ds,
 
     /* Force loading of some dlls */
     LoadLibrary16( "system.drv" );
+    LoadLibrary16( "comm.drv" );
 
     return TRUE;
 }
diff --git a/dlls/mmsystem.dll16/mmsystem.c b/dlls/mmsystem.dll16/mmsystem.c
index 37db0eb..66311bb 100644
--- a/dlls/mmsystem.dll16/mmsystem.c
+++ b/dlls/mmsystem.dll16/mmsystem.c
@@ -69,8 +69,9 @@ CRITICAL_SECTION mmdrv_cs = { &mmdrv_critsect_debug, -1, 0, 0, 0, 0 };
 BOOL WINAPI MMSYSTEM_LibMain(DWORD fdwReason, HINSTANCE hinstDLL, WORD ds,
 			     WORD wHeapSize, DWORD dwReserved1, WORD wReserved2)
 {
-    TRACE("%p 0x%x\n", hinstDLL, fdwReason);
+    static int done;
 
+    if (!done++) LoadLibrary16( "sound.drv" );
     return TRUE;
 }
 
diff --git a/dlls/user.exe16/user.c b/dlls/user.exe16/user.c
index f98de49..6889088 100644
--- a/dlls/user.exe16/user.c
+++ b/dlls/user.exe16/user.c
@@ -1940,6 +1940,9 @@ BOOL WINAPI DllEntryPoint( DWORD reason, HINSTANCE16 inst, WORD ds,
 
     USER_HeapSel = ds;
     register_wow_handlers();
+    LoadLibrary16( "display.drv" );
+    LoadLibrary16( "keyboard.drv" );
+    LoadLibrary16( "mouse.drv" );
     return TRUE;
 }
 
diff --git a/dlls/user32/user_main.c b/dlls/user32/user_main.c
index a61a67d..9440934 100644
--- a/dlls/user32/user_main.c
+++ b/dlls/user32/user_main.c
@@ -273,9 +273,6 @@ static BOOL process_attach(void)
 {
     LoadLibrary16( "user.exe" );
 
-    /* some Win9x dlls expect keyboard to be loaded */
-    if (GetVersion() & 0x80000000) LoadLibrary16( "keyboard.drv" );
-
     winstation_init();
 
     /* Initialize system colors and metrics */
diff --git a/programs/winevdm/winevdm.c b/programs/winevdm/winevdm.c
index ea6a494..280f078 100644
--- a/programs/winevdm/winevdm.c
+++ b/programs/winevdm/winevdm.c
@@ -438,13 +438,6 @@ int main( int argc, char *argv[] )
     LoadLibrary16( "user.exe" );
     LoadLibrary16( "mmsystem.dll" );
 
-    /* make sure system drivers are loaded */
-    LoadLibrary16( "comm.drv" );
-    LoadLibrary16( "display.drv" );
-    LoadLibrary16( "keyboard.drv" );
-    LoadLibrary16( "mouse.drv" );
-    LoadLibrary16( "sound.drv" );
-
     if ((instance = LoadModule16( appname, &params )) < 32)
     {
         if (instance == 11)




More information about the wine-cvs mailing list