Sync with trunk (48237)
[reactos.git] / include / ddk / wdm.h
index a8d34bc..3b4e063 100644 (file)
@@ -25,6 +25,9 @@
 #ifndef _WDMDDK_
 #define _WDMDDK_
 
+#define WDM_MAJORVERSION        0x06
+#define WDM_MINORVERSION        0x00
+
 /* Included via ntddk.h? */
 #ifndef _NTDDK_
 #define _NTDDK_
@@ -124,6 +127,15 @@ extern "C" {
 
 #endif
 
+#if defined(_WIN64)
+#if !defined(USE_DMA_MACROS) && !defined(_NTHAL_)
+#define USE_DMA_MACROS
+#endif
+#if !defined(NO_LEGACY_DRIVERS) && !defined(__REACTOS__)
+#define NO_LEGACY_DRIVERS
+#endif
+#endif /* defined(_WIN64) */
+
 /* Forward declarations */
 struct _IRP;
 struct _MDL;
@@ -153,7 +165,7 @@ typedef struct _KPROCESS *PKPROCESS;
 typedef struct _KTHREAD *PKTHREAD, *PRKTHREAD;
 typedef struct _CONTEXT *PCONTEXT;
 
-#if defined(USE_DMA_MACROS) && !defined(_NTHAL_) && ( defined(_NTDDK_) || defined(_NTDRIVER_) || defined(_NTOSP_))
+#if defined(USE_DMA_MACROS) && !defined(_NTHAL_)
 typedef struct _DMA_ADAPTER *PADAPTER_OBJECT;
 #elif defined(_WDM_INCLUDED_)
 typedef struct _DMA_ADAPTER *PADAPTER_OBJECT;
@@ -465,7 +477,7 @@ typedef struct _SLIST_ENTRY32 {
 } SLIST_ENTRY32, *PSLIST_ENTRY32;
 
 typedef union DECLSPEC_ALIGN(16) _SLIST_HEADER {
-  struct {
+  _ANONYMOUS_STRUCT struct {
     ULONGLONG Alignment;
     ULONGLONG Region;
   } DUMMYSTRUCTNAME;
@@ -497,7 +509,7 @@ typedef union DECLSPEC_ALIGN(16) _SLIST_HEADER {
 
 typedef union _SLIST_HEADER32 {
   ULONGLONG Alignment;
-  struct {
+  _ANONYMOUS_STRUCT struct {
     SLIST_ENTRY32 Next;
     USHORT Depth;
     USHORT Sequence;
@@ -514,7 +526,7 @@ typedef SLIST_ENTRY SLIST_ENTRY32, *PSLIST_ENTRY32;
 
 typedef union _SLIST_HEADER {
   ULONGLONG Alignment;
-  struct {
+  _ANONYMOUS_STRUCT struct {
     SLIST_ENTRY Next;
     USHORT Depth;
     USHORT Sequence;
@@ -551,7 +563,6 @@ typedef BOOLEAN
 (*PFN_RTL_IS_SERVICE_PACK_VERSION_INSTALLED)(
   IN ULONG Version);
 
-
 /******************************************************************************
  *                              Kernel Types                                  *
  ******************************************************************************/
@@ -610,7 +621,7 @@ typedef struct _CACHE_DESCRIPTOR {
 typedef struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION {
   ULONG_PTR ProcessorMask;
   LOGICAL_PROCESSOR_RELATIONSHIP Relationship;
-  union {
+  _ANONYMOUS_UNION union {
     struct {
       UCHAR Flags;
     } ProcessorCore;
@@ -618,7 +629,7 @@ typedef struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION {
       ULONG NodeNumber;
     } NumaNode;
     CACHE_DESCRIPTOR Cache;
-    ULONGLONG  Reserved[2];
+    ULONGLONG Reserved[2];
   } DUMMYUNIONNAME;
 } SYSTEM_LOGICAL_PROCESSOR_INFORMATION, *PSYSTEM_LOGICAL_PROCESSOR_INFORMATION;
 
@@ -662,7 +673,7 @@ typedef struct _GROUP_RELATIONSHIP {
 typedef struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX {
   LOGICAL_PROCESSOR_RELATIONSHIP Relationship;
   ULONG Size;
-  union {
+  _ANONYMOUS_UNION union {
     PROCESSOR_RELATIONSHIP Processor;
     NUMA_NODE_RELATIONSHIP NumaNode;
     CACHE_RELATIONSHIP Cache;
@@ -1232,13 +1243,13 @@ typedef struct _KDEVICE_QUEUE {
   LIST_ENTRY DeviceListHead;
   KSPIN_LOCK Lock;
   #if defined(_AMD64_)
-  union {
+  _ANONYMOUS_UNION union {
     BOOLEAN Busy;
-    struct {
+    _ANONYMOUS_STRUCT struct {
       LONG64 Reserved:8;
       LONG64 Hint:56;
-    };
-  };
+    } DUMMYSTRUCTNAME;
+  } DUMMYUNIONNAME;
   #else
   BOOLEAN Busy;
   #endif
@@ -1338,13 +1349,13 @@ typedef struct _KGUARDED_MUTEX {
   PKTHREAD Owner;
   ULONG Contention;
   KGATE Gate;
-  __GNU_EXTENSION union {
-    __GNU_EXTENSION struct {
+  _ANONYMOUS_UNION union {
+    _ANONYMOUS_STRUCT struct {
       SHORT KernelApcDisable;
       SHORT SpecialApcDisable;
-    };
+    } DUMMYSTRUCTNAME;
     ULONG CombinedApcDisable;
-  };
+  } DUMMYUNIONNAME;
 } KGUARDED_MUTEX, *PKGUARDED_MUTEX;
 
 typedef struct _KMUTANT {
@@ -1495,8 +1506,8 @@ typedef struct _XSTATE_SAVE {
 #elif defined(_IA64_)
   ULONG Dummy;
 #elif defined(_X86_)
-  union {
-    struct {
+  _ANONYMOUS_UNION union {
+    _ANONYMOUS_STRUCT struct {
       LONG64 Reserved1;
       ULONG Reserved2;
       struct _XSTATE_SAVE* Prev;
@@ -1504,9 +1515,9 @@ typedef struct _XSTATE_SAVE {
       struct _KTHREAD* Thread;
       PVOID Reserved4;
       UCHAR Level;
-    };
+    } DUMMYSTRUCTNAME;
     XSTATE_CONTEXT XStateContext;
-  };
+  } DUMMYUNIONNAME;
 #endif
 } XSTATE_SAVE, *PXSTATE_SAVE;
 
@@ -1584,16 +1595,15 @@ typedef ULONG NODE_REQUIREMENT;
 #define MDL_ALLOCATED_MUST_SUCCEED  0x4000
 #define MDL_INTERNAL                0x8000
 
-#define MDL_MAPPING_FLAGS ( \
-  MDL_MAPPED_TO_SYSTEM_VA     | \
-  MDL_PAGES_LOCKED            | \
-  MDL_SOURCE_IS_NONPAGED_POOL | \
-  MDL_PARTIAL_HAS_BEEN_MAPPED | \
-  MDL_PARENT_MAPPED_SYSTEM_VA | \
-  MDL_SYSTEM_VA               | \
-  MDL_IO_SPACE)
+#define MDL_MAPPING_FLAGS (MDL_MAPPED_TO_SYSTEM_VA     | \
+                           MDL_PAGES_LOCKED            | \
+                           MDL_SOURCE_IS_NONPAGED_POOL | \
+                           MDL_PARTIAL_HAS_BEEN_MAPPED | \
+                           MDL_PARENT_MAPPED_SYSTEM_VA | \
+                           MDL_SYSTEM_VA               | \
+                           MDL_IO_SPACE)
 
-#define FLUSH_MULTIPLE_MAXIMUM 32
+#define FLUSH_MULTIPLE_MAXIMUM       32
 
 /* Section access rights */
 #define SECTION_QUERY                0x0001
@@ -1603,17 +1613,17 @@ typedef ULONG NODE_REQUIREMENT;
 #define SECTION_EXTEND_SIZE          0x0010
 #define SECTION_MAP_EXECUTE_EXPLICIT 0x0020
 
-#define SECTION_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SECTION_QUERY|\
-                            SECTION_MAP_WRITE |      \
-                            SECTION_MAP_READ |       \
-                            SECTION_MAP_EXECUTE |    \
+#define SECTION_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SECTION_QUERY| \
+                            SECTION_MAP_WRITE |                     \
+                            SECTION_MAP_READ |                      \
+                            SECTION_MAP_EXECUTE |                   \
                             SECTION_EXTEND_SIZE)
 
-#define SESSION_QUERY_ACCESS  0x0001
-#define SESSION_MODIFY_ACCESS 0x0002
+#define SESSION_QUERY_ACCESS         0x0001
+#define SESSION_MODIFY_ACCESS        0x0002
 
 #define SESSION_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED |  \
-                            SESSION_QUERY_ACCESS |             \
+                            SESSION_QUERY_ACCESS     |  \
                             SESSION_MODIFY_ACCESS)
 
 #define SEGMENT_ALL_ACCESS SECTION_ALL_ACCESS
@@ -1694,14 +1704,13 @@ typedef enum _MM_SYSTEM_SIZE {
   MmLargeSystem
 } MM_SYSTEMSIZE;
 
-extern PBOOLEAN Mm64BitPhysicalAddress;
+extern NTKERNELAPI BOOLEAN Mm64BitPhysicalAddress;
 extern PVOID MmBadPointer;
 
 
 /******************************************************************************
  *                            Executive Types                                 *
  ******************************************************************************/
-
 #define EX_RUNDOWN_ACTIVE                 0x1
 #define EX_RUNDOWN_COUNT_SHIFT            0x1
 #define EX_RUNDOWN_COUNT_INC              (1 << EX_RUNDOWN_COUNT_SHIFT)
@@ -1784,40 +1793,36 @@ typedef VOID
 typedef CALLBACK_FUNCTION *PCALLBACK_FUNCTION;
 
 #define GENERAL_LOOKASIDE_LAYOUT                \
-    union {                                     \
+    _ANONYMOUS_UNION union {                    \
         SLIST_HEADER ListHead;                  \
         SINGLE_LIST_ENTRY SingleListHead;       \
     } DUMMYUNIONNAME;                           \
     USHORT Depth;                               \
     USHORT MaximumDepth;                        \
     ULONG TotalAllocates;                       \
-    union {                                     \
+    _ANONYMOUS_UNION union {                    \
         ULONG AllocateMisses;                   \
         ULONG AllocateHits;                     \
     } DUMMYUNIONNAME2;                          \
-                                                \
     ULONG TotalFrees;                           \
-    union {                                     \
+    _ANONYMOUS_UNION union {                    \
         ULONG FreeMisses;                       \
         ULONG FreeHits;                         \
     } DUMMYUNIONNAME3;                          \
-                                                \
     POOL_TYPE Type;                             \
     ULONG Tag;                                  \
     ULONG Size;                                 \
-    union {                                     \
+    _ANONYMOUS_UNION union {                    \
         PALLOCATE_FUNCTION_EX AllocateEx;       \
         PALLOCATE_FUNCTION Allocate;            \
     } DUMMYUNIONNAME4;                          \
-                                                \
-    union {                                     \
+    _ANONYMOUS_UNION union {                    \
         PFREE_FUNCTION_EX FreeEx;               \
         PFREE_FUNCTION Free;                    \
     } DUMMYUNIONNAME5;                          \
-                                                \
     LIST_ENTRY ListEntry;                       \
     ULONG LastTotalAllocates;                   \
-    union {                                     \
+    _ANONYMOUS_UNION union {                    \
         ULONG LastAllocateMisses;               \
         ULONG LastAllocateHits;                 \
     } DUMMYUNIONNAME6;                          \
@@ -1869,10 +1874,10 @@ typedef struct _LOOKASIDE_LIST_EX {
 #endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
 
 typedef struct _EX_RUNDOWN_REF {
-  __GNU_EXTENSION union {
+  _ANONYMOUS_UNION union {
     volatile ULONG_PTR Count;
     volatile PVOID Ptr;
-  };
+  } DUMMYUNIONNAME;
 } EX_RUNDOWN_REF, *PEX_RUNDOWN_REF;
 
 typedef struct _EX_RUNDOWN_REF_CACHE_AWARE *PEX_RUNDOWN_REF_CACHE_AWARE;
@@ -1899,14 +1904,14 @@ typedef ULONG_PTR ERESOURCE_THREAD, *PERESOURCE_THREAD;
 
 typedef struct _OWNER_ENTRY {
   ERESOURCE_THREAD OwnerThread;
-  union {
-    struct {
+  _ANONYMOUS_UNION union {
+    _ANONYMOUS_STRUCT struct {
       ULONG IoPriorityBoosted:1;
       ULONG OwnerReferenced:1;
       ULONG OwnerCount:30;
-    };
+    } DUMMYSTRUCTNAME;
     ULONG TableSize;
-  };
+  } DUMMYUNIONNAME;
 } OWNER_ENTRY, *POWNER_ENTRY;
 
 typedef struct _ERESOURCE {
@@ -1924,10 +1929,10 @@ typedef struct _ERESOURCE {
 #if defined(_WIN64)
   PVOID Reserved2;
 #endif
-  __GNU_EXTENSION union {
+  _ANONYMOUS_UNION union {
     PVOID Address;
     ULONG_PTR CreatorBackTraceIndex;
-  };
+  } DUMMYUNIONNAME;
   KSPIN_LOCK SpinLock;
 } ERESOURCE, *PERESOURCE;
 
@@ -1967,7 +1972,6 @@ extern ULONG NtGlobalFlag;
 #define IF_NTOS_DEBUG(FlagName) if(FALSE)
 #endif
 
-
 /******************************************************************************
  *                            Security Manager Types                          *
  ******************************************************************************/
@@ -2272,7 +2276,6 @@ typedef struct _SE_ADT_PARAMETER_ARRAY {
 
 #endif /* !_NTLSA_AUDIT_ */
 #endif /* !_NTLSA_IFS_ */
-
 /******************************************************************************
  *                            Power Management Support Types                  *
  ******************************************************************************/
@@ -2395,8 +2398,8 @@ typedef enum _POWER_STATE_TYPE {
 
 #if (NTDDI_VERSION >= NTDDI_VISTA)
 typedef struct _SYSTEM_POWER_STATE_CONTEXT {
-  union {
-    struct {
+  _ANONYMOUS_UNION union {
+    _ANONYMOUS_STRUCT struct {
       ULONG Reserved1:8;
       ULONG TargetSystemState:4;
       ULONG EffectiveSystemState:4;
@@ -2414,8 +2417,8 @@ typedef struct _SYSTEM_POWER_STATE_CONTEXT {
 typedef struct _COUNTED_REASON_CONTEXT {
   ULONG Version;
   ULONG Flags;
-  union {
-    struct {
+  _ANONYMOUS_UNION union {
+    _ANONYMOUS_STRUCT struct {
       UNICODE_STRING ResourceFileName;
       USHORT ResourceReasonId;
       ULONG StringCount;
@@ -2545,74 +2548,74 @@ typedef struct {
 #define CORE_PARKING_POLICY_CHANGE_ROCKET        2
 #define CORE_PARKING_POLICY_CHANGE_MAX           CORE_PARKING_POLICY_CHANGE_ROCKET
 
-DEFINE_GUID(GUID_MAX_POWER_SAVINGS, 0xA1841308, 0x3541, 0x4FAB, 0xBC, 0x81, 0xF7, 0x15, 0x56, 0xF2, 0x0B, 0x4A );
-DEFINE_GUID(GUID_MIN_POWER_SAVINGS, 0x8C5E7FDA, 0xE8BF, 0x4A96, 0x9A, 0x85, 0xA6, 0xE2, 0x3A, 0x8C, 0x63, 0x5C );
-DEFINE_GUID(GUID_TYPICAL_POWER_SAVINGS, 0x381B4222, 0xF694, 0x41F0, 0x96, 0x85, 0xFF, 0x5B, 0xB2, 0x60, 0xDF, 0x2E );
-DEFINE_GUID(NO_SUBGROUP_GUID, 0xFEA3413E, 0x7E05, 0x4911, 0x9A, 0x71, 0x70, 0x03, 0x31, 0xF1, 0xC2, 0x94 );
-DEFINE_GUID(ALL_POWERSCHEMES_GUID, 0x68A1E95E, 0x13EA, 0x41E1, 0x80, 0x11, 0x0C, 0x49, 0x6C, 0xA4, 0x90, 0xB0 );
-DEFINE_GUID(GUID_POWERSCHEME_PERSONALITY, 0x245D8541, 0x3943, 0x4422, 0xB0, 0x25, 0x13, 0xA7, 0x84, 0xF6, 0x79, 0xB7 );
-DEFINE_GUID(GUID_ACTIVE_POWERSCHEME, 0x31F9F286, 0x5084, 0x42FE, 0xB7, 0x20, 0x2B, 0x02, 0x64, 0x99, 0x37, 0x63 );
-DEFINE_GUID(GUID_VIDEO_SUBGROUP, 0x7516B95F, 0xF776, 0x4464, 0x8C, 0x53, 0x06, 0x16, 0x7F, 0x40, 0xCC, 0x99 );
-DEFINE_GUID(GUID_VIDEO_POWERDOWN_TIMEOUT, 0x3C0BC021, 0xC8A8, 0x4E07, 0xA9, 0x73, 0x6B, 0x14, 0xCB, 0xCB, 0x2B, 0x7E );
-DEFINE_GUID(GUID_VIDEO_ANNOYANCE_TIMEOUT, 0x82DBCF2D, 0xCD67, 0x40C5, 0xBF, 0xDC, 0x9F, 0x1A, 0x5C, 0xCD, 0x46, 0x63 );
-DEFINE_GUID(GUID_VIDEO_ADAPTIVE_PERCENT_INCREASE, 0xEED904DF, 0xB142, 0x4183, 0xB1, 0x0B, 0x5A, 0x11, 0x97, 0xA3, 0x78, 0x64 );
+DEFINE_GUID(GUID_MAX_POWER_SAVINGS, 0xA1841308, 0x3541, 0x4FAB, 0xBC, 0x81, 0xF7, 0x15, 0x56, 0xF2, 0x0B, 0x4A);
+DEFINE_GUID(GUID_MIN_POWER_SAVINGS, 0x8C5E7FDA, 0xE8BF, 0x4A96, 0x9A, 0x85, 0xA6, 0xE2, 0x3A, 0x8C, 0x63, 0x5C);
+DEFINE_GUID(GUID_TYPICAL_POWER_SAVINGS, 0x381B4222, 0xF694, 0x41F0, 0x96, 0x85, 0xFF, 0x5B, 0xB2, 0x60, 0xDF, 0x2E);
+DEFINE_GUID(NO_SUBGROUP_GUID, 0xFEA3413E, 0x7E05, 0x4911, 0x9A, 0x71, 0x70, 0x03, 0x31, 0xF1, 0xC2, 0x94);
+DEFINE_GUID(ALL_POWERSCHEMES_GUID, 0x68A1E95E, 0x13EA, 0x41E1, 0x80, 0x11, 0x0C, 0x49, 0x6C, 0xA4, 0x90, 0xB0);
+DEFINE_GUID(GUID_POWERSCHEME_PERSONALITY, 0x245D8541, 0x3943, 0x4422, 0xB0, 0x25, 0x13, 0xA7, 0x84, 0xF6, 0x79, 0xB7);
+DEFINE_GUID(GUID_ACTIVE_POWERSCHEME, 0x31F9F286, 0x5084, 0x42FE, 0xB7, 0x20, 0x2B, 0x02, 0x64, 0x99, 0x37, 0x63);
+DEFINE_GUID(GUID_VIDEO_SUBGROUP, 0x7516B95F, 0xF776, 0x4464, 0x8C, 0x53, 0x06, 0x16, 0x7F, 0x40, 0xCC, 0x99);
+DEFINE_GUID(GUID_VIDEO_POWERDOWN_TIMEOUT, 0x3C0BC021, 0xC8A8, 0x4E07, 0xA9, 0x73, 0x6B, 0x14, 0xCB, 0xCB, 0x2B, 0x7E);
+DEFINE_GUID(GUID_VIDEO_ANNOYANCE_TIMEOUT, 0x82DBCF2D, 0xCD67, 0x40C5, 0xBF, 0xDC, 0x9F, 0x1A, 0x5C, 0xCD, 0x46, 0x63);
+DEFINE_GUID(GUID_VIDEO_ADAPTIVE_PERCENT_INCREASE, 0xEED904DF, 0xB142, 0x4183, 0xB1, 0x0B, 0x5A, 0x11, 0x97, 0xA3, 0x78, 0x64);
 DEFINE_GUID(GUID_VIDEO_DIM_TIMEOUT, 0x17aaa29b, 0x8b43, 0x4b94, 0xaa, 0xfe, 0x35, 0xf6, 0x4d, 0xaa, 0xf1, 0xee);
-DEFINE_GUID(GUID_VIDEO_ADAPTIVE_POWERDOWN, 0x90959D22, 0xD6A1, 0x49B9, 0xAF, 0x93, 0xBC, 0xE8, 0x85, 0xAD, 0x33, 0x5B );
-DEFINE_GUID(GUID_MONITOR_POWER_ON, 0x02731015, 0x4510, 0x4526, 0x99, 0xE6, 0xE5, 0xA1, 0x7E, 0xBD, 0x1A, 0xEA );
+DEFINE_GUID(GUID_VIDEO_ADAPTIVE_POWERDOWN, 0x90959D22, 0xD6A1, 0x49B9, 0xAF, 0x93, 0xBC, 0xE8, 0x85, 0xAD, 0x33, 0x5B);
+DEFINE_GUID(GUID_MONITOR_POWER_ON, 0x02731015, 0x4510, 0x4526, 0x99, 0xE6, 0xE5, 0xA1, 0x7E, 0xBD, 0x1A, 0xEA);
 DEFINE_GUID(GUID_DEVICE_POWER_POLICY_VIDEO_BRIGHTNESS, 0xaded5e82L, 0xb909, 0x4619, 0x99, 0x49, 0xf5, 0xd7, 0x1d, 0xac, 0x0b, 0xcb);
 DEFINE_GUID(GUID_DEVICE_POWER_POLICY_VIDEO_DIM_BRIGHTNESS, 0xf1fbfde2, 0xa960, 0x4165, 0x9f, 0x88, 0x50, 0x66, 0x79, 0x11, 0xce, 0x96);
 DEFINE_GUID(GUID_VIDEO_CURRENT_MONITOR_BRIGHTNESS, 0x8ffee2c6, 0x2d01, 0x46be, 0xad, 0xb9, 0x39, 0x8a, 0xdd, 0xc5, 0xb4, 0xff);
 DEFINE_GUID(GUID_VIDEO_ADAPTIVE_DISPLAY_BRIGHTNESS, 0xFBD9AA66, 0x9553, 0x4097, 0xBA, 0x44, 0xED, 0x6E, 0x9D, 0x65, 0xEA, 0xB8);
-DEFINE_GUID(GUID_SESSION_DISPLAY_STATE, 0x73A5E93A, 0x5BB1, 0x4F93, 0x89, 0x5B, 0xDB, 0xD0, 0xDA, 0x85, 0x59, 0x67 );
+DEFINE_GUID(GUID_SESSION_DISPLAY_STATE, 0x73A5E93A, 0x5BB1, 0x4F93, 0x89, 0x5B, 0xDB, 0xD0, 0xDA, 0x85, 0x59, 0x67);
 DEFINE_GUID(GUID_CONSOLE_DISPLAY_STATE, 0x6fe69556, 0x704a, 0x47a0, 0x8f, 0x24, 0xc2, 0x8d, 0x93, 0x6f, 0xda, 0x47);
-DEFINE_GUID(GUID_ALLOW_DISPLAY_REQUIRED, 0xA9CEB8DA, 0xCD46, 0x44FB, 0xA9, 0x8B, 0x02, 0xAF, 0x69, 0xDE, 0x46, 0x23 );
-DEFINE_GUID(GUID_DISK_SUBGROUP, 0x0012EE47, 0x9041, 0x4B5D, 0x9B, 0x77, 0x53, 0x5F, 0xBA, 0x8B, 0x14, 0x42 );
-DEFINE_GUID(GUID_DISK_POWERDOWN_TIMEOUT, 0x6738E2C4, 0xE8A5, 0x4A42, 0xB1, 0x6A, 0xE0, 0x40, 0xE7, 0x69, 0x75, 0x6E );
-DEFINE_GUID(GUID_DISK_BURST_IGNORE_THRESHOLD, 0x80e3c60e, 0xbb94, 0x4ad8, 0xbb, 0xe0, 0x0d, 0x31, 0x95, 0xef, 0xc6, 0x63 );
-DEFINE_GUID(GUID_DISK_ADAPTIVE_POWERDOWN, 0x396A32E1, 0x499A, 0x40B2, 0x91, 0x24, 0xA9, 0x6A, 0xFE, 0x70, 0x76, 0x67 );
-DEFINE_GUID(GUID_SLEEP_SUBGROUP, 0x238C9FA8, 0x0AAD, 0x41ED, 0x83, 0xF4, 0x97, 0xBE, 0x24, 0x2C, 0x8F, 0x20 );
-DEFINE_GUID(GUID_SLEEP_IDLE_THRESHOLD, 0x81cd32e0, 0x7833, 0x44f3, 0x87, 0x37, 0x70, 0x81, 0xf3, 0x8d, 0x1f, 0x70 );
-DEFINE_GUID(GUID_STANDBY_TIMEOUT, 0x29F6C1DB, 0x86DA, 0x48C5, 0x9F, 0xDB, 0xF2, 0xB6, 0x7B, 0x1F, 0x44, 0xDA );
-DEFINE_GUID(GUID_UNATTEND_SLEEP_TIMEOUT, 0x7bc4a2f9, 0xd8fc, 0x4469, 0xb0, 0x7b, 0x33, 0xeb, 0x78, 0x5a, 0xac, 0xa0 );
-DEFINE_GUID(GUID_HIBERNATE_TIMEOUT, 0x9D7815A6, 0x7EE4, 0x497E, 0x88, 0x88, 0x51, 0x5A, 0x05, 0xF0, 0x23, 0x64 );
-DEFINE_GUID(GUID_HIBERNATE_FASTS4_POLICY, 0x94AC6D29, 0x73CE, 0x41A6, 0x80, 0x9F, 0x63, 0x63, 0xBA, 0x21, 0xB4, 0x7E );
+DEFINE_GUID(GUID_ALLOW_DISPLAY_REQUIRED, 0xA9CEB8DA, 0xCD46, 0x44FB, 0xA9, 0x8B, 0x02, 0xAF, 0x69, 0xDE, 0x46, 0x23);
+DEFINE_GUID(GUID_DISK_SUBGROUP, 0x0012EE47, 0x9041, 0x4B5D, 0x9B, 0x77, 0x53, 0x5F, 0xBA, 0x8B, 0x14, 0x42);
+DEFINE_GUID(GUID_DISK_POWERDOWN_TIMEOUT, 0x6738E2C4, 0xE8A5, 0x4A42, 0xB1, 0x6A, 0xE0, 0x40, 0xE7, 0x69, 0x75, 0x6E);
+DEFINE_GUID(GUID_DISK_BURST_IGNORE_THRESHOLD, 0x80e3c60e, 0xbb94, 0x4ad8, 0xbb, 0xe0, 0x0d, 0x31, 0x95, 0xef, 0xc6, 0x63);
+DEFINE_GUID(GUID_DISK_ADAPTIVE_POWERDOWN, 0x396A32E1, 0x499A, 0x40B2, 0x91, 0x24, 0xA9, 0x6A, 0xFE, 0x70, 0x76, 0x67);
+DEFINE_GUID(GUID_SLEEP_SUBGROUP, 0x238C9FA8, 0x0AAD, 0x41ED, 0x83, 0xF4, 0x97, 0xBE, 0x24, 0x2C, 0x8F, 0x20);
+DEFINE_GUID(GUID_SLEEP_IDLE_THRESHOLD, 0x81cd32e0, 0x7833, 0x44f3, 0x87, 0x37, 0x70, 0x81, 0xf3, 0x8d, 0x1f, 0x70);
+DEFINE_GUID(GUID_STANDBY_TIMEOUT, 0x29F6C1DB, 0x86DA, 0x48C5, 0x9F, 0xDB, 0xF2, 0xB6, 0x7B, 0x1F, 0x44, 0xDA);
+DEFINE_GUID(GUID_UNATTEND_SLEEP_TIMEOUT, 0x7bc4a2f9, 0xd8fc, 0x4469, 0xb0, 0x7b, 0x33, 0xeb, 0x78, 0x5a, 0xac, 0xa0);
+DEFINE_GUID(GUID_HIBERNATE_TIMEOUT, 0x9D7815A6, 0x7EE4, 0x497E, 0x88, 0x88, 0x51, 0x5A, 0x05, 0xF0, 0x23, 0x64);
+DEFINE_GUID(GUID_HIBERNATE_FASTS4_POLICY, 0x94AC6D29, 0x73CE, 0x41A6, 0x80, 0x9F, 0x63, 0x63, 0xBA, 0x21, 0xB4, 0x7E);
 DEFINE_GUID(GUID_CRITICAL_POWER_TRANSITION,  0xB7A27025, 0xE569, 0x46c2, 0xA5, 0x04, 0x2B, 0x96, 0xCA, 0xD2, 0x25, 0xA1);
-DEFINE_GUID(GUID_SYSTEM_AWAYMODE, 0x98A7F580, 0x01F7, 0x48AA, 0x9C, 0x0F, 0x44, 0x35, 0x2C, 0x29, 0xE5, 0xC0 );
-DEFINE_GUID(GUID_ALLOW_AWAYMODE, 0x25dfa149, 0x5dd1, 0x4736, 0xb5, 0xab, 0xe8, 0xa3, 0x7b, 0x5b, 0x81, 0x87 );
-DEFINE_GUID(GUID_ALLOW_STANDBY_STATES, 0xabfc2519, 0x3608, 0x4c2a, 0x94, 0xea, 0x17, 0x1b, 0x0e, 0xd5, 0x46, 0xab );
-DEFINE_GUID(GUID_ALLOW_RTC_WAKE, 0xBD3B718A, 0x0680, 0x4D9D, 0x8A, 0xB2, 0xE1, 0xD2, 0xB4, 0xAC, 0x80, 0x6D );
-DEFINE_GUID(GUID_ALLOW_SYSTEM_REQUIRED, 0xA4B195F5, 0x8225, 0x47D8, 0x80, 0x12, 0x9D, 0x41, 0x36, 0x97, 0x86, 0xE2 );
-DEFINE_GUID(GUID_SYSTEM_BUTTON_SUBGROUP, 0x4F971E89, 0xEEBD, 0x4455, 0xA8, 0xDE, 0x9E, 0x59, 0x04, 0x0E, 0x73, 0x47 );
-DEFINE_GUID(GUID_POWERBUTTON_ACTION, 0x7648EFA3, 0xDD9C, 0x4E3E, 0xB5, 0x66, 0x50, 0xF9, 0x29, 0x38, 0x62, 0x80 );
-DEFINE_GUID(GUID_POWERBUTTON_ACTION_FLAGS, 0x857E7FAC, 0x034B, 0x4704, 0xAB, 0xB1, 0xBC, 0xA5, 0x4A, 0xA3, 0x14, 0x78 );
-DEFINE_GUID(GUID_SLEEPBUTTON_ACTION, 0x96996BC0, 0xAD50, 0x47EC, 0x92, 0x3B, 0x6F, 0x41, 0x87, 0x4D, 0xD9, 0xEB );
-DEFINE_GUID(GUID_SLEEPBUTTON_ACTION_FLAGS, 0x2A160AB1, 0xB69D, 0x4743, 0xB7, 0x18, 0xBF, 0x14, 0x41, 0xD5, 0xE4, 0x93 );
-DEFINE_GUID(GUID_USERINTERFACEBUTTON_ACTION, 0xA7066653, 0x8D6C, 0x40A8, 0x91, 0x0E, 0xA1, 0xF5, 0x4B, 0x84, 0xC7, 0xE5 );
-DEFINE_GUID(GUID_LIDCLOSE_ACTION, 0x5CA83367, 0x6E45, 0x459F, 0xA2, 0x7B, 0x47, 0x6B, 0x1D, 0x01, 0xC9, 0x36 );
-DEFINE_GUID(GUID_LIDCLOSE_ACTION_FLAGS, 0x97E969AC, 0x0D6C, 0x4D08, 0x92, 0x7C, 0xD7, 0xBD, 0x7A, 0xD7, 0x85, 0x7B );
-DEFINE_GUID(GUID_LIDOPEN_POWERSTATE, 0x99FF10E7, 0x23B1, 0x4C07, 0xA9, 0xD1, 0x5C, 0x32, 0x06, 0xD7, 0x41, 0xB4 );
-DEFINE_GUID(GUID_BATTERY_SUBGROUP, 0xE73A048D, 0xBF27, 0x4F12, 0x97, 0x31, 0x8B, 0x20, 0x76, 0xE8, 0x89, 0x1F );
-DEFINE_GUID(GUID_BATTERY_DISCHARGE_ACTION_0, 0x637EA02F, 0xBBCB, 0x4015, 0x8E, 0x2C, 0xA1, 0xC7, 0xB9, 0xC0, 0xB5, 0x46 );
-DEFINE_GUID(GUID_BATTERY_DISCHARGE_LEVEL_0, 0x9A66D8D7, 0x4FF7, 0x4EF9, 0xB5, 0xA2, 0x5A, 0x32, 0x6C, 0xA2, 0xA4, 0x69 );
-DEFINE_GUID(GUID_BATTERY_DISCHARGE_FLAGS_0, 0x5dbb7c9f, 0x38e9, 0x40d2, 0x97, 0x49, 0x4f, 0x8a, 0x0e, 0x9f, 0x64, 0x0f );
-DEFINE_GUID(GUID_BATTERY_DISCHARGE_ACTION_1, 0xD8742DCB, 0x3E6A, 0x4B3C, 0xB3, 0xFE, 0x37, 0x46, 0x23, 0xCD, 0xCF, 0x06 );
-DEFINE_GUID(GUID_BATTERY_DISCHARGE_LEVEL_1, 0x8183BA9A, 0xE910, 0x48DA, 0x87, 0x69, 0x14, 0xAE, 0x6D, 0xC1, 0x17, 0x0A );
-DEFINE_GUID(GUID_BATTERY_DISCHARGE_FLAGS_1, 0xbcded951, 0x187b, 0x4d05, 0xbc, 0xcc, 0xf7, 0xe5, 0x19, 0x60, 0xc2, 0x58 );
-DEFINE_GUID(GUID_BATTERY_DISCHARGE_ACTION_2, 0x421CBA38, 0x1A8E, 0x4881, 0xAC, 0x89, 0xE3, 0x3A, 0x8B, 0x04, 0xEC, 0xE4 );
-DEFINE_GUID(GUID_BATTERY_DISCHARGE_LEVEL_2, 0x07A07CA2, 0xADAF, 0x40D7, 0xB0, 0x77, 0x53, 0x3A, 0xAD, 0xED, 0x1B, 0xFA );
-DEFINE_GUID(GUID_BATTERY_DISCHARGE_FLAGS_2, 0x7fd2f0c4, 0xfeb7, 0x4da3, 0x81, 0x17, 0xe3, 0xfb, 0xed, 0xc4, 0x65, 0x82 );
-DEFINE_GUID(GUID_BATTERY_DISCHARGE_ACTION_3, 0x80472613, 0x9780, 0x455E, 0xB3, 0x08, 0x72, 0xD3, 0x00, 0x3C, 0xF2, 0xF8 );
-DEFINE_GUID(GUID_BATTERY_DISCHARGE_LEVEL_3, 0x58AFD5A6, 0xC2DD, 0x47D2, 0x9F, 0xBF, 0xEF, 0x70, 0xCC, 0x5C, 0x59, 0x65 );
-DEFINE_GUID(GUID_BATTERY_DISCHARGE_FLAGS_3, 0x73613ccf, 0xdbfa, 0x4279, 0x83, 0x56, 0x49, 0x35, 0xf6, 0xbf, 0x62, 0xf3 );
-DEFINE_GUID(GUID_PROCESSOR_SETTINGS_SUBGROUP, 0x54533251, 0x82BE, 0x4824, 0x96, 0xC1, 0x47, 0xB6, 0x0B, 0x74, 0x0D, 0x00 );
-DEFINE_GUID(GUID_PROCESSOR_THROTTLE_POLICY, 0x57027304, 0x4AF6, 0x4104, 0x92, 0x60, 0xE3, 0xD9, 0x52, 0x48, 0xFC, 0x36 );
-DEFINE_GUID(GUID_PROCESSOR_THROTTLE_MAXIMUM, 0xBC5038F7, 0x23E0, 0x4960, 0x96, 0xDA, 0x33, 0xAB, 0xAF, 0x59, 0x35, 0xEC );
-DEFINE_GUID(GUID_PROCESSOR_THROTTLE_MINIMUM, 0x893DEE8E, 0x2BEF, 0x41E0, 0x89, 0xC6, 0xB5, 0x5D, 0x09, 0x29, 0x96, 0x4C );
-DEFINE_GUID(GUID_PROCESSOR_ALLOW_THROTTLING, 0x3b04d4fd, 0x1cc7, 0x4f23, 0xab, 0x1c, 0xd1, 0x33, 0x78, 0x19, 0xc4, 0xbb );
+DEFINE_GUID(GUID_SYSTEM_AWAYMODE, 0x98A7F580, 0x01F7, 0x48AA, 0x9C, 0x0F, 0x44, 0x35, 0x2C, 0x29, 0xE5, 0xC0);
+DEFINE_GUID(GUID_ALLOW_AWAYMODE, 0x25dfa149, 0x5dd1, 0x4736, 0xb5, 0xab, 0xe8, 0xa3, 0x7b, 0x5b, 0x81, 0x87);
+DEFINE_GUID(GUID_ALLOW_STANDBY_STATES, 0xabfc2519, 0x3608, 0x4c2a, 0x94, 0xea, 0x17, 0x1b, 0x0e, 0xd5, 0x46, 0xab);
+DEFINE_GUID(GUID_ALLOW_RTC_WAKE, 0xBD3B718A, 0x0680, 0x4D9D, 0x8A, 0xB2, 0xE1, 0xD2, 0xB4, 0xAC, 0x80, 0x6D);
+DEFINE_GUID(GUID_ALLOW_SYSTEM_REQUIRED, 0xA4B195F5, 0x8225, 0x47D8, 0x80, 0x12, 0x9D, 0x41, 0x36, 0x97, 0x86, 0xE2);
+DEFINE_GUID(GUID_SYSTEM_BUTTON_SUBGROUP, 0x4F971E89, 0xEEBD, 0x4455, 0xA8, 0xDE, 0x9E, 0x59, 0x04, 0x0E, 0x73, 0x47);
+DEFINE_GUID(GUID_POWERBUTTON_ACTION, 0x7648EFA3, 0xDD9C, 0x4E3E, 0xB5, 0x66, 0x50, 0xF9, 0x29, 0x38, 0x62, 0x80);
+DEFINE_GUID(GUID_POWERBUTTON_ACTION_FLAGS, 0x857E7FAC, 0x034B, 0x4704, 0xAB, 0xB1, 0xBC, 0xA5, 0x4A, 0xA3, 0x14, 0x78);
+DEFINE_GUID(GUID_SLEEPBUTTON_ACTION, 0x96996BC0, 0xAD50, 0x47EC, 0x92, 0x3B, 0x6F, 0x41, 0x87, 0x4D, 0xD9, 0xEB);
+DEFINE_GUID(GUID_SLEEPBUTTON_ACTION_FLAGS, 0x2A160AB1, 0xB69D, 0x4743, 0xB7, 0x18, 0xBF, 0x14, 0x41, 0xD5, 0xE4, 0x93);
+DEFINE_GUID(GUID_USERINTERFACEBUTTON_ACTION, 0xA7066653, 0x8D6C, 0x40A8, 0x91, 0x0E, 0xA1, 0xF5, 0x4B, 0x84, 0xC7, 0xE5);
+DEFINE_GUID(GUID_LIDCLOSE_ACTION, 0x5CA83367, 0x6E45, 0x459F, 0xA2, 0x7B, 0x47, 0x6B, 0x1D, 0x01, 0xC9, 0x36);
+DEFINE_GUID(GUID_LIDCLOSE_ACTION_FLAGS, 0x97E969AC, 0x0D6C, 0x4D08, 0x92, 0x7C, 0xD7, 0xBD, 0x7A, 0xD7, 0x85, 0x7B);
+DEFINE_GUID(GUID_LIDOPEN_POWERSTATE, 0x99FF10E7, 0x23B1, 0x4C07, 0xA9, 0xD1, 0x5C, 0x32, 0x06, 0xD7, 0x41, 0xB4);
+DEFINE_GUID(GUID_BATTERY_SUBGROUP, 0xE73A048D, 0xBF27, 0x4F12, 0x97, 0x31, 0x8B, 0x20, 0x76, 0xE8, 0x89, 0x1F);
+DEFINE_GUID(GUID_BATTERY_DISCHARGE_ACTION_0, 0x637EA02F, 0xBBCB, 0x4015, 0x8E, 0x2C, 0xA1, 0xC7, 0xB9, 0xC0, 0xB5, 0x46);
+DEFINE_GUID(GUID_BATTERY_DISCHARGE_LEVEL_0, 0x9A66D8D7, 0x4FF7, 0x4EF9, 0xB5, 0xA2, 0x5A, 0x32, 0x6C, 0xA2, 0xA4, 0x69);
+DEFINE_GUID(GUID_BATTERY_DISCHARGE_FLAGS_0, 0x5dbb7c9f, 0x38e9, 0x40d2, 0x97, 0x49, 0x4f, 0x8a, 0x0e, 0x9f, 0x64, 0x0f);
+DEFINE_GUID(GUID_BATTERY_DISCHARGE_ACTION_1, 0xD8742DCB, 0x3E6A, 0x4B3C, 0xB3, 0xFE, 0x37, 0x46, 0x23, 0xCD, 0xCF, 0x06);
+DEFINE_GUID(GUID_BATTERY_DISCHARGE_LEVEL_1, 0x8183BA9A, 0xE910, 0x48DA, 0x87, 0x69, 0x14, 0xAE, 0x6D, 0xC1, 0x17, 0x0A);
+DEFINE_GUID(GUID_BATTERY_DISCHARGE_FLAGS_1, 0xbcded951, 0x187b, 0x4d05, 0xbc, 0xcc, 0xf7, 0xe5, 0x19, 0x60, 0xc2, 0x58);
+DEFINE_GUID(GUID_BATTERY_DISCHARGE_ACTION_2, 0x421CBA38, 0x1A8E, 0x4881, 0xAC, 0x89, 0xE3, 0x3A, 0x8B, 0x04, 0xEC, 0xE4);
+DEFINE_GUID(GUID_BATTERY_DISCHARGE_LEVEL_2, 0x07A07CA2, 0xADAF, 0x40D7, 0xB0, 0x77, 0x53, 0x3A, 0xAD, 0xED, 0x1B, 0xFA);
+DEFINE_GUID(GUID_BATTERY_DISCHARGE_FLAGS_2, 0x7fd2f0c4, 0xfeb7, 0x4da3, 0x81, 0x17, 0xe3, 0xfb, 0xed, 0xc4, 0x65, 0x82);
+DEFINE_GUID(GUID_BATTERY_DISCHARGE_ACTION_3, 0x80472613, 0x9780, 0x455E, 0xB3, 0x08, 0x72, 0xD3, 0x00, 0x3C, 0xF2, 0xF8);
+DEFINE_GUID(GUID_BATTERY_DISCHARGE_LEVEL_3, 0x58AFD5A6, 0xC2DD, 0x47D2, 0x9F, 0xBF, 0xEF, 0x70, 0xCC, 0x5C, 0x59, 0x65);
+DEFINE_GUID(GUID_BATTERY_DISCHARGE_FLAGS_3, 0x73613ccf, 0xdbfa, 0x4279, 0x83, 0x56, 0x49, 0x35, 0xf6, 0xbf, 0x62, 0xf3);
+DEFINE_GUID(GUID_PROCESSOR_SETTINGS_SUBGROUP, 0x54533251, 0x82BE, 0x4824, 0x96, 0xC1, 0x47, 0xB6, 0x0B, 0x74, 0x0D, 0x00);
+DEFINE_GUID(GUID_PROCESSOR_THROTTLE_POLICY, 0x57027304, 0x4AF6, 0x4104, 0x92, 0x60, 0xE3, 0xD9, 0x52, 0x48, 0xFC, 0x36);
+DEFINE_GUID(GUID_PROCESSOR_THROTTLE_MAXIMUM, 0xBC5038F7, 0x23E0, 0x4960, 0x96, 0xDA, 0x33, 0xAB, 0xAF, 0x59, 0x35, 0xEC);
+DEFINE_GUID(GUID_PROCESSOR_THROTTLE_MINIMUM, 0x893DEE8E, 0x2BEF, 0x41E0, 0x89, 0xC6, 0xB5, 0x5D, 0x09, 0x29, 0x96, 0x4C);
+DEFINE_GUID(GUID_PROCESSOR_ALLOW_THROTTLING, 0x3b04d4fd, 0x1cc7, 0x4f23, 0xab, 0x1c, 0xd1, 0x33, 0x78, 0x19, 0xc4, 0xbb);
 DEFINE_GUID(GUID_PROCESSOR_IDLESTATE_POLICY, 0x68f262a7, 0xf621, 0x4069, 0xb9, 0xa5, 0x48, 0x74, 0x16, 0x9b, 0xe2, 0x3c);
 DEFINE_GUID(GUID_PROCESSOR_PERFSTATE_POLICY, 0xBBDC3814, 0x18E9, 0x4463, 0x8A, 0x55, 0xD1, 0x97, 0x32, 0x7C, 0x45, 0xC0);
-DEFINE_GUID(GUID_PROCESSOR_PERF_INCREASE_THRESHOLD, 0x06cadf0e, 0x64ed, 0x448a, 0x89, 0x27, 0xce, 0x7b, 0xf9, 0x0e, 0xb3, 0x5d );
-DEFINE_GUID(GUID_PROCESSOR_PERF_DECREASE_THRESHOLD, 0x12a0ab44, 0xfe28, 0x4fa9, 0xb3, 0xbd, 0x4b, 0x64, 0xf4, 0x49, 0x60, 0xa6 );
+DEFINE_GUID(GUID_PROCESSOR_PERF_INCREASE_THRESHOLD, 0x06cadf0e, 0x64ed, 0x448a, 0x89, 0x27, 0xce, 0x7b, 0xf9, 0x0e, 0xb3, 0x5d);
+DEFINE_GUID(GUID_PROCESSOR_PERF_DECREASE_THRESHOLD, 0x12a0ab44, 0xfe28, 0x4fa9, 0xb3, 0xbd, 0x4b, 0x64, 0xf4, 0x49, 0x60, 0xa6);
 DEFINE_GUID(GUID_PROCESSOR_PERF_INCREASE_POLICY, 0x465e1f50, 0xb610, 0x473a, 0xab, 0x58, 0x0, 0xd1, 0x7, 0x7d, 0xc4, 0x18);
 DEFINE_GUID(GUID_PROCESSOR_PERF_DECREASE_POLICY, 0x40fbefc7, 0x2e9d, 0x4d25, 0xa1, 0x85, 0xc, 0xfd, 0x85, 0x74, 0xba, 0xc6);
 DEFINE_GUID(GUID_PROCESSOR_PERF_INCREASE_TIME, 0x984cf492, 0x3bed, 0x4488, 0xa8, 0xf9, 0x42, 0x86, 0xc9, 0x7b, 0xf5, 0xaa);
@@ -2624,7 +2627,7 @@ DEFINE_GUID(GUID_PROCESSOR_IDLE_DISABLE, 0x5d76a2ca, 0xe8c0, 0x402f, 0xa1, 0x33,
 DEFINE_GUID(GUID_PROCESSOR_IDLE_TIME_CHECK, 0xc4581c31, 0x89ab, 0x4597, 0x8e, 0x2b, 0x9c, 0x9c, 0xab, 0x44, 0xe, 0x6b);
 DEFINE_GUID(GUID_PROCESSOR_IDLE_DEMOTE_THRESHOLD, 0x4b92d758, 0x5a24, 0x4851, 0xa4, 0x70, 0x81, 0x5d, 0x78, 0xae, 0xe1, 0x19);
 DEFINE_GUID(GUID_PROCESSOR_IDLE_PROMOTE_THRESHOLD, 0x7b224883, 0xb3cc, 0x4d79, 0x81, 0x9f, 0x83, 0x74, 0x15, 0x2c, 0xbe, 0x7c);
-DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_INCREASE_THRESHOLD, 0xdf142941, 0x20f3, 0x4edf, 0x9a, 0x4a, 0x9c, 0x83, 0xd3, 0xd7, 0x17, 0xd1 );
+DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_INCREASE_THRESHOLD, 0xdf142941, 0x20f3, 0x4edf, 0x9a, 0x4a, 0x9c, 0x83, 0xd3, 0xd7, 0x17, 0xd1);
 DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_DECREASE_THRESHOLD, 0x68dd2f27, 0xa4ce, 0x4e11, 0x84, 0x87, 0x37, 0x94, 0xe4, 0x13, 0x5d, 0xfa);
 DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_INCREASE_POLICY, 0xc7be0679, 0x2817, 0x4d69, 0x9d, 0x02, 0x51, 0x9a, 0x53, 0x7e, 0xd0, 0xc6);
 DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_DECREASE_POLICY, 0x71021b41, 0xc749, 0x4d21, 0xbe, 0x74, 0xa0, 0x0f, 0x33, 0x5d, 0x58, 0x2b);
@@ -2643,17 +2646,17 @@ DEFINE_GUID(GUID_PROCESSOR_PARKING_CORE_OVERRIDE, 0xa55612aa, 0xf624, 0x42c6, 0x
 DEFINE_GUID(GUID_PROCESSOR_PARKING_PERF_STATE, 0x447235c7, 0x6a8d, 0x4cc0, 0x8e, 0x24, 0x9e, 0xaf, 0x70, 0xb9, 0x6e, 0x2b);
 DEFINE_GUID(GUID_PROCESSOR_PERF_HISTORY, 0x7d24baa7, 0x0b84, 0x480f, 0x84, 0x0c, 0x1b, 0x07, 0x43, 0xc0, 0x0f, 0x5f);
 DEFINE_GUID(GUID_SYSTEM_COOLING_POLICY, 0x94D3A615, 0xA899, 0x4AC5, 0xAE, 0x2B, 0xE4, 0xD8, 0xF6, 0x34, 0x36, 0x7F);
-DEFINE_GUID(GUID_LOCK_CONSOLE_ON_WAKE, 0x0E796BDB, 0x100D, 0x47D6, 0xA2, 0xD5, 0xF7, 0xD2, 0xDA, 0xA5, 0x1F, 0x51 );
-DEFINE_GUID(GUID_DEVICE_IDLE_POLICY, 0x4faab71a, 0x92e5, 0x4726, 0xb5, 0x31, 0x22, 0x45, 0x59, 0x67, 0x2d, 0x19 );
-DEFINE_GUID(GUID_ACDC_POWER_SOURCE, 0x5D3E9A59, 0xE9D5, 0x4B00, 0xA6, 0xBD, 0xFF, 0x34, 0xFF, 0x51, 0x65, 0x48 );
-DEFINE_GUID(GUID_LIDSWITCH_STATE_CHANGE,  0xBA3E0F4D, 0xB817, 0x4094, 0xA2, 0xD1, 0xD5, 0x63, 0x79, 0xE6, 0xA0, 0xF3 );
-DEFINE_GUID(GUID_BATTERY_PERCENTAGE_REMAINING, 0xA7AD8041, 0xB45A, 0x4CAE, 0x87, 0xA3, 0xEE, 0xCB, 0xB4, 0x68, 0xA9, 0xE1 );
-DEFINE_GUID(GUID_IDLE_BACKGROUND_TASK, 0x515C31D8, 0xF734, 0x163D, 0xA0, 0xFD, 0x11, 0xA0, 0x8C, 0x91, 0xE8, 0xF1 );
-DEFINE_GUID(GUID_BACKGROUND_TASK_NOTIFICATION, 0xCF23F240, 0x2A54, 0x48D8, 0xB1, 0x14, 0xDE, 0x15, 0x18, 0xFF, 0x05, 0x2E );
-DEFINE_GUID(GUID_APPLAUNCH_BUTTON, 0x1A689231, 0x7399, 0x4E9A, 0x8F, 0x99, 0xB7, 0x1F, 0x99, 0x9D, 0xB3, 0xFA );
-DEFINE_GUID(GUID_PCIEXPRESS_SETTINGS_SUBGROUP, 0x501a4d13, 0x42af,0x4429, 0x9f, 0xd1, 0xa8, 0x21, 0x8c, 0x26, 0x8e, 0x20 );
-DEFINE_GUID(GUID_PCIEXPRESS_ASPM_POLICY, 0xee12f906, 0xd277, 0x404b, 0xb6, 0xda, 0xe5, 0xfa, 0x1a, 0x57, 0x6d, 0xf5 );
-DEFINE_GUID(GUID_ENABLE_SWITCH_FORCED_SHUTDOWN, 0x833a6b62, 0xdfa4, 0x46d1, 0x82, 0xf8, 0xe0, 0x9e, 0x34, 0xd0, 0x29, 0xd6 );
+DEFINE_GUID(GUID_LOCK_CONSOLE_ON_WAKE, 0x0E796BDB, 0x100D, 0x47D6, 0xA2, 0xD5, 0xF7, 0xD2, 0xDA, 0xA5, 0x1F, 0x51);
+DEFINE_GUID(GUID_DEVICE_IDLE_POLICY, 0x4faab71a, 0x92e5, 0x4726, 0xb5, 0x31, 0x22, 0x45, 0x59, 0x67, 0x2d, 0x19);
+DEFINE_GUID(GUID_ACDC_POWER_SOURCE, 0x5D3E9A59, 0xE9D5, 0x4B00, 0xA6, 0xBD, 0xFF, 0x34, 0xFF, 0x51, 0x65, 0x48);
+DEFINE_GUID(GUID_LIDSWITCH_STATE_CHANGE,  0xBA3E0F4D, 0xB817, 0x4094, 0xA2, 0xD1, 0xD5, 0x63, 0x79, 0xE6, 0xA0, 0xF3);
+DEFINE_GUID(GUID_BATTERY_PERCENTAGE_REMAINING, 0xA7AD8041, 0xB45A, 0x4CAE, 0x87, 0xA3, 0xEE, 0xCB, 0xB4, 0x68, 0xA9, 0xE1);
+DEFINE_GUID(GUID_IDLE_BACKGROUND_TASK, 0x515C31D8, 0xF734, 0x163D, 0xA0, 0xFD, 0x11, 0xA0, 0x8C, 0x91, 0xE8, 0xF1);
+DEFINE_GUID(GUID_BACKGROUND_TASK_NOTIFICATION, 0xCF23F240, 0x2A54, 0x48D8, 0xB1, 0x14, 0xDE, 0x15, 0x18, 0xFF, 0x05, 0x2E);
+DEFINE_GUID(GUID_APPLAUNCH_BUTTON, 0x1A689231, 0x7399, 0x4E9A, 0x8F, 0x99, 0xB7, 0x1F, 0x99, 0x9D, 0xB3, 0xFA);
+DEFINE_GUID(GUID_PCIEXPRESS_SETTINGS_SUBGROUP, 0x501a4d13, 0x42af,0x4429, 0x9f, 0xd1, 0xa8, 0x21, 0x8c, 0x26, 0x8e, 0x20);
+DEFINE_GUID(GUID_PCIEXPRESS_ASPM_POLICY, 0xee12f906, 0xd277, 0x404b, 0xb6, 0xda, 0xe5, 0xfa, 0x1a, 0x57, 0x6d, 0xf5);
+DEFINE_GUID(GUID_ENABLE_SWITCH_FORCED_SHUTDOWN, 0x833a6b62, 0xdfa4, 0x46d1, 0x82, 0xf8, 0xe0, 0x9e, 0x34, 0xd0, 0x29, 0xd6);
 
 #define PERFSTATE_POLICY_CHANGE_IDEAL            0
 #define PERFSTATE_POLICY_CHANGE_SINGLE           1
@@ -2684,7 +2687,6 @@ NTSTATUS
   IN OUT PVOID Context OPTIONAL);
 typedef POWER_SETTING_CALLBACK *PPOWER_SETTING_CALLBACK;
 
-
 /******************************************************************************
  *                            Configuration Manager Types                     *
  ******************************************************************************/
@@ -2842,7 +2844,7 @@ typedef struct _CM_PARTIAL_RESOURCE_DESCRIPTOR {
     } Interrupt;
 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
     struct {
-      __GNU_EXTENSION union {
+      _ANONYMOUS_UNION union {
         struct {
 #if defined(NT_PROCESSOR_GROUPS)
           USHORT Group;
@@ -3695,20 +3697,6 @@ typedef enum _CM_ERROR_CONTROL_TYPE {
  *                         I/O Manager Types                                  *
  ******************************************************************************/
 
-#define WDM_MAJORVERSION        0x06
-#define WDM_MINORVERSION        0x00
-
-#if defined(_WIN64)
-
-#ifndef USE_DMA_MACROS
-#define USE_DMA_MACROS
-#endif
-
-#ifndef NO_LEGACY_DRIVERS
-#define NO_LEGACY_DRIVERS
-#endif
-
-#endif /* defined(_WIN64) */
 
 #define STATUS_CONTINUE_COMPLETION      STATUS_SUCCESS
 
@@ -4048,11 +4036,11 @@ typedef struct _IO_CONNECT_INTERRUPT_MESSAGE_BASED_PARAMETERS {
 
 typedef struct _IO_CONNECT_INTERRUPT_PARAMETERS {
   IN OUT ULONG Version;
-  union {
+  _ANONYMOUS_UNION union {
     IO_CONNECT_INTERRUPT_FULLY_SPECIFIED_PARAMETERS FullySpecified;
     IO_CONNECT_INTERRUPT_LINE_BASED_PARAMETERS LineBased;
     IO_CONNECT_INTERRUPT_MESSAGE_BASED_PARAMETERS MessageBased;
-  };
+  } DUMMYUNIONNAME;
 } IO_CONNECT_INTERRUPT_PARAMETERS, *PIO_CONNECT_INTERRUPT_PARAMETERS;
 
 typedef struct _IO_DISCONNECT_INTERRUPT_PARAMETERS {
@@ -4175,75 +4163,75 @@ typedef struct _SHARE_ACCESS {
 /* While MS WDK uses inheritance in C++, we cannot do this with gcc, as
    inheritance, even from a struct renders the type non-POD. So we use
    this hack */
-#define PCI_COMMON_HEADER_LAYOUT \
-  USHORT VendorID; \
-  USHORT DeviceID; \
-  USHORT Command; \
-  USHORT Status; \
-  UCHAR RevisionID; \
-  UCHAR ProgIf; \
-  UCHAR SubClass; \
-  UCHAR BaseClass; \
-  UCHAR CacheLineSize; \
-  UCHAR LatencyTimer; \
-  UCHAR HeaderType; \
-  UCHAR BIST; \
-  union { \
-    struct _PCI_HEADER_TYPE_0 { \
+#define PCI_COMMON_HEADER_LAYOUT                \
+  USHORT VendorID;                              \
+  USHORT DeviceID;                              \
+  USHORT Command;                               \
+  USHORT Status;                                \
+  UCHAR RevisionID;                             \
+  UCHAR ProgIf;                                 \
+  UCHAR SubClass;                               \
+  UCHAR BaseClass;                              \
+  UCHAR CacheLineSize;                          \
+  UCHAR LatencyTimer;                           \
+  UCHAR HeaderType;                             \
+  UCHAR BIST;                                   \
+  union {                                       \
+    struct _PCI_HEADER_TYPE_0 {                 \
       ULONG BaseAddresses[PCI_TYPE0_ADDRESSES]; \
-      ULONG CIS; \
-      USHORT SubVendorID; \
-      USHORT SubSystemID; \
-      ULONG ROMBaseAddress; \
-      UCHAR CapabilitiesPtr; \
-      UCHAR Reserved1[3]; \
-      ULONG Reserved2; \
-      UCHAR InterruptLine; \
-      UCHAR InterruptPin; \
-      UCHAR MinimumGrant; \
-      UCHAR MaximumLatency; \
-    } type0; \
-    struct _PCI_HEADER_TYPE_1 { \
+      ULONG CIS;                                \
+      USHORT SubVendorID;                       \
+      USHORT SubSystemID;                       \
+      ULONG ROMBaseAddress;                     \
+      UCHAR CapabilitiesPtr;                    \
+      UCHAR Reserved1[3];                       \
+      ULONG Reserved2;                          \
+      UCHAR InterruptLine;                      \
+      UCHAR InterruptPin;                       \
+      UCHAR MinimumGrant;                       \
+      UCHAR MaximumLatency;                     \
+    } type0;                                    \
+    struct _PCI_HEADER_TYPE_1 {                 \
       ULONG BaseAddresses[PCI_TYPE1_ADDRESSES]; \
-      UCHAR PrimaryBus; \
-      UCHAR SecondaryBus; \
-      UCHAR SubordinateBus; \
-      UCHAR SecondaryLatency; \
-      UCHAR IOBase; \
-      UCHAR IOLimit; \
-      USHORT SecondaryStatus; \
-      USHORT MemoryBase; \
-      USHORT MemoryLimit; \
-      USHORT PrefetchBase; \
-      USHORT PrefetchLimit; \
-      ULONG PrefetchBaseUpper32; \
-      ULONG PrefetchLimitUpper32; \
-      USHORT IOBaseUpper16; \
-      USHORT IOLimitUpper16; \
-      UCHAR CapabilitiesPtr; \
-      UCHAR Reserved1[3]; \
-      ULONG ROMBaseAddress; \
-      UCHAR InterruptLine; \
-      UCHAR InterruptPin; \
-      USHORT BridgeControl; \
-    } type1; \
-    struct _PCI_HEADER_TYPE_2 { \
-      ULONG SocketRegistersBaseAddress; \
-      UCHAR CapabilitiesPtr; \
-      UCHAR Reserved; \
-      USHORT SecondaryStatus; \
-      UCHAR PrimaryBus; \
-      UCHAR SecondaryBus; \
-      UCHAR SubordinateBus; \
-      UCHAR SecondaryLatency; \
-      struct { \
-        ULONG Base; \
-        ULONG Limit; \
-      } Range[PCI_TYPE2_ADDRESSES-1]; \
-      UCHAR InterruptLine; \
-      UCHAR InterruptPin; \
-      USHORT BridgeControl; \
-    } type2; \
+      UCHAR PrimaryBus;                         \
+      UCHAR SecondaryBus;                       \
+      UCHAR SubordinateBus;                     \
+      UCHAR SecondaryLatency;                   \
+      UCHAR IOBase;                             \
+      UCHAR IOLimit;                            \
+      USHORT SecondaryStatus;                   \
+      USHORT MemoryBase;                        \
+      USHORT MemoryLimit;                       \
+      USHORT PrefetchBase;                      \
+      USHORT PrefetchLimit;                     \
+      ULONG PrefetchBaseUpper32;                \
+      ULONG PrefetchLimitUpper32;               \
+      USHORT IOBaseUpper16;                     \
+      USHORT IOLimitUpper16;                    \
+      UCHAR CapabilitiesPtr;                    \
+      UCHAR Reserved1[3];                       \
+      ULONG ROMBaseAddress;                     \
+      UCHAR InterruptLine;                      \
+      UCHAR InterruptPin;                       \
+      USHORT BridgeControl;                     \
+    } type1;                                    \
+    struct _PCI_HEADER_TYPE_2 {                 \
+      ULONG SocketRegistersBaseAddress;         \
+      UCHAR CapabilitiesPtr;                    \
+      UCHAR Reserved;                           \
+      USHORT SecondaryStatus;                   \
+      UCHAR PrimaryBus;                         \
+      UCHAR SecondaryBus;                       \
+      UCHAR SubordinateBus;                     \
+      UCHAR SecondaryLatency;                   \
+      struct {                                  \
+        ULONG Base;                             \
+        ULONG Limit;                            \
+      } Range[PCI_TYPE2_ADDRESSES-1];           \
+      UCHAR InterruptLine;                      \
+      UCHAR InterruptPin;                       \
+      USHORT BridgeControl;                     \
+    } type2;                                    \
   } u;
 
 typedef enum _CREATE_FILE_TYPE {
@@ -4349,10 +4337,10 @@ typedef struct _BOOTDISK_INFORMATION_EX {
 typedef struct _LOADER_PARTITION_INFORMATION_EX {
   ULONG PartitionStyle;
   ULONG PartitionNumber;
-  union {
+  _ANONYMOUS_UNION union {
     ULONG Signature;
     GUID DeviceId;
-  };
+  } DUMMYUNIONNAME;
   ULONG Flags;
 } LOADER_PARTITION_INFORMATION_EX, *PLOADER_PARTITION_INFORMATION_EX;
 
@@ -6865,7 +6853,7 @@ typedef struct _PCI_EXPRESS_SERIAL_NUMBER_CAPABILITY {
 } PCI_EXPRESS_SERIAL_NUMBER_CAPABILITY, *PPCI_EXPRESS_SERIAL_NUMBER_CAPABILITY;
 
 typedef union _PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS {
-  struct {
+  _ANONYMOUS_STRUCT struct {
     ULONG Undefined:1;
     ULONG Reserved1:3;
     ULONG DataLinkProtocolError:1;
@@ -6886,7 +6874,7 @@ typedef union _PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS {
 } PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS, *PPCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS;
 
 typedef union _PCI_EXPRESS_UNCORRECTABLE_ERROR_MASK {
-  struct {
+  _ANONYMOUS_STRUCT struct {
     ULONG Undefined:1;
     ULONG Reserved1:3;
     ULONG DataLinkProtocolError:1;
@@ -6907,7 +6895,7 @@ typedef union _PCI_EXPRESS_UNCORRECTABLE_ERROR_MASK {
 } PCI_EXPRESS_UNCORRECTABLE_ERROR_MASK, *PPCI_EXPRESS_UNCORRECTABLE_ERROR_MASK;
 
 typedef union _PCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY {
-  struct {
+  _ANONYMOUS_STRUCT struct {
     ULONG Undefined:1;
     ULONG Reserved1:3;
     ULONG DataLinkProtocolError:1;
@@ -6928,7 +6916,7 @@ typedef union _PCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY {
 } PCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY, *PPCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY;
 
 typedef union _PCI_EXPRESS_CORRECTABLE_ERROR_STATUS {
-  struct {
+  _ANONYMOUS_STRUCT struct {
     ULONG ReceiverError:1;
     ULONG Reserved1:5;
     ULONG BadTLP:1;
@@ -6943,7 +6931,7 @@ typedef union _PCI_EXPRESS_CORRECTABLE_ERROR_STATUS {
 } PCI_EXPRESS_CORRECTABLE_ERROR_STATUS, *PPCI_CORRECTABLE_ERROR_STATUS;
 
 typedef union _PCI_EXPRESS_CORRECTABLE_ERROR_MASK {
-  struct {
+  _ANONYMOUS_STRUCT struct {
     ULONG ReceiverError:1;
     ULONG Reserved1:5;
     ULONG BadTLP:1;
@@ -6958,7 +6946,7 @@ typedef union _PCI_EXPRESS_CORRECTABLE_ERROR_MASK {
 } PCI_EXPRESS_CORRECTABLE_ERROR_MASK, *PPCI_CORRECTABLE_ERROR_MASK;
 
 typedef union _PCI_EXPRESS_AER_CAPABILITIES {
-  struct {
+  _ANONYMOUS_STRUCT struct {
     ULONG FirstErrorPointer:5;
     ULONG ECRCGenerationCapable:1;
     ULONG ECRCGenerationEnable:1;
@@ -6970,7 +6958,7 @@ typedef union _PCI_EXPRESS_AER_CAPABILITIES {
 } PCI_EXPRESS_AER_CAPABILITIES, *PPCI_EXPRESS_AER_CAPABILITIES;
 
 typedef union _PCI_EXPRESS_ROOT_ERROR_COMMAND {
-  struct {
+  _ANONYMOUS_STRUCT struct {
     ULONG CorrectableErrorReportingEnable:1;
     ULONG NonFatalErrorReportingEnable:1;
     ULONG FatalErrorReportingEnable:1;
@@ -6980,7 +6968,7 @@ typedef union _PCI_EXPRESS_ROOT_ERROR_COMMAND {
 } PCI_EXPRESS_ROOT_ERROR_COMMAND, *PPCI_EXPRESS_ROOT_ERROR_COMMAND;
 
 typedef union _PCI_EXPRESS_ROOT_ERROR_STATUS {
-  struct {
+  _ANONYMOUS_STRUCT struct {
     ULONG CorrectableErrorReceived:1;
     ULONG MultipleCorrectableErrorsReceived:1;
     ULONG UncorrectableErrorReceived:1;
@@ -6995,7 +6983,7 @@ typedef union _PCI_EXPRESS_ROOT_ERROR_STATUS {
 } PCI_EXPRESS_ROOT_ERROR_STATUS, *PPCI_EXPRESS_ROOT_ERROR_STATUS;
 
 typedef union _PCI_EXPRESS_ERROR_SOURCE_ID {
-  struct {
+  _ANONYMOUS_STRUCT struct {
     USHORT CorrectableSourceIdFun:3;
     USHORT CorrectableSourceIdDev:5;
     USHORT CorrectableSourceIdBus:8;
@@ -7007,7 +6995,7 @@ typedef union _PCI_EXPRESS_ERROR_SOURCE_ID {
 } PCI_EXPRESS_ERROR_SOURCE_ID, *PPCI_EXPRESS_ERROR_SOURCE_ID;
 
 typedef union _PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_STATUS {
-  struct {
+  _ANONYMOUS_STRUCT struct {
     ULONG TargetAbortOnSplitCompletion:1;
     ULONG MasterAbortOnSplitCompletion:1;
     ULONG ReceivedTargetAbort:1;
@@ -7028,7 +7016,7 @@ typedef union _PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_STATUS {
 } PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_STATUS, *PPCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_STATUS;
 
 typedef union _PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_MASK {
-  struct {
+  _ANONYMOUS_STRUCT struct {
     ULONG TargetAbortOnSplitCompletion:1;
     ULONG MasterAbortOnSplitCompletion:1;
     ULONG ReceivedTargetAbort:1;
@@ -7049,7 +7037,7 @@ typedef union _PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_MASK {
 } PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_MASK, *PPCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_MASK;
 
 typedef union _PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_SEVERITY {
-  struct {
+  _ANONYMOUS_STRUCT struct {
     ULONG TargetAbortOnSplitCompletion:1;
     ULONG MasterAbortOnSplitCompletion:1;
     ULONG ReceivedTargetAbort:1;
@@ -7070,7 +7058,7 @@ typedef union _PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_SEVERITY {
 } PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_SEVERITY, *PPCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_SEVERITY;
 
 typedef union _PCI_EXPRESS_SEC_AER_CAPABILITIES {
-  struct {
+  _ANONYMOUS_STRUCT struct {
     ULONG SecondaryUncorrectableFirstErrorPtr:5;
     ULONG Reserved:27;
   } DUMMYSTRUCTNAME;
@@ -7133,7 +7121,7 @@ typedef struct _PCI_EXPRESS_BRIDGE_AER_CAPABILITY {
 } PCI_EXPRESS_BRIDGE_AER_CAPABILITY, *PPCI_EXPRESS_BRIDGE_AER_CAPABILITY;
 
 typedef union _PCI_EXPRESS_SRIOV_CAPS {
-  struct {
+  _ANONYMOUS_STRUCT struct {
     ULONG VFMigrationCapable:1;
     ULONG Reserved1:20;
     ULONG VFMigrationInterruptNumber:11;
@@ -7142,7 +7130,7 @@ typedef union _PCI_EXPRESS_SRIOV_CAPS {
 } PCI_EXPRESS_SRIOV_CAPS, *PPCI_EXPRESS_SRIOV_CAPS;
 
 typedef union _PCI_EXPRESS_SRIOV_CONTROL {
-  struct {
+  _ANONYMOUS_STRUCT struct {
     USHORT VFEnable:1;
     USHORT VFMigrationEnable:1;
     USHORT VFMigrationInterruptEnable:1;
@@ -7154,7 +7142,7 @@ typedef union _PCI_EXPRESS_SRIOV_CONTROL {
 } PCI_EXPRESS_SRIOV_CONTROL, *PPCI_EXPRESS_SRIOV_CONTROL;
 
 typedef union _PCI_EXPRESS_SRIOV_STATUS {
-  struct {
+  _ANONYMOUS_STRUCT struct {
     USHORT VFMigrationStatus:1;
     USHORT Reserved1:15;
   } DUMMYSTRUCTNAME;
@@ -7162,7 +7150,7 @@ typedef union _PCI_EXPRESS_SRIOV_STATUS {
 } PCI_EXPRESS_SRIOV_STATUS, *PPCI_EXPRESS_SRIOV_STATUS;
 
 typedef union _PCI_EXPRESS_SRIOV_MIGRATION_STATE_ARRAY {
-  struct {
+  _ANONYMOUS_STRUCT struct {
     ULONG VFMigrationStateBIR:3;
     ULONG VFMigrationStateOffset:29;
   } DUMMYSTRUCTNAME;
@@ -7430,16 +7418,16 @@ typedef struct _PCI_MSIX_TABLE_CONFIG_INTERFACE {
  ******************************************************************************/
 
 #define MAXIMUM_FILENAME_LENGTH           256
-#define OBJ_NAME_PATH_SEPARATOR     ((WCHAR)L'\\')
+#define OBJ_NAME_PATH_SEPARATOR           ((WCHAR)L'\\')
 
-#define OBJECT_TYPE_CREATE 0x0001
-#define OBJECT_TYPE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0x1)
+#define OBJECT_TYPE_CREATE                0x0001
+#define OBJECT_TYPE_ALL_ACCESS            (STANDARD_RIGHTS_REQUIRED | 0x1)
 
-#define DIRECTORY_QUERY 0x0001
-#define DIRECTORY_TRAVERSE 0x0002
-#define DIRECTORY_CREATE_OBJECT 0x0004
-#define DIRECTORY_CREATE_SUBDIRECTORY 0x0008
-#define DIRECTORY_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0xF)
+#define DIRECTORY_QUERY                   0x0001
+#define DIRECTORY_TRAVERSE                0x0002
+#define DIRECTORY_CREATE_OBJECT           0x0004
+#define DIRECTORY_CREATE_SUBDIRECTORY     0x0008
+#define DIRECTORY_ALL_ACCESS              (STANDARD_RIGHTS_REQUIRED | 0xF)
 
 #define SYMBOLIC_LINK_QUERY               0x0001
 #define SYMBOLIC_LINK_ALL_ACCESS          (STANDARD_RIGHTS_REQUIRED | 0x1)
@@ -7448,13 +7436,13 @@ typedef struct _PCI_MSIX_TABLE_CONFIG_INTERFACE {
 #define DUPLICATE_SAME_ACCESS             0x00000002
 #define DUPLICATE_SAME_ATTRIBUTES         0x00000004
 
-#define OB_FLT_REGISTRATION_VERSION_0100         0x0100
-#define OB_FLT_REGISTRATION_VERSION OB_FLT_REGISTRATION_VERSION_0100
+#define OB_FLT_REGISTRATION_VERSION_0100  0x0100
+#define OB_FLT_REGISTRATION_VERSION       OB_FLT_REGISTRATION_VERSION_0100
 
 typedef ULONG OB_OPERATION;
 
-#define OB_OPERATION_HANDLE_CREATE               0x00000001
-#define OB_OPERATION_HANDLE_DUPLICATE            0x00000002
+#define OB_OPERATION_HANDLE_CREATE        0x00000001
+#define OB_OPERATION_HANDLE_DUPLICATE     0x00000002
 
 typedef struct _OB_PRE_CREATE_HANDLE_INFORMATION {
   IN OUT ACCESS_MASK DesiredAccess;
@@ -7475,13 +7463,13 @@ typedef union _OB_PRE_OPERATION_PARAMETERS {
 
 typedef struct _OB_PRE_OPERATION_INFORMATION {
   IN OB_OPERATION Operation;
-  union {
+  _ANONYMOUS_UNION union {
     IN ULONG Flags;
-    struct {
+    _ANONYMOUS_STRUCT struct {
       IN ULONG KernelHandle:1;
       IN ULONG Reserved:31;
-    };
-  };
+    } DUMMYSTRUCTNAME;
+  } DUMMYUNIONNAME;
   IN PVOID Object;
   IN POBJECT_TYPE ObjectType;
   OUT PVOID CallContext;
@@ -7503,13 +7491,13 @@ typedef union _OB_POST_OPERATION_PARAMETERS {
 
 typedef struct _OB_POST_OPERATION_INFORMATION {
   IN OB_OPERATION Operation;
-    union {
-      IN ULONG Flags;
-      struct {
-        IN ULONG KernelHandle:1;
-        IN ULONG Reserved:31;
-      };
-    };
+  _ANONYMOUS_UNION union {
+    IN ULONG Flags;
+    _ANONYMOUS_STRUCT struct {
+      IN ULONG KernelHandle:1;
+      IN ULONG Reserved:31;
+    } DUMMYSTRUCTNAME;
+  } DUMMYUNIONNAME;
   IN PVOID Object;
   IN POBJECT_TYPE ObjectType;
   IN PVOID CallContext;
@@ -7559,7 +7547,6 @@ extern POBJECT_TYPE NTSYSAPI PsThreadType;
 extern POBJECT_TYPE NTSYSAPI SeTokenObjectType;
 extern POBJECT_TYPE NTSYSAPI PsProcessType;
 
-
 /******************************************************************************
  *                           Process Manager Types                            *
  ******************************************************************************/
@@ -7580,7 +7567,7 @@ extern POBJECT_TYPE NTSYSAPI PsProcessType;
 #define THREAD_SET_LIMITED_INFORMATION   0x0400
 #define THREAD_QUERY_LIMITED_INFORMATION 0x0800
 
-#define PROCESS_DUP_HANDLE                 (0x0040)
+#define PROCESS_DUP_HANDLE               (0x0040)
 
 #if (NTDDI_VERSION >= NTDDI_VISTA)
 #define PROCESS_ALL_ACCESS  (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0xFFFF)
@@ -7857,11 +7844,6 @@ _KeQueryTickCount(
 #define EFLAG_ZERO              0x4000
 #define EFLAG_SELECT            (EFLAG_SIGN | EFLAG_ZERO)
 
-#define RESULT_NEGATIVE         ((EFLAG_SIGN & ~EFLAG_ZERO) & EFLAG_SELECT)
-#define RESULT_ZERO             ((~EFLAG_SIGN & EFLAG_ZERO) & EFLAG_SELECT)
-#define RESULT_POSITIVE         ((~EFLAG_SIGN & ~EFLAG_ZERO) & EFLAG_SELECT)
-
-
 typedef struct _KFLOATING_SAVE {
   ULONG Dummy;
 } KFLOATING_SAVE, *PKFLOATING_SAVE;
@@ -8172,8 +8154,8 @@ InitializeListHead(
   ListHead->Flink = ListHead->Blink = ListHead;
 }
 
-BOOLEAN
 FORCEINLINE
+BOOLEAN
 IsListEmpty(
   IN CONST LIST_ENTRY * ListHead)
 {
@@ -8400,8 +8382,6 @@ RtlStringFromGUID(
 
 #if (NTDDI_VERSION >= NTDDI_WIN2K)
 
-
-
 NTSYSAPI
 BOOLEAN
 NTAPI
@@ -8880,7 +8860,6 @@ RtlSetDaclSecurityDescriptor(
 #define RtlStoreUlongPtr(Address,Value) RtlStoreUlong(Address,Value)
 #endif /* _WIN64 */
 
-
 NTSYSAPI
 BOOLEAN
 NTAPI
@@ -8989,7 +8968,6 @@ RtlPrefetchMemoryNonTemporal(
 #if (NTDDI_VERSION >= NTDDI_WINXP)
 
 
-
 NTSYSAPI
 VOID
 NTAPI
@@ -9027,11 +9005,11 @@ RtlHashUnicodeString(
   OUT PULONG HashValue);
 
 
-#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
 
-#if (NTDDI_VERSION >= NTDDI_VISTA)
+#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
 
 
+#if (NTDDI_VERSION >= NTDDI_VISTA)
 
 NTSYSAPI
 ULONG
@@ -9087,8 +9065,6 @@ RtlCmEncodeMemIoResource(
 
 #if (NTDDI_VERSION >= NTDDI_WIN7)
 
-
-
 NTSYSAPI
 NTSTATUS
 NTAPI
@@ -9459,7 +9435,7 @@ RtlCheckBit(
 
 #define ASSERTMSG(msg, exp) \
   (VOID)((!(exp)) ? \
-    RtlAssert( (PVOID)#exp, (PVOID)__FILE__, __LINE__, msg ), FALSE : TRUE)
+    RtlAssert( (PVOID)#exp, (PVOID)__FILE__, __LINE__, (PCHAR)msg ), FALSE : TRUE)
 
 #define RTL_SOFT_ASSERT(exp) \
   (VOID)((!(exp)) ? \
@@ -9545,8 +9521,8 @@ InitializeSListHead(
 
 #else
 
-VOID
 FORCEINLINE
+VOID
 InitializeSListHead(
   OUT PSLIST_HEADER SListHead)
 {
@@ -9664,7 +9640,6 @@ RTLVERLIB_DDI(RtlIsServicePackVersionInstalled)(
 /******************************************************************************
  *                              Kernel Functions                              *
  ******************************************************************************/
-
 NTKERNELAPI
 VOID
 NTAPI
@@ -9681,7 +9656,6 @@ KeClearEvent(
 
 #if (NTDDI_VERSION >= NTDDI_WIN2K)
 
-
 #if defined(_NTDDK_) || defined(_NTIFS_)
 NTKERNELAPI
 VOID
@@ -9700,7 +9674,6 @@ ProbeForWrite(
   IN SIZE_T Length,
   IN ULONG Alignment);
 
-
 #if defined(SINGLE_GROUP_LEGACY_API)
 
 NTKERNELAPI
@@ -9725,8 +9698,6 @@ NTKERNELAPI
 KAFFINITY
 NTAPI
 KeQueryActiveProcessors(VOID);
-
-
 #endif /* defined(SINGLE_GROUP_LEGACY_API) */
 
 #if !defined(_M_AMD64)
@@ -10165,7 +10136,6 @@ VOID
 NTAPI
 KeFlushQueuedDpcs(VOID);
 #endif /* (NTDDI_VERSION >= NTDDI_WINXPSP2) */
-
 #if (NTDDI_VERSION >= NTDDI_WS03)
 
 NTKERNELAPI
@@ -10215,12 +10185,9 @@ FASTCALL
 KeTestSpinLock(
   IN PKSPIN_LOCK SpinLock);
 
-
 #endif /* (NTDDI_VERSION >= NTDDI_WS03) */
-
 #if (NTDDI_VERSION >= NTDDI_WS03SP1)
 
-
 NTKERNELAPI
 BOOLEAN
 FASTCALL
@@ -10277,11 +10244,9 @@ BOOLEAN
 FASTCALL
 KeTryToAcquireGuardedMutex(
   IN OUT PKGUARDED_MUTEX GuardedMutex);
-
 #endif /* (NTDDI_VERSION >= NTDDI_WS03SP1) */
 
 #if (NTDDI_VERSION >= NTDDI_VISTA)
-
 NTKERNELAPI
 VOID
 FASTCALL
@@ -10300,7 +10265,6 @@ NTSTATUS
 NTAPI
 KeQueryDpcWatchdogInformation(
   OUT PKDPC_WATCHDOG_INFORMATION WatchdogInformation);
-
 #if defined(SINGLE_GROUP_LEGACY_API)
 
 NTKERNELAPI
@@ -10342,10 +10306,8 @@ KeDeregisterProcessorChangeCallback(
   IN PVOID CallbackHandle);
 
 #endif /* (NTDDI_VERSION >= NTDDI_WS08) */
-
 #if (NTDDI_VERSION >= NTDDI_WIN7)
 
-
 ULONG64
 NTAPI
 KeQueryTotalCycleTimeProcess(
@@ -10483,9 +10445,7 @@ ULONG
 NTAPI
 KeGetProcessorIndexFromNumber(
   IN PPROCESSOR_NUMBER ProcNumber);
-
 #endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
-
 #if !defined(_IA64_)
 NTHALAPI
 VOID
@@ -10700,7 +10660,6 @@ KeFlushWriteBuffer(VOID);
 }
 
 #if (NTDDI_VERSION >= NTDDI_WIN2K)
-
 NTKERNELAPI
 PVOID
 NTAPI
@@ -10947,7 +10906,6 @@ MmAddVerifierThunks(
   IN ULONG ThunkBufferSize);
 
 #endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
-
 #if (NTDDI_VERSION >= NTDDI_WS03)
 NTKERNELAPI
 LOGICAL
@@ -10955,8 +10913,8 @@ NTAPI
 MmIsIoSpaceActive(
   IN PHYSICAL_ADDRESS StartAddress,
   IN SIZE_T NumberOfBytes);
-#endif
 
+#endif /* (NTDDI_VERSION >= NTDDI_WS03) */
 #if (NTDDI_VERSION >= NTDDI_WS03SP1)
 NTKERNELAPI
 PMDL
@@ -10971,20 +10929,18 @@ MmAllocatePagesForMdlEx(
 #endif
 
 #if (NTDDI_VERSION >= NTDDI_VISTA)
-
 NTKERNELAPI
 LOGICAL
 NTAPI
 MmIsDriverVerifyingByAddress(
   IN PVOID AddressWithinSection);
-#endif
+#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
 
 /******************************************************************************
  *                            Security Manager Functions                      *
  ******************************************************************************/
 
 #if (NTDDI_VERSION >= NTDDI_WIN2K)
-
 NTKERNELAPI
 BOOLEAN
 NTAPI
@@ -11069,6 +11025,7 @@ NTAPI
 SeLockSubjectContext(
   IN PSECURITY_SUBJECT_CONTEXT SubjectContext);
 
+
 #endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
 
 #if (NTDDI_VERSION >= NTDDI_WS03SP1)
@@ -11092,7 +11049,6 @@ SeReportSecurityEvent(
 #endif /* (NTDDI_VERSION >= NTDDI_WS03SP1) */
 
 #if (NTDDI_VERSION >= NTDDI_VISTA)
-
 NTKERNELAPI
 ULONG
 NTAPI
@@ -11109,7 +11065,6 @@ SeGetWorldRights(
   IN PGENERIC_MAPPING GenericMapping,
   OUT PACCESS_MASK GrantedAccess);
 #endif /* SE_NTFS_WORLD_CACHE */
-
 #endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
 /******************************************************************************
  *                         Configuration Manager Functions                    *
@@ -11183,7 +11138,6 @@ CmGetBoundTransaction(
  *                         I/O Manager Functions                              *
  ******************************************************************************/
 
-
 /*
  * NTSTATUS
  * IoAcquireRemoveLock(
@@ -12376,6 +12330,7 @@ NTAPI
 IoSetTopLevelIrp(
   IN PIRP Irp OPTIONAL);
 
+
 #endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
 
 
@@ -12538,6 +12493,7 @@ IoWMISetSingleItem(
   IN ULONG Version,
   IN ULONG ValueBufferSize,
   IN PVOID ValueBuffer);
+
 #endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
 
 #if (NTDDI_VERSION >= NTDDI_WINXPSP1)
@@ -12550,7 +12506,6 @@ IoValidateDeviceIoControlAccess(
 #endif
 
 #if (NTDDI_VERSION >= NTDDI_WS03)
-
 NTKERNELAPI
 NTSTATUS
 NTAPI
@@ -12575,7 +12530,6 @@ IoCsqInsertIrpEx(
 
 
 #if (NTDDI_VERSION >= NTDDI_VISTA)
-
 NTKERNELAPI
 NTSTATUS
 NTAPI
@@ -12941,8 +12895,8 @@ IoMarkIrpPending(
   IoInitializeRemoveLockEx(Lock, AllocateTag, MaxLockedMinutes, \
     HighWatermark, sizeof(IO_REMOVE_LOCK))
 
-VOID
 FORCEINLINE
+VOID
 IoInitializeDpcRequest(
   IN PDEVICE_OBJECT DeviceObject,
   IN PIO_DPC_ROUTINE DpcRoutine)
@@ -12995,8 +12949,8 @@ IoGetRemainingStackSize(VOID)
 }
 
 #if (NTDDI_VERSION >= NTDDI_WS03)
-VOID
 FORCEINLINE
+VOID
 IoInitializeThreadedDpcRequest(
   IN PDEVICE_OBJECT DeviceObject,
   IN PIO_DPC_ROUTINE DpcRoutine)
@@ -13297,6 +13251,8 @@ FASTCALL
 ExInterlockedFlushSList(
   IN OUT PSLIST_HEADER ListHead);
 
+#endif /* !defined(_WIN64) */
+
 #if defined(_WIN2K_COMPAT_SLIST_USAGE) && defined(_X86_)
 
 NTKERNELAPI
@@ -13327,12 +13283,14 @@ ExFreeToPagedLookasideList(
   IN OUT PPAGED_LOOKASIDE_LIST Lookaside,
   IN PVOID Entry);
 
-#else
+#else /* !_WIN2K_COMPAT_SLIST_USAGE */
 
+#if !defined(_WIN64)
 #define ExInterlockedPopEntrySList(_ListHead, _Lock) \
     InterlockedPopEntrySList(_ListHead)
 #define ExInterlockedPushEntrySList(_ListHead, _ListEntry, _Lock) \
     InterlockedPushEntrySList(_ListHead, _ListEntry)
+#endif
 
 static __inline
 PVOID
@@ -13369,7 +13327,6 @@ ExFreeToPagedLookasideList(
 
 #endif /* _WIN2K_COMPAT_SLIST_USAGE */
 
-#endif /* !defined(_WIN64) */
 
 /* ERESOURCE_THREAD
  * ExGetCurrentResourceThread(
@@ -13404,8 +13361,8 @@ ExInitializeFastMutex(
   return;
 }
 
-#if (NTDDI_VERSION >= NTDDI_WIN2K)
 
+#if (NTDDI_VERSION >= NTDDI_WIN2K)
 NTKERNELAPI
 VOID
 FASTCALL
@@ -13827,7 +13784,6 @@ VOID
 FASTCALL
 ExWaitForRundownProtectionRelease(
   IN OUT PEX_RUNDOWN_REF RunRef);
-
 #endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
 
 #if (NTDDI_VERSION >= NTDDI_WINXPSP2)
@@ -14065,13 +14021,11 @@ ExFreeToNPagedLookasideList(
    }
 }
 
-
 /******************************************************************************
  *                          Object Manager Functions                          *
  ******************************************************************************/
 
 #if (NTDDI_VERSION >= NTDDI_WIN2K)
-
 NTKERNELAPI
 LONG_PTR
 FASTCALL
@@ -14120,7 +14074,6 @@ NTAPI
 ObReleaseObjectSecurity(
   IN PSECURITY_DESCRIPTOR SecurityDescriptor,
   IN BOOLEAN MemoryAllocated);
-
 #endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
 
 #if (NTDDI_VERSION >= NTDDI_VISTA)
@@ -14153,7 +14106,6 @@ ObGetFilterVersion(VOID);
 #endif /* (NTDDI_VERSION >= NTDDI_VISTASP1) */
 
 #if (NTDDI_VERSION >= NTDDI_WIN7)
-
 NTKERNELAPI
 NTSTATUS
 NTAPI
@@ -14201,10 +14153,8 @@ ObDereferenceObjectDeferDeleteWithTag(
 #define ObReferenceObject ObfReferenceObject
 #define ObDereferenceObjectWithTag ObfDereferenceObjectWithTag
 #define ObReferenceObjectWithTag ObfReferenceObjectWithTag
-
 #endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
 
-
 /******************************************************************************
  *                          Process Manager Functions                         *
  ******************************************************************************/
@@ -14254,9 +14204,9 @@ NTAPI
 PsTerminateSystemThread(
   IN NTSTATUS ExitStatus);
 
-
 #endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
 
+
 /******************************************************************************
  *                          WMI Library Support Functions                     *
  ******************************************************************************/
@@ -14592,8 +14542,9 @@ KdChangeOption(
 #endif
 /* Hardware Abstraction Layer Functions */
 
-#if defined(USE_DMA_MACROS) && !defined(_NTHAL_) && (defined(_NTDDK_) || defined(_NTDRIVER_)) || defined(_WDM_INCLUDED_)
+#if (NTDDI_VERSION >= NTDDI_WIN2K)
 
+#if defined(USE_DMA_MACROS) && !defined(_NTHAL_) && (defined(_NTDDK_) || defined(_NTDRIVER_)) || defined(_WDM_INCLUDED_)
 
 FORCEINLINE
 PVOID
@@ -14659,9 +14610,9 @@ HalGetDmaAlignment(
   return alignment;
 }
 
+#endif /* USE_DMA_MACROS ... */
 
-
-#endif
+#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
 
 #ifndef _NTTMAPI_
 #define _NTTMAPI_
@@ -15325,11 +15276,8 @@ NtPropagationFailed(
 #define ZwCurrentThread() NtCurrentThread()
 
 
-
 #if (NTDDI_VERSION >= NTDDI_WIN2K)
 
-
-
 NTSYSAPI
 NTSTATUS
 NTAPI
@@ -15595,7 +15543,6 @@ ZwQueryFullAttributesFile(
   IN POBJECT_ATTRIBUTES ObjectAttributes,
   OUT PFILE_NETWORK_OPEN_INFORMATION FileInformation);
 
-
 #endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
 
 
@@ -15931,15 +15878,9 @@ NTAPI
 ZwSinglePhaseReject(
   IN HANDLE EnlistmentHandle,
   IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
-
-
 #endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
-
-
 #if (NTDDI_VERSION >= NTDDI_WIN7)
 
-
-
 NTSYSAPI
 NTSTATUS
 NTAPI
@@ -16003,7 +15944,6 @@ ZwSetInformationKey(
   IN PVOID KeySetInformation,
   IN ULONG KeySetInformationLength);
 
-
 #endif /* (NTDDI_VERSION >= NTDDI_WIN7) */