krnl386.exe.spec 23.7 KB
Newer Older
Alexandre Julliard's avatar
Alexandre Julliard committed
1 2 3
# 1-207 are the basic functions, those are (with minor variations)
# present in win31, win95 and nt351

Alexandre Julliard's avatar
Alexandre Julliard committed
4
1   stub FatalExit
5
2   pascal -ret16 ExitKernel() ExitKernel16
Alexandre Julliard's avatar
Alexandre Julliard committed
6
3   pascal GetVersion() GetVersion16
7 8 9 10
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
11
8   pascal LocalLock(word) LocalLock16
12 13 14 15 16
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
17
14  pascal LocalNotify(long) LocalNotify16
18 19 20
15  pascal -ret16 GlobalAlloc(word long) GlobalAlloc16
16  pascal -ret16 GlobalReAlloc(word long word) GlobalReAlloc16
17  pascal -ret16 GlobalFree(word) GlobalFree16
Alexandre Julliard's avatar
Alexandre Julliard committed
21
18  pascal GlobalLock(word) WIN16_GlobalLock16
22
19  pascal -ret16 GlobalUnlock(word) GlobalUnlock16
Alexandre Julliard's avatar
Alexandre Julliard committed
23 24
20  pascal GlobalSize(word) GlobalSize16
21  pascal GlobalHandle(word) GlobalHandle16
25 26 27
22  pascal -ret16 GlobalFlags(word) GlobalFlags16
23  pascal -ret16 LockSegment(word) LockSegment16
24  pascal -ret16 UnlockSegment(word) UnlockSegment16
Alexandre Julliard's avatar
Alexandre Julliard committed
28
25  pascal GlobalCompact(long) GlobalCompact16
29 30
26  pascal -ret16 GlobalFreeAll(word) GlobalFreeAll16
27  pascal -ret16 GetModuleName(word ptr word) GetModuleName16 # W1.1: SETSWAPHOOK, W2.0: nothing !
31
28  pascal   GlobalMasterHandle() GlobalMasterHandle16
32 33 34 35 36 37 38
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
Alexandre Julliard's avatar
Alexandre Julliard committed
39
36  pascal   GetCurrentTask() WIN16_GetCurrentTask
40
37  pascal GetCurrentPDB() GetCurrentPDB16
41
38  pascal   SetTaskSignalProc(word segptr) SetTaskSignalProc
42 43
39  stub     SetTaskSwitchProc      # W1.1, W2.0
40  stub     SetTaskInterchange     # W1.1, W2.0
44 45
41  pascal -ret16 EnableDos() KERNEL_nop
42  pascal -ret16 DisableDos() KERNEL_nop
46 47
43  stub     IsScreenGrab           # W1.1, W2.0
44  stub     BuildPDB               # W1.1, W2.0
48 49
45  pascal -ret16 LoadModule(str ptr) LoadModule16
46  pascal -ret16 FreeModule(word) FreeModule16
Alexandre Julliard's avatar
Alexandre Julliard committed
50
47  pascal   GetModuleHandle(segstr) WIN16_GetModuleHandle
51 52
48  pascal -ret16 GetModuleUsage(word) GetModuleUsage16
49  pascal -ret16 GetModuleFileName(word ptr s_word) GetModuleFileName16
53
50  pascal GetProcAddress(word str) GetProcAddress16
Alexandre Julliard's avatar
Alexandre Julliard committed
54
51  pascal MakeProcInstance(segptr word) MakeProcInstance16
55
52  pascal -ret16 FreeProcInstance(segptr) FreeProcInstance16
Alexandre Julliard's avatar
Alexandre Julliard committed
56
53  stub CallProcInstance
57
54  pascal -ret16 GetInstanceData(word word word) GetInstanceData16
58
55  pascal -register Catch(ptr) Catch16
59
56  pascal -register Throw(ptr word) Throw16
60 61 62 63 64
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
Alexandre Julliard's avatar
Alexandre Julliard committed
65
62  pascal LockResource(word) WIN16_LockResource16
66 67
63  pascal -ret16 FreeResource(word) FreeResource16
64  pascal -ret16 AccessResource(word word) AccessResource16
Alexandre Julliard's avatar
Alexandre Julliard committed
68
65  pascal SizeofResource(word word) SizeofResource16
69
66  pascal -ret16 AllocResource(word word long) AllocResource16
70
67  pascal SetResourceHandler(word str segptr) SetResourceHandler16
71 72 73 74 75 76 77
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
Alexandre Julliard's avatar
Alexandre Julliard committed
78 79
75  stub OpenPathName
76  stub DeletePathName
Alexandre Julliard's avatar
Alexandre Julliard committed
80
# Reserved*: old Win 2.x functions now moved to USER (Win 3.0+)
81 82 83 84
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
85 86 87
81  pascal -ret16 _lclose(word) _lclose16
82  pascal -ret16 _lread(word segptr word) WIN16_lread
83  pascal -ret16 _lcreat(str word) _lcreat16
Alexandre Julliard's avatar
Alexandre Julliard committed
88
84  pascal   _llseek(word long word) _llseek16
89 90 91
85  pascal -ret16 _lopen(str word) _lopen16
86  pascal -ret16 _lwrite(word ptr word) _lwrite16
87  pascal -ret16 Reserved5(str str) KERNEL_lstrcmp16
Alexandre Julliard's avatar
Alexandre Julliard committed
92
88  pascal   lstrcpy(segptr str) lstrcpy16
Alexandre Julliard's avatar
Alexandre Julliard committed
93
89  pascal   lstrcat(segstr str) lstrcat16
94
90  pascal -ret16 lstrlen(str) lstrlen16
95
91  pascal -register InitTask() InitTask16
96
92  pascal   GetTempDrive(word) GetTempDrive
97 98 99 100 101 102
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
Alexandre Julliard's avatar
Alexandre Julliard committed
103
99  stub GetLPErrMode
104
100 pascal -ret16 ValidateCodeSegments() KERNEL_nop
Alexandre Julliard's avatar
Alexandre Julliard committed
105
101 stub NoHookDosCall
106 107
102 pascal -register DOS3Call() DOS3Call
103 pascal -register NetBIOSCall() NetBIOSCall16
108 109
104 pascal -ret16 GetCodeInfo(segptr ptr) GetCodeInfo16
105 pascal -ret16 GetExeVersion() GetExeVersion16
Alexandre Julliard's avatar
Alexandre Julliard committed
110
106 pascal SetSwapAreaSize(word) SetSwapAreaSize16
111 112
107 pascal -ret16 SetErrorMode(word) SetErrorMode16
108 pascal -ret16 SwitchStackTo(word word word) SwitchStackTo16 # STO in W2.0
113
109 pascal -register SwitchStackBack() SwitchStackBack16 # SBACK in W2.0
114
110 pascal   PatchCodeHandle(word) PatchCodeHandle16
Alexandre Julliard's avatar
Alexandre Julliard committed
115
111 pascal   GlobalWire(word) GlobalWire16
116
112 pascal -ret16 GlobalUnWire(word) GlobalUnWire16
Alexandre Julliard's avatar
Alexandre Julliard committed
117 118
113 equate __AHSHIFT 3
114 equate __AHINCR 8
119
115 pascal -ret16 OutputDebugString(str) OutputDebugString16
Alexandre Julliard's avatar
Alexandre Julliard committed
120
116 stub InitLib
121 122 123
117 pascal -ret16 OldYield() OldYield16
118 pascal -ret16 GetTaskQueueDS() GetTaskQueueDS16
119 pascal -ret16 GetTaskQueueES() GetTaskQueueES16
Alexandre Julliard's avatar
Alexandre Julliard committed
124
120 stub UndefDynLink
125 126 127 128 129
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
Alexandre Julliard's avatar
Alexandre Julliard committed
130
126 stub MemoryFreed
131 132 133
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
134 135 136
130 pascal FileCDR(ptr) FileCDR16
131 pascal GetDOSEnvironment() GetDOSEnvironment16
132 pascal GetWinFlags() GetWinFlags16
137 138 139 140 141
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
142
138 pascal GetHeapSpaces(word) GetHeapSpaces16
Alexandre Julliard's avatar
Alexandre Julliard committed
143
139 stub DoSignal
144
140 pascal -ret16 SetSigHandler(segptr ptr ptr word word) SetSigHandler16
Alexandre Julliard's avatar
Alexandre Julliard committed
145
141 stub InitTask1
146 147 148 149 150 151
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) SetLastError
Alexandre Julliard's avatar
Alexandre Julliard committed
152
148 pascal   GetLastError() GetLastError
153 154
149 pascal -ret16 GetVersionEx(ptr) GetVersionEx16
150 pascal -ret16 DirectedYield(word) DirectedYield16
Alexandre Julliard's avatar
Alexandre Julliard committed
155
151 stub WinOldApCall
156 157 158
152 pascal -ret16 GetNumTasks() GetNumTasks16
154 pascal -ret16 GlobalNotify(segptr) GlobalNotify16
155 pascal -ret16 GetTaskDS() GetTaskDS16
159 160
156 pascal   LimitEMSPages(long) LimitEMSPages16
157 pascal   GetCurPID(long) GetCurPID16
161
158 pascal -ret16 IsWinOldApTask(word) IsWinOldApTask16
162
159 pascal GlobalHandleNoRIP(word) GlobalHandleNoRIP16
Alexandre Julliard's avatar
Alexandre Julliard committed
163
160 stub EMSCopy
164 165 166 167 168 169 170 171
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
Alexandre Julliard's avatar
Alexandre Julliard committed
172
169 pascal GetFreeSpace(word) GetFreeSpace16
173 174 175
170 pascal -ret16 AllocCStoDSAlias(word) AllocCStoDSAlias16
171 pascal -ret16 AllocDStoCSAlias(word) AllocDStoCSAlias16
172 pascal -ret16 AllocAlias(word) AllocCStoDSAlias16
Alexandre Julliard's avatar
Alexandre Julliard committed
176 177
173 equate __ROMBIOS 0
174 equate __A000H 0
178 179 180
175 pascal -ret16 AllocSelector(word) AllocSelector16
176 pascal -ret16 FreeSelector(word) FreeSelector16
177 pascal -ret16 PrestoChangoSelector(word word) PrestoChangoSelector16
Alexandre Julliard's avatar
Alexandre Julliard committed
181
178 equate __WINFLAGS 0x413
Alexandre Julliard's avatar
Alexandre Julliard committed
182
179 equate __D000H 0
183
180 pascal -ret16 LongPtrAdd(long long) LongPtrAdd16
Alexandre Julliard's avatar
Alexandre Julliard committed
184 185 186
181 equate __B000H 0
182 equate __B800H 0
183 equate __0000H 0
187
184 pascal GlobalDOSAlloc(long) GlobalDOSAlloc16
188
185 pascal -ret16 GlobalDOSFree(word) GlobalDOSFree16
189
186 pascal GetSelectorBase(word) GetSelectorBase
190
187 pascal -ret16 SetSelectorBase(word long) SetSelectorBase
191
188 pascal GetSelectorLimit(word) GetSelectorLimit16
192
189 pascal -ret16 SetSelectorLimit(word long) SetSelectorLimit16
Alexandre Julliard's avatar
Alexandre Julliard committed
193
190 equate __E000H 0
194 195
191 pascal -ret16 GlobalPageLock(word) GlobalPageLock16
192 pascal -ret16 GlobalPageUnlock(word) GlobalPageUnlock16
Alexandre Julliard's avatar
Alexandre Julliard committed
196 197 198
193 equate __0040H 0
194 equate __F000H 0
195 equate __C000H 0
199 200 201 202 203
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
Alexandre Julliard's avatar
Alexandre Julliard committed
204 205
201 stub ReplaceInst
202 stub RegisterPtrace
206
203 pascal -register DebugBreak() DebugBreak16
Alexandre Julliard's avatar
Alexandre Julliard committed
207 208
204 stub SwapRecording
205 stub CVWBreak
209 210
206 pascal -ret16 AllocSelectorArray(word) AllocSelectorArray16
207 pascal -ret16 IsDBCSLeadByte(word) IsDBCSLeadByte
Alexandre Julliard's avatar
Alexandre Julliard committed
211 212 213 214


# 208-237 are Win95 extensions; a few of those are also present in WinNT

215 216 217 218 219 220 221
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!
Alexandre Julliard's avatar
Alexandre Julliard committed
222 223 224 225 226
#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
227
220 pascal RegCloseKey(long) RegCloseKey16                                # Both 95/NT
Alexandre Julliard's avatar
Alexandre Julliard committed
228 229 230 231 232 233
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
234
227 pascal RegFlushKey(long) RegFlushKey16
235 236
228 pascal -ret16 K228(word) GetExePtr
229 pascal -ret16 K229(long) Local32GetSegment16
237
230 pascal GlobalSmartPageLock(word) GlobalPageLock16 #?
238
231 pascal GlobalSmartPageUnlock(word) GlobalPageUnlock16 #?
Alexandre Julliard's avatar
Alexandre Julliard committed
239 240 241 242
232 stub RegLoadKey
233 stub RegUnloadKey
234 stub RegSaveKey
235 stub InvalidateNlsCache
Alexandre Julliard's avatar
Alexandre Julliard committed
243
236 stub GetProductName
244
237 pascal -ret16 K237() KERNEL_nop
Alexandre Julliard's avatar
Alexandre Julliard committed
245 246 247 248 249 250 251 252 253 254 255 256


# 262-274 are WinNT extensions; those are not present in Win95

262 stub WOWWaitForMsgAndEvent
263 stub WOWMsgBox
273 stub K273
274 stub GetShortPathName


# 310-356 are again shared between all versions

257
310 pascal -ret16 LocalHandleDelta(word) LocalHandleDelta16
258
311 pascal GetSetKernelDOSProc(ptr) GetSetKernelDOSProc16
Alexandre Julliard's avatar
Alexandre Julliard committed
259
314 stub DebugDefineSegment
260
315 pascal -ret16 WriteOutProfiles() WriteOutProfiles16
261
316 pascal GetFreeMemInfo() GetFreeMemInfo16
Alexandre Julliard's avatar
Alexandre Julliard committed
262 263
318 stub FatalExitHook
319 stub FlushCachedFileHandle
264 265 266 267 268
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
269
327 pascal -register K327() HandleParamError
270
328 varargs -ret16 _DebugOutput(word str) _DebugOutput
271
329 pascal -ret16 K329(str word) DebugFillBuffer
272
332 variable THHOOK(0 0 0 0 0 0 0 0)
273 274 275 276 277 278 279
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
280
341 pascal ToolHelpHook(ptr) ToolHelpHook16
281
342 variable __GP(0 0)
Alexandre Julliard's avatar
Alexandre Julliard committed
282 283
343 stub RegisterWinOldApHook
344 stub GetWinOldApHooks
284 285 286 287
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
Alexandre Julliard's avatar
Alexandre Julliard committed
288
349 pascal   _hread(word segptr long) WIN16_hread
Alexandre Julliard's avatar
Alexandre Julliard committed
289
350 pascal   _hwrite(word ptr long) _hwrite16
290
351 pascal -ret16 BUNNY_351() KERNEL_nop
Alexandre Julliard's avatar
Alexandre Julliard committed
291
352 pascal   lstrcatn(segstr str word) lstrcatn16
Alexandre Julliard's avatar
Alexandre Julliard committed
292
353 pascal   lstrcpyn(segptr str word) lstrcpyn16
Alexandre Julliard's avatar
Alexandre Julliard committed
293
354 pascal   GetAppCompatFlags(word) GetAppCompatFlags16
294 295
355 pascal -ret16 GetWinDebugInfo(ptr word) GetWinDebugInfo16
356 pascal -ret16 SetWinDebugInfo(ptr) SetWinDebugInfo16
Alexandre Julliard's avatar
Alexandre Julliard committed
296 297 298


# 357-365 are present in Win95 only
299
# Note that from here on most of the Win95-only functions are exported
Alexandre Julliard's avatar
Alexandre Julliard committed
300 301
# ordinal-only; the names given here are mostly guesses :-)

Alexandre Julliard's avatar
Alexandre Julliard committed
302
357 pascal MapSL(segptr) MapSL
Alexandre Julliard's avatar
Alexandre Julliard committed
303
358 pascal MapLS(long) MapLS
Alexandre Julliard's avatar
Alexandre Julliard committed
304
359 pascal UnMapLS(segptr) UnMapLS
305 306
360 pascal -ret16 OpenFileEx(str ptr word) OpenFile16
361 pascal -ret16 PIGLET_361() KERNEL_nop
Alexandre Julliard's avatar
Alexandre Julliard committed
307
362 stub ThunkTerminateProcess
308
365 pascal -register GlobalChangeLockCount(word word) GlobalChangeLockCount16
Alexandre Julliard's avatar
Alexandre Julliard committed
309 310 311 312


# 403-404 are common to all versions

313 314
403 pascal -ret16 FarSetOwner(word word) FarSetOwner16 # aka K403
404 pascal -ret16 FarGetOwner(word) FarGetOwner16 # aka K404
Alexandre Julliard's avatar
Alexandre Julliard committed
315 316 317 318


# 406-494 are present only in Win95

319 320
406 pascal -ret16 WritePrivateProfileStruct(str str ptr word str) WritePrivateProfileStruct16
407 pascal -ret16 GetPrivateProfileStruct(str str ptr word str) GetPrivateProfileStruct16
Alexandre Julliard's avatar
Alexandre Julliard committed
321 322 323
408 stub KERNEL_408
409 stub KERNEL_409
410 stub CreateProcessFromWinExec
Alexandre Julliard's avatar
Alexandre Julliard committed
324
411 pascal   GetCurrentDirectory(long ptr) GetCurrentDirectory16
325 326 327 328 329 330 331 332
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
Alexandre Julliard's avatar
Alexandre Julliard committed
333
420 pascal   GetFileAttributes(ptr) GetFileAttributes16
334 335 336 337
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
Alexandre Julliard's avatar
Alexandre Julliard committed
338
432 stub FileTimeToLocalFileTime
339
434 pascal -ret16 UnicodeToAnsi(ptr ptr word) UnicodeToAnsi16
Alexandre Julliard's avatar
Alexandre Julliard committed
340
435 stub GetTaskFlags
341 342 343 344 345
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
346
441 pascal CreateThread16(ptr long segptr segptr long ptr) CreateThread16
Alexandre Julliard's avatar
Alexandre Julliard committed
347 348
442 pascal VWin32_EventCreate() VWin32_EventCreate
443 pascal VWin32_EventDestroy(long) VWin32_EventDestroy
349 350 351 352
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
Alexandre Julliard's avatar
Alexandre Julliard committed
353
448 stub KERNEL_448
Alexandre Julliard's avatar
Alexandre Julliard committed
354
449 pascal GetpWin16Lock() GetpWin16Lock16
Alexandre Julliard's avatar
Alexandre Julliard committed
355 356
450 pascal VWin32_EventWait(long) VWin32_EventWait
451 pascal VWin32_EventSet(long) VWin32_EventSet
357
452 pascal LoadLibrary32(str) LoadLibrary32_16
358
453 pascal GetProcAddress32(long str) GetProcAddress32_16
Alexandre Julliard's avatar
Alexandre Julliard committed
359 360
454 equate __FLATCS 0   # initialized by BUILTIN_Init()
455 equate __FLATDS 0   # initialized by BUILTIN_Init()
Alexandre Julliard's avatar
Alexandre Julliard committed
361 362 363 364
456 pascal DefResourceHandler(word word word) NE_DefResourceHandler
457 pascal CreateW32Event(long long) WIN16_CreateEvent
458 pascal SetW32Event(long) SetEvent
459 pascal ResetW32Event(long) ResetEvent
365 366
460 pascal WaitForSingleObject(long long) WaitForSingleObject16
461 pascal WaitForMultipleObjects(long ptr long long) WaitForMultipleObjects16
Alexandre Julliard's avatar
Alexandre Julliard committed
367
462 pascal GetCurrentThreadId() GetCurrentThreadId
368 369
463 pascal SetThreadQueue(long word) SetThreadQueue16
464 pascal GetThreadQueue(long) GetThreadQueue16
Alexandre Julliard's avatar
Alexandre Julliard committed
370
465 stub NukeProcess
371
466 pascal -ret16 ExitProcess(word) ExitProcess16
Alexandre Julliard's avatar
Alexandre Julliard committed
372 373 374 375 376
467 stub WOACreateConsole
468 stub WOASpawnConApp
469 stub WOAGimmeTitle
470 stub WOADestroyConsole
471 pascal GetCurrentProcessId() GetCurrentProcessId
377 378
472 pascal -register MapHInstLS() MapHInstLS16
473 pascal -register MapHInstSL() MapHInstSL16
Alexandre Julliard's avatar
Alexandre Julliard committed
379
474 pascal CloseW32Handle(long) CloseHandle
380
475 pascal -ret16 GetTEBSelectorFS() GetTEBSelectorFS16
Alexandre Julliard's avatar
Alexandre Julliard committed
381 382 383 384
476 pascal ConvertToGlobalHandle(long) ConvertToGlobalHandle
477 stub WOAFullScreen
478 stub WOATerminateProcess
479 pascal KERNEL_479(long) VWin32_EventSet  # ???
385 386
480 pascal -ret16 _EnterWin16Lock() _EnterWin16Lock
481 pascal -ret16 _LeaveWin16Lock() _LeaveWin16Lock
387
482 pascal LoadSystemLibrary32(str) LoadLibrary32_16   # FIXME!
Robert Shearman's avatar
Robert Shearman committed
388
483 pascal MapProcessHandle(long) GetProcessId
389 390
484 pascal SetProcessDword(long s_word long) SetProcessDword
485 pascal GetProcessDword(long s_word) GetProcessDword
391 392 393
486 pascal FreeLibrary32(long) FreeLibrary
487 pascal GetModuleFileName32(long str word) GetModuleFileNameA
488 pascal GetModuleHandle32(str) GetModuleHandleA
Alexandre Julliard's avatar
Alexandre Julliard committed
394
489 stub KERNEL_489  # VWin32_BoostWithDecay
395
490 pascal -ret16 KERNEL_490(word) KERNEL_490
396
491 pascal RegisterServiceProcess(long long) RegisterServiceProcess
Alexandre Julliard's avatar
Alexandre Julliard committed
397
492 stub WOAAbort
398
493 pascal -ret16 UTInit(long long long long) UTInit16
Alexandre Julliard's avatar
Alexandre Julliard committed
399 400
494 stub KERNEL_494

401
# 495 is present only in Win98
402
495 pascal WaitForMultipleObjectsEx(long ptr long long long) WaitForMultipleObjectsEx16
Alexandre Julliard's avatar
Alexandre Julliard committed
403 404

# 500-544 are WinNT extensions; some are also available in Win95
Alexandre Julliard's avatar
Alexandre Julliard committed
405

406
500 varargs WOW16Call(word word word) WOW16Call
Alexandre Julliard's avatar
Alexandre Julliard committed
407
501 stub KDDBGOUT                                               # Both NT/95 (?)
Alexandre Julliard's avatar
Alexandre Julliard committed
408 409 410 411 412
502 stub WOWGETNEXTVDMCOMMAND
503 stub WOWREGISTERSHELLWINDOWHANDLE
504 stub WOWLOADMODULE
505 stub WOWQUERYPERFORMANCECOUNTER
506 stub WOWCURSORICONOP
413
#507 stub WOWCURSORICONOP # conflict with 506 !
Alexandre Julliard's avatar
Alexandre Julliard committed
414
507 stub WOWFAILEDEXEC
415
#508 stub WOWFAILEDEXEC # conflict with 507 ! (something broken here ?)
Alexandre Julliard's avatar
Alexandre Julliard committed
416
508 stub WOWCLOSECOMPORT
417
#509 stub WOWCLOSECOMPORT # conflict with 508 !
418
#509 stub WOWKILLREMOTETASK
Alexandre Julliard's avatar
Alexandre Julliard committed
419 420
511 stub WOWKILLREMOTETASK
512 stub WOWQUERYDEBUG
421 422 423 424
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
425 426
517 varargs CallProc32W(long long long) CallProc32W16           # Both NT/95
518 varargs _CallProcEx32W(long long long) CallProcEx32W16      # Both NT/95
Alexandre Julliard's avatar
Alexandre Julliard committed
427
519 stub EXITKERNELTHUNK
Alexandre Julliard's avatar
Alexandre Julliard committed
428
# the __MOD_ variables are WORD datareferences, the current values are invented.
Alexandre Julliard's avatar
Alexandre Julliard committed
429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444
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

Alexandre Julliard's avatar
Alexandre Julliard committed
445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460

# 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
461 462 463
560 pascal SetThunkletCallbackGlue(long segptr) SetThunkletCallbackGlue16
561 pascal AllocLSThunkletCallback(segptr long) AllocLSThunkletCallback16
562 pascal AllocSLThunkletCallback(long long) AllocSLThunkletCallback16
464 465 466
563 pascal FindLSThunkletCallback(segptr long) FindLSThunkletCallback
564 pascal FindSLThunkletCallback(long long) FindSLThunkletCallback
566 stub KERNEL_566  # (thunklet) FIXME!!!
467 468
567 pascal AllocLSThunkletCallbackEx(segptr long word) AllocLSThunkletCallbackEx16
568 pascal AllocSLThunkletCallbackEx(long long word) AllocSLThunkletCallbackEx16
Alexandre Julliard's avatar
Alexandre Julliard committed
469 470 471 472


# 600-653 are Win95 only

473 474
600 stub AllocCodeAlias
601 stub FreeCodeAlias
475
602 pascal -ret16 GetDummyModuleHandleDS() GetDummyModuleHandleDS16
Alexandre Julliard's avatar
Alexandre Julliard committed
476
603 stub KERNEL_603  # OutputDebugString (?)
477
604 pascal -register CBClientGlueSL() CBClientGlueSL
478 479 480 481
# 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
482 483
607 pascal AllocLSThunkletSysthunk(segptr long long) AllocLSThunkletSysthunk16
608 pascal AllocSLThunkletSysthunk(long segptr long) AllocSLThunkletSysthunk16
484 485 486 487
# 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
488 489
611 pascal -ret16 FreeThunklet(long long) FreeThunklet16
612 pascal -ret16 IsSLThunklet(ptr) IsSLThunklet16
490 491
613 stub HugeMapLS
614 stub HugeUnMapLS
492 493 494 495 496
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
497 498
620 pascal -register CBClientThunkSL() CBClientThunkSL
621 pascal -register CBClientThunkSLEx() CBClientThunkSLEx
499 500
622 pascal -ret16 UnRegisterCBClient(word segptr long) UnRegisterCBClient16
623 pascal -ret16 InitCBClient(long) InitCBClient16
501 502
624 pascal SetFastQueue(long long) SetFastQueue16
625 pascal GetFastQueue() GetFastQueue16
Alexandre Julliard's avatar
Alexandre Julliard committed
503
626 stub SmashEnvironment
504
627 pascal -ret16 IsBadFlatReadWritePtr(segptr long word) IsBadFlatReadWritePtr16
505 506
630 pascal -register C16ThkSL() C16ThkSL
631 pascal -register C16ThkSL01() C16ThkSL01
Alexandre Julliard's avatar
Alexandre Julliard committed
507
651 pascal ThunkConnect16(str str word long ptr str word) ThunkConnect16
Alexandre Julliard's avatar
Alexandre Julliard committed
508 509 510
652 stub IsThreadId
653 stub OkWithKernelToChangeUsers

511 512 513 514 515
# 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
516
669 pascal -ret16 DllEntryPoint(long word word word long word) KERNEL_DllEntryPoint
Alexandre Julliard's avatar
Alexandre Julliard committed
517 518 519

# 700-704 are Win95 only

520
700 pascal SSInit() SSInit16
Alexandre Julliard's avatar
Alexandre Julliard committed
521 522 523
701 stub SSOnBigStack
702 stub SSCall
703 stub CallProc32WFix
524
704 pascal -register SSConfirmSmallStack() SSConfirmSmallStack
Alexandre Julliard's avatar
Alexandre Julliard committed
525 526 527 528 529


# Win95 krnl386.exe also exports ordinals 802-864,
# however, those seem to be only callback stubs that are
# never called directly by other modules ...