- And here's finally a reason why we shouldn't use g++'s host-headers and libraries
- Switch back to wishy-washy-what's-a-standard mode for C++ globally, and enable C++11 only for netshell
svn path=/trunk/; revision=59534
Fix the creation of empty REG_MULTI_SZ values (they have to contain only one NULL char, since a multi-string has the form:
str1\0str2\0...strN\0\0
where each strI\0 is a null-terminated string, and a multi-string is terminated by a null string.
And therefore an empty multi-string has only one null char, corresponding to the terminating null string.
svn path=/trunk/; revision=59529
- In the token parsing function SmpParseToken, just return success directly if the input string has zero length, instead of running code which does nothing at the end, because the length was zero...
- Give a default value for the "BootExecute" entry in the SMSS registry configuration table (this value is used when there is no BootExecute registry value inside HKLM\System\CurrentControlSet\Control\Session Manager) and precise that it is a multi-string value.
- Remove a redundant "Environment" entry in this table, too.
svn path=/trunk/; revision=59518
- Fix a potential overflow bug.
- Don't hardcode the "/ 2" in indices computation (2 == sizeof(WCHAR))
- Fix a string enumeration bug when enumerating strings inside REG_MULTI_SZ values, in RtlQueryRegistryValues.
svn path=/trunk/; revision=59517
Indeed, it appears after extended testing that, when calling from user-mode, Windows checks the real presence of the SYNCHRONIZE flag when using FILE_SYNCHRONOUS_IO_(NON)ALERT even if we pass any of the GENERIC_xxx access flags...
Otherwise, when using FILE_GENERIC_(READ/WRITE) flags directly, there is no need to add the SYNCHRONIZE flag since it is already incorporated in it.
See CORE-7361 for more details.
svn path=/trunk/; revision=59514
Indeed, it appears after extended testing that, when calling from user-mode, Windows checks the real presence of the SYNCHRONIZE flag when using FILE_SYNCHRONOUS_IO_(NON)ALERT even if we pass any of the GENERIC_xxx access flags...
Part 1/X
svn path=/trunk/; revision=59512
[DBGHELPHOST]
* Introduce a self-contained, static library version of dbghelp, in order to leverage its PE DWARF support. Thanks to Jerome Gardou for his work on the compatibility layer, and to Thomas Faber for helping me with the review/improvements.
* Unify the new host lib with the existing dll codebase using preprocessor conditions. This prevents code duplication.
* Skip as much unneeded functionality as possible when compiling dbghelphost to keep it light and straight to the point.
[RSYM]
* Introduce the required functions that allow parsing DWARF (using dbghelphost) and using it (along with coff symbols) to create the rossym debug info. Brought to you by Awesome Arty with some bugfixes from Jerome Gardou. Many thanks to Thomas Faber for assisting me with the testing/bug hunting.
[CMAKE/GCC]
* Introduce a combination of dwarf and debug emission flags that ensure the smallest debug info size among all the possible options we have.
* Introduce compressed debug sections that I already included the support for in RosBE 2.1. Thanks to the mingw-w64 folks (Kai Tietz) for the patch.
* Don't compress debug sections of C++ modules for now due to a bug in the toolchain that leads to spamming the build at link time with a warning.
* Don't run rsym on the RC shared libraries. Thanks to Thomas Faber for spotting this.
[DBGHELP]
* Update the ros diff to reflect the changes introduced by the dbghelphost unification.
svn path=/trunk/; revision=59505
- Fix CcMdlReadComplete2 prototype.
- Fix a bug in Dominique Cote's code: when performing FsRtlGetFileSize, the length of the buffer should be set accordingly to the information class asked for, that is - FILE_STANDARD_INFORMATION structure. Previous calculation formula makes no sense at all and leads to memory corruption (if filesystem driver is stupid enough) or inability to get file size (if filesystem driver is coded by good developers).
svn path=/trunk/; revision=59495
- Fix ExAllocateFromZone. I understand it's deprecated, but it having a broken implementation which can't work at all because the one who coded this function failed to understand basic algorithms of linked lists is nonsense.
svn path=/trunk/; revision=59494
- Implement enabling Large Pages support if it is detected. The Page Size Extension (PSE) bit in CR4 is enabled when paging is disabled. To achieve that, a temporary virtual and physical identity mapping is created, which is discarded after PSE is enabled.
svn path=/trunk/; revision=59491
- Add configure support for VS 2013
- Add a missing /nologo to assembler invocations
- Properly complain about old MSVC versions during configure instead of failing the build
svn path=/trunk/; revision=59488
Fix some broken logic: we can duplicate console handles only if both the source and the target processes are in fact the current process.
svn path=/trunk/; revision=59486
Fix a delayed-imports problem, catched by Timo and Thomas with a MSVC build. Caused by the fact that the static library consrv specified delayed imports for it, thinking that they will be added to the list of delayed imports of winsrv. In fact it doesn't work and those imports become real imports.
svn path=/trunk/; revision=59480
Fix return of MiProtectedPoolUnProtectLinks() which was always returning null, instead of returning
safe unprotected links when needed
svn path=/trunk/; revision=59478