Microsoft has released the first SDK preview build for Windows 10 20H1, following improvements in the Insider rings. Build 18890 makes several bug fixes, as well as adjustments to the API surface area.

Part of that changes to Windows’ tools, including the message compiler (mc.exe), trace preprocessor (tracewpp.exe), and the trace logging provider (TraceLoggingProvider.h). Microsoft is also removing Irprops.lib, with developers instead encouraged to use bthprops.

Windows 10 20H1 SDK Preview Changes

Here are the detailed changes for the tools:

  • Message Compiler (mc.exe):
    • Now detects the Unicode byte order mark (BOM) in .mc files. If the .mc file starts with a UTF-8 BOM, it will be read as a UTF-8 file. If it starts with a UTF-16LE BOM, it will be read as a UTF-16LE file. Otherwise, if the -u parameter was specified, it will be read as a UTF-16LE file. Otherwise, it will be read using the current code page (CP_ACP).
    • Now avoids one-definition-rule (ODR) problems in MC-generated C/C++ ETW helpers caused by conflicting configuration macros (e.g. when two .cpp files with conflicting definitions of MCGEN_EVENTWRITETRANSFER are linked into the same binary, the MC-generated ETW helpers will now respect the definition of MCGEN_EVENTWRITETRANSFER in each .cpp file instead of arbitrarily picking one or the other).
  • Windows Trace Preprocessor (tracewpp.exe)
    • Now supports Unicode input (.ini, .tpl, and source code) files. Input files starting with a UTF-8 or UTF-16 byte order mark (BOM) will be read as Unicode. Input files that do not start with a BOM will be read using the current code page (CP_ACP)
    • Now supports Unicode output (.tmh) files. By default, output files will be encoded using the current code page (CP_ACP).
    • Behavior change: tracewpp now converts all input text to Unicode, performs processing in Unicode, and converts output text to the specified output encoding.
  • TraceLoggingProvider.h
    • Now avoids one-definition-rule (ODR) problems caused by conflicting configuration macros.
    • In C++ code, the TraceLoggingWrite macro has been updated to enable better code sharing between similar events using variadic templates.”

This build works alongside previous SDKs for VS2017 and 2019, but not Visual Studio versions below that. It will also only install on Windows Insider builds. You can grab the ISO from this static URL.