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