In theory, this code is "better" than before, and it is closer to Wine (which arguably has better compatibility). It also resets things in sync with Wine however, and may lose and "fixes" ReactOS may have added over the years. But this is a good thing, since these fixes have been "lost" (they obviously never made it into Wine), and if regressions are now found due to this, actual upstream patches can be sent and picked up on the next sync. This avoids maintaining duplicate code, at the expenses of some potential short-term regressions in i18n.
Finally, note that much of /string seems to be taken from Wine's Unicode library (which a host "unicode" already exists in ReactOS' tools/. It may be better (for someone with more experience as to these wine-isms) to simply just pull-in whatever winelib files are not currently present in ReactOS, and have kernel32 and tools/unicode use winelib, instead of having 2 or 3 copies of the code.
svn path=/trunk/; revision=52754
[KERNEL32]: Final part of the re-structure: move the last few files from "misc" into "client". Now "misc" is mostly composed of Wine-based code (which will soon by Winesynched) that provides functionality such as INI, .rsrc parsing and LZip expansion, as well as the RS232-based APIs. The rest of "client" is NT-layer glue, much of it buggy and in need of help.
[KERNEL32]: Move "Beep" from environ.c to deviceio.c... seems to make more sense there.
[KERNEL32]: Set kernel32_handle since Wine-synched code will depend on this.
[KERNEL32]: Link with winelib, don't link with normaliz anymore.
svn path=/trunk/; revision=52752
Patch by Dmitry Gorbachev:
Don't overwrite the OemName field in the bootsector. Although this field could theoretically contain any string, MS recommends using "MSWIN4.0" and MSDOS does even rely on it being this (or having higher last 2 characters)
This way we preserve what is being put there when the disk is formatted, which is "MSWIN4.0"
See issue #6386 for more details.
svn path=/trunk/; revision=52742
Patch by Thomas Faber
ExAcquireSharedStarveExclusive and ExAcquireSharedWaitForExclusive should
return FALSE when they cannot immediately acquire the resource, and the Wait parameter is false. They return TRUE instead, leading the caller to believe it acquired the resource, which will result in a bugcheck when it tries to release it.
See issue #6375 for more details.
svn path=/trunk/; revision=52741
[KERNEL32]: Reorganize the source tree into a "client" section (The Win32 API proper and its wrapping of the NT base system -- unsynchable with Wine until they have a proper NtDll and choose to use our code) and a "winnls" section (string/language/etc stuff easily synchable with Wine).
[KERNEL32]: Note: this is not perfect yet, but a step in the right direction.
svn path=/trunk/; revision=52738
[KERNEL32]: Reorganize certain functions in different files, and move files into more appropriate locations. Will lead to a simplification of the directory structure.
svn path=/trunk/; revision=52737
[NDK]: Fix certain SxS functions.
[RTL]: "Implement" RtlActivateActivationContextEx which lets you specify a TEB. RtlActivateActivationContext uses the current TEB. NOTE: All these functions are broken because they copy-paste Win32 wine code into NT Native functions (with different parameters/structures).
[NDK]: Fix pstypes.h -- it was a #define mess, and worked by luck because we are a < Vista OS.
[NDK]: Add RtlInitEmptyAnsiString.
svn path=/trunk/; revision=52736
[RTL]: Reimplement RtlDosPathNameToNtPathName_U to use UNICODE_STRING semantics.
[RTL]: Fix RtlGetFullPathName_Ustr.
[RTL]: RtlGetFullPathName_U remains based on the legacy non-UNICODE_STRING mechanism, but it's too complex to attempt changing for now.
svn path=/trunk/; revision=52726
- Fix a nasty datagram corruption bug that would result in an uninitialized buffer data being returned instead of packet data if the client read buffer was smaller than the datagram received
- Fix broken user-mode send datagram IRP completion code which didn't set the completion status
- Implement disabling/enabling event select triggers
svn path=/trunk/; revision=52723
- Skip test_enhmetafile to prevent the oleaut_winetest:olepicture crash.
See issue #5000 for more details. Test skipping must be diffed, else will be reverted again at winesync.
svn path=/trunk/; revision=52721
- Fix a race condition that occurs when the socket is closed by the remote host while waiting on OSKLock to perform a socket operation and results in accessing freed memory
svn path=/trunk/; revision=52718
Implement service image records. This will enable us to run executables that contain multiple services and control them individually.
svn path=/trunk/; revision=52717
[RTL]: Simplify RtlDosSearchPath_U by not using a temporary "char" value, and just reading straight from the string buffer.
svn path=/trunk/; revision=52713
Generate MSVC debugging info for KiUserExceptionDispatcher, KiIntSystemCall, KiFastSystemCall, KiFastSystemCallRet, KiSystemService, KiFastCallEntry, all systemcall stubs
Now usermode backtraces look as they should in WinDbg
svn path=/trunk/; revision=52705
[RTL]: Re-implement RtlDosSearchPath_U using new path functions from past commits. Uses correct behavior with RtlDoesFileExists (for relative paths, return success when file is locked -- for absolute paths, do not!). Also uses a more optimized path loop that does not alloc/realloc/free heap continously (only one heap allocation is used).
svn path=/trunk/; revision=52699
- Fix the broken TDI_QUERY_CONNECTION_INFO implementation
- Perform buffer size checks on TDI_QUERY_MAX_DATAGRAM_INFO requests
[AFD]
- Greatly simplify AfdGetPeerName by using the remote address stored while connecting
svn path=/trunk/; revision=52698