After renaming a directory, rename any children FCB that would still exist in the FSD. This will allow next directory opening to properly work and open correct data.
This defeats corruption on directory renaming.
Unfortunately, this solution is not ideal and our driver should be reworked so that it quits using a hash table and it quits storing the whole path in the FCBs.
Deep thanks to Wim Hueskes and Thomas Faber for their help debugging the issue!
CORE-11377
svn path=/trunk/; revision=72145
- Use strsafe functions
- Use Shell Hooks in dll for detecting keyboard layout switching
- Fix bug in loading kbsdll
* Detection switch keyboard layout is now working in Windovs, but does not work in ReactOS (WH_SHELL not work in win32k)
svn path=/trunk/; revision=72143
- Detect Alt+Shift hotkeys and send input language change request message to window
* Switching the keyboard layout works now. The code needs to be improved
svn path=/trunk/; revision=72142
Don't hardcode a fixed size for the memory buffer holding the event details data to be copied into the clipboard, but instead compute it using the real lengths of the different strings. Use also StringCbPrintfW instead.
svn path=/trunk/; revision=72140
Implement LsarAddAccountRigths and fix some bugs along the way:
- LsarGetSystemAccessAccount: Fix an uninitialized varable.
- LsarOpenAccount, LsarCreateAccount: Make these functions wrappers around the real implementation in LsarpCreateAccount and LsarpOpenAccount.
- LsarEnumerateAccountRights: Fix the use of the wrong array index.
- LsarAddAccountRights: Implement it.
- LsarpLookupPrivilegeValue: Return a pointer to an LUID instead of an NTSTATUS. It is much earier to use it this way.
- LsapLookupAccountRightValue: Implement it.
svn path=/trunk/; revision=72139
Properly check for opened handles in subdirectories when we're about to rename a directory.
This helps reducing corruption where some renaming operations were allowed whereas they shouldn't have been.
CORE-11377
CORE-11426
svn path=/trunk/; revision=72136
Track child FCB in parent FCB to allow browsing them in case it's needed.
This allows fixing a FIXME and offering better performances when renaming a directory.
CORE-11377
CORE-11426
svn path=/trunk/; revision=72124
- Apply Wine commit b7f6362d (msvcrt: Use the correct object type for __non_rtti_object exceptions.) by Alexandre Julliard
CORE-11794
svn path=/trunk/; revision=72119
Refactor vfatMakeFCBFromDirEntry() and vfatUpdateFCB() so that they share code. It will help avoiding wild FCB modifications on renaming.
CORE-11377
svn path=/trunk/; revision=72113
- Remove unnecessary null checks & fix up cleanup in SepCreateToken and SepDuplicateToken. Based on a patch by Víctor Martínez Calvo
CORE-11768 #resolve
svn path=/trunk/; revision=72101
In case an automatic drive letter assignment was asked (net use * REMOTE), print the mapping that was performed on success.
ROSAPPS-303
svn path=/trunk/; revision=72098