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