// Copyright © 2015, Peter Atashian // Licensed under the MIT License // Flags used by the various UIs pub const SHTDN_REASON_FLAG_COMMENT_REQUIRED: ::DWORD = 0x01000000; pub const SHTDN_REASON_FLAG_DIRTY_PROBLEM_ID_REQUIRED: ::DWORD = 0x02000000; pub const SHTDN_REASON_FLAG_CLEAN_UI: ::DWORD = 0x04000000; pub const SHTDN_REASON_FLAG_DIRTY_UI: ::DWORD = 0x08000000; // Flags that end up in the event log code. pub const SHTDN_REASON_FLAG_USER_DEFINED: ::DWORD = 0x40000000; pub const SHTDN_REASON_FLAG_PLANNED: ::DWORD = 0x80000000; // Microsoft major reasons. pub const SHTDN_REASON_MAJOR_OTHER: ::DWORD = 0x00000000; pub const SHTDN_REASON_MAJOR_NONE: ::DWORD = 0x00000000; pub const SHTDN_REASON_MAJOR_HARDWARE: ::DWORD = 0x00010000; pub const SHTDN_REASON_MAJOR_OPERATINGSYSTEM: ::DWORD = 0x00020000; pub const SHTDN_REASON_MAJOR_SOFTWARE: ::DWORD = 0x00030000; pub const SHTDN_REASON_MAJOR_APPLICATION: ::DWORD = 0x00040000; pub const SHTDN_REASON_MAJOR_SYSTEM: ::DWORD = 0x00050000; pub const SHTDN_REASON_MAJOR_POWER: ::DWORD = 0x00060000; pub const SHTDN_REASON_MAJOR_LEGACY_API: ::DWORD = 0x00070000; // Microsoft minor reasons. pub const SHTDN_REASON_MINOR_OTHER: ::DWORD = 0x00000000; pub const SHTDN_REASON_MINOR_NONE: ::DWORD = 0x000000ff; pub const SHTDN_REASON_MINOR_MAINTENANCE: ::DWORD = 0x00000001; pub const SHTDN_REASON_MINOR_INSTALLATION: ::DWORD = 0x00000002; pub const SHTDN_REASON_MINOR_UPGRADE: ::DWORD = 0x00000003; pub const SHTDN_REASON_MINOR_RECONFIG: ::DWORD = 0x00000004; pub const SHTDN_REASON_MINOR_HUNG: ::DWORD = 0x00000005; pub const SHTDN_REASON_MINOR_UNSTABLE: ::DWORD = 0x00000006; pub const SHTDN_REASON_MINOR_DISK: ::DWORD = 0x00000007; pub const SHTDN_REASON_MINOR_PROCESSOR: ::DWORD = 0x00000008; pub const SHTDN_REASON_MINOR_NETWORKCARD: ::DWORD = 0x00000009; pub const SHTDN_REASON_MINOR_POWER_SUPPLY: ::DWORD = 0x0000000a; pub const SHTDN_REASON_MINOR_CORDUNPLUGGED: ::DWORD = 0x0000000b; pub const SHTDN_REASON_MINOR_ENVIRONMENT: ::DWORD = 0x0000000c; pub const SHTDN_REASON_MINOR_HARDWARE_DRIVER: ::DWORD = 0x0000000d; pub const SHTDN_REASON_MINOR_OTHERDRIVER: ::DWORD = 0x0000000e; pub const SHTDN_REASON_MINOR_BLUESCREEN: ::DWORD = 0x0000000F; pub const SHTDN_REASON_MINOR_SERVICEPACK: ::DWORD = 0x00000010; pub const SHTDN_REASON_MINOR_HOTFIX: ::DWORD = 0x00000011; pub const SHTDN_REASON_MINOR_SECURITYFIX: ::DWORD = 0x00000012; pub const SHTDN_REASON_MINOR_SECURITY: ::DWORD = 0x00000013; pub const SHTDN_REASON_MINOR_NETWORK_CONNECTIVITY: ::DWORD = 0x00000014; pub const SHTDN_REASON_MINOR_WMI: ::DWORD = 0x00000015; pub const SHTDN_REASON_MINOR_SERVICEPACK_UNINSTALL: ::DWORD = 0x00000016; pub const SHTDN_REASON_MINOR_HOTFIX_UNINSTALL: ::DWORD = 0x00000017; pub const SHTDN_REASON_MINOR_SECURITYFIX_UNINSTALL: ::DWORD = 0x00000018; pub const SHTDN_REASON_MINOR_MMC: ::DWORD = 0x00000019; pub const SHTDN_REASON_MINOR_SYSTEMRESTORE: ::DWORD = 0x0000001a; pub const SHTDN_REASON_MINOR_TERMSRV: ::DWORD = 0x00000020; pub const SHTDN_REASON_MINOR_DC_PROMOTION: ::DWORD = 0x00000021; pub const SHTDN_REASON_MINOR_DC_DEMOTION: ::DWORD = 0x00000022; pub const SHTDN_REASON_UNKNOWN: ::DWORD = SHTDN_REASON_MINOR_NONE; pub const SHTDN_REASON_LEGACY_API: ::DWORD = (SHTDN_REASON_MAJOR_LEGACY_API | SHTDN_REASON_FLAG_PLANNED); // This mask cuts out UI flags. pub const SHTDN_REASON_VALID_BIT_MASK: ::DWORD = 0xc0ffffff; // Convenience flags. pub const PCLEANUI: ::DWORD = (SHTDN_REASON_FLAG_PLANNED | SHTDN_REASON_FLAG_CLEAN_UI); pub const UCLEANUI: ::DWORD = (SHTDN_REASON_FLAG_CLEAN_UI); pub const PDIRTYUI: ::DWORD = (SHTDN_REASON_FLAG_PLANNED | SHTDN_REASON_FLAG_DIRTY_UI); pub const UDIRTYUI: ::DWORD = (SHTDN_REASON_FLAG_DIRTY_UI); //89