# 1-207 are the basic functions, those are (with minor variations) # present in win31, win95 and nt351 1 stub FatalExit 2 pascal -ret16 ExitKernel() ExitKernel16 3 pascal GetVersion() GetVersion16 4 pascal -ret16 LocalInit(word word word) LocalInit16 5 pascal -ret16 LocalAlloc(word word) LocalAlloc16 6 pascal -ret16 LocalReAlloc(word word word) LocalReAlloc16 7 pascal -ret16 LocalFree(word) LocalFree16 8 pascal LocalLock(word) LocalLock16 9 pascal -ret16 LocalUnlock(word) LocalUnlock16 10 pascal -ret16 LocalSize(word) LocalSize16 11 pascal -ret16 LocalHandle(word) LocalHandle16 12 pascal -ret16 LocalFlags(word) LocalFlags16 13 pascal -ret16 LocalCompact(word) LocalCompact16 14 pascal LocalNotify(long) LocalNotify16 15 pascal -ret16 GlobalAlloc(word long) GlobalAlloc16 16 pascal -ret16 GlobalReAlloc(word long word) GlobalReAlloc16 17 pascal -ret16 GlobalFree(word) GlobalFree16 18 pascal GlobalLock(word) WIN16_GlobalLock16 19 pascal -ret16 GlobalUnlock(word) GlobalUnlock16 20 pascal GlobalSize(word) GlobalSize16 21 pascal GlobalHandle(word) GlobalHandle16 22 pascal -ret16 GlobalFlags(word) GlobalFlags16 23 pascal -ret16 LockSegment(word) LockSegment16 24 pascal -ret16 UnlockSegment(word) UnlockSegment16 25 pascal GlobalCompact(long) GlobalCompact16 26 pascal -ret16 GlobalFreeAll(word) GlobalFreeAll16 27 pascal -ret16 GetModuleName(word ptr word) GetModuleName16 # W1.1: SETSWAPHOOK, W2.0: nothing ! 28 pascal GlobalMasterHandle() GlobalMasterHandle16 29 pascal -ret16 Yield() Yield16 30 pascal -ret16 WaitEvent(word) WaitEvent16 31 pascal -ret16 PostEvent(word) PostEvent16 32 pascal -ret16 SetPriority(word s_word) SetPriority16 33 pascal -ret16 LockCurrentTask(word) LockCurrentTask16 34 pascal -ret16 SetTaskQueue(word word) SetTaskQueue16 35 pascal -ret16 GetTaskQueue(word) GetTaskQueue16 36 pascal GetCurrentTask() WIN16_GetCurrentTask 37 pascal GetCurrentPDB() GetCurrentPDB16 38 pascal SetTaskSignalProc(word segptr) SetTaskSignalProc 39 stub SetTaskSwitchProc # W1.1, W2.0 40 stub SetTaskInterchange # W1.1, W2.0 41 pascal -ret16 EnableDos() KERNEL_nop 42 pascal -ret16 DisableDos() KERNEL_nop 43 stub IsScreenGrab # W1.1, W2.0 44 stub BuildPDB # W1.1, W2.0 45 pascal -ret16 LoadModule(str ptr) LoadModule16 46 pascal -ret16 FreeModule(word) FreeModule16 47 pascal GetModuleHandle(segstr) WIN16_GetModuleHandle 48 pascal -ret16 GetModuleUsage(word) GetModuleUsage16 49 pascal -ret16 GetModuleFileName(word ptr s_word) GetModuleFileName16 50 pascal GetProcAddress(word str) GetProcAddress16 51 pascal MakeProcInstance(segptr word) MakeProcInstance16 52 pascal -ret16 FreeProcInstance(segptr) FreeProcInstance16 53 stub CallProcInstance 54 pascal -ret16 GetInstanceData(word word word) GetInstanceData16 55 pascal -register Catch(ptr) Catch16 56 pascal -register Throw(ptr word) Throw16 57 pascal -ret16 GetProfileInt(str str s_word) GetProfileInt16 58 pascal -ret16 GetProfileString(str str str ptr word) GetProfileString16 59 pascal -ret16 WriteProfileString(str str str) WriteProfileString16 60 pascal -ret16 FindResource(word str str) FindResource16 61 pascal -ret16 LoadResource(word word) LoadResource16 62 pascal LockResource(word) WIN16_LockResource16 63 pascal -ret16 FreeResource(word) FreeResource16 64 pascal -ret16 AccessResource(word word) AccessResource16 65 pascal SizeofResource(word word) SizeofResource16 66 pascal -ret16 AllocResource(word word long) AllocResource16 67 pascal SetResourceHandler(word str segptr) SetResourceHandler16 68 pascal -ret16 InitAtomTable(word) InitAtomTable16 69 pascal -ret16 FindAtom(str) FindAtom16 70 pascal -ret16 AddAtom(str) AddAtom16 71 pascal -ret16 DeleteAtom(word) DeleteAtom16 72 pascal -ret16 GetAtomName(word ptr word) GetAtomName16 73 pascal -ret16 GetAtomHandle(word) GetAtomHandle16 74 pascal -ret16 OpenFile(str ptr word) OpenFile16 75 stub OpenPathName 76 stub DeletePathName # Reserved*: old Win 2.x functions now moved to USER (Win 3.0+) 77 pascal Reserved1(segptr) KERNEL_AnsiNext16 78 pascal Reserved2(segptr segptr) KERNEL_AnsiPrev16 79 pascal Reserved3(segstr) KERNEL_AnsiUpper16 80 pascal Reserved4(segstr) KERNEL_AnsiLower16 81 pascal -ret16 _lclose(word) _lclose16 82 pascal -ret16 _lread(word segptr word) WIN16_lread 83 pascal -ret16 _lcreat(str word) _lcreat16 84 pascal _llseek(word long word) _llseek16 85 pascal -ret16 _lopen(str word) _lopen16 86 pascal -ret16 _lwrite(word ptr word) _lwrite16 87 pascal -ret16 Reserved5(str str) KERNEL_lstrcmp16 88 pascal lstrcpy(segptr str) lstrcpy16 89 pascal lstrcat(segstr str) lstrcat16 90 pascal -ret16 lstrlen(str) lstrlen16 91 pascal -register InitTask() InitTask16 92 pascal GetTempDrive(word) GetTempDrive 93 pascal -ret16 GetCodeHandle(segptr) GetCodeHandle16 94 pascal -ret16 DefineHandleTable(word) DefineHandleTable16 95 pascal -ret16 LoadLibrary(str) LoadLibrary16 96 pascal -ret16 FreeLibrary(word) FreeLibrary16 97 pascal -ret16 GetTempFileName(word str word ptr) GetTempFileName16 98 pascal -ret16 GetLastDiskChange() KERNEL_nop 99 stub GetLPErrMode 100 pascal -ret16 ValidateCodeSegments() KERNEL_nop 101 stub NoHookDosCall 102 pascal -register DOS3Call() DOS3Call 103 pascal -register NetBIOSCall() NetBIOSCall16 104 pascal -ret16 GetCodeInfo(segptr ptr) GetCodeInfo16 105 pascal -ret16 GetExeVersion() GetExeVersion16 106 pascal SetSwapAreaSize(word) SetSwapAreaSize16 107 pascal -ret16 SetErrorMode(word) SetErrorMode16 108 pascal -ret16 SwitchStackTo(word word word) SwitchStackTo16 # STO in W2.0 109 pascal -register SwitchStackBack() SwitchStackBack16 # SBACK in W2.0 110 pascal PatchCodeHandle(word) PatchCodeHandle16 111 pascal GlobalWire(word) GlobalWire16 112 pascal -ret16 GlobalUnWire(word) GlobalUnWire16 113 equate __AHSHIFT 3 114 equate __AHINCR 8 115 pascal -ret16 OutputDebugString(str) OutputDebugString16 116 stub InitLib 117 pascal -ret16 OldYield() OldYield16 118 pascal -ret16 GetTaskQueueDS() GetTaskQueueDS16 119 pascal -ret16 GetTaskQueueES() GetTaskQueueES16 120 stub UndefDynLink 121 pascal -ret16 LocalShrink(word word) LocalShrink16 122 pascal -ret16 IsTaskLocked() IsTaskLocked16 123 pascal -ret16 KbdRst() KERNEL_nop 124 pascal -ret16 EnableKernel() KERNEL_nop 125 pascal -ret16 DisableKernel() KERNEL_nop 126 stub MemoryFreed 127 pascal -ret16 GetPrivateProfileInt(str str s_word str) GetPrivateProfileInt16 128 pascal -ret16 GetPrivateProfileString(str str str ptr word str) GetPrivateProfileString16 129 pascal -ret16 WritePrivateProfileString(str str str str) WritePrivateProfileString16 130 pascal FileCDR(ptr) FileCDR16 131 pascal GetDOSEnvironment() GetDOSEnvironment16 132 pascal GetWinFlags() GetWinFlags16 133 pascal -ret16 GetExePtr(word) WIN16_GetExePtr 134 pascal -ret16 GetWindowsDirectory(ptr word) GetWindowsDirectory16 135 pascal -ret16 GetSystemDirectory(ptr word) GetSystemDirectory16 136 pascal -ret16 GetDriveType(word) GetDriveType16 137 pascal -ret16 FatalAppExit(word str) FatalAppExit16 138 pascal GetHeapSpaces(word) GetHeapSpaces16 139 stub DoSignal 140 pascal -ret16 SetSigHandler(segptr ptr ptr word word) SetSigHandler16 141 stub InitTask1 142 pascal -ret16 GetProfileSectionNames(ptr word) GetProfileSectionNames16 143 pascal -ret16 GetPrivateProfileSectionNames(ptr word str) GetPrivateProfileSectionNames16 144 pascal -ret16 CreateDirectory(ptr ptr) CreateDirectory16 145 pascal -ret16 RemoveDirectory(ptr) RemoveDirectory16 146 pascal -ret16 DeleteFile(ptr) DeleteFile16 147 pascal -ret16 SetLastError(long) SetLastError16 148 pascal GetLastError() GetLastError16 149 pascal -ret16 GetVersionEx(ptr) GetVersionEx16 150 pascal -ret16 DirectedYield(word) DirectedYield16 151 stub WinOldApCall 152 pascal -ret16 GetNumTasks() GetNumTasks16 154 pascal -ret16 GlobalNotify(segptr) GlobalNotify16 155 pascal -ret16 GetTaskDS() GetTaskDS16 156 pascal LimitEMSPages(long) LimitEMSPages16 157 pascal GetCurPID(long) GetCurPID16 158 pascal -ret16 IsWinOldApTask(word) IsWinOldApTask16 159 pascal GlobalHandleNoRIP(word) GlobalHandleNoRIP16 160 stub EMSCopy 161 pascal -ret16 LocalCountFree() LocalCountFree16 162 pascal -ret16 LocalHeapSize() LocalHeapSize16 163 pascal -ret16 GlobalLRUOldest(word) GlobalLRUOldest16 164 pascal -ret16 GlobalLRUNewest(word) GlobalLRUNewest16 165 pascal -ret16 A20Proc(word) A20Proc16 166 pascal -ret16 WinExec(str word) WinExec16 167 pascal -ret16 GetExpWinVer(word) GetExpWinVer16 168 pascal -ret16 DirectResAlloc(word word word) DirectResAlloc16 169 pascal GetFreeSpace(word) GetFreeSpace16 170 pascal -ret16 AllocCStoDSAlias(word) AllocCStoDSAlias16 171 pascal -ret16 AllocDStoCSAlias(word) AllocDStoCSAlias16 172 pascal -ret16 AllocAlias(word) AllocCStoDSAlias16 173 equate __ROMBIOS 0 174 equate __A000H 0 175 pascal -ret16 AllocSelector(word) AllocSelector16 176 pascal -ret16 FreeSelector(word) FreeSelector16 177 pascal -ret16 PrestoChangoSelector(word word) PrestoChangoSelector16 178 equate __WINFLAGS 0x413 179 equate __D000H 0 180 pascal -ret16 LongPtrAdd(long long) LongPtrAdd16 181 equate __B000H 0 182 equate __B800H 0 183 equate __0000H 0 184 pascal GlobalDOSAlloc(long) GlobalDOSAlloc16 185 pascal -ret16 GlobalDOSFree(word) GlobalDOSFree16 186 pascal GetSelectorBase(word) GetSelectorBase 187 pascal -ret16 SetSelectorBase(word long) SetSelectorBase 188 pascal GetSelectorLimit(word) GetSelectorLimit16 189 pascal -ret16 SetSelectorLimit(word long) SetSelectorLimit16 190 equate __E000H 0 191 pascal -ret16 GlobalPageLock(word) GlobalPageLock16 192 pascal -ret16 GlobalPageUnlock(word) GlobalPageUnlock16 193 equate __0040H 0 194 equate __F000H 0 195 equate __C000H 0 196 pascal -ret16 SelectorAccessRights(word word word) SelectorAccessRights16 197 pascal -ret16 GlobalFix(word) GlobalFix16 198 pascal -ret16 GlobalUnfix(word) GlobalUnfix16 199 pascal -ret16 SetHandleCount(word) SetHandleCount16 200 pascal -ret16 ValidateFreeSpaces() KERNEL_nop 201 stub ReplaceInst 202 stub RegisterPtrace 203 pascal -register DebugBreak() DebugBreak16 204 stub SwapRecording 205 stub CVWBreak 206 pascal -ret16 AllocSelectorArray(word) AllocSelectorArray16 207 pascal -ret16 IsDBCSLeadByte(word) IsDBCSLeadByte # 208-237 are Win95 extensions; a few of those are also present in WinNT 208 pascal K208(word long long long) Local32Init16 209 pascal K209(long long word long) Local32Alloc16 210 pascal K210(long long word long long) Local32ReAlloc16 211 pascal K211(long long word) Local32Free16 213 pascal K213(long long word word) Local32Translate16 214 pascal K214(long long word) Local32Size16 215 pascal K215(long word) Local32ValidHandle16 # Win95 only -- CONFLICT! #215 stub WOWShouldWeSayWin95 # WinNT only -- CONFLICT! 216 pascal RegEnumKey(long long ptr long) RegEnumKey16 # Both 95/NT 217 pascal RegOpenKey(long str ptr) RegOpenKey16 # Both 95/NT 218 pascal RegCreateKey(long str ptr) RegCreateKey16 219 pascal RegDeleteKey(long str) RegDeleteKey16 220 pascal RegCloseKey(long) RegCloseKey16 # Both 95/NT 221 pascal RegSetValue(long str long ptr long) RegSetValue16 222 pascal RegDeleteValue(long str) RegDeleteValue16 223 pascal RegEnumValue(long long ptr ptr ptr ptr ptr ptr) RegEnumValue16 # Both 95/NT 224 pascal RegQueryValue(long str ptr ptr) RegQueryValue16 225 pascal RegQueryValueEx(long str ptr ptr ptr ptr) RegQueryValueEx16 226 pascal RegSetValueEx(long str long long ptr long) RegSetValueEx16 227 pascal RegFlushKey(long) RegFlushKey16 228 pascal -ret16 K228(word) GetExePtr 229 pascal -ret16 K229(long) Local32GetSegment16 230 pascal GlobalSmartPageLock(word) GlobalPageLock16 #? 231 pascal GlobalSmartPageUnlock(word) GlobalPageUnlock16 #? 232 stub RegLoadKey 233 stub RegUnloadKey 234 stub RegSaveKey 235 stub InvalidateNlsCache 236 stub GetProductName 237 pascal -ret16 K237() KERNEL_nop # 262-274 are WinNT extensions; those are not present in Win95 262 stub WOWWaitForMsgAndEvent 263 stub WOWMsgBox 273 stub K273 274 pascal -ret16 GetShortPathName(str ptr word) GetShortPathName16 # 310-356 are again shared between all versions 310 pascal -ret16 LocalHandleDelta(word) LocalHandleDelta16 311 pascal GetSetKernelDOSProc(ptr) GetSetKernelDOSProc16 314 stub DebugDefineSegment 315 pascal -ret16 WriteOutProfiles() WriteOutProfiles16 316 pascal GetFreeMemInfo() GetFreeMemInfo16 318 stub FatalExitHook 319 stub FlushCachedFileHandle 320 pascal -ret16 IsTask(word) IsTask16 323 pascal -ret16 IsRomModule(word) IsRomModule16 324 pascal -ret16 LogError(word ptr) LogError16 325 pascal -ret16 LogParamError(word ptr ptr) LogParamError16 326 pascal -ret16 IsRomFile(word) IsRomFile16 327 pascal -register K327() HandleParamError 328 varargs -ret16 _DebugOutput(word str) _DebugOutput 329 pascal -ret16 K329(str word) DebugFillBuffer 332 variable THHOOK(0 0 0 0 0 0 0 0) 334 pascal -ret16 IsBadReadPtr(segptr word) IsBadReadPtr16 335 pascal -ret16 IsBadWritePtr(segptr word) IsBadWritePtr16 336 pascal -ret16 IsBadCodePtr(segptr) IsBadCodePtr16 337 pascal -ret16 IsBadStringPtr(segptr word) IsBadStringPtr16 338 pascal -ret16 HasGPHandler(segptr) HasGPHandler16 339 pascal -ret16 DiagQuery() DiagQuery16 340 pascal -ret16 DiagOutput(str) DiagOutput16 341 pascal ToolHelpHook(ptr) ToolHelpHook16 342 variable __GP(0 0) 343 stub RegisterWinOldApHook 344 stub GetWinOldApHooks 345 pascal -ret16 IsSharedSelector(word) IsSharedSelector16 346 pascal -ret16 IsBadHugeReadPtr(segptr long) IsBadHugeReadPtr16 347 pascal -ret16 IsBadHugeWritePtr(segptr long) IsBadHugeWritePtr16 348 pascal -ret16 hmemcpy(ptr ptr long) hmemcpy16 349 pascal _hread(word segptr long) WIN16_hread 350 pascal _hwrite(word ptr long) _hwrite16 351 pascal -ret16 BUNNY_351() KERNEL_nop 352 pascal lstrcatn(segstr str word) lstrcatn16 353 pascal lstrcpyn(segptr str word) lstrcpyn16 354 pascal GetAppCompatFlags(word) GetAppCompatFlags16 355 pascal -ret16 GetWinDebugInfo(ptr word) GetWinDebugInfo16 356 pascal -ret16 SetWinDebugInfo(ptr) SetWinDebugInfo16 # 357-365 are present in Win95 only # Note that from here on most of the Win95-only functions are exported # ordinal-only; the names given here are mostly guesses :-) 357 pascal MapSL(segptr) MapSL 358 pascal MapLS(long) MapLS 359 pascal UnMapLS(segptr) UnMapLS 360 pascal -ret16 OpenFileEx(str ptr word) OpenFile16 361 pascal -ret16 PIGLET_361() KERNEL_nop 362 stub ThunkTerminateProcess 365 pascal -register GlobalChangeLockCount(word word) GlobalChangeLockCount16 # 403-404 are common to all versions 403 pascal -ret16 FarSetOwner(word word) FarSetOwner16 # aka K403 404 pascal -ret16 FarGetOwner(word) FarGetOwner16 # aka K404 # 406-494 are present only in Win95 406 pascal -ret16 WritePrivateProfileStruct(str str ptr word str) WritePrivateProfileStruct16 407 pascal -ret16 GetPrivateProfileStruct(str str ptr word str) GetPrivateProfileStruct16 408 stub KERNEL_408 409 stub KERNEL_409 410 stub CreateProcessFromWinExec 411 pascal GetCurrentDirectory(long ptr) GetCurrentDirectory16 412 pascal -ret16 SetCurrentDirectory(ptr) SetCurrentDirectory16 413 pascal -ret16 FindFirstFile(ptr ptr) FindFirstFile16 414 pascal -ret16 FindNextFile(word ptr) FindNextFile16 415 pascal -ret16 FindClose(word) FindClose16 416 pascal -ret16 WritePrivateProfileSection(str str str) WritePrivateProfileSection16 417 pascal -ret16 WriteProfileSection(str str) WriteProfileSection16 418 pascal -ret16 GetPrivateProfileSection(str ptr word str) GetPrivateProfileSection16 419 pascal -ret16 GetProfileSection(str ptr word) GetProfileSection16 420 pascal GetFileAttributes(ptr) GetFileAttributes16 421 pascal -ret16 SetFileAttributes(ptr long) SetFileAttributes16 422 pascal -ret16 GetDiskFreeSpace(ptr ptr ptr ptr ptr) GetDiskFreeSpace16 423 pascal -ret16 LogApiThk(str) LogApiThk 431 pascal -ret16 IsPeFormat(str word) IsPeFormat16 432 stub FileTimeToLocalFileTime 434 pascal -ret16 UnicodeToAnsi(ptr ptr word) UnicodeToAnsi16 435 stub GetTaskFlags 436 pascal -ret16 _ConfirmSysLevel(ptr) _ConfirmSysLevel 437 pascal -ret16 _CheckNotSysLevel(ptr) _CheckNotSysLevel 438 pascal -ret16 _CreateSysLevel(ptr long) _CreateSysLevel 439 pascal -ret16 _EnterSysLevel(ptr) _EnterSysLevel 440 pascal -ret16 _LeaveSysLevel(ptr) _LeaveSysLevel 441 pascal CreateThread16(ptr long segptr segptr long ptr) CreateThread16 442 pascal VWin32_EventCreate() VWin32_EventCreate 443 pascal VWin32_EventDestroy(long) VWin32_EventDestroy 444 pascal -ret16 Local32Info(ptr word) Local32Info16 445 pascal -ret16 Local32First(ptr word) Local32First16 446 pascal -ret16 Local32Next(ptr) Local32Next16 447 pascal -ret16 WIN32_OldYield() WIN32_OldYield16 448 stub KERNEL_448 449 pascal GetpWin16Lock() GetpWin16Lock16 450 pascal VWin32_EventWait(long) VWin32_EventWait 451 pascal VWin32_EventSet(long) VWin32_EventSet 452 pascal LoadLibrary32(str) LoadLibrary32_16 453 pascal GetProcAddress32(long str) GetProcAddress32_16 454 equate __FLATCS 0 # initialized by BUILTIN_Init() 455 equate __FLATDS 0 # initialized by BUILTIN_Init() 456 pascal DefResourceHandler(word word word) NE_DefResourceHandler 457 pascal CreateW32Event(long long) CreateW32Event 458 pascal SetW32Event(long) SetW32Event 459 pascal ResetW32Event(long) ResetW32Event 460 pascal WaitForSingleObject(long long) WaitForSingleObject16 461 pascal WaitForMultipleObjects(long ptr long long) WaitForMultipleObjects16 462 pascal GetCurrentThreadId() GetCurrentThreadId16 463 pascal SetThreadQueue(long word) SetThreadQueue16 464 pascal GetThreadQueue(long) GetThreadQueue16 465 stub NukeProcess 466 pascal -ret16 ExitProcess(word) ExitProcess16 467 stub WOACreateConsole 468 stub WOASpawnConApp 469 stub WOAGimmeTitle 470 stub WOADestroyConsole 471 pascal GetCurrentProcessId() GetCurrentProcessId16 472 pascal -register MapHInstLS() MapHInstLS16 473 pascal -register MapHInstSL() MapHInstSL16 474 pascal CloseW32Handle(long) CloseW32Handle 475 pascal -ret16 GetTEBSelectorFS() GetTEBSelectorFS16 476 pascal ConvertToGlobalHandle(long) ConvertToGlobalHandle16 477 stub WOAFullScreen 478 stub WOATerminateProcess 479 pascal KERNEL_479(long) VWin32_EventSet # ??? 480 pascal -ret16 _EnterWin16Lock() _EnterWin16Lock 481 pascal -ret16 _LeaveWin16Lock() _LeaveWin16Lock 482 pascal LoadSystemLibrary32(str) LoadLibrary32_16 # FIXME! 483 pascal MapProcessHandle(long) MapProcessHandle 484 pascal SetProcessDword(long s_word long) SetProcessDword 485 pascal GetProcessDword(long s_word) GetProcessDword 486 pascal FreeLibrary32(long) FreeLibrary32_16 487 pascal GetModuleFileName32(long str word) GetModuleFileName32_16 488 pascal GetModuleHandle32(str) GetModuleHandle32_16 489 stub KERNEL_489 # VWin32_BoostWithDecay 490 pascal -ret16 KERNEL_490(word) KERNEL_490 491 pascal RegisterServiceProcess(long long) RegisterServiceProcess16 492 stub WOAAbort 493 pascal -ret16 UTInit(long long long long) UTInit16 494 stub KERNEL_494 # 495 is present only in Win98 495 pascal WaitForMultipleObjectsEx(long ptr long long long) WaitForMultipleObjectsEx16 # 500-544 are WinNT extensions; some are also available in Win95 500 varargs WOW16Call(word word word) WOW16Call 501 stub KDDBGOUT # Both NT/95 (?) 502 stub WOWGETNEXTVDMCOMMAND 503 stub WOWREGISTERSHELLWINDOWHANDLE 504 stub WOWLOADMODULE 505 stub WOWQUERYPERFORMANCECOUNTER 506 stub WOWCURSORICONOP #507 stub WOWCURSORICONOP # conflict with 506 ! 507 stub WOWFAILEDEXEC #508 stub WOWFAILEDEXEC # conflict with 507 ! (something broken here ?) 508 stub WOWCLOSECOMPORT #509 stub WOWCLOSECOMPORT # conflict with 508 ! #509 stub WOWKILLREMOTETASK 511 stub WOWKILLREMOTETASK 512 stub WOWQUERYDEBUG 513 pascal LoadLibraryEx32W(ptr long long) LoadLibraryEx32W16 # Both NT/95 514 pascal FreeLibrary32W(long) FreeLibrary32W16 # Both NT/95 515 pascal GetProcAddress32W(long str) GetProcAddress32W16 # Both NT/95 516 pascal GetVDMPointer32W(segptr word) GetVDMPointer32W16 # Both NT/95 517 varargs CallProc32W(long long long) CallProc32W16 # Both NT/95 518 varargs _CallProcEx32W(long long long) CallProcEx32W16 # Both NT/95 519 stub EXITKERNELTHUNK # the __MOD_ variables are WORD datareferences, the current values are invented. 520 equate __MOD_KERNEL 4200 521 equate __MOD_DKERNEL 4201 522 equate __MOD_USER 4203 523 equate __MOD_DUSER 4204 524 equate __MOD_GDI 4205 525 equate __MOD_DGDI 4206 526 equate __MOD_KEYBOARD 4207 527 equate __MOD_SOUND 4208 528 equate __MOD_SHELL 4209 529 equate __MOD_WINSOCK 4210 530 equate __MOD_TOOLHELP 4211 531 equate __MOD_MMEDIA 4212 532 equate __MOD_COMMDLG 4213 541 stub WOWSETEXITONLASTAPP 544 stub WOWSETCOMPATHANDLE # 531-568 are Win95-only extensions. # NOTE: Ordinals 531,532,541 clash with the WinNT extensions given above! Argh! #531 stub ConvertClipboardHandleLS #532 stub ConvertClipboardHandleSL 533 stub ConvertDDEHandleLS 534 stub ConvertDDEHandleSL 535 pascal VWin32_BoostThreadGroup(long long) VWin32_BoostThreadGroup 536 pascal VWin32_BoostThreadStatic(long long) VWin32_BoostThreadStatic 537 stub KERNEL_537 538 stub ThunkTheTemplateHandle 540 stub KERNEL_540 #541 stub KERNEL_541 542 stub KERNEL_542 543 stub KERNEL_543 560 pascal SetThunkletCallbackGlue(long segptr) SetThunkletCallbackGlue16 561 pascal AllocLSThunkletCallback(segptr long) AllocLSThunkletCallback16 562 pascal AllocSLThunkletCallback(long long) AllocSLThunkletCallback16 563 pascal FindLSThunkletCallback(segptr long) FindLSThunkletCallback 564 pascal FindSLThunkletCallback(long long) FindSLThunkletCallback 566 stub KERNEL_566 # (thunklet) FIXME!!! 567 pascal AllocLSThunkletCallbackEx(segptr long word) AllocLSThunkletCallbackEx16 568 pascal AllocSLThunkletCallbackEx(long long word) AllocSLThunkletCallbackEx16 # 600-653 are Win95 only 600 stub AllocCodeAlias 601 stub FreeCodeAlias 602 pascal -ret16 GetDummyModuleHandleDS() GetDummyModuleHandleDS16 603 stub KERNEL_603 # OutputDebugString (?) 604 pascal -register CBClientGlueSL() CBClientGlueSL # FIXME: 605 is duplicate of 562 605 pascal AllocSLThunkletCallback_dup(long long) AllocSLThunkletCallback16 # FIXME: 606 is duplicate of 561 606 pascal AllocLSThunkletCallback_dup(segptr long) AllocLSThunkletCallback16 607 pascal AllocLSThunkletSysthunk(segptr long long) AllocLSThunkletSysthunk16 608 pascal AllocSLThunkletSysthunk(long segptr long) AllocSLThunkletSysthunk16 # FIXME: 609 is duplicate of 563 609 pascal FindLSThunkletCallback_dup(segptr long) FindLSThunkletCallback # FIXME: 610 is duplicate of 562 610 pascal FindSLThunkletCallback_dup(long long) FindSLThunkletCallback 611 pascal -ret16 FreeThunklet(long long) FreeThunklet16 612 pascal -ret16 IsSLThunklet(ptr) IsSLThunklet16 613 stub HugeMapLS 614 stub HugeUnMapLS 615 pascal -ret16 ConvertDialog32To16(long long long) ConvertDialog32To16 616 pascal -ret16 ConvertMenu32To16(long long long) ConvertMenu32To16 617 pascal -ret16 GetMenu32Size(ptr) GetMenu32Size16 618 pascal -ret16 GetDialog32Size(ptr) GetDialog32Size16 619 pascal -ret16 RegisterCBClient(word segptr long) RegisterCBClient16 620 pascal -register CBClientThunkSL() CBClientThunkSL 621 pascal -register CBClientThunkSLEx() CBClientThunkSLEx 622 pascal -ret16 UnRegisterCBClient(word segptr long) UnRegisterCBClient16 623 pascal -ret16 InitCBClient(long) InitCBClient16 624 pascal SetFastQueue(long long) SetFastQueue16 625 pascal GetFastQueue() GetFastQueue16 626 stub SmashEnvironment 627 pascal -ret16 IsBadFlatReadWritePtr(segptr long word) IsBadFlatReadWritePtr16 630 pascal -register C16ThkSL() C16ThkSL 631 pascal -register C16ThkSL01() C16ThkSL01 651 pascal ThunkConnect16(str str word long ptr str word) ThunkConnect16 652 stub IsThreadId 653 stub OkWithKernelToChangeUsers # Extra Wine internal functions for thunking and self-loader 666 pascal UTGlue16(ptr long ptr long) UTGlue16 667 pascal EntryAddrProc(word word) EntryAddrProc16 668 pascal MyAlloc(word word word) MyAlloc16 669 pascal -ret16 DllEntryPoint(long word word word long word) KERNEL_DllEntryPoint # 700-704 are Win95 only 700 pascal SSInit() SSInit16 701 stub SSOnBigStack 702 stub SSCall 703 stub CallProc32WFix 704 pascal -register SSConfirmSmallStack() SSConfirmSmallStack # Win95 krnl386.exe also exports ordinals 802-864, # however, those seem to be only callback stubs that are # never called directly by other modules ... ################################################################ # VxD entry points # 901 pascal -register __wine_vxd_vmm() __wine_vxd_vmm 905 pascal -register __wine_vxd_timer() __wine_vxd_timer 909 pascal -register __wine_vxd_reboot() __wine_vxd_reboot 910 pascal -register __wine_vxd_vdd() __wine_vxd_vdd 912 pascal -register __wine_vxd_vmd() __wine_vxd_vmd 914 pascal -register __wine_vxd_comm() __wine_vxd_comm #915 pascal -register __wine_vxd_printer() __wine_vxd_printer 923 pascal -register __wine_vxd_shell() __wine_vxd_shell 933 pascal -register __wine_vxd_pagefile() __wine_vxd_pagefile 938 pascal -register __wine_vxd_apm() __wine_vxd_apm 939 pascal -register __wine_vxd_vxdloader() __wine_vxd_vxdloader 945 pascal -register __wine_vxd_win32s() __wine_vxd_win32s 951 pascal -register __wine_vxd_configmg() __wine_vxd_configmg 955 pascal -register __wine_vxd_enable() __wine_vxd_enable 1990 pascal -register __wine_vxd_timerapi() __wine_vxd_timerapi ################################################################ # 32-bit version of the various 16-bit functions exported by kernel32 # @ stdcall -arch=win32 -register VxDCall0(long) VxDCall @ stdcall -arch=win32 -register VxDCall1(long) VxDCall @ stdcall -arch=win32 -register VxDCall2(long) VxDCall @ stdcall -arch=win32 -register VxDCall3(long) VxDCall @ stdcall -arch=win32 -register VxDCall4(long) VxDCall @ stdcall -arch=win32 -register VxDCall5(long) VxDCall @ stdcall -arch=win32 -register VxDCall6(long) VxDCall @ stdcall -arch=win32 -register VxDCall7(long) VxDCall @ stdcall -arch=win32 -register VxDCall8(long) VxDCall @ stdcall -arch=win32 k32CharToOemA(str ptr) @ stdcall -arch=win32 k32CharToOemBuffA(str ptr long) @ stdcall -arch=win32 k32OemToCharA(ptr ptr) @ stdcall -arch=win32 k32OemToCharBuffA(ptr ptr long) @ stdcall -arch=win32 k32LoadStringA(long long ptr long) @ varargs -arch=win32 k32wsprintfA(str str) @ stdcall -arch=win32 k32wvsprintfA(ptr str ptr) @ stdcall -arch=win32 -register CommonUnimpStub() @ stdcall -arch=win32 GetProcessDword(long long) @ stdcall -arch=win32 DosFileHandleToWin32Handle(long) @ stdcall -arch=win32 Win32HandleToDosFileHandle(long) @ stdcall -arch=win32 DisposeLZ32Handle(long) @ stdcall -arch=win32 GlobalAlloc16(long long) @ stdcall -arch=win32 GlobalLock16(long) @ stdcall -arch=win32 GlobalUnlock16(long) @ stdcall -arch=win32 GlobalFix16(long) @ stdcall -arch=win32 GlobalUnfix16(long) @ stdcall -arch=win32 GlobalWire16(long) @ stdcall -arch=win32 GlobalUnWire16(long) @ stdcall -arch=win32 GlobalFree16(long) @ stdcall -arch=win32 GlobalSize16(long) @ stdcall -arch=win32 HouseCleanLogicallyDeadHandles() @ stdcall -arch=win32 GetWin16DOSEnv() @ stdcall -arch=win32 LoadLibrary16(str) @ stdcall -arch=win32 FreeLibrary16(long) @ stdcall -arch=win32 GetProcAddress16(long str) WIN32_GetProcAddress16 @ stdcall -arch=win32 -register AllocMappedBuffer() @ stdcall -arch=win32 -register FreeMappedBuffer() @ stdcall -arch=win32 -register OT_32ThkLSF() @ stdcall -arch=win32 ThunkInitLSF(long str long str str) @ stdcall -arch=win32 -register LogApiThkLSF(str) @ stdcall -arch=win32 ThunkInitLS(long str long str str) @ stdcall -arch=win32 -register LogApiThkSL(str) @ stdcall -arch=win32 -register Common32ThkLS() @ stdcall -arch=win32 ThunkInitSL(long str long str str) @ stdcall -arch=win32 -register LogCBThkSL(str) @ stdcall -arch=win32 ReleaseThunkLock(ptr) @ stdcall -arch=win32 RestoreThunkLock(long) @ stdcall -arch=win32 -register W32S_BackTo32() @ stdcall -arch=win32 GetThunkBuff() @ stdcall -arch=win32 GetThunkStuff(str str) @ stdcall -arch=win32 K32WOWCallback16(long long) @ stdcall -arch=win32 K32WOWCallback16Ex(ptr long long ptr ptr) @ stdcall -arch=win32 K32WOWGetVDMPointer(long long long) @ stdcall -arch=win32 K32WOWHandle32(long long) @ stdcall -arch=win32 K32WOWHandle16(long long) @ stdcall -arch=win32 K32WOWGlobalAlloc16(long long) @ stdcall -arch=win32 K32WOWGlobalLock16(long) @ stdcall -arch=win32 K32WOWGlobalUnlock16(long) @ stdcall -arch=win32 K32WOWGlobalFree16(long) @ stdcall -arch=win32 K32WOWGlobalAllocLock16(long long ptr) @ stdcall -arch=win32 K32WOWGlobalUnlockFree16(long) @ stdcall -arch=win32 K32WOWGlobalLockSize16(long ptr) @ stdcall -arch=win32 K32WOWYield16() @ stdcall -arch=win32 K32WOWDirectedYield16(long) @ stdcall -arch=win32 K32WOWGetVDMPointerFix(long long long) @ stdcall -arch=win32 K32WOWGetVDMPointerUnfix(long) @ stdcall -arch=win32 K32WOWGetDescriptor(long long) @ stdcall -arch=win32 _KERNEL32_86(ptr) @ stdcall -arch=win32 SSOnBigStack() @ varargs -arch=win32 SSCall(long long ptr) @ stdcall -arch=win32 -register FT_PrologPrime() @ stdcall -arch=win32 -register QT_ThunkPrime() @ stdcall -arch=win32 PK16FNF(ptr) @ stdcall -arch=win32 GetPK16SysVar() @ stdcall -arch=win32 GetpWin16Lock(ptr) @ stdcall -arch=win32 _CheckNotSysLevel(ptr) @ stdcall -arch=win32 _ConfirmSysLevel(ptr) @ stdcall -arch=win32 _ConfirmWin16Lock() @ stdcall -arch=win32 _EnterSysLevel(ptr) @ stdcall -arch=win32 _LeaveSysLevel(ptr) @ stdcall -arch=win32 _KERNEL32_99(long) @ stdcall -arch=win32 _KERNEL32_100(long long long) @ stdcall -arch=win32 AllocSLCallback(ptr ptr) @ stdcall -arch=win32 -norelay FT_Exit0() @ stdcall -arch=win32 -norelay FT_Exit12() @ stdcall -arch=win32 -norelay FT_Exit16() @ stdcall -arch=win32 -norelay FT_Exit20() @ stdcall -arch=win32 -norelay FT_Exit24() @ stdcall -arch=win32 -norelay FT_Exit28() @ stdcall -arch=win32 -norelay FT_Exit32() @ stdcall -arch=win32 -norelay FT_Exit36() @ stdcall -arch=win32 -norelay FT_Exit40() @ stdcall -arch=win32 -norelay FT_Exit44() @ stdcall -arch=win32 -norelay FT_Exit48() @ stdcall -arch=win32 -norelay FT_Exit4() @ stdcall -arch=win32 -norelay FT_Exit52() @ stdcall -arch=win32 -norelay FT_Exit56() @ stdcall -arch=win32 -norelay FT_Exit8() @ stdcall -arch=win32 -register FT_Prolog() @ stdcall -arch=win32 -register FT_Thunk() @ stdcall -arch=win32 FreeSLCallback(long) @ stdcall -arch=win32 Get16DLLAddress(long str) @ stdcall -arch=win32 -register K32Thk1632Epilog() @ stdcall -arch=win32 -register K32Thk1632Prolog() @ stdcall -arch=win32 -norelay MapHInstLS() @ stdcall -arch=win32 -norelay MapHInstLS_PN() @ stdcall -arch=win32 -norelay MapHInstSL() @ stdcall -arch=win32 -norelay MapHInstSL_PN() @ stdcall -arch=win32 MapHModuleLS(long) @ stdcall -arch=win32 MapHModuleSL(long) @ stdcall -arch=win32 MapLS(ptr) @ stdcall -arch=win32 MapSL(long) @ stdcall -arch=win32 MapSLFix(long) @ stdcall -arch=win32 PrivateFreeLibrary(long) @ stdcall -arch=win32 PrivateLoadLibrary(str) @ stdcall -arch=win32 -register QT_Thunk() @ stdcall -arch=win32 -norelay SMapLS() @ stdcall -arch=win32 -norelay SMapLS_IP_EBP_12() @ stdcall -arch=win32 -norelay SMapLS_IP_EBP_16() @ stdcall -arch=win32 -norelay SMapLS_IP_EBP_20() @ stdcall -arch=win32 -norelay SMapLS_IP_EBP_24() @ stdcall -arch=win32 -norelay SMapLS_IP_EBP_28() @ stdcall -arch=win32 -norelay SMapLS_IP_EBP_32() @ stdcall -arch=win32 -norelay SMapLS_IP_EBP_36() @ stdcall -arch=win32 -norelay SMapLS_IP_EBP_40() @ stdcall -arch=win32 -norelay SMapLS_IP_EBP_8() @ stdcall -arch=win32 -norelay SUnMapLS() @ stdcall -arch=win32 -norelay SUnMapLS_IP_EBP_12() @ stdcall -arch=win32 -norelay SUnMapLS_IP_EBP_16() @ stdcall -arch=win32 -norelay SUnMapLS_IP_EBP_20() @ stdcall -arch=win32 -norelay SUnMapLS_IP_EBP_24() @ stdcall -arch=win32 -norelay SUnMapLS_IP_EBP_28() @ stdcall -arch=win32 -norelay SUnMapLS_IP_EBP_32() @ stdcall -arch=win32 -norelay SUnMapLS_IP_EBP_36() @ stdcall -arch=win32 -norelay SUnMapLS_IP_EBP_40() @ stdcall -arch=win32 -norelay SUnMapLS_IP_EBP_8() @ stdcall -arch=win32 ThunkConnect32(ptr str str str ptr ptr) @ stdcall -arch=win32 UTRegister(long str str str ptr ptr ptr) @ stdcall -arch=win32 UTUnRegister(long) @ stdcall -arch=win32 UnMapLS(long) @ stdcall -arch=win32 -norelay UnMapSLFixArray(long long) @ stdcall -arch=win32 _lclose16(long) ################################################################ # 16-bit symbols not available from kernel32 but used by other 16-bit dlls # @ stdcall -arch=win32 AllocSelectorArray16(long) @ stdcall -arch=win32 FarGetOwner16(long) @ stdcall -arch=win32 FarSetOwner16(long long) @ stdcall -arch=win32 FindResource16(long str str) @ stdcall -arch=win32 FreeResource16(long) @ stdcall -arch=win32 FreeSelector16(long) @ stdcall -arch=win32 GetCurrentPDB16() @ stdcall -arch=win32 GetCurrentTask() @ stdcall -arch=win32 GetDOSEnvironment16() @ stdcall -arch=win32 GetExePtr(long) @ stdcall -arch=win32 GetExpWinVer16(long) @ stdcall -arch=win32 GetModuleHandle16(str) @ stdcall -arch=win32 GlobalReAlloc16(long long long) @ stdcall -arch=win32 InitTask16(ptr) @ stdcall -arch=win32 IsBadReadPtr16(long long) @ stdcall -arch=win32 IsTask16(long) @ stdcall -arch=win32 LoadModule16(str long) @ stdcall -arch=win32 LoadResource16(long long) @ stdcall -arch=win32 LocalAlloc16(long long) @ stdcall -arch=win32 LocalInit16(long long long) @ stdcall -arch=win32 LocalLock16(long) @ stdcall -arch=win32 LocalUnlock16(long) @ stdcall -arch=win32 LocalReAlloc16(long long long) @ stdcall -arch=win32 LocalFree16(long) @ stdcall -arch=win32 LocalSize16(long) @ stdcall -arch=win32 LocalCompact16(long) @ stdcall -arch=win32 LocalCountFree16() @ stdcall -arch=win32 LocalHeapSize16() @ stdcall -arch=win32 LockResource16(long) @ stdcall -arch=win32 SetSelectorBase(long long) @ stdcall -arch=win32 SetSelectorLimit16(long long) @ stdcall -arch=win32 SizeofResource16(long long) @ stdcall -arch=win32 WinExec16(str long) ################################################################ # Wine internal extensions # # All functions must be prefixed with '__wine_' (for internal functions) # or 'wine_' (for user-visible functions) to avoid namespace conflicts. # DOS support @ cdecl -arch=win32 __wine_call_int_handler(ptr long) @ cdecl -arch=win32 __wine_load_dos_exe(str str) # VxDs @ cdecl -arch=win32 -private __wine_vxd_open(wstr long ptr) @ cdecl -arch=win32 -private __wine_vxd_get_proc(long)