When a user mode debugger has single stepping enabled and steps over a sysenter instruction, you are obviously not supposed to enter the kernel debugger on the syscall entry handler. But exactly this happened on reactos. This was because the sysenter instruction doesn't disable single stepping, so we need to handle this special case manually in the single stepping handler (which we didn't). We now check if the single step comes from KiFastCallEntry and when it does, disable single stepping in the current (nested) trap frame and return back to a secondary fast call entry. The 2nd entrypoint will make sure to re-enable the single step flag in EFLAGS before returning to usermode.
To make this actually work, the asm entry stub itself needs to handle saving of eflags, so some trap frame modification from KiFastCallEntryHandler was moved into the asm stub. Since the amount of asm instructions is rather small (10 instructions, pretty straight forward) I moved everything from KiSystemServiceHandler to the asm stub and killed KiFastCallEntryHandler entirely, calling KiSystemServiceHandler instead.
Now stepping over a sysenter instruction works with OllyDbg without breaking into the kernel debugger. CORE-8057 #resolve
svn path=/trunk/; revision=63420
- Fix a failed partition type assignment, when unpartitioned disk space is converted to an extended partition.
- Rename the extended partition list to logical partition list.
- Add a pointer to an extended partition to the disk entries. And keep it up-to-date when the primary partition list is built or modified.
- Add the 'Unpartitioned space' partiton entry to the logical partition list when an extended partition has been created.
- Remove all logical partition entries when the coresponding extended partition will be deleted.
svn path=/trunk/; revision=63411
Don't access the object header of a kernel object from win32k. Instead get the desktop name from the desktop info structure. CORE-6818 #resolve
svn path=/trunk/; revision=63409
Pass process id to DbgUnLoadImageSymbols instead of ZwCurrentProcess() or a PEPROCESS.
Patch by Jérôme Gardou <jerome.gardou at reactos dot org>
CORE-8253 #resolve
svn path=/trunk/; revision=63406
- Do not align the size of a memory area to the allocation granularity, but to PAGE_SIZE. Fixes OllyDbg regression from r61108. CORE-8168 #resolve
- Clarify the size calculation in MmCreateMemoryArea
- Silence a few DPRINTs
svn path=/trunk/; revision=63405
- Fix a bit the translation of yesterday;
- Use TEXT_PADDING_BIG instead of hardcoding 3 spaces in the status messages.
svn path=/trunk/; revision=63398
Do not ASSERT, when an unimplemented, yet legal flag (MEM_RESERVE) is passed to NtMapViewOfSection. Instead fail gracefully.
svn path=/trunk/; revision=63395
Also, for reference: r23894 contained working implemnentations in fpu.c. In r23895 ion "moved" it to cpu.c, killing the MSVC implementation in the process. In 23972, ion added new MSVC code for it, but this new version had the bug. It has remained undiscovered until very recently.
svn path=/trunk/; revision=63391
Fix ending address calculation for the commit path in NtAllocateVirtualMemory like done for the reserve path in r63356. Add a comment about a Windows kernel bug, which we will keep for now, until the implications are better determined.
svn path=/trunk/; revision=63388
Use a separate palette for text mode. Previously the text mode palette was equal to the
first 16 entries of the graphical palette, which is wrong since the AC registers can be
used to select arbitrary colors from the DAC.
svn path=/trunk/; revision=63385
- Fix load menu callback. Use it for loading system menus.
- Sync in more wine code, fix sub-menu arrow drawing. See WinMerge.
- Miscellaneous code changes.
svn path=/trunk/; revision=63380
Properly repeat the GetNextVDMCommand request. Using "continue" there will not work
if the application has been started by a double click, since in that case AcceptCommands
is FALSE.
svn path=/trunk/; revision=63379
Russian Translation by Akhlamov Petr
CORE-7981 #resolve #comment Committed after some build fixes, thx.
P.S. Former commit was made by Alex Gorgurov
svn path=/trunk/; revision=63374
- rewrite the wined3d config cpl to make it work with the current version of wined3d
- add a "default" option so it's easier to revert changes done to the configuration
- I apologize for the "lost" translations but there were too many changes
svn path=/trunk/; revision=63368
- Initialize the BIOS Configuration Table, see http://www.ctyme.com/intr/rb-1594.htm for more information.
- Implement INT 15h, AH=C0h "GET CONFIGURATION".
svn path=/trunk/; revision=63367
Since the BIOS registers the whole range of possible interrupts, we register their stubs in an array-form so that the BIOS always registers INT n at the same place. We save 561 bytes of memory.
svn path=/trunk/; revision=63366
Usually the command line is made of the application name and its parameters. When launching a DOS program, BaseCheckVDM builds suitable ApplicationName and CommandLine strings "DOS-compatible". ApplicationName is left-trimmed for whitespace and then converted to short-path format, and CommandLine sees the application name part (its first token) removed. We didn't do it before, we do it now. Care is taken when quotes are present in ApplicationName. Finally DOS command lines usually receive a newline character, so we also add it there. This is how behave Windows: just put our ntvdm in Windows, and observe what it receives...
svn path=/trunk/; revision=63361
- Fail device initialization if a filter fails to load so the PnP manager can try again later
- Fix some handle leaks
- Reset device node flags after a remove IRP is sent
[I8042PRT|MOUCLASS|KBDCLASS]
- Implement proper support for PnP remove IRPs
See issue #8238 for more details.
svn path=/trunk/; revision=63360