Difference between revisions of "Ntoskrnl.exe"

From ReactOS Wiki
Jump to: navigation, search
m
m
Line 157: Line 157:
 
* Locked the pages in MmCommitPagedPoolAddress, if it is necessary ([[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]])
 
* Try to avoid crashing when dumping out a corrupted stack ([[David Welch]])
 +
[[ChangeLog-0.2.2]]
 +
*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]])

Revision as of 02:58, 5 March 2012

See Also

Techwiki:Ntoskrnl

http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/?view=log

ChangeLog-0.0.17

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

ChangeLog-0.0.18

  • 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


ChangeLog-0.0.19

ChangeLog-0.0.20

  • 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

ChangeLog-0.0.21

ChangeLog-0.1.0

  • 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)

ChangeLog-0.1.1

ChangeLog-0.1.3

ChangeLog-0.1.4

  • 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)

ChangeLog-0.1.5

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

ChangeLog-0.2.0

  • 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)

ChangeLog-0.2.1

  • 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)

ChangeLog-0.2.2

  • 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)