- Rename SHELL32_BindToChild to SHELL32_BindToFS. Do not let it be used for guid items any more. Split SHELL32_GetCLSIDForDirectoryout of it and call it only when needed.
- Fix callers to use SHELL32_BindToGuidItem for guid items.
- Fix a bug in CFSFolder which marked folder items as files when a binding context was used.
svn path=/trunk/; revision=68885
- All shell folders must have the IPersistFolder. Hence their Initialize method is supposed to succeed for them to actually work.
svn path=/trunk/; revision=68884
- Make SHELL32_GetDisplayNameOfChild return the result via a STRRET. Fix all callers accordingly.
- Avoid any heap allocations if a shell folder needs to forward the GetDisplayNameOf call to a child.
svn path=/trunk/; revision=68877
- Remove SHELL32_GetItemAttributes for good. It is never a good idea to have one function that handles many types of pidls.
svn path=/trunk/; revision=68873
- When binding to a drive item try to initialize the new CFSFolder using IPersistFolder3. That allows us to get the path of the drive right from the pidl instead of getting a new reference to the CDrivesFolder and using GetDisplayNameOf for the pidl.
svn path=/trunk/; revision=68865
- Fix swapped parameters of KeSetIntervalProfile
- Calculate the correct bucket pointer in KiParseProfileList, and actually increment the counter
CORE-10066
svn path=/trunk/; revision=68859
Improve debugging experience when pressing Tab+k, at least with WinDBG, by breaking with a suitable control code (adopt the SysRq one even if we don't use SysRq key for breaking, but instead, Tab+k).
svn path=/trunk/; revision=68855
Addendum to r68851:
- Reset the state of the worker thread *after* having captured the data, not before.
- Fix the explanations given in comments.
svn path=/trunk/; revision=68854
- Remove superfluous dereference in NtCreateProfile
- Allocate the right size for KPROFILE object
- Don't leak the KPROFILE when deleting an EPROFILE
- Avoid some casts
CORE-10066
svn path=/trunk/; revision=68852
Implement the WinDBG Debugger Worker Thread, which is created inside a target process whenever one uses the ".process /i <addr>" (invasive debugging) command using WinDBG in kernel-mode debugging.
See https://www.microsoftpressstore.com/articles/article.aspx?p=2201303&seqNum=2 section "Switching the Current Process Context" (from the book "Inside Windows Debugging" by Tarik Soulami, pp.101-102) for more details.
The names of the variables must be kept as they are, because WinDBG (more exactly, dbgeng.dll) searches for them within the kernel symbols and retrieves their addresses (since those variables are not publicly exported).
svn path=/trunk/; revision=68851
Make its version information compatible with the one of NTOSKRNL (and accessorily its resource file). Addendum to r25937.
svn path=/trunk/; revision=68850
- Only return the flags that the caller asked for in SHELL32_GetFSItemAttributes. Allows us to get rid of a hell lot of calls to CFSFolder::BindToChild which lead to many calls to FindFirstFile.
svn path=/trunk/; revision=68849
Fix x64 compilation:
- Some KDBG symbols for win32k debugging are defined only in x86 platform when _WINKD_ is disabled.
- KdSetOwedBreakpoints is defined only if _WINKD_ is enabled, addendum for x64 to r68842.
svn path=/trunk/; revision=68848
- Avoid statically importing FindFirstStreamW/FindNextStreamW so that our cmd.exe can work on WinXP.
- Accept lowercase /r switch
svn path=/trunk/; revision=68847
- In DirList, initialize stInfo.ptrHead of the dummy node to avoid invalid memory access. Fixes regression in cmd:batch
svn path=/trunk/; revision=68846
- Sync control.c from wine and disable a large part of it that is not needed. Also update the definition of CPlApplet to match wine.
- Make CControlPanel use the new definition of CPlApplet which lets us simplify loading the applets.
- Make CControlPanel to only use unicode and use the new helper functions.
- Simplify the code for the context menu of cpl items.
svn path=/trunk/; revision=68845
- Fix the condition check when setting twice (or more) the same breakpoint.
- Implement support for deferred breakpoints. For more information, see: http://www.osronline.com/article.cfm?article=541 (which also exposes an interesting problem about them).
svn path=/trunk/; revision=68841