krnl386.exe: Preload gdi and user when thunks are being used.

oldstable
Alexandre Julliard 2010-03-13 17:25:49 +01:00
parent a72eb123e5
commit 60f364068a
2 changed files with 10 additions and 5 deletions

View File

@ -782,12 +782,9 @@ static BOOL NE_LoadDLLs( NE_MODULE *pModule )
/* its handle in the list of DLLs to initialize. */
HMODULE16 hDLL;
/* special magic for gdi and user */
if (!NE_strcasecmp( buffer, "user" )) strcpy( buffer, "USER.EXE" );
else if (!NE_strcasecmp( buffer, "gdi" )) strcpy( buffer, "GDI.EXE" );
/* Append .DLL to name if no extension present */
else if (!(p = strrchr( buffer, '.')) || strchr( p, '/' ) || strchr( p, '\\'))
strcat( buffer, ".DLL" );
if (!(p = strrchr( buffer, '.')) || strchr( p, '/' ) || strchr( p, '\\'))
strcat( buffer, ".DLL" );
if ((hDLL = MODULE_LoadModule16( buffer, TRUE, TRUE )) < 32)
{

View File

@ -272,6 +272,14 @@ static LPVOID _loadthunk(LPCSTR module, LPCSTR func, LPCSTR module32,
struct ThunkDataCommon *TD16;
HMODULE16 hmod;
int ordinal;
static int done;
if (!done)
{
LoadLibrary16( "gdi.exe" );
LoadLibrary16( "user.exe" );
done = TRUE;
}
if ((hmod = LoadLibrary16(module)) <= 32)
{