Ntoskrnl.exe

From ReactOS Wiki
Revision as of 07:38, 6 March 2012 by BrentNewland (talk | contribs) (ChangeLog-0.2.3)
Jump to: navigation, search

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)

ChangeLog-0.2.3

  • Added two new Cache Manager files added for the stubs (Alex Ionescu)
  • Fixed memory corruption in IopInitializeBuiltinDriver (Filip Navara)
  • Various bugfixes to IoQueryDeviceDescription and friends. The floppy driver now loads and finds the drive properly (Vizzini)
  • Use raw size for image sections if virtual size isn't specified (Nathan Lineback)
  • The root bus driver should return an empty resource list on IRP_MN_QUERY_RESOURCES (Eric Kohl)
  • Fixed prototypes of NtAddAtom, NtFindAtom, NtProtectVirtualMemory and *KeQueryInterruptTime (Filip Navara)
  • Fixed list traversing in MmAlterRegion to correctly handle Length that is greater than real memory area size (Filip Navara)
  • Added stubs for the Cache Manager by Alex Ionescu (Steven Edwards)
  • Callbacks implementation (Alex Ionescu)
  • Clean up return val checking of some mdl calls (Vizzini)
  • Store page numbers instead of physical address's within mdls (Hartmut Birr)
  • Allocate memory for mdl's for paging io from stack instead of the non paged pool (Hartmut Birr)
  • Exchanged source and target in WRITE_REGISTER_BUFFER_xxx (Hartmut Birr)
  • Retrieve Hardware IDs and Compatible IDs from the bus driver and attach them to the device node (Eric Kohl)
  • Added a check for a waitable objects in NtWaitForSingleObject and *NtWaitForMultipleObjects (Hartmut Birr)
  • Fixed the start offset of a partition within an extended partition (in xHalIoWritePartitionTable) (Hartmut Birr)
  • Fixed some NULL-terminating issues that caused the 'videoprt.sys???????????????' module name problem (Filip Navara)
  • Fixed a wrong address in MmAlterViewAttributes which possible does cause a crash if the region is longer than one page (Hartmut Birr)
  • Implementation of IoQueryDeviceDescription. Patch by Alex Ionescu (Filip Navara)
  • Write the system boot device and start options to registry, also create the MiniNT registry key if needed (Filip Navara)
  • Fixed the searching for boot load drivers. This solves the pci driver loading problem (Hartmut Birr)
  • Set CurrentThread's u1.ExitTime to exit time in PsTerminateCurrentThread. Patch by Alex Ionescu (Filip Navara)
  • Return success for SystemFileCacheInformation requests to NtQuerySystemInformation, so we can see some information in the Task Manager (Filip Navara)
  • ReactOS-specific debugging functions KeRosDumpStackFrames and KeRosPrintAddress (Royce Mitchel III)
  • The last parameter of NtReadVirtualMemory should be optional (Filip Navara)
  • Removed an obsolete call to ExAllocatePool in CHECKPOINT (Hartmut Birr)
  • Do not immediately write the zeroed region to the disk for a cached file (Hartmut Birr)
  • Fixed a problem, which does occur if the cluster size is lower than the segment size (Hartmut Birr)
  • Implement kernel-mode range lists (Eric Kohl)
  • Install target must not rebuild executables (Eric Kohl)
  • Fixed the implementation of MmMapIoSpace (Hartmut Birr)
  • Fixed the implementation of IoBuildPartialMdl (Hartmut Birr)
  • Set Mdl's Process in MmMapLockedPages to current process and back to NULL in MmUnmapLockedPages (Filip Navara)
  • Implement SeQueryAuthenticationIdToken() (Eric Kohl)
  • Add audit function stubs (Eric Kohl)
  • Do not change the mapping count of a page if the physical address falls in the range of valid physical memory (in MmMapIoSpace and MmUnmapIoSpace) (Hartmut Birr)
  • Add some security function stubs (Eric Kohl)
  • Use bugcheck macros where appropriate so users have a better idea of why they crashed (Royce Mitchel III)
  • Implement multi-block bins. This removes all existing size limits within the registry (Eric Kohl)
  • Janitorial work (Eric Kohl)
  • Put the event from file object as user event into the irp in IopCloseFile and IopDeleteFile (Hartmut Birr)
  • Don't assign arc names to removable media drives like zip drives (Hartmut Birr)
  • Don't read the disk informations at boot time from removable medias like zip drives (Hartmut Birr)
  • Added Spinlock in ObpGetHandleCountbyHandleTable (Jim Tabor)
  • Fix recognition of CALL instruction. Spotted by Anich Gregor (Filip Navara)
  • Return reasonably correct result querying a null memory area. Still a TODO left (Mike Nordell)
  • Change bugcheck parameter to easily find out which SESSION5_INITIALIZATION_FAILED bugcheck occurred (Ge van Geldorp)
  • Make MmQuerySectionView tell how many bytes it actually did set. Fixes VirtualQuery (Mike Nordell)
  • MmQuerySectionView now returns correct AllocationBase (Hartmut Birr, Mike Nordell)
  • Proper way for counting process handles (Jim Tabor)
  • Add missing io performance counters (Eric Kohl)
  • SystemPerformanceInformation reads io counters (Eric Kohl)
  • Call the DriverStartIo routine at DISPATCH_LEVEL in IoStartPacket (Hartmut Birr)
  • Set the offset for a physical page in MmGetPhysicalAddress (Hartmut Birr)
  • Dereference the idle process in some of the NtQuerySystemInformation functions (Hartmut Birr)
  • Stop kernel crashing on thread termination (Mike Nordell)
  • Fixed my mistake in SystemProcessorInformation (Jim Tabor)
  • Fixed SystemProcessorInformation (Jim Tabor)
  • Set 386 as default cpu type (Jim Tabor)
  • Implementation of system performance auditing hax (Jim Tabor)
  • Improved Passive Level kernel and user time counters (Jim Tabor)
  • Fix Kernel User Timer and added ProcessTimes to QueryInformatinProcess (Jim Tabor)
  • Fix Kernel User Timer (Jim Tabor)
  • Add BasePriorty to ProcessBasicInformaion (Jim Tabor)
  • NtGetTickCount implementation (Jim Tabor, Filip Navara)
  • Implementation of system performance auditing hax (Jim Tabor)
  • Improved Passive Level kernel and user time counters (Jim Tabor)
  • Fix Kernel User Timer and added ProcessTimes to QueryInformatinProcess (Jim Tabor)
  • Fix Kernel User Timer (Jim Tabor)
  • Add BasePriorty to ProcessBasicInformaion (Jim Tabor)
  • Make mdl impl. more windows compliant (Gunnar Dalsnes)
  • Make mdl usage/impl. more windows compliant (Gunnar Dalsnes)
  • Filip Navara NtGetTickCount implementation (Jim Tabor)
  • Implemented new Ros exclusive function SystemFullMemoryInformation (Jim Tabor)
  • DBG/KD Types and Prototypes Added (Alex Ionescu)
  • Fixed KeRaiseUserException to return old EIP (Alex Ionescu)
  • Added DBG, FSRTL, Kd, Ldr, Lpc, Ex and Io Stubs (Alex Ionescu)