The Boost WINAPI partitioning scheme doesn't work for WINAPI_FAMILY_GAMES
- Dominant language
- C++
- Stars
- 73
- Forks
- 62
- PR merge metrics
- No merged PRs in 30d
Description
For Xbox development, we make use of ``WINAPI_FAMILY_GAMES`` which is supported by the Windows 10 SDK (19041) or later.
When you build with ``WINAPI_FAMILY=WINAPI_FAMILY_GAMES``, boost ends up misconfiguring a number of APIs which are supported such as ``SwitchToThread``. Part of the problem is that ``WINAPI_FAMILY_GAMES`` by design does NOT include everything in WINAPI_PARTITION_SYSTEM. ``WINAPI_FAMILY_GAMES`` contains many more Win32 APIs than UWP, but less than the full DESKTOP partition.
The good news is that most the Win32 APIs used by the **winapi** headers ARE supported for ``WINAPI_FAMILY_GAMES``.
The only APIs that are NOT in WINAPI_FAMILY_GAMES are:
* The WinCrypt functions in crypt.hpp (bcrypt.hpp is supported instead).
* The dbghelp.hpp functions
* ``FlushViewOfFile``
* ``CompareObjectHandles``
* Jobs APIs in jobs.hpp
* ``ImpersonateNamedPipeClient``. ``TransactNamedPipe``. ``GetNamedPipeClientComputerNameA``, ``GetNamedPipeClientComputerNameW``
* The priority class APIs in priority_class.hpp
* The security object APIs in security.hpp
* Shell APIs in shell.hpp
* ``ShowWindowAsync``
Fixing this is important for making the rest of boost work on the Xbox platform.
> Note that for Xbox development, we officially support the MSVC VS 2017 (v141) 15.9 or later toolset as well as clang/LLVM for Windows v11 or later. Due to some link warnings with newer SDKs and Microsoft GDKs, clang/LLVM for Windows v15 or later is recommended. We also recommend VS 2019 (v142) 16.11 or later.
> There's no need to access the NDA Microsoft GDK with Xbox Extensions for this work as all the relevant APIs are in the public Windows SDK (19041) or later.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.