From ReactOS Wiki
Revision as of 02:58, 5 March 2012 by BrentNewland (talk | contribs)
Jump to: navigation, search

See Also




  • Added multiboot support to ntoskrnl
  • Kernel can bow be booted with GRUB


  • Section and general memory manager enhancements
  • Changed irq handler from C to assembler
  • Established forwarded exports
  • Implemented profiling
  • Initial work on exception handling
  • DMA support
  • Kernel debugger
  • Trace facility
  • Added Intel MultiProcessor Specification support
  • Began building PnP manager device tree
  • Registry improvements
  • Work on the filesystem cache
  • Named pipe improvements
  • Implemented atoms in ntoskrnl
  • Enabled FASTCALL calling convention
  • Rewrote stack allocation



  • Implemented NtCreateToken and fixed up NtQueryInformationToken() Joseph Galbraith
  • Minimize access to the module object via the object manager. Eric Kohl
  • Use module list for internal module management. Eric Kohl
  • Protect module list with a spinlock. Eric Kohl
  • Registry improvements: Eric Kohl
    • Improved registry initialization
    • Registry-based driver loading for system-start drivers and auto-start drivers
    • Implemented registry links
  • PICE now loaded automatically Eric Kohl
  • Improved thread support David Welch
  • Fixed a long-standing hack to open symbolic link objects Eric Kohl
  • Implemented the ability to create suspended threads Eric Kohl
  • Implemented binary tree, splay tree and hash table routines Casper Hornstroup
  • Moved the hardcoded command line string from ntoskrnl to loadros Eric Kohl
  • Use NT-compatible (VPB-based) mounting mechanism Eric Kohl



  • Implemented NtProtectVirtualMemory; msvcrt apps now work (David Welch)
  • Memory management improvements,
  • Fixes for SMP in the memory manager,
  • Enable/Disable the irq in KeConnectInterrupt/KeDisconnectInterrupt,
  • Enabled caching of directories and fat segments,
  • Write back dirty pages from cache manager at shutdown (Hartmut Birr)
  • File locking (Gunnar Dalsnes)
  • Registry hive locking, packing value names,
  • Deferred hive synchronization (Eric Kohl)
  • Profiler (Casper Hornstrup)




  • Implementation of Ke(Save/Restore)FloatingPointState (Gé van Geldorp)
  • Made existing eventpair code more efficient and added support for associating eventpairs with * threads and signaling them that way (Skywing)
  • RtlRaiseException user mode implementation (Vizzini)
  • KiRaiseUserExceptionDispatcher/KeRaiseUserException to raise user exceptions from kernel mode (Vizzini)
  • Implemented the allocation type NonPagedPoolCacheAligned/NonPagedPoolCacheAlignedMustS (Hartmut Birr)
  • Process fixes (Hartmut Birr)
  • Plug and Play manager improvements (Filip Navara)
  • Implemented NtUnloadDriver(), partial IoGetDeviceProperty(), IoGetDmaAdapter(), IoIsWdmVersionAvailable(), ExFreePoolWithTag (Filip Navara)
  • Check for presence of \reactos\ntoskrnl.exe instead of REACTOS disk label to identify the boot cdrom device (Eric Kohl)


  • Improved implementation of IoMapTransfer, Implemented KeRemoveDeviceEntryQueue (Gunnar Dalsnes)


  • Implemented driver reinitialization (Eric Kohl)
  • Added "addr" "x" and "tlist" commands to kdbg (Art Yerkes)
  • Added the beginnings of an implementation of NtSetInformationToken (Art Yerkes)
  • Implemented shared segments for images (Hartmut Birr)
  • Work on the error log worker (Eric Kohl)
  • IoReuseIrp, IoQueueThreadIrp, IoEnqueueIrp implementations (Gunnar Dalsnes)
  • APC improvements (Gunnar Dalsnes)
  • Exception handler on broken usermode stack pointer fix (Mike Nordell)


  • Print userland addresses where possible in bugchecks (Art Yerkes)
  • InsertAscendingList adaption (Gunnar Dalsnes)
  • KiAcquire/ReleaseSpinLock adaption (Gunnar Dalsnes)
  • Added KiAcquire/ReleaseSpinLock (Gunnar Dalsnes)
  • KiAcquire/ReleaseSpinLock adaption (Gunnar Dalsnes)
  • Attempt to fix the display corruption problems when using bootvid.sys on certain hardware (Filip Navara)
  • Do not make NtSecureConnectPort fail: for now direct the call to NtConnectPort (Emanuele Aliberti)
  • NtOpenKey() should return a better status value if the desired key does not exist (Eric Kohl)
  • Implementation of RtlStringFromGUID, IoOpenDeviceInterfaceRegistryKey and IoGetDeviceInterfaceAlias (Matthew Brace)
  • Fixed some problems which occurs if a read only segment is changed to write and back to read only and if such a segment (or a page from such a segment) is paged out and reloaded again (Hartmut Birr)
  • Check for a privat page and change only the page protection for such a page in MmAccessFaultSectionView (Hartmut Birr)
  • Only lock a new page on exit from AccessFaultSectionView (Hartmut Birr)
  • Fixed querying and enumerating the subkeys of HKEY_LOCAL_MACHINE; this fixes bug #78 (Eric Kohl)
  • Start parsing at the root object when an object path needs to be reparsed (Art Yerkes)
  • Use macros for LPC message limits in current LPC implementation (Emanuele Aliberti)
  • Implement RtlFindLeastSignificantBit(), RtlFindMostSignificantBit() and _itow() (Eric Kohl)
  • LPC: initial work on NT/ROS compatibility (Emanuele Aliberti)
  • Add byte swap functions (Eric Kohl)
  • Set the previous pointer from the next block, if some blocks was merged (in add_to_free_list) (Hartmut Birr)
  • Free or recycle the remaining path string after a call to ObFindObject (Hartmut Birr)
  • Work on thread-awareness in gdbstub (Gé van Geldorp)
  • Always lock the pages in MmProbeAndLockPages (Hartmut Birr)
  • Locked the pages in MmCommitPagedPoolAddress, if it is necessary (Hartmut Birr)
  • Try to avoid crashing when dumping out a corrupted stack (David Welch)


  • Set the previous pointer from the next block, if some blocks was merged (in add_to_free_list) (Hartmut Birr)
  • Free or recycle the remaining path string after a call to ObFindObject (Hartmut Birr)
  • Lock the pages always in MmProbeAndLockPages (Hartmut Birr)
  • Locked the pages in MmCommitPagedPoolAddress, if it is necessary (Hartmut Birr)
  • Marked a cache segment as page out in progress to prevent from recursive calls to MmPageOutPhysicalAddress; fixed bug 220 (Hartmut Birr)
  • Protected the callback stack list with a spinlock (Hartmut Birr)
  • Made it possible to allocate a pageop only if no other pageop for the given address exists (Hartmut Birr)
  • Try to pageout a page only if no other access to the page exist (Hartmut Birr)
  • Gave a free page only to the next waiting request (in MmReleasePageMemoryConsumer), if sufficient free pages are available (Hartmut Birr)
  • Initialized the object tag to prevent the tag 0xcccccccc (Hartmut Birr)
  • Removed dirty loading of symbol files from ExpInitializeExecutive (Hartmut Birr)
  • Fixed the loading of symbol files (Hartmut Birr)
  • Try to avoid crashing when dumping out a corrupted stack (David Welch)
  • Avoid a crashing when trying to process an exception early in the boot process (David Welch)
  • Use an event rather than a semaphore to wake up the thread that writes debug output to disk (David Welch)
  • Added basic tracing, breakpoints and disassembly to the kernel debugger (David Welch)
  • Added disassembler from gdb (David Welch)
  • Record feature information from cpuid (David Welch)
  • Fixed bug with recalling previous input (David Welch)
  • Switch back to text mode when entering the debugger (David Welch)
  • Fixed whole page allocations since the handle table code now relies on allocations being eight byte aligned (David Welch)
  • Fix reading past the end of the pool block (David Welch)
  • Fix key name size calculation bugs (Eric Kohl)
  • Fix NtOpenThreadToken() and NtSetInformationThread() (Eric Kohl)
  • Clean-up NtQueryInformationToken() (Eric Kohl)
  • Fully implement RtlFormatCurrentUserKeyPath() (Eric Kohl)
  • Fixed crashes that were cause by the changes to the service parameter table (Eric Kohl)
  • Work on thread-awareness in gdbstub (Ge van Geldorp)
  • Make IoGetDeviceInterfaces more compatible with the native version (Matthew Brace)
  • Hardcode build number consistent with major/minor version (NVidia driver requires this) (Ge van Geldorp)
  • Tell apps we're NT4 SP6, VB runtime will fail if we report SP0 (Ge van Geldorp)
  • Allow GDB 6 to backtrace over a syscall (Ge van Geldorp)
  • Disable pool validation since it slows down execution too much (Ge van Geldorp)
  • Locale values are specified in hexadecimal numbers (Filip Navara)
  • Corrected EiAllocatePool prototype (Filip Navara)
  • Fixed RtlNtStatusToDosErrorNoTeb (Filip Navara)
  • Removed the incorrect implementations of Device Interface functions (Filip Navara)
  • Don't zero memory allocated by ExAllocatePool (Filip Navara)
  • Fixed RtlFormatCurrentUserKeyPath and it's use (Filip Navara)
  • Fill correctly all members of the returned device object in IoCreateDevice (Filip Navara)
  • Don't bug check in loader when export isn't found, only report it and don't load the module (Filip Navara)
  • If we know a module path while loading, use it for searching for the import modules (Filip Navara)
  • Modified LdrpBuildModuleBaseName to not strip the extension from file name (Filip Navara)
  • Call create process notify routines from NtCreateProcess (Filip Navara)
  • Started PsSetLoadImageNotifyRoutine implementation, it just registers the callback, but doesn't call it (Filip Navara)
  • Fixed querying of thread locale (Filip Navara)
  • Implemented IoGetDriverObjectExtension and IoAllocateDriverObjectExtension (Filip Navara)
  • Don't load PnP drivers if they're disabled (Filip Navara)
  • Save pointer to PnP tree device node in device object's DeviceObjectExtension (Filip Navara)
  • Add function IopGetDeviceNode for getting device node from device object pointer (Filip Navara)
  • Rewritten IoGetDeviceProperty to use values that are in device node instead of sending Irps (Filip Navara)
  • Lower IRQL in error case of IoAllocateDriverObjectExtension (Filip Navara)
  • Support for upper level filter drivers (Filip Navara)
  • Rewritten some driver loading functions to get higher control of the driver loading and initialization process, fixes bug #263 (Filip Navara)
  • Added support for lower level filter drivers (Filip Navara)
  • Minor cleanup and fixed few memory leaks on driver unload (Filip Navara)
  • Fixed a minor bug in IopLoadServiceModule that caused crashes for disabled drivers (Filip Navara)
  • Don't bugcheck if FDO wasn't attached (Filip Navara)
  • Fixed cygwin fork section map problem, this fixes map_dup_inherit (Art Yerkes, David Welch)
  • MmMapLockedPages patch (Anich Gregor)
  • Initialize LPC-related fields in ETHREAD (Emanuele Aliberti)
  • Finish off NtDuplicateToken (Jason Filby)