diff --git a/if1632/kernel.spec b/if1632/kernel.spec index 6b285ec2a59..a40d777aec5 100644 --- a/if1632/kernel.spec +++ b/if1632/kernel.spec @@ -394,7 +394,7 @@ file krnl386.exe 487 stub MapProcessHandle 488 pascal GetModuleHandle32(str) GetModuleHandle32A 489 stub KERNEL_489 # VWin32_BoostWithDecay -490 stub KERNEL_490 +490 pascal16 KERNEL_490(word) KERNEL_490 491 pascal RegisterServiceProcess(long long) RegisterServiceProcess 492 stub WOAAbort 493 stub UTInit @@ -469,7 +469,7 @@ file krnl386.exe 600 stub KERNEL_600 # AllocSelector (?) 601 stub KERNEL_601 # FreeSelector (?) -602 stub GetCurrentHInstanceDS +602 register GetDummyModuleHandleDS() GetDummyModuleHandleDS 603 stub KERNEL_603 # OutputDebugString (?) 604 register CBClientGlueSL() CBClientGlueSL 605 pascal AllocSLThunkletCallback(long long) AllocSLThunkletCallback diff --git a/loader/task.c b/loader/task.c index ac5e3375501..badfc9dce7c 100644 --- a/loader/task.c +++ b/loader/task.c @@ -1074,6 +1074,16 @@ void WINAPI Yield16(void) else OldYield(); } +/*********************************************************************** + * KERNEL_490 (KERNEL.490) + */ +HTASK16 WINAPI KERNEL_490( HTASK16 someTask ) +{ + if ( !someTask ) return 0; + + FIXME( task, "(%04x): stub\n", someTask ); + return 0; +} /*********************************************************************** * MakeProcInstance16 (KERNEL.51) @@ -1511,6 +1521,22 @@ HINSTANCE16 WINAPI GetTaskDS(void) return pTask->hInstance; } +/*********************************************************************** + * GetDummyModuleHandleDS (KERNEL.602) + */ +VOID WINAPI GetDummyModuleHandleDS( CONTEXT *context ) +{ + TDB *pTask; + WORD selector; + + AX_reg( context ) = 0; + if (!(pTask = (TDB *)GlobalLock16( GetCurrentTask() ))) return; + if (!(pTask->flags & TDBF_WIN32)) return; + + selector = GlobalHandleToSel( pTask->hModule ); + DS_reg( context ) = selector; + AX_reg( context ) = selector; +} /*********************************************************************** * IsTask (KERNEL.320)