- Do not make callouts to user-mode while holding a lock on GDI objects.
Fixes crashes in user32_winetest:win and :msg
svn path=/trunk/; revision=64189
- Enable all debug channels if DEBUGCHANNEL is set to "+all".
- Fix GDI objects exclusive locks counting, fixing a memory corruption altogether.
- Add a missing lock release on error path.
- Add a debug print.
svn path=/trunk/; revision=64187
- Implement RtlpCloseRegistryHandle helper, which closes a registry key, if RTL_REGISTRY_HANDLE was not passed as RelativeTo
- Use RtlpCloseRegistryHandle whereever required, fixing some cases, where we unconditionally closed the handle
svn path=/trunk/; revision=64186
- Add dummy INT 18h (ROM Basic) and INT 19h (Bootstrap loader) interrupts. If INT 18h will never be implemented, INT 19h can be used one day...
- Add the standard bootstrap code snippets at F000:FFF0 and F000:E05B.
- For compatibility purposes, and nice info reporting via tools like Microsoft Diagnostics, or Symantec SysInfo, or whatever else..., register nice BIOS Copyright and Version strings. Also add a version string at the end of the BIOS.
- Fix our reported BIOS model.
- Add some temporary documentation (from Bochs BIOS) about the ROM BIOS compatibility entry-points that some apps may use (instead of passing through more documented & standard interfaces).
svn path=/trunk/; revision=64185
- Slap *a bit* of sense in the way we use region objects and handles, avoiding a massive orgy of handle allocations, locks, leaks and so on.
The motto here being "if you don't need a valid user-mode handle, then chances are that you don't need one at all."
CORE-8506 #resolve #comment Stale region handles should not be passed anymore to user-mode apps now.
svn path=/trunk/; revision=64177
- Fix up values got from win32k in GetOutlineTextMetrics and do not fail if the provided buffersize is only sizeof(OUTLINETEXTMETRICW).
CORE-8507 #resolve
svn path=/trunk/; revision=64176
- Add Etw trace api stubs (moved from avdapi32)
- Add exports for Etw* functions
[ADVAPI32]
- Add forwarders of trace api functions to ntdll Etw* functions
svn path=/trunk/; revision=64172
CORE-8537 #resolve #comment Demote UNIMPLEMENTED_DBGBREAK for UNIMPLEMENTED in the non-implemented case of PopFlushVolumes. Fixes the apparent BSOD.
svn path=/trunk/; revision=64170
SampRemoveUserFromAllGroups:
- Do not treat a STATUS_MEMBER_NOT_IN_GROUP, returned by SampRemoveMemberFromGroup, as error but as success.
- Clear the Groups attribute at the end.
svn path=/trunk/; revision=64169
- Move the mouse driver to DOS since it's our 32bit version of mouse.com, in some sense,
- Temporarily disable the mouse user callbacks because currently they went called in a parallel thread than the CPU one, that caused CPU corruption,
- In the same way we currently trigger IRQ1 interrupts, we do the same for IRQ12,
- Make the console input pump more modular (and mouse presence detection code is WIP),
- Put keyboard code into a dedicated file (as done for the mouse),
- Adapt the existing PS/2 emulation code to support two PS/2 ports controlled by 1 controller. Please note that some documentations precise that the response byte (answer to a PS/2 controller command) is written directly to the PS/2 output port.
svn path=/trunk/; revision=64168
- Code formatting and precise an info in a comment,
- Remove an unneeded commented call, and
- Mention that INT 15h functions C1h and C2h need to be implemented for PS/2 support.
svn path=/trunk/; revision=64167
- As pid and tid 0 have a special meaning in GDB, use off-by-one thread and process ID when communicating with it
- Properly read registers and memory from foreign thread and processes. (This time it was tested and proved to work reliably. __writecr3 ftw!)
- Loop the list of processes and threads when trying to find them from ID, as PsLookupProessByThreadId and friends can't be used since we can be at any IRQL.
- Add a few more debug prints to help diagnosing problems.
CORE-8531
svn path=/trunk/; revision=64166
- Read MaxSize and Retention from the Registry when a new log file is created.
- Use ntdll file functions instead of their kernel32 counterparts.
svn path=/trunk/; revision=64159
- Don't use svn:eol-style = native for PCI ids but then have the code expect CRLF. Should fix all devices being "Unknown device" on Unix builds.
svn path=/trunk/; revision=64158
- Fix an embarassing works-for-me but uncommited cast.
- Add support for reading registers and memory from foreign threads. Highly experimental and nearly untested, use at your own risk.
svn path=/trunk/; revision=64156
- Addendum to r64151
Complain on IRC, then complain on ros-dev, then steal fixes from your peers, then do as if nothing happened.
svn path=/trunk/; revision=64155
- Always pass down the result of gdb_receive_packet up to KD, so that it knows when a breakin packet was received. (CTRL-C) now works!
- Generalize the use of the Send <-> ManipulateState callbacks for a better code reading.
- Get the exception context as soon as it is thrown (instead of playing with the PRCB)
- Improve the way we attach to GDB: on the first KD call, we set KdContext->ControlCPending so that KD throws an exception. That way we can first initialize our KD stuff, and then quietly attach to GDB
- Implement the 'p' (get one register) GDB request.
GDB is now much more reliable.
svn path=/trunk/; revision=64154
- Fix a typo in KsecQueryFileInformation
- Implement missing ioctls in KsecDeviceControl
- Support METHOD_OUT_DIRECT for IRP_MJ_DEVICE_CONTROL
- Add stubs for KsecEn/DecryptMemory
[ADVAPI32]
- Use ksecdd to handle SystemFunction040 (RtlEncryptMemory) and SystemFunction041 (RtlDecryptMemory) (they still do nothing, but at least they do it in kenrnel mode now ;-))
svn path=/trunk/; revision=64153
* Work around what looks like a bug in GCC's handling of #pragma redefine_extname. Its behavior regarding additional underscore prefixes depends on the order of pragma and symbol declaration with GCC, while it's consistent with Clang. Brought to you by Thomas Faber, reviewed by Timo Kreuzer.
CORE-8516
svn path=/trunk/; revision=64148
- It can happen that GDB issues something else than qsThreadInfo after qfThreadInfo
- Properly clean up the callbacks after handling a custom Send/ManipulateState loop
svn path=/trunk/; revision=64146