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