The Windows App SDK empowers all Windows desktop apps with modern Windows UI, APIs, and platform features, including back-compat support, shipped via NuGet.
By default, Win32 processes have some unfortunate behavior due to the compatibility implications of changing them. For example COM will catch crashes on incoming RPC calls and continue execution. This can be modified using IGlobalOptions and specifying COMGLB_EXCEPTION_HANDLING as COMGLB_EXCEPTION_DONOT_HANDLE_ANY. Another option is enabled using HeapSetInformation(..., HeapEnableTerminationOnCorruption, ...) There are also performance and flexibility related options, that currently are private, enabling proxies to be agile, sharing the FTM instance, etc. There are also reliability options, causing app termination when an invalid handle is used, ProcessStrictHandleCheck.
Rationale
Apps should be reliable and fast by default.
Important Notes
The init code generated by the app template should call the APIs to set the safe/performant defaults for the process.
MS Folks, see this task that will make the currently internal COM options publicly available.
Open Questions
Are there more defaults that we can set? for example this one.
Summary
By default, Win32 processes have some unfortunate behavior due to the compatibility implications of changing them. For example COM will catch crashes on incoming RPC calls and continue execution. This can be modified using
IGlobalOptions
and specifyingCOMGLB_EXCEPTION_HANDLING
asCOMGLB_EXCEPTION_DONOT_HANDLE_ANY
. Another option is enabled usingHeapSetInformation(..., HeapEnableTerminationOnCorruption, ...)
There are also performance and flexibility related options, that currently are private, enabling proxies to be agile, sharing the FTM instance, etc. There are also reliability options, causing app termination when an invalid handle is used, ProcessStrictHandleCheck.Rationale
Important Notes
Open Questions