- Fix SleepEx.
authorAlex Ionescu <aionescu@gmail.com>
Sun, 10 Dec 2006 18:40:30 +0000 (18:40 +0000)
committerAlex Ionescu <aionescu@gmail.com>
Sun, 10 Dec 2006 18:40:30 +0000 (18:40 +0000)
commitc39989df1b2bc9d2a91124d969529d507c8e95b3
tree0294342534d209894d5f819083ec6e993887a787
parent2ae5e0b1ff7880f31da4f0c4a6393bc09967dd1c
- Fix SleepEx.
- Put volatile statements in EX_RUNDOWN_REF, IRP, DEVICE_OBJECT, ERESOURCE, FILE_OBJECT, IO_REMOVE_LOCK, WORK_QUEUE_ITEM where required (thanks to Microsoft's changes in the WDK to mark the fields properly).
- Update FILE_OBJECT definition.
- Add some asserts to some I/O functions.
- Add stub support for File Objects created by XP+ Drivers which have File Object Extensions.
- Add some fixes to IopDeleteFile, including proper reference counting for the DO and VPB, as well as cleanup when the file is closed without a handle.
- Fix a bug in IopSecurityFile.
- Queue and unqueue IRPs in all I/O functions.
- Fully support IRP cancellation now.
- Fix critical bugs in NtDeviceIoControlFile and NtDeviceFsControlFile which were causing double queueing of IRPs and freeing of invalid memory, as well as invalid paramter checking for user-mode buffers.
- Add exhaustive validation checks to IoCreateFile, add more failure cases, and validate the EA buffer. Also support IO_ATTACH_DEVICE_API flag.
- Implement IoCreateStreamFileObjectEx and IoCreateStreamFileObjectLite and fix several bugs in the original implementation of IoCreateStreamFileObject.
- Fix a bug in RtlRaiseException.
- Update Io*ShareAccess routines to support XP+ style semantics related to special File Object flags which disable their use.
- Add validation to all Query/Set routines so that information clasess, lengths, buffers and alignment are properly checked.
- Also add an array for the proper acess rights that each query/set operation requires.
- Check backup/restore privileges during I/O File operations.
- Check traverse access during I/O File Operations.
- Check access privileges to the device during I/O file operations.
- Rename IopReferenceDeviceObject and also verify if an exclusive DO is trying to be invalidly opened.
- Support various extra security checks during I/O File/Device Parse Routine.
- Fix a bug during IopCleanupIrp so that we don't dereference the File OBject if this was a create operation.
- Fix some bogus asserts in IofCompleteRequest, and save the IRP Flags before signalling it's event, since the driver might've freed it behind our back.
- Fix a large bug in ObInsertObject which affected the insert of unnamed objects with forced security options (Such as process/threads).
- Fix the creation of the Process/Thread/Job Obejct Types to that security information is forced.
- Remove "Fix PS!!!" messages since the bug is now fixed and these objects now get proper security descriptors.
- Fix another bug in ObInsertObjet which wasn't properly validating user-mode objects and always assumed kernel mode.
- Silence multiple trace/checkpoint messages that have accumulated throughout time for various debugging purposes.

svn path=/trunk/; revision=25118
39 files changed:
reactos/base/system/lsass/lsass.c
reactos/base/system/services/rpcserver.c
reactos/base/system/winlogon/sas.c
reactos/dll/win32/advapi32/service/scm.c
reactos/dll/win32/kernel32/thread/thread.c
reactos/drivers/base/bootvid/vid.c
reactos/drivers/filesystems/fs_rec/udfs.c
reactos/drivers/filesystems/np/fsctrl.c
reactos/include/ddk/ntifs.h
reactos/include/ddk/winddk.h
reactos/lib/rtl/exception.c
reactos/lib/rtl/i386/exception.c
reactos/ntoskrnl/KrnlFun.c
reactos/ntoskrnl/cm/import.c
reactos/ntoskrnl/dbgk/debug.c
reactos/ntoskrnl/fstub/disksup.c
reactos/ntoskrnl/inbv/inbv.c
reactos/ntoskrnl/include/internal/debug.h
reactos/ntoskrnl/include/internal/io.h
reactos/ntoskrnl/include/internal/io_x.h
reactos/ntoskrnl/include/internal/ob.h
reactos/ntoskrnl/io/iomgr/device.c
reactos/ntoskrnl/io/iomgr/file.c
reactos/ntoskrnl/io/iomgr/iofunc.c
reactos/ntoskrnl/io/iomgr/iomgr.c
reactos/ntoskrnl/io/iomgr/irp.c
reactos/ntoskrnl/kdbg/kdb_symbols.c
reactos/ntoskrnl/mm/freelist.c
reactos/ntoskrnl/ob/obhandle.c
reactos/ntoskrnl/ob/oblife.c
reactos/ntoskrnl/ps/psmgr.c
reactos/ntoskrnl/rtl/libsupp.c
reactos/ntoskrnl/se/semgr.c
reactos/subsystems/win32/csrss/api/wapi.c
reactos/subsystems/win32/win32k/main/dllmain.c
reactos/subsystems/win32/win32k/ntuser/class.c
reactos/subsystems/win32/win32k/ntuser/focus.c
reactos/subsystems/win32/win32k/ntuser/misc.c
reactos/subsystems/win32/win32k/ntuser/window.c