Avoid hitting ReactOS interprocess file sharing bugs that are not fixed
yet and use a pair of fresh temporary files for testing the function.
Addendum to 4e3729f06f (#9145). CORE-10271
Cover the bug fix in PR #9133 with API tests. CORE-10271
Add them into a suitable Wine test to cover ReactOS-specific bug.
The tests are confirmed to pass on Windows 2003, 7, and 10.
- [KERNEL32_WINETEST] Sync to wine-10.0
- [KERNEL32_WINETEST] Define out tests we can't yet build, fix test failures for WS03-Win 10 1607.
- [KERNEL32_WINETEST] Consolidate header hacks needed for the winesync in winehacks.h. This documents what incompatibilities we need to work around in our and Wine headers in one place.
- [INCLUDE/WINE] Add GetNTVersion() macro, useful for determining Windows versions in Wine tests we need to bring up for older Windows versions.
- [INCLUDE/WINE] Header changes needed for kernel32 winetest
- [WINETESTS] Perform any fixes needed from breaking header changes
This is more explicit than defining it for all wine tests and it directly shows us which tests need to be synced to get rid of the hack.
Addendum to 381e224 (PR #7576)
- Move sdk\include\reactos\wine to sdk\include\wine
- Reorder the directories in include_directories() to be closer to alphabetical. This should make it easier to determine what global include directories can be removed in the future.
- [PSDK] Sync wincrypt.h to Wine 10.0, keeping our SAL annotated function definitions behind an #ifdef guard
- [XDK] Add definitions to our winnt header that Wine 10.0's winternl.h depends on.
- [INCLUDE/WINE] Sync winternl.h to Wine 10.0
- [OTHER] Fix breaking changes with the synced winternl.h.
When creating a new process the monster function CreateProcessInternalW calls BaseInitializeContext to set up the context for the initial thread. One of the parameters is the PEB pointer. Instead of passing the pointer to the newly created process' PEB, the function was passing it's own PEB address, leading to test failures. How this is not an issue otherwise is a mystery to be resolved by someone else.
Also remove ros_skip_flaky marks in kernel32_winetest:process (yes, flaky, because sometimes the PEB addresses actually match)
If we cannot find the functions in kernel32, try to get them from
kernel32_vista. This will allow testing our own implementation, while
still failing in W2K3 (no implementation available).