Replaced original with version from FreeDDK and tested fine. One less to merge later....
[reactos.git] / reactos / ChangeLog
1 2002-10-01 Casper S. Hornstrup <chorns@users.sourceforge.net>
2
3 * drivers/dd/floppy/floppy.c: Changed PAGESIZE to PAGE_SIZE.
4 * drivers/fs/cdfs/fcb.c: Ditto.
5 * drivers/fs/cdfs/fsctl.c: Ditto.
6 * drivers/fs/cdfs/rw.c: Ditto.
7 * drivers/fs/ext2/dir.c: Ditto.
8 * drivers/fs/ext2/inode.c: Ditto.
9 * drivers/fs/ext2/rw.c: Ditto.
10 * drivers/fs/ext2/super.c: Ditto.
11 * drivers/fs/minix/blockdev.c: Ditto.
12 * drivers/fs/minix/cache.c: Ditto.
13 * drivers/fs/minix/inode.c: Ditto.
14 * drivers/fs/minix/rw.c: Ditto.
15 * drivers/fs/ntfs/fcb.c: Ditto.
16 * drivers/fs/ntfs/ntfs.h: Ditto.
17 * drivers/fs/vfat/create.c: Ditto.
18 * drivers/fs/vfat/direntry.c: Ditto.
19 * drivers/fs/vfat/dirwr.c: Ditto.
20 * drivers/fs/vfat/fat.c: Ditto.
21 * drivers/fs/vfat/fcb.c: Ditto.
22 * drivers/fs/vfat/fsctl.c: Ditto.
23 * drivers/fs/vfat/rw.c: Ditto.
24 * drivers/storage/class2/class2.c: Ditto.
25 * drivers/storage/scsiport/scsiport.c: Ditto.
26 * hal/halx86/adapter.c: Ditto.
27 * hal/halx86/mp.c: Ditto.
28 * include/ddk/mmfuncs.h: Ditto.
29 * include/ddk/mmtypes.h: Ditto.
30 * include/ddk/i386/pagesize.h: Ditto.
31 * include/ntdll/pagesize.h: Ditto.
32 * lib/kernel32/process/create.c: Ditto.
33 * lib/kernel32/thread/thread.c: Ditto.
34 * lib/ntdll/ldr/utils.c: Ditto.
35 * lib/ntdll/rtl/env.c: Ditto.
36 * lib/ntdll/rtl/heap.c: Ditto.
37 * lib/ntdll/rtl/ppb.c: Ditto.
38 * lib/ntdll/rtl/process.c: Ditto.
39 * lib/ntdll/rtl/thread.c: Ditto.
40 * ntoskrnl/cc/copy.c: Ditto.
41 * ntoskrnl/cc/view.c: Ditto.
42 * ntoskrnl/ex/sysinfo.c: Ditto.
43 * ntoskrnl/include/internal/i386/mm.h: Ditto.
44 * ntoskrnl/io/mdl.c: Ditto.
45 * ntoskrnl/ke/kthread.c: Ditto.
46 * ntoskrnl/ke/i386/kernel.c: Ditto.
47 * ntoskrnl/ldr/init.c: Ditto.
48 * ntoskrnl/ldr/loader.c: Ditto.
49 * ntoskrnl/mm/anonmem.c: Ditto.
50 * ntoskrnl/mm/cont.c: Ditto.
51 * ntoskrnl/mm/freelist.c: Ditto.
52 * ntoskrnl/mm/iospace.c: Ditto.
53 * ntoskrnl/mm/kmap.c: Ditto.
54 * ntoskrnl/mm/marea.c: Ditto.
55 * ntoskrnl/mm/mdl.c: Ditto.
56 * ntoskrnl/mm/mminit.c: Ditto.
57 * ntoskrnl/mm/ncache.c: Ditto.
58 * ntoskrnl/mm/npool.c: Ditto.
59 * ntoskrnl/mm/pagefile.c: Ditto.
60 * ntoskrnl/mm/pageop.c: Ditto.
61 * ntoskrnl/mm/section.c: Ditto.
62 * ntoskrnl/mm/slab.c: Ditto.
63 * ntoskrnl/mm/i386/page.c: Ditto.
64 * ntoskrnl/ob/handle.c: Ditto.
65 * ntoskrnl/ps/create.c: Ditto.
66 * ntoskrnl/ps/process.c: Ditto.
67 * ntoskrnl/ps/w32call.c: Ditto.
68 * subsys/win32k/include/object.h: Ditto.
69
70 2002-10-01 Casper S. Hornstrup <chorns@users.sourceforge.net>
71
72 * lib/ntdll/string/ctype.c: Undefine __MSVCRT__ to not have mingw
73 runtime import _pctype.
74
75 2002-09-30 Casper S. Hornstrup <chorns@users.sourceforge.net>
76
77 * lib/user32/misc/desktop.c (string.h): Include.
78 * lib/user32/misc/resources.c: Ditto.
79 * lib/user32/misc/winhelp.c: Ditto.
80 * lib/user32/windows/accel.c: Ditto.
81 * lib/user32/windows/bitmap.c: Ditto.
82 * subsys/win32k/freetype/ctype.c: Undefine __MSVCRT__ and _pctype to not
83 have mingw runtime import _pctype.
84
85 2002-09-30 Casper S. Hornstrup <chorns@users.sourceforge.net>
86
87 * ntoskrnl/cc/view.c (alloca): Prototype.
88 * ntoskrnl/rtl/ctype.c: Undefine __MSVCRT__ to not have mingw runtime
89 import _pctype.
90
91 2002-08-26 David Welch <welch@computer2.darkstar.org>
92
93 * lib/gdi32/misc/dllmain.c (GdiDllInitialize): Don't initialize
94 win32k.sys for each process.
95 * subsys/csrss/init.c (CsrServerInitialization): Initialize
96 win32k.sys as well.
97
98 2002-08-26 David Welch <welch@computer2.darkstar.org>
99
100 * ntoskrnl/ps/process.c (NtCreateProcess): Reference the
101 parent process's handle using ExGetPreviousMode.
102
103 2002-08-26 David Welch <welch@computer2.darkstar.org>
104
105 * lib/user32/misc/dllmain.c (Init): Initialize gdi32 as well.
106
107 2002-08-26 David Welch <welch@computer2.darkstar.org>
108
109 * iface/addsys/genw32k.c (main, process): Generate a set of
110 stubs for csrss as well.
111
112 2002-08-26 David Welch <welch@computer2.darkstar.org>
113
114 * lib/kernel32/process/create.c (CreateProcessW): Initialize
115 all the members of the new process's PPB.
116
117 2002-08-17 David Welch <welch@computer2.darkstar.org>
118
119 * ntoskrnl/mm/rmap.c (MmWritePagePhysicalAddress): Ensure the
120 process isn't freed in the middle of our operations.
121
122 2002-08-17 David Welch <welch@computer2.darkstar.org>
123
124 * drivers/fs/vfat/finfo.c (VfatSetAllocationSizeInformation): Fixed.
125
126 2002-08-17 David Welch <welch@computer2.darkstar.org>
127
128 * ntoskrnl/ps/create.c (PiDeleteThread): Don't dereference
129 the thread's process while holding the thread list lock.
130
131 2002-08-17 David Welch <welch@computer2.darkstar.org>
132
133 * ntoskrnl/mm/section.c (MmMapViewOfSection): Check there is
134 enough space for all parts of an image before mapping it; if
135 there isn't enough space free at the preferred base address
136 then try to choose a different one.
137
138 2002-08-17 David Welch <welch@computer2.darkstar.org>
139
140 * ntoskrnl/mm/mpw.c (MmInitMpwThread): Run the MPW thread at
141 idle priority.
142
143 2002-08-17 David Welch <welch@computer2.darkstar.org>
144
145 * ntoskrnl/mm/kmap.c (ExUnmapPage, ExAllocatePageWithPhysPage,
146 MiFreeNonPagedPoolRegion, MiAllocNonPagedPoolRegion): Maintain
147 a hint of the next free page; makes running with whole page
148 allocation more bearable.
149
150 2002-08-17 David Welch <welch@computer2.darkstar.org>
151
152 * ntoskrnl/mm/anonmem.c (MmPageOutVirtualMemory): Show an
153 out of swap space message if we are out of swap space.
154 * ntoskrnl/mm/section.c (MmPageOutSectionView): Show an
155 out of swap space message if we are out of swap space.
156 * ntoskrnl/mm/pagefile.c (MmAllocSwapPage): Don't automatically
157 show an out of swap space message on failure.
158 * ntoskrnl/mm/pagefile.c (MmShowOutOfSpaceMessagePagingFile): New
159 function to notify the user that the pagefile is full.
160
161 2002-08-17 David Welch <welch@computer2.darkstar.org>
162
163 * drivers/lib/zlib/Makefile: Create a dummy zlib.sym
164
165 2002-08-16 David Welch <welch@computer2.darkstar.org>
166
167 * ntoskrnl/mm/npool.c (ExAllocateWholePageBlock): Converted
168 to use PHYSICAL_ADDRESS type for page address.
169
170 2002-08-16 David Welch <welch@computer2.darkstar.org>
171
172 * subsys/win32k/ntuser/class.c (W32kCreateClass): Corrected
173 typo when calculating the offset into the class object to
174 put the class name string.
175
176 2002-08-16 David Welch <welch@computer2.darkstar.org>
177
178 * ntoskrnl/ps/thread.c (PsDispatchThreadNoLock): Don't call
179 the reaper function directly; set an event to wake up a seperate
180 reaper thread.
181 * ntoskrnl/ps/thread.c (PsReaperThreadMain): New function that
182 waits for a notification and then calls PsReapThreads.
183 * ntoskrnl/ps/thread.c (PsInitThreadManagement): Create the
184 reaper thread.
185
186 2002-08-15 David Welch <welch@computer2.darkstar.org>
187
188 * lib/advapi32/misc/dllmain.c (DllMain): Removed debug message.
189
190 2002-08-14 David Welch <welch@computer2.darkstar.org>
191
192 * subsys/smss/init.c (SmPagingFilesQueryRoutine): If possible
193 take the size of the paging file from the registry.
194
195 2002-08-14 David Welch <welch@computer2.darkstar.org>
196
197 * ntoskrnl/mm/section.c (MmCreateDataFileSection): Extend the
198 section if necessary.
199
200 2002-08-14 David Welch <welch@computer2.darkstar.org>
201
202 * ntoskrnl/mm/pagefile.c (NtCreatePagingFile): Set the file
203 size using the FileAllocationInformation class.
204
205 2002-08-14 David Welch <welch@computer2.darkstar.org>
206
207 * ntoskrnl/mm/anonmem.c (MmWritePageVirtualMemory): Implemented
208 function to write anonymous memory pages to the swap file.
209 * ntoskrnl/mm/anonmem.c (MmFreeVirtualMemoryPage): Free any
210 swap page associated with the page.
211 * ntoskrnl/mm/mpw.c (MmWriteDirtyPages): New function to find
212 pages to write to disk.
213 * ntoskrnl/mm/mpw.c (MmMpwThreadMain): Implemented MPW functionality.
214 * ntoskrnl/mm/rmap.c (MmWritePagePhysicalAddress): New function
215 to write a single page back to disk.
216 * ntoskrnl/mm/rmap.c (MmSetCleanAllRmaps, MmSetDirtyAllRmaps,
217 MmIsDirtyPageRmap): New rmap function to support the MPW thread.
218 * ntoskrnl/mm/section.c (MmWritePageSectionView): Implemented
219 function to write back section pages.
220 * ntoskrnl/mm/section.c (MmFreeSectionPage): Free any swap
221 entry associated with the page; mark pages shared with
222 the cache as dirty if necessary.
223
224 2002-08-14 David Welch <welch@computer2.darkstar.org>
225
226 * ntoskrnl/ldr/loader.c (LdrPEProcessModule): Set name of
227 the module into the module text structure.
228
229 2002-08-14 David Welch <welch@computer2.darkstar.org>
230
231 * ntoskrnl/io/rw.c (NtReadFile, NtWriteFile): Use the correct
232 test for whether to wait for the completion of i/o.
233
234 2002-08-14 David Welch <welch@computer2.darkstar.org>
235
236 * ntoskrnl/cm/ntfunc.c (NtFlushKey): Request synchronous i/o
237 from NtOpenFile.
238 * ntoskrnl/cm/regfile (CmiInitPermanentRegistryHive): Request
239 synchronous i/o from NtCreateFile.
240 * ntoskrnl/dbg/kdb_stabs.c (LdrpLoadModuleSymbols): Request
241 synchronous i/o from NtOpenFile.
242 * ntoskrnl/ldr/sysdll.c (LdrpMapSystemDll): Request synchronous i/o
243 from NtOpenFile.
244
245 2002-08-14 David Welch <welch@computer2.darkstar.org>
246
247 * ntoskrnl/cc/view.c (CcRosSuggestFreeCacheSegment): Maintain the
248 correct reference count.
249
250 2002-08-14 David Welch <welch@computer2.darkstar.org>
251
252 * ntoskrnl/cc/view.c (CcRosFlushCacheSegment): New function to
253 write back a modified cache segment.
254 * ntoskrnl/cc/view.c (CcRosFlushDirtyPages): New function to
255 flush some dirty pages from the cache.
256 * ntoskrnl/cc/view.c (CcRosMarkDirtyCacheSegment): New function to
257 mark a cache segment modified while mapped into memory as dirty.
258
259 2002-08-14 David Welch <welch@computer2.darkstar.org>
260
261 * ntoskrnl/cc/pin.c (CcMapData, CcUnpinData, CcSetDirtyPinnedData):
262 Store the dirty status in the BCB; don't write back dirty data
263 immediately.
264
265 2002-08-14 David Welch <welch@computer2.darkstar.org>
266
267 * include/ntos/mm.h: Added SEC_XXXX defines from 'Windows NT/2000
268 Native API Reference'
269
270 2002-08-14 David Welch <welch@computer2.darkstar.org>
271
272 * drivers/fs/vfat/ea.c (VfatSetExtendedAttributes): Empty
273 placeholder for extended attribute functions.
274
275 2002-08-14 David Welch <welch@computer2.darkstar.org>
276
277 * drivers/fs/vfat/finfo.c (VfatSetAllocationSizeInformation):
278 Added function to set allocation size.
279
280 2002-08-14 David Welch <welch@computer2.darkstar.org>
281
282 * drivers/fs/vfat/fcb.c (vfatFCBInitializeCache): Renamed
283 to vfatFCBInitializeCacheFromVolume.
284 * drivers/fs/vfat/fcb.c (vfatMakeFCBFromDirEntry): Don't
285 initialise the cache with a file object representing the
286 volume unless the FCB is for a directory.
287
288 2002-08-14 David Welch <welch@computer2.darkstar.org>
289
290 * drivers/fs/vfat/create.c (VfatPagingFileCreate): Added a
291 new function for handling paging file only code.
292 * drivers/fs/vfat/create.c (VfatSupersedeFile): Added a
293 new function for doing a file supersede.
294 * drivers/fs/vfat/create.c (VfatCreateFile): Reformatted and
295 adjusted control flow. Set allocation size and extended attributes
296 on create.
297 * drivers/fs/vfat/create.c (VfatCreate): Removed goto.
298
299 2002-08-14 David Welch <welch@computer2.darkstar.org>
300
301 * drivers/fs/vfat/cleanup.c (VfatCleanupFile): Renamed
302 updEntry to VfatUpdateEntry.
303 * drivers/fs/vfat/close.c (VfatCloseFile): Renamed
304 updEntry to VfatUpdateEntry.
305 * drivers/fs/vfat/dirwr.c (updEntry): Renamed to
306 VfatUpdateEntry.
307 * drivers/fs/vfat/dirwr.c (addEntry): Renamed to
308 VfatAddEntry.
309
310 2002-08-14 David Welch <welch@computer2.darkstar.org>
311
312 * apps/tests/sectest/sectest.c (main): Fixed formatting.
313
314 2002-08-10 David Welch <welch@computer2.darkstar.org>
315
316 * ntoskrnl/mm/i386/page.c (MmSetPageProtect): Fixed
317 behaviour when called on the system address space.
318
319 2002-08-10 David Welch <welch@computer2.darkstar.org>
320
321 * ntoskrnl/mm/virtual.c (MmQueryAnonMem, MmProtectAnonMem,
322 NtAllocateVirtualMemory, NtFreeVirtualMemory): Renamed
323 segments to regions; moved region code to seperate file.
324 Implemented NtQueryVirtualMemory and NtProtectVirtualMemory
325 for anonymous memory areas.
326
327 2002-08-10 David Welch <welch@computer2.darkstar.org>
328
329 * ntoskrnl/mm/anonmem.c: Moved functions relating to
330 areas created with NtAllocateVirtualMemory to a
331 seperate file.
332
333 2002-08-10 David Welch <welch@computer2.darkstar.org>
334
335 * ntoskrnl/mm/section.c (MmQuerySectionView): Implemented
336 NtQueryVirtualMemory for section views.
337
338 2002-08-10 David Welch <welch@computer2.darkstar.org>
339
340 * ntoskrnl/mm/section.c (MmAccessFaultSectionView,
341 MmNotPresentFaultSectionView, MmProtectSectionView,
342 MmMapViewOfSegment, MmAlterViewAttributes): Implemented
343 NtProtectVirtualMemory for section views.
344
345 2002-08-10 David Welch <welch@computer2.darkstar.org>
346
347 * ntoskrnl/ke/main.c: Removed SEH test code.
348
349 2002-08-10 David Welch <welch@computer2.darkstar.org>
350
351 * lib/ntdll/ldr/utils.c (LdrFixupImports): Remove the readonly
352 protection from the IAT before writing to it.
353
354 2002-08-10 David Welch <welch@computer2.darkstar.org>
355
356 * lib/ntdll/ldr/utils.c (LdrAdjustDllName): Properly null terminate
357 the base name of the DLL.
358
359 2002-08-10 David Welch <welch@computer2.darkstar.org>
360
361 * ntoskrnl/ldr/loader.c (LdrPEProcessModule): Set the text segment
362 of modules to readonly after loading.
363
364 2002-08-09 David Welch <welch@computer2.darkstar.org>
365
366 * ntoskrnl/ps/create.c (NtCreateThread): Call PsSuspendThread
367 if NtCreateThread has CreateSuspended as TRUE.
368 * ntoskrnl/ps/suspend.c (PsSuspendThread, PsResumeThread,
369 PiSuspendThreadKernelRoutine): Fixed suspend functionality.
370
371 2002-08-09 David Welch <welch@computer2.darkstar.org>
372
373 * ntoskrnl/ke/i386/usertrap.c (print_user_address): Copy
374 the LDR variable from the right address.
375
376 2002-08-09 David Welch <welch@computer2.darkstar.org>
377
378 * ntoskrnl/ke/apc.c (KiDeliverNormalApc): Check for
379 kernel APCs pending on exit from the kernel.
380 * ntoskrnl/ke/apc.c (KiDeliverNormalApc, KiDeliverUserApc,
381 KiDeliverApc): Set the APC's inserted flag to FALSE after
382 removing it from the thread's queue.
383
384 2002-08-09 David Welch <welch@computer2.darkstar.org>
385
386 * lib/kernel32/thread/thread.c (ThreadStartup): Don't
387 call DLL entrypoints; this is done by LdrInitializeThunk.
388 * lib/ntdll/ldr/startup.c (LdrInitializeThunk): Call
389 DLLs in initialization order; take the loader lock before
390 calling.
391
392 2002-08-09 David Welch <welch@computer2.darkstar.org>
393
394 * apps/tests/thread/thread.c (main): Test suspend and
395 resume functionality.
396
397 2002-08-08 David Welch <welch@computer2.darkstar.org>
398
399 * ntoskrnl/mm/section (NtQuerySection): Return the
400 right result length.
401
402 2002-08-08 David Welch <welch@computer2.darkstar.org>
403
404 * ntoskrnl/ke/usertrap.c (print_user_address): Check for
405 a NULL LDR structure in the PEB; copy the LDR pointer in
406 safely.
407
408 2002-08-08 David Welch <welch@computer2.darkstar.org>
409
410 * ntoskrnl/ke/apc.c (KiDeliverUserApc): Deliver all present
411 APCs; release the APC spinlock while acccessing user memory.
412
413 2002-08-08 David Welch <welch@computer2.darkstar.org>
414
415 * include/internal/ps.h: Adjusted offsets into the ETHREAD
416 structure.
417 * include/internal/ps.h: Removed redundant members from the
418 KTHREAD structure.
419 * ntoskrnl/ke/kthread.c (KeInitializeThread): Removed
420 redundant members from the KTHREAD structure.
421
422 2002-08-08 David Welch <welch@computer2.darkstar.org>
423
424 * ntoskrnl/dbg/kdb.c (KdbEnterDebuggerException): New
425 function to enter the debugger on an exception.
426 * ntoskrnl/kd/kdebug.c (KdInitSystem): Initialize the
427 local kernel debugger if enabled.
428 * ntoskrnl/ke/catch.c (KiDispatchException): Enter the
429 local kernel debugger on an exception.
430
431 2002-08-08 David Welch <welch@computer2.darkstar.org>
432
433 * include/ntdll/ldr.h: Added definition for a DLL entrypoint.
434 * lib/kernel32/process/create.c (KlCreateFirstThread): Put
435 the argument to the NtProcessStartup function on the stack.
436 * lib/kernel32/process/create.c (KlInitPeb): Read the
437 base address of the new image from the PEB.
438 * lib/kernel32/process/create.c (CreateProcessW): Start the
439 first thread at the entrypoint of the new image.
440 * lib/ntdll/ldr/startup.c (LdrInitializeThunk): If the
441 function is called after the initial startup then just call the
442 entrypoints for the loaded DLLs with DLL_THREAD_ATTACH. Don't
443 call the entrypoint of the image.
444 * lib/ntdll/rtl/process.c (RtlpCreateFirstThread): Put the
445 argument to the NtProcessStartup function on the stack.
446 * lib/ntdll/rtl/process.c (KlInitPeb): Read the base address of
447 the new image from the PEB.
448 * lib/ntdll/rtl/process.c (RtlCreateUserProcess): Start the
449 first thread at the entrypoint of the new image.
450 * ntoskrnl/ke/i386/bthread.S (PsBeginThreadWithContextInternal):
451 Use the system call path to begin a usermode thread.
452 * ntoskrnl/ke/i386/thread.c (Ke386InitThreadWithContext): Convert
453 the supplied context into a trap frame.
454 * ntoskrnl/ldr/init.c (LdrLoadInitialProcess): Put the PEB argument
455 to the NtProcessStartup function on the new stack; start the
456 first thread at the entrypoint of the image.
457 * ntoskrnl/ps/create.c (NtCreateThread): Create an APC to call
458 LdrInitializeThunk in the context of a new thread before its
459 entrypoint.
460
461 2002-08-08 David Welch <welch@computer2.darkstar.org>
462
463 * drivers/fs/vfat/cleanup.c (VfatCleanupFile): Uninitialise
464 the cache on file cleanup.
465 * drivers/fs/vfat/fcb.c (vfatReleaseFcb): Don't uninitialise
466 the cache on file close.
467 * ntoskrnl/cc/copy.c: Renamed zero page global variable.
468 * ntoskrnl/cc/view.c: Added cache delete function.
469
470 2002-07-13 Casper S. Hornstrup <chorns@users.sourceforge.net>
471
472 * rules.mak (RSYM): Define.
473 * include/ddk/zwtypes.h (DebugDbgLoadSymbols): Add to enum
474 _DEBUG_CONTROL_CODE.
475 * include/ntdll/ldr.h (LDR_SYMBOL_INFO, LdrpLoadUserModuleSymbols): Add.
476 (LdrLoadModuleSymbols): Remove.
477 * include/ntos/kdbgsyms.h (ST_FILENAME, ST_FUNCTION,
478 ST_LINENUMBER): Add.
479 (SYMBOL). Make Name an ANSI_STRING.
480 (IMAGE_SYMBOL_INFO, AreSymbolsParsed): Add.
481 * lib/ntdll/ldr/startup.c (LdrInitializeThunk): Call
482 LdrpLoadUserModuleSymbols() not LdrLoadModuleSymbols().
483 * lib/ntdll/ldr/utils.c (LdrLoadModuleSymbols): Rename to
484 LdrpLoadUserModuleSymbols.
485 (LdrpLoadUserModuleSymbols): Use DebugDbgLoadSymbols debug control code.
486 (LdrLoadDll): assert if out of memory.
487 (LdrLoadDll): Call
488 LdrpLoadUserModuleSymbols(), not LdrLoadModuleSymbols().
489 * lib/ntdll/string/ctype.c (_pctype): #undef.
490 * ntoskrnl/dbg/dbgctrl.c (NtSystemDebugControl): Call
491 LdrLoadUserModuleSymbols on DebugDbgLoadSymbols.
492 * ntoskrnl/include/internal/ldr.h (LdrGetAddressInformation): Add.
493 * ntoskrnl/include/internal/module.h (MODULE_TEXT_SECTION): Make SymbolInfo
494 an IMAGE_SYMBOL_INFO.
495 * ntoskrnl/ke/i386/exp.c (LdrGetAddressInformation): Add prototype.
496 (print_address): Change #ifdef KDBG to #ifdef DBG.
497 (KiDoubleFaultHandler, KiDumpTrapFrame, KeDumpStackFrames): Dump
498 one stack frame per line.
499 * ntoskrnl/ke/i386/multiboot.S: Create pagetables for more kernel
500 address space so larger modules can be passed from the boot loader.
501 * ntoskrnl/ke/i386/usertrap.c (LdrGetAddressInformation): Add prototype.
502 (print_user_address): Print symbols using LdrGetAddressInformation().
503 * ntoskrnl/ldr/loader.c (SYMBOLFILE_HEADER, IMAGE_SYMBOL_INFO_CACHE,
504 STAB_ENTRY, N_FUN, N_SLINE, N_SO, SymbolListHead): Add.
505 (TAG_SYM_BUF): Remove.
506 (LdrInitDebug): Remove unneeded code.
507 (LdrInit1): Prepare for loading symbols.
508 (LdrpReadLine, HexL, LdrpParseLine, LdrpLoadModuleSymbolsFromBuffer,
509 LdrpLoadUserModuleSymbolsFromBuffer): Remove.
510 (LdrpParseImageSymbols, LdrpGetFileName, LdrpGetFunctionName,
511 LdrpGetLineNumber, LdrGetAddressInformation, LdrpLookupUserSymbolInfo): Add.
512 (LdrpLoadModuleSymbols, LdrInitializeBootStartDriver): Change to use new
513 symbol structures.
514 (LdrLoadUserModuleSymbols): Cache symbol buffers.
515 (LdrUnloadModuleSymbols): Implement.
516 (LdrLoadModule, LdrUnloadModule): Change #ifdef KDBG to #ifdef DBG.
517 (LdrPEProcessModule): Split a line into two lines.
518 (LdrPEProcessModule): Setup for loading symbols.
519 * ntoskrnl/ldr/sysdll.c (LdrpMapSystemDll): Open with FILE_SHARE_READ.
520 * ntoskrnl/ps/process.c (PiFreeSymbols): Call LdrUnloadModuleSymbols() to
521 free symbols.
522 (PiDeleteProcess): Change #ifdef KDBG to #ifdef DBG.
523 * ntoskrnl/rtl/ctype.c (_pctype): #undef.
524 * ntoskrnl/rtl/string.c (strncpy): Terminate destination string.
525 * tools/Makefile (rsym): Add target.
526 * tools/helper.mk: Include config and use -g if DBG = 1.
527
528 2002-07-13 Casper S. Hornstrup <chorns@users.sourceforge.net>
529
530 * Makefile (install_before): Install system.hiv to correct location.
531
532 2002-07-04 David Welch <welch@computer2.darkstar.org>
533
534 * subsys/win32k/include/callback.h: Fixed callback argument
535 definitions.
536 * subsys/win32k/ntuser/winpos.c: Implemented some more of the windows
537 sizing/moving code.
538 * subsys/win32k/ntuser/painting.c: Implemented some more of the
539 window painting code.
540 * subsys/win32k/objects/coord.c: Implemented LPtoDP and DPtoLP.
541 * subsys/win32k/objects/region.c: Added stubs for some more
542 region functions.
543
544 2002-07-04 David Welch <welch@computer2.darkstar.org>
545
546 * ntoskrnl/ps/process.c (NtCreateProcess): Duplicate the
547 process desktop handle as well.
548
549 2002-07-04 David Welch <welch@computer2.darkstar.org>
550
551 * ntoskrnl/se/token.c: Don't call the ZwXXX variant of
552 system calls when in system context.
553
554 2002-07-04 David Welch <welch@computer2.darkstar.org>
555
556 * ntoskrnl/Makefile: Added file with MDA output code.
557 * ntoskrnl/kd/kdebug.c: Recognize MDA as a destination for
558 debug output.
559
560 2002-07-04 David Welch <welch@computer2.darkstar.org>
561
562 * lib/user32/windows/defwnd.c: Implemented some more of the
563 default window handler.
564
565 2002-07-04 David Welch <welch@computer2.darkstar.org>
566
567 * lib/user32/misc/stubs.c: Removed some stubs to seperate files.
568
569 2002-07-04 David Welch <welch@computer2.darkstar.org>
570
571 * lib/user32/user32.def: Export ScreenToClient otherwise we
572 get problems when code in user32 tries to call it.
573
574 2002-07-04 David Welch <welch@computer2.darkstar.org>
575
576 * include/win32k/region.h: Added prototypes for some missing
577 region functions.
578
579 2002-07-04 David Welch <welch@computer2.darkstar.org>
580
581 * include/win32k/ntuser.h: Added prototypes for some missing
582 NtUserXXX functions.
583
584 2002-07-04 David Welch <welch@computer2.darkstar.org>
585
586 * include/user32/wininternal.h: Added some constants for
587 private GetDCEx styles that WINE needs.
588
589 2002-07-04 David Welch <welch@computer2.darkstar.org>
590
591 * include/user32/callback.h: Fixed callbacks for messages with
592 parameters.
593
594 2002-07-04 David Welch <welch@computer2.darkstar.org>
595
596 * include/napi/win32.h (W32THREAD): Added pointer to the
597 thread's desktop.
598 * include/napi/win32.h (W32PROCESS): Removed handle table,
599 added a pointer to the process's window station.
600 * subsys/win32k/ntuser/guicheck.c (W32kGuiCheck): Reference
601 a process's window station on the first win32k system call. Reference
602 a thread's desktop on the first win32k system call.
603
604 2002-07-04 David Welch <welch@computer2.darkstar.org>
605
606 * include/messages.h: Added some missing WM_XXX constants.
607
608 2002-07-04 David Welch <welch@computer2.darkstar.org>
609
610 * drivers/dd/ide/makefile: Compiling with debugging messages
611 needs libgcc to be linked in.
612
613 2002-07-04 David Welch <welch@computer2.darkstar.org>
614
615 * iface/addsys/genw32k.c: Generate a variable with the
616 number of system calls.
617 * iface/native/genntdll.c: Generate a proper stack frame for
618 the user system call stubs.
619 * ntoskrnl/ke/i386/syscall.S: Generate a proper stack frame for
620 the handler for system calls.
621
622 2002-07-04 David Welch <welch@computer2.darkstar.org>
623
624 * Makefile: Build the GUI startup application.
625 * subsys/system/gstart/gstart.c: Application to start up
626 the GUI.
627
628 2002-06-18 David Welch <welch@whitehall1-5.seh.ox.ac.uk>
629
630 * tools/helper.mk: Make an import library a proper target
631 depending on the .def file.
632
633 2002-06-18 David Welch <welch@whitehall1-5.seh.ox.ac.uk>
634
635 * subsys/win32k/ntuser/window.c (NtUserGetWindowLong): Began
636 implementation.
637
638 2002-06-18 David Welch <welch@whitehall1-5.seh.ox.ac.uk>
639
640 * subsys/win32k/misc/object.c (ObmCreateHandle): Return the
641 correct handle value.
642
643 2002-06-18 David Welch <welch@whitehall1-5.seh.ox.ac.uk>
644
645 * subsys/win32k/makefile: Make win32k depend on the file containing
646 the service table.
647
648 2002-06-18 David Welch <welch@whitehall1-5.seh.ox.ac.uk>
649
650 * ntoskrnl/ke/i386/stkswitch.S (KeSwitchStackAndRet,
651 KePushAndStackSwitchAndSysRet): Push one value only.
652 * ntoskrnl/ps/w32call.c (NtCallbackReturn, NtW32Call): Moved
653 these functions to a new file. Restore the old trap frame after
654 returning from a callback.
655
656 2002-06-18 David Welch <welch@whitehall1-5.seh.ox.ac.uk>
657
658 * lib/user32/windows/message.c (CallWindowProcA, CallWindowProcW):
659 Convert message to Unicode or ASCII if necessary.
660
661 2002-06-18 David Welch <welch@whitehall1-5.seh.ox.ac.uk>
662
663 * include/user32/callback.h: Added WM_CREATE and WM_NCCALCSIZE
664 callbacks.
665 * lib/user32/windows/window.c (User32SendCREATEMessageForKernel,
666 User32SendNCCREATEMessageForKernel): Implemented.
667 * subsys/win32k/ntuser/callback.c (W32kSendCREATEMessage):
668 Implemented.
669
670 2002-06-18 David Welch <welch@whitehall1-5.seh.ox.ac.uk>
671
672 * include/structs.h: Added Unicode and ASCII versions of
673 CREATESTRUCT.
674
675 2002-06-16 David Welch <welch@whitehall1-5.seh.ox.ac.uk>
676
677 * tools/helper.mk: Make the install target depend on all the
678 files to be installed.
679
680 2002-06-16 David Welch <welch@whitehall1-5.seh.ox.ac.uk>
681
682 * ntoskrnl/ps/thread.c (NtCallbackReturn): Set TSS.Esp0 to the
683 top of the old stack.
684 * ntoskrnl/ps/thread.c (NtW32Call): Set TSS.Esp0 to the top of
685 the new stack. Free the callback stack correctly. Don't copy
686 portion of the trap frame that doesn't exist in non-v86-mode
687 interrupts.
688 * ntoskrnl/ps/thread.c (PsFreeCallbackStack): New function to
689 free a stack allocated with PsAllocateCallbackStack.
690
691 2002-06-16 David Welch <welch@whitehall1-5.seh.ox.ac.uk>
692
693 * drivers/dd/null/makefile: Commented out local LDFLAGS as
694 these cause bad relocations in the stripped image.
695
696 2002-06-16 David Welch <welch@whitehall1-5.seh.ox.ac.uk>
697
698 * config: Corrected spelling error.
699
700 2002-06-11 David Welch <welch@whitehall1-5.seh.ox.ac.uk>
701
702 * subsys/system/winlogon/winlogon.c (WinMain): Check for
703 failure when creating a window system.
704
705 2002-06-11 David Welch <welch@whitehall1-5.seh.ox.ac.uk>
706
707 * ntoskrnl/ob/handle.c (ObDuplicateObject): Added this internal
708 function for duplicating objects.
709 * ntoskrnl/ps/process.c (NtCreateProcess): Duplicate the parent
710 process's window station to the child process.
711 * ntoskrnl/ps/process.c (PsInitProcessManagement): Initialize the
712 first process's window station.
713
714 2002-06-11 David Welch <welch@whitehall1-5.seh.ox.ac.uk>
715
716 * ntoskrnl/mm/marea.c (MmCreateMemoryArea): Initialise
717 page operation structure members.
718 * ntoskrnl/mm/pageop.c (MmReleasePageOp, MmGetPageOp): Increment
719 or decrement the page operation count in the memory area.
720 * ntoskrnl/mm/virtual.c (MmNotPresentFaultVirtualMemory,
721 MmPageOutVirtualMemory): Check for a deleted memory area before
722 handling the fault.
723 * ntoskrnl/mm/virtual.c (MmFreeVirtualMemory): Wait for all
724 page operations to finish before freeing the memory area.
725
726 2002-06-11 David Welch <welch@whitehall1-5.seh.ox.ac.uk>
727
728 * ntoskrnl/ke/i386/syscall.S (interrupt_handler2e): Corrected
729 test for previous mode, upper 16-bit of CS on the stack after an
730 interrupt are arbitary.
731
732 2002-06-11 David Welch <welch@whitehall1-5.seh.ox.ac.uk>
733
734 * lib/user32/misc/winsta.c: Cleaned up indentation.
735
736 2002-06-11 David Welch <welch@whitehall1-5.seh.ox.ac.uk>
737
738 * apps/tests/winhello/winhello.c (WinMain, MainWndProc):
739 Cleaned up formatting, some more error checks.
740
741 2002-06-04 David Welch <welch@whitehall1-5.seh.ox.ac.uk>
742
743 * ntoskrnl/mm/virtual.c (MmSecureVirtualMemory,
744 MmUnsecureVirtualMemory, NtQueryVirtualMemory): Corrected indentation.
745
746 2002-06-04 David Welch <welch@whitehall1-5.seh.ox.ac.uk>
747
748 * ntoskrnl/ke/i386/exp.c (KiDoubleFaultHandler): Print CR3
749 correctly.
750
751 2002-06-04 David Welch <welch@whitehall1-5.seh.ox.ac.uk>
752
753 * ntoskrnl/include/internal/ps.h: Added KTHREAD_STACK_LIMIT definition.
754 * ntoskrnl/ke/i386/tskswitch.S (Ki386ContextSwitch): Force all the
755 pages of the kernel stack to be accessible from this process.
756
757 2002-06-04 David Welch <welch@cwcom.net>
758
759 * ntoskrnl/cc/view.c (ReadCacheSegmentChain): Changes to use
760 PHYSICAL_ADDRESS type for physical addresses.
761 * ntoskrnl/cc/copy.c (CcRosCreateCacheSegment): Changes to use
762 PHYSICAL_ADDRESS type for physical addresses.
763 * ntoskrnl/cc/copy.c (CcFreeCachePage): Changes to use
764 PHYSICAL_ADDRESS type for physical addresses.
765 * ntoskrnl/include/internal/mm.h: Changed prototypes to use
766 PHYSICAL_ADDRESS type for physical addresses.
767 * ntoskrnl/include/internal/ps.h (KPROCESS): Changed type of
768 page directory base to PHYSICAL_ADDRESS.
769 * ntoskrnl/include/internal/i386/mm.h: Changed prototypes to use
770 PHYSICAL_ADDRESS type for physical addresses.
771 * ntoskrnl/ke/kthread.c (KeFreeStackPage): Changes to use
772 PHYSICAL_ADDRESS type for physical addresses.
773 * ntoskrnl/ke/kthread.c (KeInitializeThread): Changes to use
774 PHYSICAL_ADDRESS type for physical addresses.
775 * ntoskrnl/ke/process.c (KeAttachProcess, KeDetachProcess): Changes
776 to use PHYSICAL_ADDRESS type for physical addresses.
777 * ntoskrnl/ke/kernel.c (PcrPages, KeApplicationProcessorInit): Changes
778 to use PHYSICAL_ADDRESS type for physical addresses.
779 * ntoskrnl/mm/balance.c (MM_ALLOCATION_REQUEST): Changes to use
780 PHYSICAL_ADDRESS type for physical addresses.
781 * ntoskrnl/mm/balance.c (MmReleasePageMemoryConsumer): Changes to use
782 PHYSICAL_ADDRESS type for physical addresses.
783 * ntoskrnl/mm/balance.c (MmRequestPageMemoryConsumer): Changes to use
784 PHYSICAL_ADDRESS type for physical addresses.
785 * ntoskrnl/mm/cont.c (MmFreeContinuousPage): Changes to use
786 PHYSICAL_ADDRESS type for physical addresses.
787 * ntoskrnl/mm/cont.c (MmAllocateContinuousAlignedMemory): Changes to
788 use PHYSICAL_ADDRESS type for physical addresses.
789 * ntoskrnl/mm/freelist.c (MmTransferOwnershipPage,
790 MmGetLRUFirstUserPage, MmGetLRUNextUserPage, MmGetContinuousPages,
791 MmInitializePageList, MmSetFlagsPage, MmSetRmapListHeadPage,
792 MmGetRmapListHeadPage, MmMarkPageMapped, MmMarkPageUnmapped,
793 MmGetFlagsPage, MmSetSavedSwapEntryPage, MmGetSavedSwapEntryPage,
794 MmReferencePage, MmGetReferenceCountPage, MmIsUsablePage,
795 MmDereferencePage, MmGetLockCountPage, MmLockPage, MmUnlockPage,
796 MmAllocPage): Changes to use PHYSICAL_ADDRESS type for physical
797 addresses.
798 * ntoskrnl/mm/iospace.c (MmMapIoSpace): Changes to use
799 PHYSICAL_ADDRESS type for physical addresses.
800 * ntoskrnl/mm/kmap.c (ExAllocatePage, MiZeroPage, MiCopyFromUserPage,
801 ExAllocatePageWithPhysPage): Changes to use PHYSICAL_ADDRESS type for
802 physical addresses.
803 * ntoskrnl/mm/marea.c (MmFreeMemoryArea): Changes to use
804 PHYSICAL_ADDRESS type for physical addresses.
805 * ntoskrnl/mm/mdl.c (MmUnlockPages, MmMapLockedPages,
806 MmProbeAndLockPages): Changes to use PHYSICAL_ADDRESS type for
807 physical addresses.
808 * ntoskrnl/mm/mm.c (MmSharedDataPagePhysicalAddress,
809 MmCommitPagedPoolAddress, MmNotPresentFault): Changes to use
810 PHYSICAL_ADDRESS type for physical addresses.
811 * ntoskrnl/mm/mminit.c (MmInitVirtualMemory): Changes to use
812 PHYSICAL_ADDRESS type for physical addresses.
813 * ntoskrnl/mm/ncache.c (MmAllocateNonCachedMemory,
814 MmFreeNonCachedPage): Changes to use PHYSICAL_ADDRESS type for
815 physical addresses.
816 * ntoskrnl/mm/npool.c (grow_kernel_pool): Changes to use
817 PHYSICAL_ADDRESS type for physical addresses.
818 * ntoskrnl/mm/rmap.c (MmPageOutPhysicalAddress, MmInsertRmap,
819 MmDeleteAllRmaps, MmDeleteRmap): Changes to use
820 PHYSICAL_ADDRESS type for physical addresses.
821 * ntoskrnl/mm/section.c (MiReadPage, MmNotPresentFaultSectionView,
822 MmAccessFaultSectionView, MmPageOutDeleteMapping,
823 MmPageOutSectionView, MmFreeSectionPage): Changes to use
824 PHYSICAL_ADDRESS type for physical addresses.
825 * ntoskrnl/mm/slab.c (ExGrowSlabCache): Changes to use
826 PHYSICAL_ADDRESS type for physical address.
827 * ntoskrnl/mm/virtual.c (MmPageOutVirtualMemory,
828 MmNotPresentFaultVirtualMemory, MmFreeVirtualMemoryPage): Changes to
829 use PHYSICAL_ADDRESS type for physical address.
830 * ntoskrnl/mm/wset.c (MmTrimUserMemory): Changes to use
831 PHYSICAL_ADDRESS type for physical address.
832 * ntoskrnl/mm/page.c (Mmi386ReleaseMmInfo, MmCopyMmInfo,
833 MmGetPhysicalAddressForProcess, MmCreateVirtualMapping,
834 MmCreateVirtualMappingUnsafe, MmCreateVirtualMappingForProcess,
835 MmDeleteVirtualMapping): Changes to use PHYSICAL_ADDRESS type for
836 physical address.
837 * ntoskrnl/ps/process (PsInitProcessManagment): Changes to use
838 PHYSICAL_ADDRESS type for physical address.
839 * ntoskrnl/ps/thread.c (PsAllocateCallbackStack): Changes to use
840 PHYSICAL_ADDRESS type for physical address.
841
842 2002-06-04 David Welch <welch@cwcom.net>
843
844 * Lots of change since the ChangeLog was last updated.
845
846 2001-03-18 David Welch <welch@cwcom.net>
847
848 * ntoskrnl/ke/apc.c (KiDeliverApc): Bug fix.
849 * ntoskrnl/ke/apc.c (KeInsertQueueApc): More comments.
850 * ntoskrnl/ke/catch.c (KiDispatchException): Bug fix.
851 * ntoskrnl/ke/timer.c (KeDelayExecutionThread): Don't use removed
852 function KeAddTimeoutThread.
853 * ntoskrnl/ke/timer.c (KeAddTimeoutThread): Removed.
854 * ntoskrnl/ke/wait.c (KeWaitForSingleObject, KeWaitForMultipleObjects):
855 Don't use KeAddTimeoutThread.
856 * ntoskrnl/mm/freelist.c (MmAllocateContiguousAlignedMemory): Bug fix
857 * ntoskrnl/mm/freelist.c (MmAllocatePage): Allocate from the top
858 memory.
859
860 2001-03-17 David Welch <welch@cwcom.net>
861
862 * ntoskrnl/ke/catch.c (KiDispatchException): Implementation of
863 exception handling, user-mode only.
864
865 2001-03-16 David Welch <welch@cwcom.net>
866
867 * include/ddk/zw.h: Corrected declarations of NtCreateProfile,
868 NtQueryIntervalProfile, NtSetIntervalProfile.
869 * include/ddk/zwtypes.h: Added definitions of KPROFILE_SOURCE.
870 * ntoskrnl/include/internal/ke.h: Added the interrupted EIP as a
871 parameter to KiUpdateSystemTime for profiling purposes.
872 * ntoskrnl/include/internal/nt: Added declaration for profiling
873 support initialization.
874 * ntoskrnl/ke/timer.c (KiUpdateSystemTime, KeExpireTimers): Call
875 the profiling code on a timer interrupt with the interrupt EIP.
876 * ntoskrnl/ke/i386/irq.c (KiDispatchInterrupt): Pass the interrupted
877 EIP to KiUpdateSystemTime.
878 * ntoskrnl/mm/virtual.c (NtReadVirtualMemory, NtWriteVirtualMemory):
879 Release the MDLs used properly.
880 * ntoskrnl/nt/nt.c: Call the profiling support initialization.
881 * ntoskrnl/nt/ntevent.c (NtCreateEvent): Don't try copying the
882 ObjectAttributes parameter if it is NULL.
883 * ntoskrnl/nt/profile.c: Implemented profiling.
884
885 2001-03-16 David Welch <welch@cwcom.net>
886
887 * ntoskrnl/include/internal/safe.h: Corrected typo.
888 * ntoskrnl/nt/ntevent.c (NtCreateEvent, NtOpenEvent, NtQueryEvent):
889 Corrected typos.
890 * ntoskrnl/rtl/mem.c: Missing header file.
891
892 2001-03-16 David Welch <welch@cwcom.net>
893
894 * ntoskrnl/include/internal/safe.h: Add definitions for handling
895 potentially unsafe pointers.
896
897 2001-03-16 David Welch <welch@cwcom.net>
898
899 * ntoskrnl/include/internal/mm.h: Removed MmSafeCopyToUser and
900 MmSafeCopyFromUser as source files need these but don't want internal
901 mm definitions.
902 * ntoskrnl/nt/ntevent.c (NtCreateEvent, NtOpenEvent, NtPulseEvent,
903 NtQueryEvent, NtResetEvent, NtSetEvent): Copy data to and from
904 user mode safely.
905 * ntoskrnl/rtl/mem.c (MmCopyToCaller, MmCopyFromCaller): Helper
906 functions for copying data to and from potentially unsafe pointers.
907
908 2000-12-23 David Welch <welch@cwcom.net>
909
910 * All task switching is done in software.
911 * Beginnings of v86 mode support.
912
913 2000-12-22 David Welch <welch@cwcom.net>
914
915 * ntoskrnl/ps/kill.c (PiTerminateProcessThreads): Drop
916 PiThreadListLock before calling PsTerminateOtherThread
917
918 2000-12-16 David Welch <welch@cwcom.net>
919
920 * ntoskrnl/ex/fmutex.c (ExReleaseFastMutexUnsafe): Only set the
921 fast mutex's owner back to NULL if it is being released
922
923 2000-12-10 David Welch <welch@cwcom.net>
924
925 * ntoskrnl/ke/i386/vm86_sup.S (Ki386RetToV86Mode): Added function
926 to do the raw switch to v86 mode.
927 * ntoskrnl/include/internal/vm86.h: Definitions for the v86 mode
928 support.
929
930 2000-12-10 David Welch <welch@cwcom.net>
931
932 * ntoskrnl/ke/i386/trap.s (PsBeginThreadWithContextInternal): Moved
933 to ntoskrnl/ke/i386/bswitch.S.
934 * ntoskrnl/ke/i386/trap.s (interrupt_handler2e): Moved to
935 ntoskrnl/ke/i386/syscall.S.
936 * ntoskrnl/ke/i386/trap.s (old_interrupt_handler2e): Removed.
937
938 2000-12-04 David Welch <welch@cwcom.net>
939
940 * ntoskrnl/ke/i386/irq.c (KiInterruptDispatch): Record the last PC
941 value for a rescheduled thread.
942 * ntoskrnl/ke/i386/irqhand.s: Construct a primitive trap frame
943 in interrupt handlers.
944
945 2000-08-30 David Welch <welch@cwcom.net>
946
947 * Added calibration of KeStallExecutionProcessor timing
948 (code from linux 2.2.16).
949
950 * Corrected compilation bugs in user32 library.
951
952 * Corrected compilation bugs related to anonymous structs
953 in ndis code.
954
955 * Pass command line to kernel from loadros.
956
957 * Corrected PIC mask calculation.
958
959 2000-05-27 David Welch <welch@cwcom.net>
960
961 * Fixed issue with closing non-existent or already closed
962 handle.
963
964 2000-01-26 David Welch <welch@cwcom.net>
965
966 * ZwCreateProcess now maps ntdll rather than the user-mode
967 code.
968
969 1999-09-06 David Welch <welch@cwcom.net>
970
971 * Implemented ZwOpenProcess.
972
973 * Partially implemented killing other threads (possible memory
974 leaks).
975
976 * Made a start on a proper implemention of APCs (based on
977 article in NT insider).
978
979 1998-12-08 David Welch <welch@cwcom.net>
980
981 * Corrected bug in shell (Read two keypresses and assumed they
982 where the key going up and down respectively).
983
984 * Corrected race in dpc handling.
985
986 * Took out cleanup sections in ZwReadFile (now handled by the
987 APC).
988
989 * Disabled broken code in kernel32.
990
991
992
993
994
995
996
997
998
999