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