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