Difference between revisions of "Win32k.sys"

From ReactOS Wiki
Jump to: navigation, search
m
m
Line 136: Line 136:
 
* Fix bug #129 ([[Filip Navara]])
 
* Fix bug #129 ([[Filip Navara]])
 
* Fixed bug 167 ([[Art Yerkes]])
 
* Fixed bug 167 ([[Art Yerkes]])
 +
 +
[[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:59, 5 March 2012

See Arwinss page for the alternative win32 subsystem implementation effort.

See also Win32k_design_guideline

http://en.wikipedia.org/wiki/Windows_API#Overview

The Graphics Device Interface Provides functionality for outputting graphical content to monitors, printers and other output devices. It resides in gdi.exe on 16-bit Windows, and gdi32.dll on 32-bit Windows in user-mode. Kernel-mode GDI support is provided by win32k.sys which communicates directly with the graphics driver.

http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/?view=log

ChangeLog-0.0.21

  • Win32k: Initial implementation of regions and clipping
  • Win32k: Object cleanup on process deletion Eugene Ingerman
  • Win32k: Initial window painting code, bitmap loading David Welch
  • Win32k: Callbacks and messaging improvements David Welch
  • Win32k: Mouse messaging David Welch
  • Win32k: DIB Fixes Jason Filby

ChangeLog-0.1.0

  • Win32k: Rewrote gdi (Engxxx) objects,
  • Made GDI object locking exclusive,
  • Added functions for locking multiple objects,
  • Color translation now works properly,
  • Implemented several DC functions (Eugene Ingerman)
  • Win32k: Initial scrollbar code (Jason Filby)

ChangeLog-0.1.1

ChangeLog-0.1.4

ChangeLog-0.1.5

ChangeLog-0.2.0

ChangeLog-0.2.1

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)