Differences From Artifact [5400bf8ccf4a147f]:
- File        
src/win32/winnt.d
- 2011-02-23 12:53:16 - part of checkin [c2b7a98c21] on branch trunk - Initial import (user: kinaba) [annotate]
 
 
To Artifact [217222ad3190ccc6]:
- File        
src/win32/winnt.d
- 2015-04-21 10:46:55 - part of checkin [4e2933c620] on branch trunk - Rebased to the latest verson dmd 2.067. Not yet verified the outcome. (user: kinaba) [annotate]
 
 
                                                                                        >     1  /***********************************************************************\
                                                                                        >     2  *                                winnt.d                                *
                                                                                        >     3  *                                                                       *
                                                                                        >     4  *                       Windows API header module                       *
                                                                                        >     5  *                                                                       *
                                                                                        >     6  *             Translated from MinGW API for MS-Windows 3.12             *
                                                                                        >     7  *                                                                       *
                                                                                        >     8  *                       Placed into public domain                       *
                                                                                        >     9  \***********************************************************************/
    1  module win32.winnt;                                                                   10  module win32.winnt;
    2                                                                                        11  
    3  // Translated from Microsoft Platform SDK August 2001 Edition                    |    12  public import win32.basetsd, win32.windef, win32.winerror;
    4  // by Y.Tomino (demoonlit@inter7.jp)                                             <
    5                                                                                   <
    6  import win32.windef;                                                             |    13  private import win32.w32api;
    7  alias void _TEB;                                                                 <
    8  alias void _EXCEPTION_REGISTRATION_RECORD;                                       <
    9  private extern(C) {                                                              <
   10    int memcmp(void*, void*, uint);                                                <
   11    void* memmove(void*, void*, uint);                                             <
   12    void* memcpy(void*, void*, uint);                                              <
   13    void* memset(void*, uint, uint);                                               <
   14  }                                                                                |    14  
                                                                                        >    15  /* Translation Notes:
                                                                                        >    16  The following macros are unneeded for D:
                                                                                        >    17  FIELD_OFFSET(t,f), CONTAINING_RECORD(address, type, field)
                                                                                        >    18  */
   15                                                                                   |    19  
                                                                                        >    20  alias void   VOID;
                                                                                        >    21  alias char   CHAR, CCHAR;
                                                                                        >    22  alias wchar  WCHAR;
                                                                                        >    23  alias bool   BOOLEAN;
                                                                                        >    24  alias byte   FCHAR;
   16  // #ifndef _WINNT_                                                               |    25  alias ubyte  UCHAR;
   17  // #define _WINNT_                                                               |    26  alias short  SHORT;
                                                                                        >    27  alias ushort LANGID, FSHORT;
                                                                                        >    28  alias uint   LCID, FLONG, ACCESS_MASK;
                                                                                        >    29  alias long   LONGLONG, USN;
                                                                                        >    30  alias ulong  DWORDLONG, ULONGLONG;
   18                                                                                   |    31  
   19  // #ifdef __cplusplus                                                            <
   20  // extern "C" {                                                                  <
   21  // #endif                                                                        <
                                                                                        >    32  alias void*  PVOID, LPVOID;
                                                                                        >    33  alias char*  PSZ, PCHAR, PCCHAR, LPCH, PCH, LPSTR, PSTR;
                                                                                        >    34  alias wchar* PWCHAR, LPWCH, PWCH, LPWSTR, PWSTR;
                                                                                        >    35  alias bool*  PBOOLEAN;
                                                                                        >    36  alias ubyte* PUCHAR;
                                                                                        >    37  alias short* PSHORT;
                                                                                        >    38  alias int*   PLONG;
                                                                                        >    39  alias uint*  PLCID, PACCESS_MASK;
                                                                                        >    40  alias long*  PLONGLONG;
                                                                                        >    41  alias ulong* PDWORDLONG, PULONGLONG;
   22                                                                                   |    42  
   23  // #include <ctype.h>                                                            <
   24  enum : uint { ANYSIZE_ARRAY = 1 }                                                <
                                                                                        >    43  // FIXME(MinGW) for __WIN64
                                                                                        >    44  alias void*  PVOID64;
   25                                                                                   |    45  
   26  // #if defined(_M_MRX000) && !(defined(MIDL_PASS) || defined(RC_INVOKED)) && def <
   27  // #...                                                                          <
   28  // #else                                                                         <
   29  // #define RESTRICTED_POINTER                                                    <
   30  // #endif                                                                        <
                                                                                        >    46  // const versions
                                                                                        >    47  alias CPtr!(char)  LPCCH, PCSTR, LPCSTR;
                                                                                        >    48  alias CPtr!(wchar) LPCWCH, PCWCH, LPCWSTR, PCWSTR;
   31                                                                                   |    49  
   32  // #if defined(_M_MRX000) || defined(_M_ALPHA) || defined(_M_PPC) || defined(_M_ <
   33  // #...                                                                          <
   34  // #if defined(_WIN64)                                                           <
   35  // #...                                                                          <
                                                                                        >    50  version (Unicode) {
                                                                                        >    51          alias WCHAR TCHAR, _TCHAR;
   36  // #else                                                                         |    52  } else {
   37  // #...                                                                          <
   38  // #endif                                                                        <
   39  // #else                                                                         <
   40  // #define UNALIGNED                                                             <
   41  // #define UNALIGNED64                                                           <
   42  // #endif                                                                        <
                                                                                        >    53          alias CHAR TCHAR, _TCHAR;
   43                                                                                   |    54  }
   44  // #if defined(_WIN64) || defined(_M_ALPHA)                                      <
   45  // #...                                                                          <
   46  // #...                                                                          <
   47  // #else                                                                         <
   48  const uint MAX_NATURAL_ALIGNMENT = DWORD.sizeof;                                 <
   49  enum : uint { MEMORY_ALLOCATION_ALIGNMENT = 8 }                                  <
   50  // #endif                                                                        <
   51                                                                                   |    55  
   52  // #ifdef __cplusplus                                                            <
   53  // #if _MSC_VER >= 1300                                                          <
   54  // #define TYPE_ALIGNMENT( t ) __alignof(t)                                      <
   55  // #endif                                                                        <
   56  // #else                                                                         <
   57  // #...                                                                          <
   58  // ...                                                                           <
   59  // #endif                                                                        <
                                                                                        >    56  alias TCHAR        TBYTE;
                                                                                        >    57  alias TCHAR*       PTCH, PTBYTE, LPTCH, PTSTR, LPTSTR, LP, PTCHAR;
                                                                                        >    58  alias CPtr!(TCHAR) LPCTSTR;
   60                                                                                   |    59  
   61  // #if defined(_WIN64)                                                           <
                                                                                        >    60  const char ANSI_NULL = '\0';
                                                                                        >    61  const wchar UNICODE_NULL = '\0';
   62                                                                                   |    62  
   63  // #...                                                                          <
   64  // ...                                                                           <
                                                                                        >    63  const APPLICATION_ERROR_MASK       = 0x20000000;
                                                                                        >    64  const ERROR_SEVERITY_SUCCESS       = 0x00000000;
                                                                                        >    65  const ERROR_SEVERITY_INFORMATIONAL = 0x40000000;
                                                                                        >    66  const ERROR_SEVERITY_WARNING       = 0x80000000;
                                                                                        >    67  const ERROR_SEVERITY_ERROR         = 0xC0000000;
   65                                                                                   |    68  
                                                                                        >    69  // MinGW: also in ddk/ntifs.h
                                                                                        >    70  enum : USHORT {
                                                                                        >    71          COMPRESSION_FORMAT_NONE     = 0x0000,
                                                                                        >    72          COMPRESSION_FORMAT_DEFAULT  = 0x0001,
                                                                                        >    73          COMPRESSION_FORMAT_LZNT1    = 0x0002,
                                                                                        >    74          COMPRESSION_ENGINE_STANDARD = 0x0000,
   66  // #...                                                                          |    75          COMPRESSION_ENGINE_MAXIMUM  = 0x0100,
                                                                                        >    76          COMPRESSION_ENGINE_HIBER    = 0x0200
   67                                                                                   |    77  }
   68  // #else                                                                         <
   69                                                                                   |    78  
   70  // #define PROBE_ALIGNMENT( _s ) TYPE_ALIGNMENT( DWORD )                         |    79  // ACCESS_DENIED_OBJECT_ACE, etc
                                                                                        >    80  const DWORD
                                                                                        >    81          ACE_OBJECT_TYPE_PRESENT           = 0x00000001,
                                                                                        >    82          ACE_INHERITED_OBJECT_TYPE_PRESENT = 0x00000002;
   71                                                                                   |    83  
   72  // #endif                                                                        <
                                                                                        >    84  // ACE_HEADER.AceType
                                                                                        >    85  // also in ddk/ntifs.h
                                                                                        >    86  enum : BYTE {
                                                                                        >    87          ACCESS_ALLOWED_ACE_TYPE,
                                                                                        >    88          ACCESS_DENIED_ACE_TYPE,
                                                                                        >    89          SYSTEM_AUDIT_ACE_TYPE,
                                                                                        >    90          SYSTEM_ALARM_ACE_TYPE
   73                                                                                   |    91  }
   74  // #define C_ASSERT(e) typedef char __C_ASSERT__[(e)?1:-1]                       <
   75                                                                                   |    92  
   76  // #if !defined(_MAC) && (defined(_M_MRX000) || defined(_M_AMD64) || defined(_M_ <
   77  // #...                                                                          <
   78  // ...                                                                           <
   79  // #if defined(_WIN64)                                                           <
   80  // #...                                                                          <
   81  // #else                                                                         <
   82  // #...                                                                          <
   83  // #endif                                                                        <
   84  // #else                                                                         |    93  // ACE_HEADER.AceFlags
   85  // #if defined(_MAC) && defined(_MAC_INT_64)                                     |    94  const BYTE
   86  // #...                                                                          |    95          OBJECT_INHERIT_ACE         = 0x01,
   87  // ...                                                                           |    96          CONTAINER_INHERIT_ACE      = 0x02,
   88  // #else                                                                         |    97          NO_PROPAGATE_INHERIT_ACE   = 0x04,
   89  // #define POINTER_64                                                            |    98          INHERIT_ONLY_ACE           = 0x08,
   90  alias uint POINTER_64_INT;                                                       |    99          INHERITED_ACE              = 0x10,
   91  // #endif                                                                        |   100          VALID_INHERIT_FLAGS        = 0x1F,
   92  alias void* POINTER_32;                                                          |   101          SUCCESSFUL_ACCESS_ACE_FLAG = 0x40,
   93  // #endif                                                                        |   102          FAILED_ACCESS_ACE_FLAG     = 0x80;
   94                                                                                   |   103  
   95  // #if defined(_IA64_) || defined(_AMD64_)                                       |   104  // Access Mask Format
   96  // #...                                                                          |   105  const ACCESS_MASK
   97  // #else                                                                         |   106          DELETE                   = 0x00010000,
   98  alias POINTER_32 FIRMWARE_PTR;                                                   |   107          READ_CONTROL             = 0x00020000,
   99  // #endif                                                                        |   108          WRITE_DAC                = 0x00040000,
  100                                                                                   <
                                                                                        >   109          WRITE_OWNER              = 0x00080000,
  101  // #include <basetsd.h>                                                          |   110          SYNCHRONIZE              = 0x00100000,
  102                                                                                   <
                                                                                        >   111          ACCESS_SYSTEM_SECURITY   = 0x01000000,
  103  // #if (defined(_M_IX86) || defined(_M_IA64) || defined(_M_AMD64)) && !defined(M |   112          MAXIMUM_ALLOWED          = 0x02000000,
  104  // #define DECLSPEC_IMPORT __declspec(dllimport)                                 |   113          GENERIC_READ             = 0x80000000,
  105  // #else                                                                         |   114          GENERIC_WRITE            = 0x40000000,
  106  // #...                                                                          |   115          GENERIC_EXECUTE          = 0x20000000,
  107  // #endif                                                                        |   116          GENERIC_ALL              = 0x10000000,
  108                                                                                   <
                                                                                        >   117          STANDARD_RIGHTS_REQUIRED = 0x000F0000,
  109  // #ifndef DECLSPEC_NORETURN                                                     |   118          STANDARD_RIGHTS_READ     = 0x00020000,
  110  // #if (_MSC_VER >= 1200) && !defined(MIDL_PASS)                                 |   119          STANDARD_RIGHTS_WRITE    = 0x00020000,
  111  // #define DECLSPEC_NORETURN __declspec(noreturn)                                |   120          STANDARD_RIGHTS_EXECUTE  = 0x00020000,
  112  // #else                                                                         |   121          STANDARD_RIGHTS_ALL      = 0x001F0000,
  113  // #...                                                                          |   122          SPECIFIC_RIGHTS_ALL      = 0x0000FFFF;
  114  // #endif                                                                        <
  115  // #endif                                                                        <
  116                                                                                   |   123  
  117  // #ifndef DECLSPEC_ALIGN                                                        <
  118  // #if (_MSC_VER >= 1300) && !defined(MIDL_PASS)                                 <
  119  // #define DECLSPEC_ALIGN(x) __declspec(align(x))                                <
  120  // #else                                                                         <
  121  // #...                                                                          <
  122  // #endif                                                                        <
  123  // #endif                                                                        <
  124                                                                                   |   124  
  125  // #ifndef DECLSPEC_CACHEALIGN                                                   <
  126  // #define DECLSPEC_CACHEALIGN DECLSPEC_ALIGN(128)                               <
  127  // #endif                                                                        <
                                                                                        >   125  const DWORD INVALID_FILE_ATTRIBUTES = -1;
  128                                                                                   |   126  
                                                                                        >   127  // MinGW: Also in ddk/winddk.h
                                                                                        >   128  const DWORD
                                                                                        >   129          FILE_LIST_DIRECTORY       = 0x00000001,
                                                                                        >   130          FILE_READ_DATA            = 0x00000001,
                                                                                        >   131          FILE_ADD_FILE             = 0x00000002,
                                                                                        >   132          FILE_WRITE_DATA           = 0x00000002,
                                                                                        >   133          FILE_ADD_SUBDIRECTORY     = 0x00000004,
                                                                                        >   134          FILE_APPEND_DATA          = 0x00000004,
                                                                                        >   135          FILE_CREATE_PIPE_INSTANCE = 0x00000004,
                                                                                        >   136          FILE_READ_EA              = 0x00000008,
                                                                                        >   137          FILE_READ_PROPERTIES      = 0x00000008,
  129  // #ifndef DECLSPEC_UUID                                                         |   138          FILE_WRITE_EA             = 0x00000010,
  130  // #if (_MSC_VER >= 1100) && defined (__cplusplus)                               |   139          FILE_WRITE_PROPERTIES     = 0x00000010,
  131  // #define DECLSPEC_UUID(x) __declspec(uuid(x))                                  |   140          FILE_EXECUTE              = 0x00000020,
  132  // #else                                                                         |   141          FILE_TRAVERSE             = 0x00000020,
  133  // #...                                                                          |   142          FILE_DELETE_CHILD         = 0x00000040,
  134  // #endif                                                                        |   143          FILE_READ_ATTRIBUTES      = 0x00000080,
  135  // #endif                                                                        |   144          FILE_WRITE_ATTRIBUTES     = 0x00000100;
  136                                                                                   |   145  
  137  // #ifndef DECLSPEC_NOVTABLE                                                     |   146  const DWORD
  138  // #if (_MSC_VER >= 1100) && defined(__cplusplus)                                |   147          FILE_SHARE_READ        = 0x00000001,
  139  // #define DECLSPEC_NOVTABLE __declspec(novtable)                                |   148          FILE_SHARE_WRITE       = 0x00000002,
  140  // #else                                                                         |   149          FILE_SHARE_DELETE      = 0x00000004,
  141  // #...                                                                          |   150          FILE_SHARE_VALID_FLAGS = 0x00000007;
  142  // #endif                                                                        <
  143  // #endif                                                                        <
  144                                                                                   |   151  
                                                                                        >   152  const DWORD
                                                                                        >   153          FILE_ATTRIBUTE_READONLY            = 0x00000001,
  145  // #ifndef DECLSPEC_SELECTANY                                                    |   154          FILE_ATTRIBUTE_HIDDEN              = 0x00000002,
  146  // #if (_MSC_VER >= 1100)                                                        |   155          FILE_ATTRIBUTE_SYSTEM              = 0x00000004,
  147  // #define DECLSPEC_SELECTANY __declspec(selectany)                              |   156          FILE_ATTRIBUTE_DIRECTORY           = 0x00000010,
  148  // #else                                                                         |   157          FILE_ATTRIBUTE_ARCHIVE             = 0x00000020,
  149  // #...                                                                          |   158          FILE_ATTRIBUTE_DEVICE              = 0x00000040,
  150  // #endif                                                                        |   159          FILE_ATTRIBUTE_NORMAL              = 0x00000080,
  151  // #endif                                                                        |   160          FILE_ATTRIBUTE_TEMPORARY           = 0x00000100,
                                                                                        >   161          FILE_ATTRIBUTE_SPARSE_FILE         = 0x00000200,
                                                                                        >   162          FILE_ATTRIBUTE_REPARSE_POINT       = 0x00000400,
                                                                                        >   163          FILE_ATTRIBUTE_COMPRESSED          = 0x00000800,
                                                                                        >   164          FILE_ATTRIBUTE_OFFLINE             = 0x00001000,
                                                                                        >   165          FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = 0x00002000,
                                                                                        >   166          FILE_ATTRIBUTE_ENCRYPTED           = 0x00004000,
                                                                                        >   167          FILE_ATTRIBUTE_VALID_FLAGS         = 0x00007fb7,
                                                                                        >   168          FILE_ATTRIBUTE_VALID_SET_FLAGS     = 0x000031a7;
  152                                                                                   |   169  
  153  // #ifndef NOP_FUNCTION                                                          <
  154  // #if (_MSC_VER >= 1210)                                                        <
  155  // #...                                                                          <
  156  // #else                                                                         <
  157  // #...                                                                          <
  158  // #endif                                                                        <
  159  // #endif                                                                        <
                                                                                        >   170  // These are not documented on MSDN
                                                                                        >   171  const FILE_COPY_STRUCTURED_STORAGE = 0x00000041;
                                                                                        >   172  const FILE_STRUCTURED_STORAGE      = 0x00000441;
  160                                                                                   |   173  
  161  // #ifndef DECLSPEC_ADDRSAFE                                                     <
  162  // #if (_MSC_VER >= 1200) && (defined(_M_ALPHA) || defined(_M_AXP64))            <
  163  // #...                                                                          <
  164  // #else                                                                         <
  165  // #define DECLSPEC_ADDRSAFE                                                     |   174  // Nor are these
  166  // #endif                                                                        |   175  const FILE_VALID_OPTION_FLAGS          = 0x00ffffff;
  167  // #endif                                                                        |   176  const FILE_VALID_PIPE_OPTION_FLAGS     = 0x00000032;
                                                                                        >   177  const FILE_VALID_MAILSLOT_OPTION_FLAGS = 0x00000032;
                                                                                        >   178  const FILE_VALID_SET_FLAGS             = 0x00000036;
  168                                                                                   |   179  
  169  // #ifndef FORCEINLINE                                                           <
  170  // #if (_MSC_VER >= 1200)                                                        <
  171  // #define FORCEINLINE __forceinline                                             |   180  const ULONG
  172  // #else                                                                         |   181          FILE_SUPERSEDE           = 0x00000000,
  173  // #...                                                                          |   182          FILE_OPEN                = 0x00000001,
  174  // #endif                                                                        |   183          FILE_CREATE              = 0x00000002,
  175  // #endif                                                                        |   184          FILE_OPEN_IF             = 0x00000003,
                                                                                        >   185          FILE_OVERWRITE           = 0x00000004,
                                                                                        >   186          FILE_OVERWRITE_IF        = 0x00000005,
                                                                                        >   187          FILE_MAXIMUM_DISPOSITION = 0x00000005;
  176                                                                                   |   188  
  177  // #ifndef DECLSPEC_DEPRECATED                                                   <
  178  // #if (_MSC_VER >= 1300) && !defined(MIDL_PASS)                                 <
  179  // #define DECLSPEC_DEPRECATED __declspec(deprecated)                            <
  180  // #define DEPRECATE_SUPPORTED                                                   |   189  const ULONG
  181  // #else                                                                         |   190          FILE_DIRECTORY_FILE            = 0x00000001,
  182  // #...                                                                          |   191          FILE_WRITE_THROUGH             = 0x00000002,
  183  // #...                                                                          |   192          FILE_SEQUENTIAL_ONLY           = 0x00000004,
  184  // #endif                                                                        |   193          FILE_NO_INTERMEDIATE_BUFFERING = 0x00000008,
  185  // #endif                                                                        |   194          FILE_SYNCHRONOUS_IO_ALERT      = 0x00000010,
  186                                                                                   <
                                                                                        >   195          FILE_SYNCHRONOUS_IO_NONALERT   = 0x00000020,
  187  alias void* PVOID;                                                               |   196          FILE_NON_DIRECTORY_FILE        = 0x00000040,
  188  deprecated alias void* PVOID64; /* warning: 64-bit */                            |   197          FILE_CREATE_TREE_CONNECTION    = 0x00000080,
  189                                                                                   <
                                                                                        >   198          FILE_COMPLETE_IF_OPLOCKED      = 0x00000100,
  190  // #if ((_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED)) && !defined(_M_AMD64)  |   199          FILE_NO_EA_KNOWLEDGE           = 0x00000200,
  191  // #define NTAPI __stdcall                                                       |   200          FILE_OPEN_FOR_RECOVERY         = 0x00000400,
  192  // #else                                                                         |   201          FILE_RANDOM_ACCESS             = 0x00000800,
  193  // #...                                                                          |   202          FILE_DELETE_ON_CLOSE           = 0x00001000,
  194  // #...                                                                          |   203          FILE_OPEN_BY_FILE_ID           = 0x00002000,
  195  // #endif                                                                        |   204          FILE_OPEN_FOR_BACKUP_INTENT    = 0x00004000,
  196                                                                                   <
                                                                                        >   205          FILE_NO_COMPRESSION            = 0x00008000,
  197  // #if !defined(_NTSYSTEM_)                                                      |   206          FILE_RESERVE_OPFILTER          = 0x00100000,
  198  // #define NTSYSAPI DECLSPEC_IMPORT                                              |   207          FILE_OPEN_REPARSE_POINT        = 0x00200000,
  199  // #define NTSYSCALLAPI DECLSPEC_IMPORT                                          |   208          FILE_OPEN_NO_RECALL            = 0x00400000,
  200  // #else                                                                         |   209          FILE_OPEN_FOR_FREE_SPACE_QUERY = 0x00800000;
  201  // #...                                                                          <
  202  // #if defined(_NTDLLBUILD_)                                                     <
  203  // #...                                                                          <
  204  // #else                                                                         <
  205  // #...                                                                          <
  206  // #endif                                                                        <
  207                                                                                   |   210  
  208  // #endif                                                                        <
  209                                                                                   |   211  
                                                                                        >   212  const ACCESS_MASK
                                                                                        >   213          FILE_ALL_ACCESS      = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x01FF,
                                                                                        >   214          FILE_GENERIC_EXECUTE = STANDARD_RIGHTS_EXECUTE | FILE_READ_ATTRIBUTES
                                                                                        >   215                                 | FILE_EXECUTE | SYNCHRONIZE,
                                                                                        >   216          FILE_GENERIC_READ    = STANDARD_RIGHTS_READ | FILE_READ_DATA
                                                                                        >   217                                 | FILE_READ_ATTRIBUTES | FILE_READ_EA | SYNCHRONI
                                                                                        >   218          FILE_GENERIC_WRITE   = STANDARD_RIGHTS_WRITE | FILE_WRITE_DATA
  210  // #ifndef VOID                                                                  |   219                                 | FILE_WRITE_ATTRIBUTES | FILE_WRITE_EA | FILE_AP
  211  alias void VOID;                                                                 |   220                                 | SYNCHRONIZE;
  212  alias char CHAR;                                                                 <
  213  alias short SHORT;                                                               <
  214  alias int LONG;                                                                  <
  215  // #endif                                                                        <
  216                                                                                   |   221  
                                                                                        >   222  // MinGW: end winddk.h
                                                                                        >   223  // MinGW: also in ddk/ntifs.h
                                                                                        >   224  const DWORD
                                                                                        >   225          FILE_NOTIFY_CHANGE_FILE_NAME    = 0x00000001,
  217  // #ifndef _MAC                                                                  |   226          FILE_NOTIFY_CHANGE_DIR_NAME     = 0x00000002,
  218  alias wchar WCHAR;                                                               |   227          FILE_NOTIFY_CHANGE_NAME         = 0x00000003,
  219  // #else                                                                         |   228          FILE_NOTIFY_CHANGE_ATTRIBUTES   = 0x00000004,
  220                                                                                   <
                                                                                        >   229          FILE_NOTIFY_CHANGE_SIZE         = 0x00000008,
  221  // ...                                                                           |   230          FILE_NOTIFY_CHANGE_LAST_WRITE   = 0x00000010,
  222  // #endif                                                                        |   231          FILE_NOTIFY_CHANGE_LAST_ACCESS  = 0x00000020,
  223                                                                                   <
                                                                                        >   232          FILE_NOTIFY_CHANGE_CREATION     = 0x00000040,
  224  alias WCHAR* PWCHAR;                                                             |   233          FILE_NOTIFY_CHANGE_EA           = 0x00000080,
  225  alias WCHAR* LPWCH;                                                              |   234          FILE_NOTIFY_CHANGE_SECURITY     = 0x00000100,
  226  alias WCHAR* PWCH;                                                               |   235          FILE_NOTIFY_CHANGE_STREAM_NAME  = 0x00000200,
  227  alias WCHAR* LPCWCH;                                                             |   236          FILE_NOTIFY_CHANGE_STREAM_SIZE  = 0x00000400,
  228  alias WCHAR* PCWCH;                                                              |   237          FILE_NOTIFY_CHANGE_STREAM_WRITE = 0x00000800,
  229  alias WCHAR* NWPSTR;                                                             |   238          FILE_NOTIFY_VALID_MASK          = 0x00000fff;
  230  alias WCHAR* LPWSTR;                                                             <
  231  alias WCHAR* PWSTR;                                                              <
  232  alias WCHAR* LPUWSTR;                                                            <
  233  alias WCHAR* PUWSTR;                                                             <
  234                                                                                   |   239  
                                                                                        >   240  const DWORD
                                                                                        >   241          FILE_CASE_SENSITIVE_SEARCH      = 0x00000001,
                                                                                        >   242          FILE_CASE_PRESERVED_NAMES       = 0x00000002,
                                                                                        >   243          FILE_UNICODE_ON_DISK            = 0x00000004,
  235  alias WCHAR* LPCWSTR;                                                            |   244          FILE_PERSISTENT_ACLS            = 0x00000008,
  236  alias WCHAR* PCWSTR;                                                             |   245          FILE_FILE_COMPRESSION           = 0x00000010,
  237  alias WCHAR* LPCUWSTR;                                                           |   246          FILE_VOLUME_QUOTAS              = 0x00000020,
  238  alias WCHAR* PCUWSTR;                                                            |   247          FILE_SUPPORTS_SPARSE_FILES      = 0x00000040,
  239                                                                                   <
                                                                                        >   248          FILE_SUPPORTS_REPARSE_POINTS    = 0x00000080,
  240  alias CHAR* PCHAR;                                                               |   249          FILE_SUPPORTS_REMOTE_STORAGE    = 0x00000100,
  241  alias CHAR* LPCH;                                                                |   250          FS_LFN_APIS                     = 0x00004000,
  242  alias CHAR* PCH;                                                                 |   251          FILE_VOLUME_IS_COMPRESSED       = 0x00008000,
  243                                                                                   <
                                                                                        >   252          FILE_SUPPORTS_OBJECT_IDS        = 0x00010000,
  244  alias CHAR* LPCCH;                                                               |   253          FILE_SUPPORTS_ENCRYPTION        = 0x00020000,
  245  alias CHAR* PCCH;                                                                |   254          FILE_NAMED_STREAMS              = 0x00040000,
  246  alias CHAR* NPSTR;                                                               |   255          FILE_READ_ONLY_VOLUME           = 0x00080000,
  247  alias CHAR* LPSTR;                                                               |   256          FILE_SEQUENTIAL_WRITE_ONCE      = 0x00100000,
  248  alias CHAR* PSTR;                                                                |   257          FILE_SUPPORTS_TRANSACTIONS      = 0x00200000;
  249  alias CHAR* LPCSTR;                                                              <
  250  alias CHAR* PCSTR;                                                               <
  251                                                                                   |   258  
                                                                                        >   259  // These are not documented on MSDN
                                                                                        >   260  const ACCESS_MASK
  252  // #ifdef  UNICODE                     // r_winnt                                |   261          IO_COMPLETION_QUERY_STATE  = 1,
                                                                                        >   262          IO_COMPLETION_MODIFY_STATE = 2,
                                                                                        >   263          IO_COMPLETION_ALL_ACCESS   = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 3;
                                                                                        >   264  // MinGW: end ntifs.h
  253                                                                                   |   265  
  254  // #ifndef _TCHAR_DEFINED                                                        <
  255  alias WCHAR TCHAR;                                                               <
  256  alias WCHAR* PTCHAR;                                                             <
  257  alias WCHAR TBYTE;                                                               |   266  // MinGW: also in ddk/winddk.h
  258  alias WCHAR* PTBYTE;                                                             |   267  const DWORD
  259  // #define _TCHAR_DEFINED                                                        |   268          DUPLICATE_CLOSE_SOURCE    = 1,
  260  // #endif /* !_TCHAR_DEFINED */                                                  |   269          DUPLICATE_SAME_ACCESS     = 2,
                                                                                        >   270          DUPLICATE_SAME_ATTRIBUTES = 4;
                                                                                        >   271  // MinGW: end winddk.k
  261                                                                                   |   272  
  262  alias LPWSTR LPTCH;                                                              <
  263  alias LPWSTR PTCH;                                                               <
  264  alias LPWSTR PTSTR;                                                              |   273  const DWORD
  265  alias LPWSTR LPTSTR;                                                             |   274          MAILSLOT_NO_MESSAGE   = -1,
  266  alias LPCWSTR PCTSTR;                                                            |   275          MAILSLOT_WAIT_FOREVER = -1;
  267  alias LPCWSTR LPCTSTR;                                                           <
  268  alias LPUWSTR PUTSTR;                                                            <
  269  alias LPUWSTR LPUTSTR;                                                           <
  270  alias LPCUWSTR PCUTSTR;                                                          <
  271  alias LPCUWSTR LPCUTSTR;                                                         <
  272  alias LPWSTR LP;                                                                 <
  273  // #define __TEXT(quote) L##quote                                                <
  274                                                                                   |   276  
                                                                                        >   277  const ACCESS_MASK
                                                                                        >   278          PROCESS_TERMINATE         = 0x0001,
                                                                                        >   279          PROCESS_CREATE_THREAD     = 0x0002,
                                                                                        >   280          PROCESS_SET_SESSIONID     = 0x0004,
                                                                                        >   281          PROCESS_VM_OPERATION      = 0x0008,
                                                                                        >   282          PROCESS_VM_READ           = 0x0010,
                                                                                        >   283          PROCESS_VM_WRITE          = 0x0020,
  275  // #else   /* UNICODE */               // r_winnt                                |   284          PROCESS_DUP_HANDLE        = 0x0040,
  276                                                                                   <
                                                                                        >   285          PROCESS_CREATE_PROCESS    = 0x0080,
  277  // #ifndef _TCHAR_DEFINED                                                        |   286          PROCESS_SET_QUOTA         = 0x0100,
  278  // ...                                                                           |   287          PROCESS_SET_INFORMATION   = 0x0200,
  279  // #...                                                                          |   288          PROCESS_QUERY_INFORMATION = 0x0400,
  280  // #endif /* !_TCHAR_DEFINED */                                                  |   289          PROCESS_ALL_ACCESS        = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x0
  281                                                                                   |   290  
  282  // ...                                                                           |   291  const ACCESS_MASK
  283  // #...                                                                          |   292          THREAD_TERMINATE            = 0x0001,
  284                                                                                   <
                                                                                        >   293          THREAD_SUSPEND_RESUME       = 0x0002,
  285  // #endif /* UNICODE */                // r_winnt                                |   294          THREAD_GET_CONTEXT          = 0x0008,
  286  TCHAR[] TEXT(TCHAR[] quote){ return quote; }                                     |   295          THREAD_SET_CONTEXT          = 0x0010,
  287                                                                                   <
                                                                                        >   296          THREAD_SET_INFORMATION      = 0x0020,
  288  alias SHORT* PSHORT;                                                             |   297          THREAD_QUERY_INFORMATION    = 0x0040,
  289  alias LONG* PLONG;                                                               |   298          THREAD_SET_THREAD_TOKEN     = 0x0080,
                                                                                        >   299          THREAD_IMPERSONATE          = 0x0100,
                                                                                        >   300          THREAD_DIRECT_IMPERSONATION = 0x0200,
                                                                                        >   301          THREAD_ALL_ACCESS           = STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3FF
  290                                                                                   |   302  
  291  // #ifdef STRICT                                                                 <
  292  alias void* HANDLE;                                                              <
  293  // #define DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct  <
  294  // #else                                                                         |   303  // These are not documented on MSDN
  295  // ...                                                                           |   304  const THREAD_BASE_PRIORITY_LOWRT =  15;
  296  // #...                                                                          |   305  const THREAD_BASE_PRIORITY_MAX   =   2;
  297  // #endif                                                                        |   306  const THREAD_BASE_PRIORITY_MIN   =  -2;
  298  alias HANDLE* PHANDLE;                                                           |   307  const THREAD_BASE_PRIORITY_IDLE  = -15;
  299                                                                                   |   308  
  300  alias BYTE FCHAR;                                                                |   309  const DWORD EXCEPTION_NONCONTINUABLE      =  1;
  301  alias WORD FSHORT;                                                               |   310  const size_t EXCEPTION_MAXIMUM_PARAMETERS = 15;
  302  alias DWORD FLONG;                                                               <
  303                                                                                   |   311  
                                                                                        >   312  // These are not documented on MSDN
  304  // #ifndef _HRESULT_DEFINED                                                      |   313  const ACCESS_MASK
  305  // #define _HRESULT_DEFINED                                                      |   314          MUTANT_QUERY_STATE = 1,
  306  alias LONG HRESULT;                                                              |   315          MUTANT_ALL_ACCESS =  STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | MUTANT_QUE
  307                                                                                   |   316  
  308  // #endif // !_HRESULT_DEFINED                                                   |   317  const ACCESS_MASK
  309                                                                                   <
                                                                                        >   318          TIMER_QUERY_STATE  = 1,
  310  // #ifdef __cplusplus                                                            |   319          TIMER_MODIFY_STATE = 2,
  311  //     #define EXTERN_C extern "C"                                               |   320          TIMER_ALL_ACCESS   = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | TIMER_QUER
  312  // #else                                                                         |   321                               | TIMER_MODIFY_STATE;
  313  // #...                                                                          <
  314  // #endif                                                                        <
  315                                                                                   |   322  
                                                                                        >   323  const SID_IDENTIFIER_AUTHORITY
                                                                                        >   324          SECURITY_NULL_SID_AUTHORITY        = {[5: 0]},
  316  // #if defined(_WIN32) || defined(_MPPC_)                                        |   325          SECURITY_WORLD_SID_AUTHORITY       = {[5: 1]},
  317                                                                                   <
                                                                                        >   326          SECURITY_LOCAL_SID_AUTHORITY       = {[5: 2]},
  318  // #ifdef _68K_                                                                  |   327          SECURITY_CREATOR_SID_AUTHORITY     = {[5: 3]},
  319  // #...                                                                          |   328          SECURITY_NON_UNIQUE_AUTHORITY      = {[5: 4]},
  320  // #else                                                                         |   329          SECURITY_NT_AUTHORITY              = {[5: 5]},
  321  // #define STDMETHODCALLTYPE __stdcall                                           |   330          SECURITY_MANDATORY_LABEL_AUTHORITY = {[5: 6]};
  322  // #endif                                                                        <
  323  // #define STDMETHODVCALLTYPE __cdecl                                            <
  324                                                                                   |   331  
                                                                                        >   332  const DWORD
                                                                                        >   333          SECURITY_NULL_RID                   =  0,
  325  // #define STDAPICALLTYPE __stdcall                                              |   334          SECURITY_WORLD_RID                  =  0,
  326  // #define STDAPIVCALLTYPE __cdecl                                               |   335          SECURITY_LOCAL_RID                  =  0,
  327                                                                                   <
                                                                                        >   336          SECURITY_CREATOR_OWNER_RID          =  0,
  328  // #else                                                                         |   337          SECURITY_CREATOR_GROUP_RID          =  1,
  329                                                                                   <
                                                                                        >   338          SECURITY_DIALUP_RID                 =  1,
  330  // #...                                                                          |   339          SECURITY_NETWORK_RID                =  2,
  331  // #...                                                                          |   340          SECURITY_BATCH_RID                  =  3,
  332                                                                                   <
                                                                                        >   341          SECURITY_INTERACTIVE_RID            =  4,
  333  // #...                                                                          |   342          SECURITY_LOGON_IDS_RID              =  5,
  334  // #...                                                                          |   343          SECURITY_SERVICE_RID                =  6,
  335                                                                                   <
                                                                                        >   344          SECURITY_LOCAL_SYSTEM_RID           = 18,
  336  // #endif                                                                        |   345          SECURITY_BUILTIN_DOMAIN_RID         = 32,
  337                                                                                   <
                                                                                        >   346          SECURITY_PRINCIPAL_SELF_RID         = 10,
  338  // #define STDAPI EXTERN_C HRESULT STDAPICALLTYPE                                |   347          SECURITY_CREATOR_OWNER_SERVER_RID   =  2,
  339  // #define STDAPI_(type) EXTERN_C type STDAPICALLTYPE                            |   348          SECURITY_CREATOR_GROUP_SERVER_RID   =  3,
  340                                                                                   <
                                                                                        >   349          SECURITY_LOGON_IDS_RID_COUNT        =  3,
  341  // #define STDMETHODIMP HRESULT STDMETHODCALLTYPE                                |   350          SECURITY_ANONYMOUS_LOGON_RID        =  7,
  342  // #define STDMETHODIMP_(type) type STDMETHODCALLTYPE                            |   351          SECURITY_PROXY_RID                  =  8,
  343                                                                                   <
                                                                                        >   352          SECURITY_ENTERPRISE_CONTROLLERS_RID =  9,
  344  // #define STDAPIV EXTERN_C HRESULT STDAPIVCALLTYPE                              |   353          SECURITY_SERVER_LOGON_RID           = SECURITY_ENTERPRISE_CONTROLLERS_RI
  345  // #define STDAPIV_(type) EXTERN_C type STDAPIVCALLTYPE                          |   354          SECURITY_AUTHENTICATED_USER_RID     = 11,
  346                                                                                   <
                                                                                        >   355          SECURITY_RESTRICTED_CODE_RID        = 12,
  347  // #define STDMETHODIMPV HRESULT STDMETHODVCALLTYPE                              |   356          SECURITY_NT_NON_UNIQUE_RID          = 21,
  348  // #define STDMETHODIMPV_(type) type STDMETHODVCALLTYPE                          |   357          SID_REVISION                        =  1;
  349                                                                                   |   358  
  350  alias char CCHAR;                                                                <
  351  alias DWORD LCID;                                                                |   359  enum : DWORD {
                                                                                        >   360          DOMAIN_USER_RID_ADMIN        = 0x01F4,
  352  alias PDWORD PLCID;                                                              |   361          DOMAIN_USER_RID_GUEST        = 0x01F5,
  353  alias WORD LANGID;                                                               |   362          DOMAIN_GROUP_RID_ADMINS      = 0x0200,
  354  enum : uint { APPLICATION_ERROR_MASK = 0x20000000 }                              |   363          DOMAIN_GROUP_RID_USERS       = 0x0201,
  355  enum : uint { ERROR_SEVERITY_SUCCESS = 0x00000000 }                              |   364          DOMAIN_ALIAS_RID_ADMINS      = 0x0220,
  356  enum : uint { ERROR_SEVERITY_INFORMATIONAL = 0x40000000 }                        |   365          DOMAIN_ALIAS_RID_USERS       = 0x0221,
  357  enum : uint { ERROR_SEVERITY_WARNING = 0x80000000 }                              |   366          DOMAIN_ALIAS_RID_GUESTS      = 0x0222,
  358  enum : uint { ERROR_SEVERITY_ERROR = 0xC0000000 }                                |   367          DOMAIN_ALIAS_RID_POWER_USERS = 0x0223,
  359                                                                                   <
                                                                                        >   368          DOMAIN_ALIAS_RID_ACCOUNT_OPS = 0x0224,
  360  // #if defined(_M_IA64) && !defined(MIDL_PASS)                                   |   369          DOMAIN_ALIAS_RID_SYSTEM_OPS  = 0x0225,
  361  // ...                                                                           |   370          DOMAIN_ALIAS_RID_PRINT_OPS   = 0x0226,
  362  // #endif                                                                        |   371          DOMAIN_ALIAS_RID_BACKUP_OPS  = 0x0227,
  363  struct _FLOAT128 {                                                               |   372          DOMAIN_ALIAS_RID_REPLICATOR  = 0x0228
  364    __int64 LowPart;                                                               <
  365    __int64 HighPart;                                                              <
  366  }                                                                                |   373  }
  367  alias _FLOAT128 FLOAT128;                                                        <
  368                                                                                   |   374  
                                                                                        >   375  enum : WORD {
                                                                                        >   376          SECURITY_MANDATORY_UNTRUSTED_RID         = 0,
                                                                                        >   377          SECURITY_MANDATORY_LOW_RID               = 0x1000,
  369  alias FLOAT128* PFLOAT128;                                                       |   378          SECURITY_MANDATORY_MEDIUM_RID            = 0x2000,
                                                                                        >   379          SECURITY_MANDATORY_HIGH_RID              = 0x3000,
                                                                                        >   380          SECURITY_MANDATORY_SYSTEM_RID            = 0x4000,
                                                                                        >   381          SECURITY_MANDATORY_PROTECTED_PROCESS_RID = 0x5000,
                                                                                        >   382          SECURITY_MANDATORY_MAXIMUM_USER_RID      = SECURITY_MANDATORY_SYSTEM_RID
  370                                                                                   |   383  }
  371  // #define _ULONGLONG_                                                           <
  372  // #if (!defined (_MAC) && (!defined(MIDL_PASS) || defined(__midl)) && (!defined <
  373  // ...                                                                           <
  374                                                                                   |   384  
  375  // #...                                                                          <
  376  // #else                                                                         |   385  const TCHAR[]
  377                                                                                   <
                                                                                        >   386          SE_CREATE_TOKEN_NAME           = "SeCreateTokenPrivilege",
  378  // #if defined(_MAC) && defined(_MAC_INT_64)                                     |   387          SE_ASSIGNPRIMARYTOKEN_NAME     = "SeAssignPrimaryTokenPrivilege",
  379  // ...                                                                           |   388          SE_LOCK_MEMORY_NAME            = "SeLockMemoryPrivilege",
  380                                                                                   <
                                                                                        >   389          SE_INCREASE_QUOTA_NAME         = "SeIncreaseQuotaPrivilege",
  381  // #...                                                                          |   390          SE_UNSOLICITED_INPUT_NAME      = "SeUnsolicitedInputPrivilege",
  382  // #else                                                                         |   391          SE_MACHINE_ACCOUNT_NAME        = "SeMachineAccountPrivilege",
  383  alias double LONGLONG;                                                           |   392          SE_TCB_NAME                    = "SeTcbPrivilege",
  384  alias double ULONGLONG;                                                          |   393          SE_SECURITY_NAME               = "SeSecurityPrivilege",
  385  // #endif //_MAC and int64                                                       |   394          SE_TAKE_OWNERSHIP_NAME         = "SeTakeOwnershipPrivilege",
  386                                                                                   <
                                                                                        >   395          SE_LOAD_DRIVER_NAME            = "SeLoadDriverPrivilege",
  387  // #endif                                                                        |   396          SE_SYSTEM_PROFILE_NAME         = "SeSystemProfilePrivilege",
  388                                                                                   <
                                                                                        >   397          SE_SYSTEMTIME_NAME             = "SeSystemtimePrivilege",
  389  alias LONGLONG* PLONGLONG;                                                       |   398          SE_PROF_SINGLE_PROCESS_NAME    = "SeProfileSingleProcessPrivilege",
  390  alias ULONGLONG* PULONGLONG;                                                     |   399          SE_INC_BASE_PRIORITY_NAME      = "SeIncreaseBasePriorityPrivilege",
  391                                                                                   <
                                                                                        >   400          SE_CREATE_PAGEFILE_NAME        = "SeCreatePagefilePrivilege",
  392  alias LONGLONG USN;                                                              |   401          SE_CREATE_PERMANENT_NAME       = "SeCreatePermanentPrivilege",
  393                                                                                   <
                                                                                        >   402          SE_BACKUP_NAME                 = "SeBackupPrivilege",
  394  // #if defined(MIDL_PASS)                                                        |   403          SE_RESTORE_NAME                = "SeRestorePrivilege",
  395  // ...                                                                           |   404          SE_SHUTDOWN_NAME               = "SeShutdownPrivilege",
  396  // #else // MIDL_PASS                                                            |   405          SE_DEBUG_NAME                  = "SeDebugPrivilege",
  397  union _LARGE_INTEGER {                                                           |   406          SE_AUDIT_NAME                  = "SeAuditPrivilege",
  398  struct _0 {                                                                      |   407          SE_SYSTEM_ENVIRONMENT_NAME     = "SeSystemEnvironmentPrivilege",
  399    DWORD LowPart;                                                                 |   408          SE_CHANGE_NOTIFY_NAME          = "SeChangeNotifyPrivilege",
  400    LONG HighPart;                                                                 |   409          SE_REMOTE_SHUTDOWN_NAME        = "SeRemoteShutdownPrivilege",
  401  }                                                                                <
                                                                                        >   410          SE_CREATE_GLOBAL_NAME          = "SeCreateGlobalPrivilege",
  402  _0 _;                                                                            |   411          SE_UNDOCK_NAME                 = "SeUndockPrivilege",
                                                                                        >   412          SE_MANAGE_VOLUME_NAME          = "SeManageVolumePrivilege",
                                                                                        >   413          SE_IMPERSONATE_NAME            = "SeImpersonatePrivilege",
                                                                                        >   414          SE_ENABLE_DELEGATION_NAME      = "SeEnableDelegationPrivilege",
                                                                                        >   415          SE_SYNC_AGENT_NAME             = "SeSyncAgentPrivilege",
                                                                                        >   416          SE_TRUSTED_CREDMAN_ACCESS_NAME = "SeTrustedCredManAccessPrivilege",
                                                                                        >   417          SE_RELABEL_NAME                = "SeRelabelPrivilege",
                                                                                        >   418          SE_INCREASE_WORKING_SET_NAME   = "SeIncreaseWorkingSetPrivilege",
                                                                                        >   419          SE_TIME_ZONE_NAME              = "SeTimeZonePrivilege",
                                                                                        >   420          SE_CREATE_SYMBOLIC_LINK_NAME   = "SeCreateSymbolicLinkPrivilege";
  403                                                                                   |   421  
  404  struct _1 {                                                                      <
  405    DWORD LowPart;                                                                 |   422  const DWORD
  406    LONG HighPart;                                                                 <
  407  }                                                                                <
  408  _1 u;                                                                            <
  409                                                                                   <
  410  // #endif //MIDL_PASS                                                            <
  411    LONGLONG QuadPart;                                                             <
  412  }                                                                                <
  413  alias _LARGE_INTEGER LARGE_INTEGER;                                              <
  414                                                                                   <
                                                                                        >   423          SE_GROUP_MANDATORY          = 0x00000001,
  415  alias LARGE_INTEGER* PLARGE_INTEGER;                                             |   424          SE_GROUP_ENABLED_BY_DEFAULT = 0x00000002,
  416                                                                                   <
                                                                                        >   425          SE_GROUP_ENABLED            = 0x00000004,
  417  // #if defined(MIDL_PASS)                                                        |   426          SE_GROUP_OWNER              = 0x00000008,
  418  // ...                                                                           |   427          SE_GROUP_USE_FOR_DENY_ONLY  = 0x00000010,
  419  // #else // MIDL_PASS                                                            |   428          SE_GROUP_INTEGRITY          = 0x00000020,
  420  union _ULARGE_INTEGER {                                                          |   429          SE_GROUP_INTEGRITY_ENABLED  = 0x00000040,
  421  struct _2 {                                                                      |   430          SE_GROUP_RESOURCE           = 0x20000000,
  422    DWORD LowPart;                                                                 |   431          SE_GROUP_LOGON_ID           = 0xC0000000;
  423    DWORD HighPart;                                                                <
  424  }                                                                                |   432  
                                                                                        >   433  // Primary language identifiers
  425  _2 _;                                                                            |   434  enum : USHORT {
  426                                                                                   <
  427  struct _3 {                                                                      <
  428    DWORD LowPart;                                                                 <
  429    DWORD HighPart;                                                                <
  430  }                                                                                <
  431  _3 u;                                                                            <
  432                                                                                   <
  433  // #endif //MIDL_PASS                                                            <
  434    ULONGLONG QuadPart;                                                            <
  435  }                                                                                <
  436  alias _ULARGE_INTEGER ULARGE_INTEGER;                                            <
  437                                                                                   <
  438  alias ULARGE_INTEGER* PULARGE_INTEGER;                                           <
  439                                                                                   <
  440  struct _LUID {                                                                   <
  441    DWORD LowPart;                                                                 <
  442    LONG HighPart;                                                                 <
  443  }                                                                                <
  444  alias _LUID LUID;                                                                <
  445  alias _LUID* PLUID;                                                              <
  446                                                                                   <
  447  // #define _DWORDLONG_                                                           <
  448  alias ULONGLONG DWORDLONG;                                                       <
  449  alias DWORDLONG* PDWORDLONG;                                                     <
  450                                                                                   <
  451  // #if defined(MIDL_PASS) || defined(RC_INVOKED)                                 <
  452                                                                                   <
  453  // #...                                                                          <
  454  // #...                                                                          <
  455                                                                                   <
  456  // #...                                                                          <
  457  // #...                                                                          <
  458  // #...                                                                          <
  459                                                                                   <
  460  // #elif defined(_M_MRX000)                                                      <
  461                                                                                   <
  462  // #...                                                                          <
  463  // #...                                                                          <
  464                                                                                   <
  465  // #...                                                                          <
  466  // #...                                                                          <
  467  // #...                                                                          <
  468                                                                                   <
  469  // #if defined (__cplusplus)                                                     <
  470  // ...                                                                           <
  471  // #endif                                                                        <
  472                                                                                   <
  473  // ...                                                                           <
  474                                                                                   <
  475  // ...                                                                           <
  476                                                                                   <
  477  // ...                                                                           <
  478                                                                                   <
  479  // ...                                                                           <
  480                                                                                   <
  481  // ...                                                                           <
  482                                                                                   <
  483  // #if defined (__cplusplus)                                                     <
  484  // ...                                                                           <
  485  // #endif                                                                        <
  486                                                                                   <
  487  // #...                                                                          <
  488  // #...                                                                          <
  489                                                                                   <
  490  // #...                                                                          <
  491  // #...                                                                          <
  492  // #...                                                                          <
  493                                                                                   <
  494  // #elif defined(_M_IX86)                                                        <
  495                                                                                   <
  496  long Int32x32To64(int a, int b) { return (cast(long)a) * b; }                    <
  497  ulong UInt32x32To64(uint a, uint b) { return (cast(ulong)a) * b; }               <
  498                                                                                   <
  499  extern(Windows) export ULONGLONG Int64ShllMod32(                                 <
  500    ULONGLONG Value,                                                               <
  501    DWORD ShiftCount);                                                             <
  502                                                                                   <
  503  extern(Windows) export LONGLONG Int64ShraMod32(                                  <
  504    LONGLONG Value,                                                                <
  505    DWORD ShiftCount);                                                             <
  506                                                                                   <
  507  extern(Windows) export ULONGLONG Int64ShrlMod32(                                 <
  508    ULONGLONG Value,                                                               <
  509    DWORD ShiftCount);                                                             <
  510                                                                                   <
  511  // #if _MSC_VER >= 1200                                                          <
  512  // #pragma warning(push)                                                         <
  513  // #endif                                                                        <
  514  // #pragma warning(disable:4035)               // re-enable below                <
  515                                                                                   <
  516  // __inline ULONGLONG Int64ShllMod32(     ULONGLONG Value,     DWORD ShiftCount  <
  517                                                                                   <
  518  // __inline LONGLONG Int64ShraMod32(     LONGLONG Value,     DWORD ShiftCount    <
  519                                                                                   <
  520  // __inline ULONGLONG Int64ShrlMod32(     ULONGLONG Value,     DWORD ShiftCount  <
  521                                                                                   <
  522  // #if _MSC_VER >= 1200                                                          <
  523  // #pragma warning(pop)                                                          <
  524  // #else                                                                         <
  525  // #...                                                                          <
  526  // #endif                                                                        <
  527                                                                                   <
  528  // #elif defined(_M_ALPHA)                                                       <
  529                                                                                   <
  530  // #...                                                                          <
  531  // #...                                                                          <
  532                                                                                   <
  533  // #...                                                                          <
  534  // #...                                                                          <
  535  // #...                                                                          <
  536                                                                                   <
  537  // #elif defined(_M_PPC)                                                         <
  538                                                                                   <
  539  // #...                                                                          <
  540  // #...                                                                          <
  541                                                                                   <
  542  // #...                                                                          <
  543  // #...                                                                          <
  544  // #...                                                                          <
  545                                                                                   <
  546  // #elif defined(_68K_) || defined(_MPPC_)                                       <
  547                                                                                   <
  548  // #...                                                                          <
  549  // #...                                                                          <
  550                                                                                   <
  551  // #...                                                                          <
  552  // #...                                                                          <
  553  // #...                                                                          <
  554                                                                                   <
  555  // #elif defined(_M_IA64) || defined(_M_AMD64)                                   <
  556                                                                                   <
  557  // #...                                                                          <
  558  // #...                                                                          <
  559                                                                                   <
  560  // #...                                                                          <
  561  // #...                                                                          <
  562  // #...                                                                          <
  563                                                                                   <
  564  // #else                                                                         <
  565                                                                                   <
  566  // #...                                                                          <
  567                                                                                   <
  568  // #endif                                                                        <
  569                                                                                   <
  570  enum : CHAR { ANSI_NULL = 0 }                                                    <
  571  enum : WCHAR { UNICODE_NULL = 0 }                                                <
  572  enum : WORD { UNICODE_STRING_MAX_BYTES = 65534 }                                 <
  573  enum : uint { UNICODE_STRING_MAX_CHARS = 32767 }                                 <
  574  alias BYTE BOOLEAN;                                                              <
  575  alias BOOLEAN* PBOOLEAN;                                                         <
  576                                                                                   <
  577  struct _LIST_ENTRY {                                                             <
  578    _LIST_ENTRY *Flink;                                                            <
  579    _LIST_ENTRY *Blink;                                                            <
  580  }                                                                                <
  581  alias _LIST_ENTRY LIST_ENTRY;                                                    <
  582  alias _LIST_ENTRY* PLIST_ENTRY;                                                  <
  583  alias _LIST_ENTRY* RESTRICTED_POINTERPRLIST_ENTRY;                               <
  584                                                                                   <
  585  struct _SINGLE_LIST_ENTRY {                                                      <
  586    _SINGLE_LIST_ENTRY *Next;                                                      <
  587  }                                                                                <
  588  alias _SINGLE_LIST_ENTRY SINGLE_LIST_ENTRY;                                      <
  589  alias _SINGLE_LIST_ENTRY* PSINGLE_LIST_ENTRY;                                    <
  590                                                                                   <
  591  struct LIST_ENTRY32 {                                                            <
  592    DWORD Flink;                                                                   <
  593    DWORD Blink;                                                                   <
  594  }                                                                                <
  595                                                                                   <
  596  alias LIST_ENTRY32* PLIST_ENTRY32;                                               <
  597                                                                                   <
  598  struct LIST_ENTRY64 {                                                            <
  599    ULONGLONG Flink;                                                               <
  600    ULONGLONG Blink;                                                               <
  601  }                                                                                <
  602                                                                                   <
  603  alias LIST_ENTRY64* PLIST_ENTRY64;                                               <
  604                                                                                   <
  605  import win32.guiddef;                                                            <
  606                                                                                   <
  607  // #ifndef __OBJECTID_DEFINED                                                    <
  608  // #define __OBJECTID_DEFINED                                                    <
  609                                                                                   <
  610  struct _OBJECTID {                                                               <
  611    GUID Lineage;                                                                  <
  612    DWORD Uniquifier;                                                              <
  613  }                                                                                <
  614  alias _OBJECTID OBJECTID;                                                        <
  615                                                                                   <
  616  // #endif // !_OBJECTID_DEFINED                                                  <
  617                                                                                   <
  618  enum : uint { MINCHAR = 0x80 }                                                   <
  619  enum : uint { MAXCHAR = 0x7f }                                                   <
  620  enum : uint { MINSHORT = 0x8000 }                                                <
  621  enum : uint { MAXSHORT = 0x7fff }                                                <
  622  enum : uint { MINLONG = 0x80000000 }                                             <
  623  enum : uint { MAXLONG = 0x7fffffff }                                             <
  624  enum : uint { MAXBYTE = 0xff }                                                   <
  625  enum : uint { MAXWORD = 0xffff }                                                 <
  626  enum : uint { MAXDWORD = 0xffffffff }                                            <
  627                                                                                   <
  628  // #define FIELD_OFFSET(type, field) ((LONG)(LONG_PTR)&(((type *)0)->field))     <
  629                                                                                   <
  630  // #if(_WIN32_WINNT > 0x0500)                                                    <
  631                                                                                   <
  632  // #define RTL_FIELD_SIZE(type, field) (sizeof(((type *)0)->field))              <
  633                                                                                   <
  634  // #define RTL_SIZEOF_THROUGH_FIELD(type, field) (FIELD_OFFSET(type, field) + RT <
  635                                                                                   <
  636  // #define RTL_CONTAINS_FIELD(Struct, Size, Field) ( (((PCHAR)(&(Struct)->Field) <
  637                                                                                   <
  638  // #define RTL_NUMBER_OF(A) (sizeof(A)/sizeof((A)[0]))                           <
  639                                                                                   <
  640  // #define RTL_FIELD_TYPE(type, field) (((type*)0)->field)                       <
  641                                                                                   <
  642  // #define RTL_NUMBER_OF_FIELD(type, field) (RTL_NUMBER_OF(RTL_FIELD_TYPE(type,  <
  643                                                                                   <
  644  // #define RTL_PADDING_BETWEEN_FIELDS(T, F1, F2) ((FIELD_OFFSET(T, F2) > FIELD_O <
  645                                                                                   <
  646  // #if defined(__cplusplus)                                                      <
  647  // #define RTL_CONST_CAST(type) const_cast<type>                                 <
  648  // #else                                                                         <
  649  // #...                                                                          <
  650  // #endif                                                                        <
  651                                                                                   <
  652  // #define RTL_BITS_OF(sizeOfArg) (sizeof(sizeOfArg) * 8)                        <
  653                                                                                   <
  654  // #define RTL_BITS_OF_FIELD(type, field) (RTL_BITS_OF(RTL_FIELD_TYPE(type, fiel <
  655                                                                                   <
  656  // #endif /* _WIN32_WINNT > 0x0500 */                                            <
  657                                                                                   <
  658  // #define CONTAINING_RECORD(address, type, field) ((type *)( (PCHAR)(address) - <
  659                                                                                   <
  660  enum : uint { VER_SERVER_NT = 0x80000000 }                                       <
  661  enum : uint { VER_WORKSTATION_NT = 0x40000000 }                                  <
  662  enum : uint { VER_SUITE_SMALLBUSINESS = 0x00000001 }                             <
  663  enum : uint { VER_SUITE_ENTERPRISE = 0x00000002 }                                <
  664  enum : uint { VER_SUITE_BACKOFFICE = 0x00000004 }                                <
  665  enum : uint { VER_SUITE_COMMUNICATIONS = 0x00000008 }                            <
  666  enum : uint { VER_SUITE_TERMINAL = 0x00000010 }                                  <
  667  enum : uint { VER_SUITE_SMALLBUSINESS_RESTRICTED = 0x00000020 }                  <
  668  enum : uint { VER_SUITE_EMBEDDEDNT = 0x00000040 }                                <
  669  enum : uint { VER_SUITE_DATACENTER = 0x00000080 }                                <
  670  enum : uint { VER_SUITE_SINGLEUSERTS = 0x00000100 }                              <
  671  enum : uint { VER_SUITE_PERSONAL = 0x00000200 }                                  <
  672  enum : uint { VER_SUITE_BLADE = 0x00000400 }                                     <
  673                                                                                   <
  674  enum : uint { LANG_NEUTRAL = 0x00 }                                              |   435          LANG_NEUTRAL,
  675  enum : uint { LANG_INVARIANT = 0x7f }                                            <
  676                                                                                   <
  677  enum : uint { LANG_AFRIKAANS = 0x36 }                                            <
  678  enum : uint { LANG_ALBANIAN = 0x1c }                                             <
  679  enum : uint { LANG_ARABIC = 0x01 }                                               |   436          LANG_ARABIC,
  680  enum : uint { LANG_ARMENIAN = 0x2b }                                             <
  681  enum : uint { LANG_ASSAMESE = 0x4d }                                             <
  682  enum : uint { LANG_AZERI = 0x2c }                                                <
  683  enum : uint { LANG_BASQUE = 0x2d }                                               <
  684  enum : uint { LANG_BELARUSIAN = 0x23 }                                           <
  685  enum : uint { LANG_BENGALI = 0x45 }                                              <
  686  enum : uint { LANG_BULGARIAN = 0x02 }                                            |   437          LANG_BULGARIAN,
  687  enum : uint { LANG_CATALAN = 0x03 }                                              |   438          LANG_CATALAN,
  688  enum : uint { LANG_CHINESE = 0x04 }                                              |   439          LANG_CHINESE,
  689  enum : uint { LANG_CROATIAN = 0x1a }                                             <
  690  enum : uint { LANG_CZECH = 0x05 }                                                |   440          LANG_CZECH,
  691  enum : uint { LANG_DANISH = 0x06 }                                               |   441          LANG_DANISH,
  692  enum : uint { LANG_DIVEHI = 0x65 }                                               <
  693  enum : uint { LANG_DUTCH = 0x13 }                                                <
                                                                                        >   442          LANG_GERMAN,
                                                                                        >   443          LANG_GREEK,
  694  enum : uint { LANG_ENGLISH = 0x09 }                                              |   444          LANG_ENGLISH,
  695  enum : uint { LANG_ESTONIAN = 0x25 }                                             <
  696  enum : uint { LANG_FAEROESE = 0x38 }                                             <
  697  enum : uint { LANG_FARSI = 0x29 }                                                <
                                                                                        >   445          LANG_SPANISH,
  698  enum : uint { LANG_FINNISH = 0x0b }                                              |   446          LANG_FINNISH,
  699  enum : uint { LANG_FRENCH = 0x0c }                                               |   447          LANG_FRENCH,
  700  enum : uint { LANG_GALICIAN = 0x56 }                                             <
  701  enum : uint { LANG_GEORGIAN = 0x37 }                                             <
  702  enum : uint { LANG_GERMAN = 0x07 }                                               <
  703  enum : uint { LANG_GREEK = 0x08 }                                                <
  704  enum : uint { LANG_GUJARATI = 0x47 }                                             <
  705  enum : uint { LANG_HEBREW = 0x0d }                                               |   448          LANG_HEBREW,
  706  enum : uint { LANG_HINDI = 0x39 }                                                <
  707  enum : uint { LANG_HUNGARIAN = 0x0e }                                            |   449          LANG_HUNGARIAN,
  708  enum : uint { LANG_ICELANDIC = 0x0f }                                            |   450          LANG_ICELANDIC,
  709  enum : uint { LANG_INDONESIAN = 0x21 }                                           <
  710  enum : uint { LANG_ITALIAN = 0x10 }                                              |   451          LANG_ITALIAN,
  711  enum : uint { LANG_JAPANESE = 0x11 }                                             |   452          LANG_JAPANESE,
  712  enum : uint { LANG_KANNADA = 0x4b }                                              <
  713  enum : uint { LANG_KASHMIRI = 0x60 }                                             <
  714  enum : uint { LANG_KAZAK = 0x3f }                                                <
  715  enum : uint { LANG_KONKANI = 0x57 }                                              <
  716  enum : uint { LANG_KOREAN = 0x12 }                                               |   453          LANG_KOREAN,
  717  enum : uint { LANG_KYRGYZ = 0x40 }                                               <
  718  enum : uint { LANG_LATVIAN = 0x26 }                                              <
  719  enum : uint { LANG_LITHUANIAN = 0x27 }                                           <
  720  enum : uint { LANG_MACEDONIAN = 0x2f }                                           <
  721  enum : uint { LANG_MALAY = 0x3e }                                                <
  722  enum : uint { LANG_MALAYALAM = 0x4c }                                            <
  723  enum : uint { LANG_MANIPURI = 0x58 }                                             <
  724  enum : uint { LANG_MARATHI = 0x4e }                                              <
  725  enum : uint { LANG_MONGOLIAN = 0x50 }                                            <
  726  enum : uint { LANG_NEPALI = 0x61 }                                               <
                                                                                        >   454          LANG_DUTCH,
  727  enum : uint { LANG_NORWEGIAN = 0x14 }                                            |   455          LANG_NORWEGIAN,
  728  enum : uint { LANG_ORIYA = 0x48 }                                                <
  729  enum : uint { LANG_POLISH = 0x15 }                                               |   456          LANG_POLISH,
  730  enum : uint { LANG_PORTUGUESE = 0x16 }                                           |   457          LANG_PORTUGUESE,    // = 0x16
  731  enum : uint { LANG_PUNJABI = 0x46 }                                              <
  732  enum : uint { LANG_ROMANIAN = 0x18 }                                             |   458          LANG_ROMANIAN          = 0x18,
  733  enum : uint { LANG_RUSSIAN = 0x19 }                                              |   459          LANG_RUSSIAN,
  734  enum : uint { LANG_SANSKRIT = 0x4f }                                             <
                                                                                        >   460          LANG_CROATIAN,      // = 0x1A
  735  enum : uint { LANG_SERBIAN = 0x1a }                                              |   461          LANG_SERBIAN           = 0x1A,
  736  enum : uint { LANG_SINDHI = 0x59 }                                               <
                                                                                        >   462          LANG_BOSNIAN           = 0x1A,
  737  enum : uint { LANG_SLOVAK = 0x1b }                                               |   463          LANG_SLOVAK,
  738  enum : uint { LANG_SLOVENIAN = 0x24 }                                            <
  739  enum : uint { LANG_SPANISH = 0x0a }                                              <
  740  enum : uint { LANG_SWAHILI = 0x41 }                                              <
                                                                                        >   464          LANG_ALBANIAN,
  741  enum : uint { LANG_SWEDISH = 0x1d }                                              |   465          LANG_SWEDISH,
  742  enum : uint { LANG_SYRIAC = 0x5a }                                               <
  743  enum : uint { LANG_TAMIL = 0x49 }                                                <
  744  enum : uint { LANG_TATAR = 0x44 }                                                <
  745  enum : uint { LANG_TELUGU = 0x4a }                                               <
  746  enum : uint { LANG_THAI = 0x1e }                                                 |   466          LANG_THAI,
  747  enum : uint { LANG_TURKISH = 0x1f }                                              |   467          LANG_TURKISH,
                                                                                        >   468          LANG_URDU,
                                                                                        >   469          LANG_INDONESIAN,
  748  enum : uint { LANG_UKRAINIAN = 0x22 }                                            |   470          LANG_UKRAINIAN,
  749  enum : uint { LANG_URDU = 0x20 }                                                 <
  750  enum : uint { LANG_UZBEK = 0x43 }                                                <
                                                                                        >   471          LANG_BELARUSIAN,
                                                                                        >   472          LANG_SLOVENIAN,
                                                                                        >   473          LANG_ESTONIAN,
                                                                                        >   474          LANG_LATVIAN,
                                                                                        >   475          LANG_LITHUANIAN,    // = 0x27
                                                                                        >   476          LANG_FARSI             = 0x29,
                                                                                        >   477          LANG_PERSIAN           = 0x29,
  751  enum : uint { LANG_VIETNAMESE = 0x2a }                                           |   478          LANG_VIETNAMESE,
                                                                                        >   479          LANG_ARMENIAN,
                                                                                        >   480          LANG_AZERI,
                                                                                        >   481          LANG_BASQUE,
                                                                                        >   482          LANG_LOWER_SORBIAN, // = 0x2E
                                                                                        >   483          LANG_UPPER_SORBIAN     = 0x2E,
                                                                                        >   484          LANG_MACEDONIAN,    // = 0x2F
                                                                                        >   485          LANG_TSWANA            = 0x32,
                                                                                        >   486          LANG_XHOSA             = 0x34,
                                                                                        >   487          LANG_ZULU,
                                                                                        >   488          LANG_AFRIKAANS,
                                                                                        >   489          LANG_GEORGIAN,
                                                                                        >   490          LANG_FAEROESE,
                                                                                        >   491          LANG_HINDI,
                                                                                        >   492          LANG_MALTESE,
                                                                                        >   493          LANG_SAMI,
                                                                                        >   494          LANG_IRISH,         // = 0x3C
                                                                                        >   495          LANG_MALAY             = 0x3E,
                                                                                        >   496          LANG_KAZAK,
                                                                                        >   497          LANG_KYRGYZ,
                                                                                        >   498          LANG_SWAHILI,       // = 0x41
                                                                                        >   499          LANG_UZBEK             = 0x43,
                                                                                        >   500          LANG_TATAR,
                                                                                        >   501          LANG_BENGALI,
                                                                                        >   502          LANG_PUNJABI,
                                                                                        >   503          LANG_GUJARATI,
                                                                                        >   504          LANG_ORIYA,
                                                                                        >   505          LANG_TAMIL,
                                                                                        >   506          LANG_TELUGU,
                                                                                        >   507          LANG_KANNADA,
                                                                                        >   508          LANG_MALAYALAM,
                                                                                        >   509          LANG_ASSAMESE,
                                                                                        >   510          LANG_MARATHI,
                                                                                        >   511          LANG_SANSKRIT,
                                                                                        >   512          LANG_MONGOLIAN,
                                                                                        >   513          LANG_TIBETAN,
                                                                                        >   514          LANG_WELSH,
                                                                                        >   515          LANG_KHMER,
                                                                                        >   516          LANG_LAO,           // = 0x54
                                                                                        >   517          LANG_GALICIAN          = 0x56,
                                                                                        >   518          LANG_KONKANI,
                                                                                        >   519          LANG_MANIPURI,
                                                                                        >   520          LANG_SINDHI,
                                                                                        >   521          LANG_SYRIAC,
                                                                                        >   522          LANG_SINHALESE,     // = 0x5B
                                                                                        >   523          LANG_INUKTITUT         = 0x5D,
                                                                                        >   524          LANG_AMHARIC,
                                                                                        >   525          LANG_TAMAZIGHT,
                                                                                        >   526          LANG_KASHMIRI,
                                                                                        >   527          LANG_NEPALI,
                                                                                        >   528          LANG_FRISIAN,
                                                                                        >   529          LANG_PASHTO,
                                                                                        >   530          LANG_FILIPINO,
                                                                                        >   531          LANG_DIVEHI,        // = 0x65
                                                                                        >   532          LANG_HAUSA             = 0x68,
                                                                                        >   533          LANG_YORUBA            = 0x6A,
                                                                                        >   534          LANG_QUECHUA,
                                                                                        >   535          LANG_SOTHO,
                                                                                        >   536          LANG_BASHKIR,
                                                                                        >   537          LANG_LUXEMBOURGISH,
                                                                                        >   538          LANG_GREENLANDIC,
                                                                                        >   539          LANG_IGBO,          // = 0x70
                                                                                        >   540          LANG_TIGRIGNA          = 0x73,
                                                                                        >   541          LANG_YI                = 0x78,
                                                                                        >   542          LANG_MAPUDUNGUN        = 0x7A,
                                                                                        >   543          LANG_MOHAWK            = 0x7C,
                                                                                        >   544          LANG_BRETON            = 0x7E,
                                                                                        >   545          LANG_UIGHUR            = 0x80,
                                                                                        >   546          LANG_MAORI,
                                                                                        >   547          LANG_OCCITAN,
                                                                                        >   548          LANG_CORSICAN,
                                                                                        >   549          LANG_ALSATIAN,
                                                                                        >   550          LANG_YAKUT,
                                                                                        >   551          LANG_KICHE,
                                                                                        >   552          LANG_KINYARWANDA,
                                                                                        >   553          LANG_WOLOF,         // = 0x88
                                                                                        >   554          LANG_DARI              = 0x8C,
                                                                                        >   555          LANG_MALAGASY,      // = 0x8D
  752                                                                                   |   556  
                                                                                        >   557          LANG_SERBIAN_NEUTRAL   = 0x7C1A,
                                                                                        >   558          LANG_BOSNIAN_NEUTRAL   = 0x781A,
                                                                                        >   559  
                                                                                        >   560          LANG_INVARIANT         = 0x7F
                                                                                        >   561  }
                                                                                        >   562  
                                                                                        >   563  
                                                                                        >   564  // Sublanguage identifiers
                                                                                        >   565  enum : USHORT {
  753  enum : uint { SUBLANG_NEUTRAL = 0x00 }                                           |   566          SUBLANG_NEUTRAL,
  754  enum : uint { SUBLANG_DEFAULT = 0x01 }                                           |   567          SUBLANG_DEFAULT,
  755  enum : uint { SUBLANG_SYS_DEFAULT = 0x02 }                                       |   568          SUBLANG_SYS_DEFAULT,
                                                                                        >   569          SUBLANG_CUSTOM_DEFAULT,                  // =  3
                                                                                        >   570          SUBLANG_UI_CUSTOM_DEFAULT                   =  3,
                                                                                        >   571          SUBLANG_CUSTOM_UNSPECIFIED,              // =  4
  756                                                                                   |   572  
                                                                                        >   573          SUBLANG_AFRIKAANS_SOUTH_AFRICA              =  1,
                                                                                        >   574          SUBLANG_ALBANIAN_ALBANIA                    =  1,
                                                                                        >   575          SUBLANG_ALSATIAN_FRANCE                     =  1,
                                                                                        >   576          SUBLANG_AMHARIC_ETHIOPIA                    =  1,
                                                                                        >   577  
  757  enum : uint { SUBLANG_ARABIC_SAUDI_ARABIA = 0x01 }                               |   578          SUBLANG_ARABIC_SAUDI_ARABIA                 =  1,
  758  enum : uint { SUBLANG_ARABIC_IRAQ = 0x02 }                                       |   579          SUBLANG_ARABIC_IRAQ,
  759  enum : uint { SUBLANG_ARABIC_EGYPT = 0x03 }                                      |   580          SUBLANG_ARABIC_EGYPT,
  760  enum : uint { SUBLANG_ARABIC_LIBYA = 0x04 }                                      |   581          SUBLANG_ARABIC_LIBYA,
  761  enum : uint { SUBLANG_ARABIC_ALGERIA = 0x05 }                                    |   582          SUBLANG_ARABIC_ALGERIA,
  762  enum : uint { SUBLANG_ARABIC_MOROCCO = 0x06 }                                    |   583          SUBLANG_ARABIC_MOROCCO,
  763  enum : uint { SUBLANG_ARABIC_TUNISIA = 0x07 }                                    |   584          SUBLANG_ARABIC_TUNISIA,
  764  enum : uint { SUBLANG_ARABIC_OMAN = 0x08 }                                       |   585          SUBLANG_ARABIC_OMAN,
  765  enum : uint { SUBLANG_ARABIC_YEMEN = 0x09 }                                      |   586          SUBLANG_ARABIC_YEMEN,
  766  enum : uint { SUBLANG_ARABIC_SYRIA = 0x0a }                                      |   587          SUBLANG_ARABIC_SYRIA,
  767  enum : uint { SUBLANG_ARABIC_JORDAN = 0x0b }                                     |   588          SUBLANG_ARABIC_JORDAN,
  768  enum : uint { SUBLANG_ARABIC_LEBANON = 0x0c }                                    |   589          SUBLANG_ARABIC_LEBANON,
  769  enum : uint { SUBLANG_ARABIC_KUWAIT = 0x0d }                                     |   590          SUBLANG_ARABIC_KUWAIT,
  770  enum : uint { SUBLANG_ARABIC_UAE = 0x0e }                                        |   591          SUBLANG_ARABIC_UAE,
  771  enum : uint { SUBLANG_ARABIC_BAHRAIN = 0x0f }                                    |   592          SUBLANG_ARABIC_BAHRAIN,
  772  enum : uint { SUBLANG_ARABIC_QATAR = 0x10 }                                      |   593          SUBLANG_ARABIC_QATAR,                    // = 16
                                                                                        >   594  
                                                                                        >   595          SUBLANG_ARMENIAN_ARMENIA                    =  1,
                                                                                        >   596          SUBLANG_ASSAMESE_INDIA                      =  1,
                                                                                        >   597  
  773  enum : uint { SUBLANG_AZERI_LATIN = 0x01 }                                       |   598          SUBLANG_AZERI_LATIN                         =  1,
  774  enum : uint { SUBLANG_AZERI_CYRILLIC = 0x02 }                                    |   599          SUBLANG_AZERI_CYRILLIC,                  // =  2
                                                                                        >   600  
                                                                                        >   601          SUBLANG_BASHKIR_RUSSIA                      =  1,
                                                                                        >   602          SUBLANG_BASQUE_BASQUE                       =  1,
                                                                                        >   603          SUBLANG_BELARUSIAN_BELARUS                  =  1,
                                                                                        >   604          SUBLANG_BENGALI_INDIA                       =  1,
                                                                                        >   605  
                                                                                        >   606          SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_LATIN    =  5,
                                                                                        >   607          SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_CYRILLIC =  8,
                                                                                        >   608  
                                                                                        >   609          SUBLANG_BRETON_FRANCE                       =  1,
                                                                                        >   610          SUBLANG_BULGARIAN_BULGARIA                  =  1,
                                                                                        >   611          SUBLANG_CATALAN_CATALAN                     =  1,
                                                                                        >   612  
  775  enum : uint { SUBLANG_CHINESE_TRADITIONAL = 0x01 }                               |   613          SUBLANG_CHINESE_TRADITIONAL                 =  1,
  776  enum : uint { SUBLANG_CHINESE_SIMPLIFIED = 0x02 }                                |   614          SUBLANG_CHINESE_SIMPLIFIED,
  777  enum : uint { SUBLANG_CHINESE_HONGKONG = 0x03 }                                  |   615          SUBLANG_CHINESE_HONGKONG,
  778  enum : uint { SUBLANG_CHINESE_SINGAPORE = 0x04 }                                 |   616          SUBLANG_CHINESE_SINGAPORE,
  779  enum : uint { SUBLANG_CHINESE_MACAU = 0x05 }                                     |   617          SUBLANG_CHINESE_MACAU,                   // =  5
  780  enum : uint { SUBLANG_DUTCH = 0x01 }                                             <
                                                                                        >   618  
                                                                                        >   619          SUBLANG_CORSICAN_FRANCE                     =  1,
                                                                                        >   620  
                                                                                        >   621          SUBLANG_CROATIAN_CROATIA                    =  1,
                                                                                        >   622          SUBLANG_CROATIAN_BOSNIA_HERZEGOVINA_LATIN   =  4,
                                                                                        >   623  
                                                                                        >   624          SUBLANG_CZECH_CZECH_REPUBLIC                =  1,
                                                                                        >   625          SUBLANG_DANISH_DENMARK                      =  1,
                                                                                        >   626          SUBLANG_DIVEHI_MALDIVES                     =  1,
                                                                                        >   627  
                                                                                        >   628          SUBLANG_DUTCH                               =  1,
  781  enum : uint { SUBLANG_DUTCH_BELGIAN = 0x02 }                                     |   629          SUBLANG_DUTCH_BELGIAN,                   // =  2
                                                                                        >   630  
  782  enum : uint { SUBLANG_ENGLISH_US = 0x01 }                                        |   631          SUBLANG_ENGLISH_US                          =  1,
  783  enum : uint { SUBLANG_ENGLISH_UK = 0x02 }                                        |   632          SUBLANG_ENGLISH_UK,
  784  enum : uint { SUBLANG_ENGLISH_AUS = 0x03 }                                       |   633          SUBLANG_ENGLISH_AUS,
  785  enum : uint { SUBLANG_ENGLISH_CAN = 0x04 }                                       |   634          SUBLANG_ENGLISH_CAN,
  786  enum : uint { SUBLANG_ENGLISH_NZ = 0x05 }                                        |   635          SUBLANG_ENGLISH_NZ,
  787  enum : uint { SUBLANG_ENGLISH_EIRE = 0x06 }                                      |   636          SUBLANG_ENGLISH_EIRE,                    // =  6
                                                                                        >   637          SUBLANG_ENGLISH_IRELAND                     =  6,
  788  enum : uint { SUBLANG_ENGLISH_SOUTH_AFRICA = 0x07 }                              |   638          SUBLANG_ENGLISH_SOUTH_AFRICA,
  789  enum : uint { SUBLANG_ENGLISH_JAMAICA = 0x08 }                                   |   639          SUBLANG_ENGLISH_JAMAICA,
  790  enum : uint { SUBLANG_ENGLISH_CARIBBEAN = 0x09 }                                 |   640          SUBLANG_ENGLISH_CARIBBEAN,
  791  enum : uint { SUBLANG_ENGLISH_BELIZE = 0x0a }                                    |   641          SUBLANG_ENGLISH_BELIZE,
  792  enum : uint { SUBLANG_ENGLISH_TRINIDAD = 0x0b }                                  |   642          SUBLANG_ENGLISH_TRINIDAD,
  793  enum : uint { SUBLANG_ENGLISH_ZIMBABWE = 0x0c }                                  |   643          SUBLANG_ENGLISH_ZIMBABWE,
  794  enum : uint { SUBLANG_ENGLISH_PHILIPPINES = 0x0d }                               |   644          SUBLANG_ENGLISH_PHILIPPINES,             // = 13
                                                                                        >   645          SUBLANG_ENGLISH_INDIA                       = 16,
                                                                                        >   646          SUBLANG_ENGLISH_MALAYSIA,
                                                                                        >   647          SUBLANG_ENGLISH_SINGAPORE,               // = 18
                                                                                        >   648  
                                                                                        >   649          SUBLANG_ESTONIAN_ESTONIA                    =  1,
                                                                                        >   650          SUBLANG_FAEROESE_FAROE_ISLANDS              =  1,
                                                                                        >   651          SUBLANG_FILIPINO_PHILIPPINES                =  1,
                                                                                        >   652          SUBLANG_FINNISH_FINLAND                     =  1,
                                                                                        >   653  
  795  enum : uint { SUBLANG_FRENCH = 0x01 }                                            |   654          SUBLANG_FRENCH                              =  1,
  796  enum : uint { SUBLANG_FRENCH_BELGIAN = 0x02 }                                    |   655          SUBLANG_FRENCH_BELGIAN,
  797  enum : uint { SUBLANG_FRENCH_CANADIAN = 0x03 }                                   |   656          SUBLANG_FRENCH_CANADIAN,
  798  enum : uint { SUBLANG_FRENCH_SWISS = 0x04 }                                      |   657          SUBLANG_FRENCH_SWISS,
  799  enum : uint { SUBLANG_FRENCH_LUXEMBOURG = 0x05 }                                 |   658          SUBLANG_FRENCH_LUXEMBOURG,
  800  enum : uint { SUBLANG_FRENCH_MONACO = 0x06 }                                     |   659          SUBLANG_FRENCH_MONACO,                   // =  6
                                                                                        >   660  
                                                                                        >   661          SUBLANG_FRISIAN_NETHERLANDS                 =  1,
                                                                                        >   662          SUBLANG_GALICIAN_GALICIAN                   =  1,
                                                                                        >   663          SUBLANG_GEORGIAN_GEORGIA                    =  1,
                                                                                        >   664  
  801  enum : uint { SUBLANG_GERMAN = 0x01 }                                            |   665          SUBLANG_GERMAN                              =  1,
  802  enum : uint { SUBLANG_GERMAN_SWISS = 0x02 }                                      |   666          SUBLANG_GERMAN_SWISS,
  803  enum : uint { SUBLANG_GERMAN_AUSTRIAN = 0x03 }                                   |   667          SUBLANG_GERMAN_AUSTRIAN,
  804  enum : uint { SUBLANG_GERMAN_LUXEMBOURG = 0x04 }                                 |   668          SUBLANG_GERMAN_LUXEMBOURG,
  805  enum : uint { SUBLANG_GERMAN_LIECHTENSTEIN = 0x05 }                              |   669          SUBLANG_GERMAN_LIECHTENSTEIN,            // =  5
                                                                                        >   670  
                                                                                        >   671          SUBLANG_GREEK_GREECE                        =  1,
                                                                                        >   672          SUBLANG_GREENLANDIC_GREENLAND               =  1,
                                                                                        >   673          SUBLANG_GUJARATI_INDIA                      =  1,
                                                                                        >   674          SUBLANG_HAUSA_NIGERIA                       =  1,
                                                                                        >   675          SUBLANG_HEBREW_ISRAEL                       =  1,
                                                                                        >   676          SUBLANG_HINDI_INDIA                         =  1,
                                                                                        >   677          SUBLANG_HUNGARIAN_HUNGARY                   =  1,
                                                                                        >   678          SUBLANG_ICELANDIC_ICELAND                   =  1,
                                                                                        >   679          SUBLANG_IGBO_NIGERIA                        =  1,
                                                                                        >   680          SUBLANG_INDONESIAN_INDONESIA                =  1,
                                                                                        >   681  
                                                                                        >   682          SUBLANG_INUKTITUT_CANADA                    =  1,
                                                                                        >   683          SUBLANG_INUKTITUT_CANADA_LATIN              =  1,
                                                                                        >   684  
                                                                                        >   685          SUBLANG_IRISH_IRELAND                       =  1,
                                                                                        >   686  
  806  enum : uint { SUBLANG_ITALIAN = 0x01 }                                           |   687          SUBLANG_ITALIAN                             =  1,
  807  enum : uint { SUBLANG_ITALIAN_SWISS = 0x02 }                                     |   688          SUBLANG_ITALIAN_SWISS,                   // =  2
  808  // #if _WIN32_WINNT >= 0x0501                                                    <
                                                                                        >   689  
                                                                                        >   690          SUBLANG_JAPANESE_JAPAN                      =  1,
                                                                                        >   691  
  809  enum : uint { SUBLANG_KASHMIRI_SASIA = 0x02 }                                    |   692          SUBLANG_KASHMIRI_INDIA                      =  2,
  810  // #endif                                                                        <
  811  enum : uint { SUBLANG_KASHMIRI_INDIA = 0x02 }                                    |   693          SUBLANG_KASHMIRI_SASIA                      =  2,
                                                                                        >   694  
                                                                                        >   695          SUBLANG_KAZAK_KAZAKHSTAN                    =  1,
                                                                                        >   696          SUBLANG_KHMER_CAMBODIA                      =  1,
                                                                                        >   697          SUBLANG_KICHE_GUATEMALA                     =  1,
                                                                                        >   698          SUBLANG_KINYARWANDA_RWANDA                  =  1,
                                                                                        >   699          SUBLANG_KONKANI_INDIA                       =  1,
  812  enum : uint { SUBLANG_KOREAN = 0x01 }                                            |   700          SUBLANG_KOREAN                              =  1,
                                                                                        >   701          SUBLANG_KYRGYZ_KYRGYZSTAN                   =  1,
                                                                                        >   702          SUBLANG_LAO_LAO_PDR                         =  1,
                                                                                        >   703          SUBLANG_LATVIAN_LATVIA                      =  1,
                                                                                        >   704  
  813  enum : uint { SUBLANG_LITHUANIAN = 0x01 }                                        |   705          SUBLANG_LITHUANIAN                          =  1,
                                                                                        >   706          SUBLANG_LITHUANIAN_LITHUANIA                =  1,
                                                                                        >   707  
                                                                                        >   708          SUBLANG_LOWER_SORBIAN_GERMANY               =  1,
                                                                                        >   709          SUBLANG_LUXEMBOURGISH_LUXEMBOURG            =  1,
                                                                                        >   710          SUBLANG_MACEDONIAN_MACEDONIA                =  1,
                                                                                        >   711          SUBLANG_MALAYALAM_INDIA                     =  1,
                                                                                        >   712          SUBLANG_MALTESE_MALTA                       =  1,
                                                                                        >   713          SUBLANG_MAORI_NEW_ZEALAND                   =  1,
                                                                                        >   714          SUBLANG_MAPUDUNGUN_CHILE                    =  1,
                                                                                        >   715          SUBLANG_MARATHI_INDIA                       =  1,
                                                                                        >   716          SUBLANG_MOHAWK_MOHAWK                       =  1,
                                                                                        >   717  
                                                                                        >   718          SUBLANG_MONGOLIAN_CYRILLIC_MONGOLIA         =  1,
                                                                                        >   719          SUBLANG_MONGOLIAN_PRC,                   // =  2
                                                                                        >   720  
  814  enum : uint { SUBLANG_MALAY_MALAYSIA = 0x01 }                                    |   721          SUBLANG_MALAY_MALAYSIA                      =  1,
  815  enum : uint { SUBLANG_MALAY_BRUNEI_DARUSSALAM = 0x02 }                           |   722          SUBLANG_MALAY_BRUNEI_DARUSSALAM,         // =  2
                                                                                        >   723  
                                                                                        >   724          SUBLANG_NEPALI_NEPAL                        =  1,
  816  enum : uint { SUBLANG_NEPALI_INDIA = 0x02 }                                      |   725          SUBLANG_NEPALI_INDIA,                    // =  2
                                                                                        >   726  
  817  enum : uint { SUBLANG_NORWEGIAN_BOKMAL = 0x01 }                                  |   727          SUBLANG_NORWEGIAN_BOKMAL                    =  1,
  818  enum : uint { SUBLANG_NORWEGIAN_NYNORSK = 0x02 }                                 |   728          SUBLANG_NORWEGIAN_NYNORSK,               // =  2
                                                                                        >   729  
                                                                                        >   730          SUBLANG_OCCITAN_FRANCE                      =  1,
                                                                                        >   731          SUBLANG_ORIYA_INDIA                         =  1,
                                                                                        >   732          SUBLANG_PASHTO_AFGHANISTAN                  =  1,
                                                                                        >   733          SUBLANG_PERSIAN_IRAN                        =  1,
                                                                                        >   734          SUBLANG_POLISH_POLAND                       =  1,
                                                                                        >   735  
                                                                                        >   736          SUBLANG_PORTUGUESE_BRAZILIAN                =  1,
  819  enum : uint { SUBLANG_PORTUGUESE = 0x02 }                                        |   737          SUBLANG_PORTUGUESE                          =  2,
  820  enum : uint { SUBLANG_PORTUGUESE_BRAZILIAN = 0x01 }                              |   738          SUBLANG_PORTUGUESE_PORTUGAL,             // =  2
                                                                                        >   739  
                                                                                        >   740          SUBLANG_PUNJABI_INDIA                       =  1,
                                                                                        >   741  
                                                                                        >   742          SUBLANG_QUECHUA_BOLIVIA                     =  1,
                                                                                        >   743          SUBLANG_QUECHUA_ECUADOR,
                                                                                        >   744          SUBLANG_QUECHUA_PERU,                    // =  3
                                                                                        >   745  
                                                                                        >   746          SUBLANG_ROMANIAN_ROMANIA                    =  1,
                                                                                        >   747          SUBLANG_ROMANSH_SWITZERLAND                 =  1,
                                                                                        >   748          SUBLANG_RUSSIAN_RUSSIA                      =  1,
                                                                                        >   749  
                                                                                        >   750          SUBLANG_SAMI_NORTHERN_NORWAY                =  1,
                                                                                        >   751          SUBLANG_SAMI_NORTHERN_SWEDEN,
                                                                                        >   752          SUBLANG_SAMI_NORTHERN_FINLAND,           // =  3
                                                                                        >   753          SUBLANG_SAMI_SKOLT_FINLAND                  =  3,
                                                                                        >   754          SUBLANG_SAMI_INARI_FINLAND                  =  3,
                                                                                        >   755          SUBLANG_SAMI_LULE_NORWAY,
                                                                                        >   756          SUBLANG_SAMI_LULE_SWEDEN,
                                                                                        >   757          SUBLANG_SAMI_SOUTHERN_NORWAY,
                                                                                        >   758          SUBLANG_SAMI_SOUTHERN_SWEDEN,            // =  7
                                                                                        >   759  
                                                                                        >   760          SUBLANG_SANSKRIT_INDIA                      =  1,
                                                                                        >   761  
  821  enum : uint { SUBLANG_SERBIAN_LATIN = 0x02 }                                     |   762          SUBLANG_SERBIAN_LATIN                       =  2,
  822  enum : uint { SUBLANG_SERBIAN_CYRILLIC = 0x03 }                                  |   763          SUBLANG_SERBIAN_CYRILLIC,                // =  3
                                                                                        >   764          SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_LATIN    =  6,
                                                                                        >   765          SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_CYRILLIC =  7,
                                                                                        >   766  
                                                                                        >   767          SUBLANG_SINDHI_AFGHANISTAN                  =  2,
                                                                                        >   768          SUBLANG_SINHALESE_SRI_LANKA                 =  1,
                                                                                        >   769          SUBLANG_SOTHO_NORTHERN_SOUTH_AFRICA         =  1,
                                                                                        >   770          SUBLANG_SLOVAK_SLOVAKIA                     =  1,
                                                                                        >   771          SUBLANG_SLOVENIAN_SLOVENIA                  =  1,
                                                                                        >   772  
  823  enum : uint { SUBLANG_SPANISH = 0x01 }                                           |   773          SUBLANG_SPANISH                             =  1,
  824  enum : uint { SUBLANG_SPANISH_MEXICAN = 0x02 }                                   |   774          SUBLANG_SPANISH_MEXICAN,
  825  enum : uint { SUBLANG_SPANISH_MODERN = 0x03 }                                    |   775          SUBLANG_SPANISH_MODERN,
  826  enum : uint { SUBLANG_SPANISH_GUATEMALA = 0x04 }                                 |   776          SUBLANG_SPANISH_GUATEMALA,
  827  enum : uint { SUBLANG_SPANISH_COSTA_RICA = 0x05 }                                |   777          SUBLANG_SPANISH_COSTA_RICA,
  828  enum : uint { SUBLANG_SPANISH_PANAMA = 0x06 }                                    |   778          SUBLANG_SPANISH_PANAMA,
  829  enum : uint { SUBLANG_SPANISH_DOMINICAN_REPUBLIC = 0x07 }                        |   779          SUBLANG_SPANISH_DOMINICAN_REPUBLIC,
  830  enum : uint { SUBLANG_SPANISH_VENEZUELA = 0x08 }                                 |   780          SUBLANG_SPANISH_VENEZUELA,
  831  enum : uint { SUBLANG_SPANISH_COLOMBIA = 0x09 }                                  |   781          SUBLANG_SPANISH_COLOMBIA,
  832  enum : uint { SUBLANG_SPANISH_PERU = 0x0a }                                      |   782          SUBLANG_SPANISH_PERU,
  833  enum : uint { SUBLANG_SPANISH_ARGENTINA = 0x0b }                                 |   783          SUBLANG_SPANISH_ARGENTINA,
  834  enum : uint { SUBLANG_SPANISH_ECUADOR = 0x0c }                                   |   784          SUBLANG_SPANISH_ECUADOR,
  835  enum : uint { SUBLANG_SPANISH_CHILE = 0x0d }                                     |   785          SUBLANG_SPANISH_CHILE,
  836  enum : uint { SUBLANG_SPANISH_URUGUAY = 0x0e }                                   |   786          SUBLANG_SPANISH_URUGUAY,
  837  enum : uint { SUBLANG_SPANISH_PARAGUAY = 0x0f }                                  |   787          SUBLANG_SPANISH_PARAGUAY,
  838  enum : uint { SUBLANG_SPANISH_BOLIVIA = 0x10 }                                   |   788          SUBLANG_SPANISH_BOLIVIA,
  839  enum : uint { SUBLANG_SPANISH_EL_SALVADOR = 0x11 }                               |   789          SUBLANG_SPANISH_EL_SALVADOR,
  840  enum : uint { SUBLANG_SPANISH_HONDURAS = 0x12 }                                  |   790          SUBLANG_SPANISH_HONDURAS,
  841  enum : uint { SUBLANG_SPANISH_NICARAGUA = 0x13 }                                 |   791          SUBLANG_SPANISH_NICARAGUA,
  842  enum : uint { SUBLANG_SPANISH_PUERTO_RICO = 0x14 }                               |   792          SUBLANG_SPANISH_PUERTO_RICO,
                                                                                        >   793          SUBLANG_SPANISH_US,                      // = 21
                                                                                        >   794  
  843  enum : uint { SUBLANG_SWEDISH = 0x01 }                                           |   795          SUBLANG_SWEDISH                             =  1,
                                                                                        >   796          SUBLANG_SWEDISH_SWEDEN                      =  1,
  844  enum : uint { SUBLANG_SWEDISH_FINLAND = 0x02 }                                   |   797          SUBLANG_SWEDISH_FINLAND,                 // =  2
                                                                                        >   798  
                                                                                        >   799          SUBLANG_SYRIAC                              =  1,
                                                                                        >   800          SUBLANG_TAJIK_TAJIKISTAN                    =  1,
                                                                                        >   801          SUBLANG_TAMAZIGHT_ALGERIA_LATIN             =  2,
                                                                                        >   802          SUBLANG_TAMIL_INDIA                         =  1,
                                                                                        >   803          SUBLANG_TATAR_RUSSIA                        =  1,
                                                                                        >   804          SUBLANG_TELUGU_INDIA                        =  1,
                                                                                        >   805          SUBLANG_THAI_THAILAND                       =  1,
                                                                                        >   806          SUBLANG_TIBETAN_PRC                         =  1,
                                                                                        >   807          SUBLANG_TIBETAN_BHUTAN                      =  2,
                                                                                        >   808          SUBLANG_TIGRIGNA_ERITREA                    =  1,
                                                                                        >   809          SUBLANG_TSWANA_SOUTH_AFRICA                 =  1,
                                                                                        >   810          SUBLANG_TURKISH_TURKEY                      =  1,
                                                                                        >   811          SUBLANG_TURKMEN_TURKMENISTAN                =  1,
                                                                                        >   812          SUBLANG_UIGHUR_PRC                          =  1,
                                                                                        >   813          SUBLANG_UKRAINIAN_UKRAINE                   =  1,
                                                                                        >   814          SUBLANG_UPPER_SORBIAN_GERMANY               =  1,
                                                                                        >   815  
  845  enum : uint { SUBLANG_URDU_PAKISTAN = 0x01 }                                     |   816          SUBLANG_URDU_PAKISTAN                       =  1,
  846  enum : uint { SUBLANG_URDU_INDIA = 0x02 }                                        |   817          SUBLANG_URDU_INDIA,                      // =  2
                                                                                        >   818  
  847  enum : uint { SUBLANG_UZBEK_LATIN = 0x01 }                                       |   819          SUBLANG_UZBEK_LATIN                         =  1,
  848  enum : uint { SUBLANG_UZBEK_CYRILLIC = 0x02 }                                    |   820          SUBLANG_UZBEK_CYRILLIC,                  // =  2
  849                                                                                   |   821  
  850  enum : uint { SORT_DEFAULT = 0x0 }                                               <
                                                                                        >   822          SUBLANG_VIETNAMESE_VIETNAM                  =  1,
                                                                                        >   823          SUBLANG_WELSH_UNITED_KINGDOM                =  1,
                                                                                        >   824          SUBLANG_WOLOF_SENEGAL                       =  1,
                                                                                        >   825          SUBLANG_YORUBA_NIGERIA                      =  1,
                                                                                        >   826          SUBLANG_XHOSA_SOUTH_AFRICA                  =  1,
                                                                                        >   827          SUBLANG_YAKUT_RUSSIA                        =  1,
                                                                                        >   828          SUBLANG_YI_PRC                              =  1,
                                                                                        >   829          SUBLANG_ZULU_SOUTH_AFRICA                   =  1
  851                                                                                   |   830  }
                                                                                        >   831  
                                                                                        >   832  // This is not documented on MSDN
                                                                                        >   833  const NLS_VALID_LOCALE_MASK = 1048575;
                                                                                        >   834  
                                                                                        >   835  // Sorting identifiers
                                                                                        >   836  enum : WORD {
                                                                                        >   837          SORT_DEFAULT              = 0,
  852  enum : uint { SORT_JAPANESE_XJIS = 0x0 }                                         |   838          SORT_JAPANESE_XJIS        = 0,
  853  enum : uint { SORT_JAPANESE_UNICODE = 0x1 }                                      |   839          SORT_JAPANESE_UNICODE     = 1,
  854                                                                                   <
  855  enum : uint { SORT_CHINESE_BIG5 = 0x0 }                                          |   840          SORT_CHINESE_BIG5         = 0,
  856  enum : uint { SORT_CHINESE_PRCP = 0x0 }                                          |   841          SORT_CHINESE_PRCP         = 0,
  857  enum : uint { SORT_CHINESE_UNICODE = 0x1 }                                       |   842          SORT_CHINESE_UNICODE      = 1,
  858  enum : uint { SORT_CHINESE_PRC = 0x2 }                                           |   843          SORT_CHINESE_PRC          = 2,
  859  enum : uint { SORT_CHINESE_BOPOMOFO = 0x3 }                                      |   844          SORT_CHINESE_BOPOMOFO     = 3,
  860                                                                                   <
  861  enum : uint { SORT_KOREAN_KSC = 0x0 }                                            |   845          SORT_KOREAN_KSC           = 0,
  862  enum : uint { SORT_KOREAN_UNICODE = 0x1 }                                        |   846          SORT_KOREAN_UNICODE       = 1,
  863                                                                                   <
  864  enum : uint { SORT_GERMAN_PHONE_BOOK = 0x1 }                                     |   847          SORT_GERMAN_PHONE_BOOK    = 1,
  865                                                                                   <
  866  enum : uint { SORT_HUNGARIAN_DEFAULT = 0x0 }                                     |   848          SORT_HUNGARIAN_DEFAULT    = 0,
  867  enum : uint { SORT_HUNGARIAN_TECHNICAL = 0x1 }                                   |   849          SORT_HUNGARIAN_TECHNICAL  = 1,
  868                                                                                   <
  869  enum : uint { SORT_GEORGIAN_TRADITIONAL = 0x0 }                                  |   850          SORT_GEORGIAN_TRADITIONAL = 0,
  870  enum : uint { SORT_GEORGIAN_MODERN = 0x1 }                                       |   851          SORT_GEORGIAN_MODERN      = 1
  871                                                                                   |   852  }
                                                                                        >   853  
  872  WORD MAKELANGID(USHORT p, USHORT s) { return (((cast(WORD)(s)) << 10) | cast(WOR |   854  WORD MAKELANGID(USHORT p, USHORT s) { return cast(WORD)((s << 10) | p); }
  873  WORD PRIMARYLANGID(WORD lgid) { return lgid & 0x3ff; }                           |   855  WORD PRIMARYLANGID(WORD lgid) { return cast(WORD)(lgid & 0x3FF); }
  874  WORD SUBLANGID(WORD lgid) { return lgid >>> 10; }                                |   856  WORD SUBLANGID(WORD lgid) { return cast(WORD)(lgid >>> 10); }
  875                                                                                   |   857  
  876  enum : uint { NLS_VALID_LOCALE_MASK = 0x000fffff }                               <
  877                                                                                   <
  878  DWORD MAKELCID(WORD lgid, WORD srtid) { return ((cast(DWORD)srtid) << 16) | (cas |   858  DWORD MAKELCID(WORD lgid, WORD srtid) { return (cast(DWORD) srtid << 16) | cast(
                                                                                        >   859  // ???
  879  DWORD MAKESORTLCID(WORD lgid, WORD srtid, WORD ver) { return (MAKELCID(lgid, srt |   860  //DWORD MAKESORTLCID(WORD lgid, WORD srtid, WORD ver) { return (MAKELCID(lgid, s
  880  WORD LANGIDFROMLCID(LCID lcid) { return lcid; }                                  |   861  WORD LANGIDFROMLCID(LCID lcid) { return cast(WORD) lcid; }
  881  WORD SORTIDFROMLCID(LCID lcid) { return (cast(DWORD)lcid >>> 16) & 0xf; }        |   862  WORD SORTIDFROMLCID(LCID lcid) { return cast(WORD) ((lcid >>> 16) & 0x0F); }
  882  WORD SORTVERSIONFROMLCID(LCID lcid) { return (cast(DWORD)lcid >>> 20) & 0xf; }   |   863  WORD SORTVERSIONFROMLCID(LCID lcid) { return cast(WORD) ((lcid >>> 20) & 0x0F); 
  883                                                                                   |   864  
  884  enum : uint { LANG_SYSTEM_DEFAULT = (SUBLANG_SYS_DEFAULT << 10) | LANG_NEUTRAL } |   865  const WORD LANG_SYSTEM_DEFAULT = (SUBLANG_SYS_DEFAULT << 10) | LANG_NEUTRAL;
  885  enum : uint { LANG_USER_DEFAULT = (SUBLANG_DEFAULT << 10) | LANG_NEUTRAL }       |   866  const WORD LANG_USER_DEFAULT   = (SUBLANG_DEFAULT << 10) | LANG_NEUTRAL;
  886                                                                                   <
  887  enum : uint { LOCALE_SYSTEM_DEFAULT = (SORT_DEFAULT << 16) | LANG_SYSTEM_DEFAULT <
  888  enum : uint { LOCALE_USER_DEFAULT = (SORT_DEFAULT << 16) | LANG_USER_DEFAULT }   |   867  const DWORD LOCALE_NEUTRAL     = (SORT_DEFAULT << 16)
                                                                                        >   868                                   | (SUBLANG_NEUTRAL << 10) | LANG_NEUTRAL;
  889                                                                                   |   869  
  890  enum : uint { LOCALE_NEUTRAL = (SORT_DEFAULT << 16) | (SUBLANG_NEUTRAL << 10) |  <
                                                                                        >   870  // ---
                                                                                        >   871  enum : BYTE {
                                                                                        >   872          ACL_REVISION    = 2,
                                                                                        >   873          ACL_REVISION_DS = 4
  891                                                                                   |   874  }
  892  enum : uint { LOCALE_INVARIANT = (SORT_DEFAULT << 16) | (SUBLANG_NEUTRAL << 10)  <
  893                                                                                   |   875  
  894  // #if ! defined(lint)                                                           <
  895  // #...                                                                          <
  896  // #...                                                                          <
  897  // #...                                                                          <
                                                                                        >   876  // These are not documented on MSDN
                                                                                        >   877  enum : BYTE {
                                                                                        >   878          ACL_REVISION1    = 1,
                                                                                        >   879          ACL_REVISION2,
                                                                                        >   880          ACL_REVISION3,
                                                                                        >   881          ACL_REVISION4 // = 4
  898                                                                                   |   882  }
  899  // #else // lint                                                                 <
  900                                                                                   |   883  
  901  // #define UNREFERENCED_PARAMETER(P) { (P) = (P); }                              <
  902  // #define DBG_UNREFERENCED_PARAMETER(P) { (P) = (P); }                          <
  903  // #define DBG_UNREFERENCED_LOCAL_VARIABLE(V) { (V) = (V); }                     <
                                                                                        >   884  const BYTE
                                                                                        >   885          MIN_ACL_REVISION = 2,
                                                                                        >   886          MAX_ACL_REVISION = 4;
  904                                                                                   |   887  
  905  // #endif // lint                                                                <
                                                                                        >   888  /+
                                                                                        >   889  // These aren't necessary for D.
                                                                                        >   890  const MINCHAR=0x80;
                                                                                        >   891  const MAXCHAR=0x7f;
                                                                                        >   892  const MINSHORT=0x8000;
                                                                                        >   893  const MAXSHORT=0x7fff;
                                                                                        >   894  const MINLONG=0x80000000;
                                                                                        >   895  const MAXLONG=0x7fffffff;
                                                                                        >   896  const MAXBYTE=0xff;
                                                                                        >   897  const MAXWORD=0xffff;
                                                                                        >   898  const MAXDWORD=0xffffffff;
                                                                                        >   899  +/
  906                                                                                   |   900  
  907  // #if (_MSC_VER > 1200)                                                         <
  908  // #define DEFAULT_UNREACHABLE default: __assume(0)                              <
  909  // #else                                                                         <
                                                                                        >   901  // SYSTEM_INFO.dwProcessorType
                                                                                        >   902  enum : DWORD {
                                                                                        >   903          PROCESSOR_INTEL_386     =   386,
                                                                                        >   904          PROCESSOR_INTEL_486     =   486,
                                                                                        >   905          PROCESSOR_INTEL_PENTIUM =   586,
                                                                                        >   906          PROCESSOR_MIPS_R4000    =  4000,
                                                                                        >   907          PROCESSOR_ALPHA_21064   = 21064,
                                                                                        >   908          PROCESSOR_INTEL_IA64    =  2200
  910                                                                                   |   909  }
  911  // #...                                                                          <
  912                                                                                   |   910  
  913  // #endif                                                                        <
                                                                                        >   911  // SYSTEM_INFO.wProcessorArchitecture
                                                                                        >   912  enum : WORD {
                                                                                        >   913          PROCESSOR_ARCHITECTURE_INTEL,
                                                                                        >   914          PROCESSOR_ARCHITECTURE_MIPS,
                                                                                        >   915          PROCESSOR_ARCHITECTURE_ALPHA,
                                                                                        >   916          PROCESSOR_ARCHITECTURE_PPC,
                                                                                        >   917          PROCESSOR_ARCHITECTURE_SHX,
                                                                                        >   918          PROCESSOR_ARCHITECTURE_ARM,
                                                                                        >   919          PROCESSOR_ARCHITECTURE_IA64,
                                                                                        >   920          PROCESSOR_ARCHITECTURE_ALPHA64,
                                                                                        >   921          PROCESSOR_ARCHITECTURE_MSIL,
                                                                                        >   922          PROCESSOR_ARCHITECTURE_AMD64,
                                                                                        >   923          PROCESSOR_ARCHITECTURE_IA32_ON_WIN64, // = 10
                                                                                        >   924          PROCESSOR_ARCHITECTURE_UNKNOWN = 0xFFFF
  914                                                                                   |   925  }
  915  // #ifndef WIN32_NO_STATUS                                                       <
  916                                                                                   |   926  
  917  enum : DWORD { STATUS_WAIT_0 = 0x00000000 }                                      <
  918  enum : DWORD { STATUS_ABANDONED_WAIT_0 = 0x00000080 }                            |   927  // IsProcessorFeaturePresent()
  919  enum : DWORD { STATUS_USER_APC = 0x000000C0 }                                    |   928  enum : DWORD {
  920  enum : DWORD { STATUS_TIMEOUT = 0x00000102 }                                     |   929          PF_FLOATING_POINT_PRECISION_ERRATA,
  921  enum : DWORD { STATUS_PENDING = 0x00000103 }                                     |   930          PF_FLOATING_POINT_EMULATED,
  922  enum : DWORD { DBG_EXCEPTION_HANDLED = 0x00010001 }                              |   931          PF_COMPARE_EXCHANGE_DOUBLE,
  923  enum : DWORD { DBG_CONTINUE = 0x00010002 }                                       |   932          PF_MMX_INSTRUCTIONS_AVAILABLE,
  924  enum : DWORD { STATUS_SEGMENT_NOTIFICATION = 0x40000005 }                        |   933          PF_PPC_MOVEMEM_64BIT_OK,
  925  enum : DWORD { DBG_TERMINATE_THREAD = 0x40010003 }                               |   934          PF_ALPHA_BYTE_INSTRUCTIONS,
  926  enum : DWORD { DBG_TERMINATE_PROCESS = 0x40010004 }                              |   935          PF_XMMI_INSTRUCTIONS_AVAILABLE,
  927  enum : DWORD { DBG_CONTROL_C = 0x40010005 }                                      |   936          PF_3DNOW_INSTRUCTIONS_AVAILABLE,
  928  enum : DWORD { DBG_CONTROL_BREAK = 0x40010008 }                                  |   937          PF_RDTSC_INSTRUCTION_AVAILABLE,
  929  enum : DWORD { STATUS_GUARD_PAGE_VIOLATION = 0x80000001 }                        |   938          PF_PAE_ENABLED,
  930  enum : DWORD { STATUS_DATATYPE_MISALIGNMENT = 0x80000002 }                       |   939          PF_XMMI64_INSTRUCTIONS_AVAILABLE
  931  enum : DWORD { STATUS_BREAKPOINT = 0x80000003 }                                  <
  932  enum : DWORD { STATUS_SINGLE_STEP = 0x80000004 }                                 <
  933  enum : DWORD { DBG_EXCEPTION_NOT_HANDLED = 0x80010001 }                          <
  934  enum : DWORD { STATUS_ACCESS_VIOLATION = 0xC0000005 }                            <
  935  enum : DWORD { STATUS_IN_PAGE_ERROR = 0xC0000006 }                               <
  936  enum : DWORD { STATUS_INVALID_HANDLE = 0xC0000008 }                              <
  937  enum : DWORD { STATUS_NO_MEMORY = 0xC0000017 }                                   <
  938  enum : DWORD { STATUS_ILLEGAL_INSTRUCTION = 0xC000001D }                         <
  939  enum : DWORD { STATUS_NONCONTINUABLE_EXCEPTION = 0xC0000025 }                    <
  940  enum : DWORD { STATUS_INVALID_DISPOSITION = 0xC0000026 }                         <
  941  enum : DWORD { STATUS_ARRAY_BOUNDS_EXCEEDED = 0xC000008C }                       <
  942  enum : DWORD { STATUS_FLOAT_DENORMAL_OPERAND = 0xC000008D }                      <
  943  enum : DWORD { STATUS_FLOAT_DIVIDE_BY_ZERO = 0xC000008E }                        <
  944  enum : DWORD { STATUS_FLOAT_INEXACT_RESULT = 0xC000008F }                        <
  945  enum : DWORD { STATUS_FLOAT_INVALID_OPERATION = 0xC0000090 }                     <
  946  enum : DWORD { STATUS_FLOAT_OVERFLOW = 0xC0000091 }                              <
  947  enum : DWORD { STATUS_FLOAT_STACK_CHECK = 0xC0000092 }                           <
  948  enum : DWORD { STATUS_FLOAT_UNDERFLOW = 0xC0000093 }                             <
  949  enum : DWORD { STATUS_INTEGER_DIVIDE_BY_ZERO = 0xC0000094 }                      <
  950  enum : DWORD { STATUS_INTEGER_OVERFLOW = 0xC0000095 }                            <
  951  enum : DWORD { STATUS_PRIVILEGED_INSTRUCTION = 0xC0000096 }                      <
  952  enum : DWORD { STATUS_STACK_OVERFLOW = 0xC00000FD }                              <
  953  enum : DWORD { STATUS_CONTROL_C_EXIT = 0xC000013A }                              <
  954  enum : DWORD { STATUS_FLOAT_MULTIPLE_FAULTS = 0xC00002B4 }                       <
  955  enum : DWORD { STATUS_FLOAT_MULTIPLE_TRAPS = 0xC00002B5 }                        <
  956  enum : DWORD { STATUS_REG_NAT_CONSUMPTION = 0xC00002C9 }                         <
  957  // #if defined(STATUS_SUCCESS) || (_WIN32_WINNT > 0x0500) || (_WIN32_FUSION >= 0 <
  958  enum : DWORD { STATUS_SXS_EARLY_DEACTIVATION = 0xC015000F }                      <
  959  enum : DWORD { STATUS_SXS_INVALID_DEACTIVATION = 0xC0150010 }                    <
  960  // #endif                                                                        <
  961                                                                                   |   940  }
  962  // #endif                                                                        <
  963  enum : uint { MAXIMUM_WAIT_OBJECTS = 64 }                                        <
  964                                                                                   |   941  
  965  alias MAXCHAR MAXIMUM_SUSPEND_COUNT;                                             <
                                                                                        >   942  // MinGW: also in ddk/ntifs.h
                                                                                        >   943  enum : DWORD {
                                                                                        >   944          FILE_ACTION_ADDED = 1,
                                                                                        >   945          FILE_ACTION_REMOVED,
                                                                                        >   946          FILE_ACTION_MODIFIED,
                                                                                        >   947          FILE_ACTION_RENAMED_OLD_NAME,
                                                                                        >   948          FILE_ACTION_RENAMED_NEW_NAME,
                                                                                        >   949          FILE_ACTION_ADDED_STREAM,
                                                                                        >   950          FILE_ACTION_REMOVED_STREAM,
                                                                                        >   951          FILE_ACTION_MODIFIED_STREAM,
                                                                                        >   952          FILE_ACTION_REMOVED_BY_DELETE,
                                                                                        >   953          FILE_ACTION_ID_NOT_TUNNELLED,
                                                                                        >   954          FILE_ACTION_TUNNELLED_ID_COLLISION // = 11
  966                                                                                   |   955  }
  967  alias ULONG_PTR KSPIN_LOCK;                                                      <
  968  alias KSPIN_LOCK* PKSPIN_LOCK;                                                   <
                                                                                        >   956  // MinGW: end ntifs.h
  969                                                                                   |   957  
  970  // #if defined(_AMD64_)                                                          <
                                                                                        >   958  const DWORD
                                                                                        >   959          HEAP_NO_SERIALIZE             = 0x01,
                                                                                        >   960          HEAP_GROWABLE                 = 0x02,
                                                                                        >   961          HEAP_GENERATE_EXCEPTIONS      = 0x04,
                                                                                        >   962          HEAP_ZERO_MEMORY              = 0x08,
                                                                                        >   963          HEAP_REALLOC_IN_PLACE_ONLY    = 0x10,
                                                                                        >   964          HEAP_TAIL_CHECKING_ENABLED    = 0x20,
                                                                                        >   965          HEAP_FREE_CHECKING_ENABLED    = 0x40,
                                                                                        >   966          HEAP_DISABLE_COALESCE_ON_FREE = 0x80;
  971                                                                                   |   967  
  972  // #if defined(_M_AMD64) && !defined(RC_INVOKED) && !defined(MIDL_PASS)          <
  973                                                                                   <
                                                                                        >   968  // These are not documented on MSDN
                                                                                        >   969  const HEAP_CREATE_ALIGN_16       = 0;
                                                                                        >   970  const HEAP_CREATE_ENABLE_TRACING = 0x020000;
                                                                                        >   971  const HEAP_MAXIMUM_TAG           = 0x000FFF;
                                                                                        >   972  const HEAP_PSEUDO_TAG_FLAG       = 0x008000;
                                                                                        >   973  const HEAP_TAG_SHIFT             = 16;
  974  // #...                                                                          |   974  // ???
                                                                                        >   975  //MACRO #define HEAP_MAKE_TAG_FLAGS(b,o) ((DWORD)((b)+(o)<<16)))
  975                                                                                   |   976  
                                                                                        >   977  const ACCESS_MASK
                                                                                        >   978          KEY_QUERY_VALUE        = 0x000001,
                                                                                        >   979          KEY_SET_VALUE          = 0x000002,
                                                                                        >   980          KEY_CREATE_SUB_KEY     = 0x000004,
                                                                                        >   981          KEY_ENUMERATE_SUB_KEYS = 0x000008,
                                                                                        >   982          KEY_NOTIFY             = 0x000010,
                                                                                        >   983          KEY_CREATE_LINK        = 0x000020,
                                                                                        >   984          KEY_WRITE              = 0x020006,
  976  // ...                                                                           |   985          KEY_EXECUTE            = 0x020019,
  977                                                                                   <
                                                                                        >   986          KEY_READ               = 0x020019,
  978  // #...                                                                          |   987          KEY_ALL_ACCESS         = 0x0F003F;
  979                                                                                   |   988  
  980  // #...                                                                          |   989  static if (WINVER >= 0x502) {
  981                                                                                   <
                                                                                        >   990          const ACCESS_MASK
  982  // ...                                                                           |   991                  KEY_WOW64_64KEY    = 0x000100,
                                                                                        >   992                  KEY_WOW64_32KEY    = 0x000200;
  983                                                                                   |   993  }
  984  // #...                                                                          <
  985                                                                                   |   994  
  986  // ...                                                                           |   995  const DWORD
  987                                                                                   <
                                                                                        >   996          REG_WHOLE_HIVE_VOLATILE = 1,
  988  // ...                                                                           |   997          REG_REFRESH_HIVE        = 2,
                                                                                        >   998          REG_NO_LAZY_FLUSH       = 4;
  989                                                                                   |   999  
  990  // ...                                                                           <
  991                                                                                   <
                                                                                        >  1000  const DWORD
  992  // ...                                                                           |  1001          REG_OPTION_RESERVED       =  0,
  993                                                                                   <
                                                                                        >  1002          REG_OPTION_NON_VOLATILE   =  0,
  994  // #...                                                                          |  1003          REG_OPTION_VOLATILE       =  1,
  995  // #...                                                                          |  1004          REG_OPTION_CREATE_LINK    =  2,
  996  // #...                                                                          |  1005          REG_OPTION_BACKUP_RESTORE =  4,
  997  // #...                                                                          |  1006          REG_OPTION_OPEN_LINK      =  8,
                                                                                        >  1007          REG_LEGAL_OPTION          = 15;
  998                                                                                   |  1008  
  999  // #...                                                                          <
 1000  // #...                                                                          |  1009  const SECURITY_INFORMATION
 1001                                                                                   <
                                                                                        >  1010          OWNER_SECURITY_INFORMATION            = 0x00000001,
 1002  // ...                                                                           |  1011          GROUP_SECURITY_INFORMATION            = 0x00000002,
 1003                                                                                   <
                                                                                        >  1012          DACL_SECURITY_INFORMATION             = 0x00000004,
 1004  // ...                                                                           |  1013          SACL_SECURITY_INFORMATION             = 0x00000008,
 1005                                                                                   <
                                                                                        >  1014          LABEL_SECURITY_INFORMATION            = 0x00000010,
 1006  // #...                                                                          |  1015          UNPROTECTED_SACL_SECURITY_INFORMATION = 0x10000000,
 1007  // #...                                                                          |  1016          UNPROTECTED_DACL_SECURITY_INFORMATION = 0x20000000,
 1008                                                                                   <
                                                                                        >  1017          PROTECTED_SACL_SECURITY_INFORMATION   = 0x40000000,
 1009  // ...                                                                           |  1018          PROTECTED_DACL_SECURITY_INFORMATION   = 0x80000000;
 1010                                                                                   |  1019  
 1011  // ...                                                                           |  1020  const DWORD MAXIMUM_PROCESSORS = 32;
 1012                                                                                   |  1021  
 1013  // ...                                                                           |  1022  // VirtualAlloc(), etc
                                                                                        >  1023  // -------------------
 1014                                                                                   |  1024  
 1015  // ...                                                                           <
 1016                                                                                   <
                                                                                        >  1025  enum : DWORD {
 1017  // ...                                                                           |  1026          PAGE_NOACCESS          = 0x0001,
 1018                                                                                   <
                                                                                        >  1027          PAGE_READONLY          = 0x0002,
 1019  // ...                                                                           |  1028          PAGE_READWRITE         = 0x0004,
 1020                                                                                   <
                                                                                        >  1029          PAGE_WRITECOPY         = 0x0008,
 1021  // ...                                                                           |  1030          PAGE_EXECUTE           = 0x0010,
                                                                                        >  1031          PAGE_EXECUTE_READ      = 0x0020,
                                                                                        >  1032          PAGE_EXECUTE_READWRITE = 0x0040,
                                                                                        >  1033          PAGE_EXECUTE_WRITECOPY = 0x0080,
                                                                                        >  1034          PAGE_GUARD             = 0x0100,
                                                                                        >  1035          PAGE_NOCACHE           = 0x0200
 1022                                                                                   |  1036  }
 1023  // ...                                                                           <
 1024                                                                                   |  1037  
 1025  // #...                                                                          <
 1026  // #...                                                                          <
 1027  // #...                                                                          <
 1028  // #...                                                                          <
 1029  // #...                                                                          |  1038  enum : DWORD {
 1030  // #...                                                                          |  1039          MEM_COMMIT      = 0x00001000,
 1031  // #...                                                                          |  1040          MEM_RESERVE     = 0x00002000,
 1032  // #...                                                                          |  1041          MEM_DECOMMIT    = 0x00004000,
 1033                                                                                   <
                                                                                        >  1042          MEM_RELEASE     = 0x00008000,
 1034  // #endif // defined(_M_AMD64) && !defined(RC_INVOKED) && !defined(MIDL_PASS)    |  1043          MEM_FREE        = 0x00010000,
 1035                                                                                   <
                                                                                        >  1044          MEM_PRIVATE     = 0x00020000,
 1036  // #if !defined(RC_INVOKED)                                                      |  1045          MEM_MAPPED      = 0x00040000,
                                                                                        >  1046          MEM_RESET       = 0x00080000,
                                                                                        >  1047          MEM_TOP_DOWN    = 0x00100000,
                                                                                        >  1048          MEM_WRITE_WATCH = 0x00200000, // MinGW (???): 98/Me
                                                                                        >  1049          MEM_PHYSICAL    = 0x00400000,
                                                                                        >  1050          MEM_4MB_PAGES   = 0x80000000
 1037                                                                                   |  1051  }
 1038  // #...                                                                          <
 1039                                                                                   |  1052  
 1040  // #...                                                                          <
 1041  // #...                                                                          <
 1042  // #...                                                                          <
 1043  // #...                                                                          <
 1044  // #...                                                                          |  1053  // MinGW: also in ddk/ntifs.h
 1045                                                                                   <
                                                                                        >  1054  // CreateFileMapping()
 1046  // #...                                                                          |  1055  const DWORD
 1047                                                                                   <
                                                                                        >  1056          SEC_BASED     = 0x00200000,
 1048  // #endif // !defined(RC_INVOKED)                                                |  1057          SEC_NO_CHANGE = 0x00400000,
 1049                                                                                   <
                                                                                        >  1058          SEC_FILE      = 0x00800000,
 1050  // ...                                                                           |  1059          SEC_IMAGE     = 0x01000000,
 1051                                                                                   <
                                                                                        >  1060          SEC_VLM       = 0x02000000,
 1052  // ...                                                                           |  1061          SEC_RESERVE   = 0x04000000,
 1053                                                                                   <
                                                                                        >  1062          SEC_COMMIT    = 0x08000000,
 1054  // #...                                                                          |  1063          SEC_NOCACHE   = 0x10000000,
 1055                                                                                   <
                                                                                        >  1064          MEM_IMAGE     = SEC_IMAGE;
 1056  // ...                                                                           |  1065  // MinGW: end ntifs.h
 1057                                                                                   |  1066  
 1058  // ...                                                                           |  1067  // ???
 1059                                                                                   <
                                                                                        >  1068  const ACCESS_MASK
 1060  // ...                                                                           |  1069          SECTION_QUERY       = 0x000001,
 1061                                                                                   <
                                                                                        >  1070          SECTION_MAP_WRITE   = 0x000002,
 1062  // ...                                                                           |  1071          SECTION_MAP_READ    = 0x000004,
 1063                                                                                   <
                                                                                        >  1072          SECTION_MAP_EXECUTE = 0x000008,
 1064  // ...                                                                           |  1073          SECTION_EXTEND_SIZE = 0x000010,
                                                                                        >  1074          SECTION_ALL_ACCESS  = 0x0F001F;
 1065                                                                                   |  1075  
 1066  // ...                                                                           <
 1067                                                                                   <
                                                                                        >  1076  // These are not documented on MSDN
 1068  // ...                                                                           |  1077  const MESSAGE_RESOURCE_UNICODE = 1;
 1069                                                                                   <
                                                                                        >  1078  const RTL_CRITSECT_TYPE        = 0;
 1070  // ...                                                                           |  1079  const RTL_RESOURCE_TYPE        = 1;
 1071                                                                                   |  1080  
 1072  // ...                                                                           |  1081  // COFF file format
                                                                                        >  1082  // ----------------
 1073                                                                                   |  1083  
 1074  // #endif // _AMD64_                                                             <
 1075                                                                                   <
                                                                                        >  1084  // IMAGE_FILE_HEADER.Characteristics
 1076  // #ifdef _ALPHA_                          // winnt                              |  1085  const WORD
 1077  // ...                                                                           |  1086          IMAGE_FILE_RELOCS_STRIPPED         = 0x0001,
 1078  // #if defined(_M_ALPHA)                   // winnt                              |  1087          IMAGE_FILE_EXECUTABLE_IMAGE        = 0x0002,
 1079  // #...                                                                          |  1088          IMAGE_FILE_LINE_NUMS_STRIPPED      = 0x0004,
                                                                                        >  1089          IMAGE_FILE_LOCAL_SYMS_STRIPPED     = 0x0008,
                                                                                        >  1090          IMAGE_FILE_AGGRESIVE_WS_TRIM       = 0x0010,
                                                                                        >  1091          IMAGE_FILE_LARGE_ADDRESS_AWARE     = 0x0020,
                                                                                        >  1092          IMAGE_FILE_BYTES_REVERSED_LO       = 0x0080,
                                                                                        >  1093          IMAGE_FILE_32BIT_MACHINE           = 0x0100,
                                                                                        >  1094          IMAGE_FILE_DEBUG_STRIPPED          = 0x0200,
                                                                                        >  1095          IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP = 0x0400,
                                                                                        >  1096          IMAGE_FILE_NET_RUN_FROM_SWAP       = 0x0800,
 1080  // #endif                                  // winnt                              |  1097          IMAGE_FILE_SYSTEM                  = 0x1000,
 1081  // #endif                                  // winnt                              |  1098          IMAGE_FILE_DLL                     = 0x2000,
 1082                                                                                   <
 1083  // #if defined(_M_ALPHA)                                                         <
 1084  // #...                                                                          <
 1085  // #else                                                                         <
 1086  extern(Windows) export _TEB NtCurrentTeb();                                      <
 1087  // #endif                                                                        <
 1088                                                                                   <
 1089  // #ifdef _ALPHA_                                                                <
 1090                                                                                   <
                                                                                        >  1099          IMAGE_FILE_UP_SYSTEM_ONLY          = 0x4000,
 1091  // #...                                                                          |  1100          IMAGE_FILE_BYTES_REVERSED_HI       = 0x8000;
 1092  // #...                                                                          <
 1093                                                                                   |  1101  
                                                                                        >  1102  // IMAGE_FILE_HEADER.Machine
 1094  // #if !defined(RC_INVOKED)                                                      |  1103  enum : WORD {
 1095                                                                                   <
                                                                                        >  1104          IMAGE_FILE_MACHINE_UNKNOWN   = 0x0000,
 1096  // #...                                                                          |  1105          IMAGE_FILE_MACHINE_I386      = 0x014C,
 1097                                                                                   <
                                                                                        >  1106          IMAGE_FILE_MACHINE_R3000     = 0x0162,
 1098  // #...                                                                          |  1107          IMAGE_FILE_MACHINE_R4000     = 0x0166,
 1099  // #...                                                                          |  1108          IMAGE_FILE_MACHINE_R10000    = 0x0168,
 1100  // #...                                                                          |  1109          IMAGE_FILE_MACHINE_WCEMIPSV2 = 0x0169,
 1101                                                                                   <
                                                                                        >  1110          IMAGE_FILE_MACHINE_ALPHA     = 0x0184,
 1102  // #...                                                                          |  1111          IMAGE_FILE_MACHINE_SH3       = 0x01A2,
 1103                                                                                   <
                                                                                        >  1112          IMAGE_FILE_MACHINE_SH3DSP    = 0x01A3,
 1104  // #endif                                                                        |  1113          IMAGE_FILE_MACHINE_SH4       = 0x01A6,
 1105                                                                                   <
                                                                                        >  1114          IMAGE_FILE_MACHINE_SH5       = 0x01A8,
 1106  // #ifndef _PORTABLE_32BIT_CONTEXT                                               |  1115          IMAGE_FILE_MACHINE_ARM       = 0x01C0,
 1107                                                                                   <
                                                                                        >  1116          IMAGE_FILE_MACHINE_THUMB     = 0x01C2,
 1108  // ...                                                                           |  1117          IMAGE_FILE_MACHINE_AM33      = 0x01D3,
 1109                                                                                   <
                                                                                        >  1118          IMAGE_FILE_MACHINE_POWERPC   = 0x01F0,
 1110  // ...                                                                           |  1119          IMAGE_FILE_MACHINE_POWERPCFP = 0x01F1,
 1111                                                                                   <
                                                                                        >  1120          IMAGE_FILE_MACHINE_IA64      = 0x0200,
 1112  // ...                                                                           |  1121          IMAGE_FILE_MACHINE_MIPS16    = 0x0266,
 1113                                                                                   <
                                                                                        >  1122          IMAGE_FILE_MACHINE_MIPSFPU   = 0x0366,
 1114  // ...                                                                           |  1123          IMAGE_FILE_MACHINE_MIPSFPU16 = 0x0466,
 1115                                                                                   <
                                                                                        >  1124          IMAGE_FILE_MACHINE_EBC       = 0x0EBC,
 1116  // ...                                                                           |  1125          IMAGE_FILE_MACHINE_AMD64     = 0x8664,
                                                                                        >  1126          IMAGE_FILE_MACHINE_M32R      = 0x9041
 1117                                                                                   |  1127  }
 1118  // ...                                                                           <
 1119                                                                                   |  1128  
 1120  // ...                                                                           |  1129  // ???
 1121                                                                                   <
                                                                                        >  1130  enum  {
 1122  // #else                                                                         |  1131          IMAGE_DOS_SIGNATURE    = 0x5A4D,
 1123                                                                                   <
                                                                                        >  1132          IMAGE_OS2_SIGNATURE    = 0x454E,
 1124  // #...                                                                          |  1133          IMAGE_OS2_SIGNATURE_LE = 0x454C,
 1125                                                                                   <
                                                                                        >  1134          IMAGE_VXD_SIGNATURE    = 0x454C,
 1126  // #endif // _PORTABLE_32BIT_CONTEXT                                             |  1135          IMAGE_NT_SIGNATURE     = 0x4550
 1127                                                                                   |  1136  }
 1128  // #endif // _ALPHA_                                                             <
 1129                                                                                   |  1137  
                                                                                        >  1138  // IMAGE_OPTIONAL_HEADER.Magic
 1130  // #ifdef _ALPHA_                                                                |  1139  enum : WORD {
 1131                                                                                   <
                                                                                        >  1140          IMAGE_NT_OPTIONAL_HDR32_MAGIC = 0x010B,
 1132  // ...                                                                           |  1141          IMAGE_ROM_OPTIONAL_HDR_MAGIC  = 0x0107,
                                                                                        >  1142          IMAGE_NT_OPTIONAL_HDR64_MAGIC = 0x020B
 1133                                                                                   |  1143  }
 1134  // #endif // _ALPHA_                                                             <
 1135                                                                                   |  1144  
 1136  // #ifdef _X86_                                                                  |  1145  // IMAGE_OPTIONAL_HEADER.Subsystem
 1137                                                                                   <
                                                                                        >  1146  enum : WORD {
 1138  // #if !defined(MIDL_PASS)                                                       |  1147          IMAGE_SUBSYSTEM_UNKNOWN                  =  0,
 1139  // #if !defined(RC_INVOKED)                                                      |  1148          IMAGE_SUBSYSTEM_NATIVE,
 1140                                                                                   <
                                                                                        >  1149          IMAGE_SUBSYSTEM_WINDOWS_GUI,
 1141  // #if _MSC_VER >= 1200                                                          |  1150          IMAGE_SUBSYSTEM_WINDOWS_CUI,          // =  3
 1142  // #pragma warning(push)                                                         |  1151          IMAGE_SUBSYSTEM_OS2_CUI                  =  5,
 1143  // #endif                                                                        |  1152          IMAGE_SUBSYSTEM_POSIX_CUI                =  7,
 1144  // #pragma warning(disable:4164)   // disable C4164 warning so that apps that    <
                                                                                        >  1153          IMAGE_SUBSYSTEM_NATIVE_WINDOWS,
                                                                                        >  1154          IMAGE_SUBSYSTEM_WINDOWS_CE_GUI,
                                                                                        >  1155          IMAGE_SUBSYSTEM_EFI_APPLICATION,
                                                                                        >  1156          IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER,
                                                                                        >  1157          IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER,
                                                                                        >  1158          IMAGE_SUBSYSTEM_EFI_ROM,
                                                                                        >  1159          IMAGE_SUBSYSTEM_XBOX,                 // = 14
                                                                                        >  1160          IMAGE_SUBSYSTEM_WINDOWS_BOOT_APPLICATION = 16
 1145                                                                                   |  1161  }
 1146  // #ifdef _M_IX86                                                                <
 1147  // #pragma function(_enable)                                                     <
 1148  // #pragma function(_disable)                                                    <
 1149  // #endif                                                                        <
 1150                                                                                   |  1162  
 1151  // #if _MSC_VER >= 1200                                                          <
 1152  // #pragma warning(pop)                                                          <
 1153  // #else                                                                         <
 1154  // #...                                                                          |  1163  // IMAGE_OPTIONAL_HEADER.DllCharacteristics
 1155  // #endif                                                                        |  1164  const WORD
 1156                                                                                   <
                                                                                        >  1165          IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE         = 0x0040,
 1157  // #endif                                                                        |  1166          IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY      = 0x0080,
 1158  // #endif                                                                        |  1167          IMAGE_DLL_CHARACTERISTICS_NX_COMPAT            = 0x0100,
                                                                                        >  1168          IMAGE_DLLCHARACTERISTICS_NO_ISOLATION          = 0x0200,
                                                                                        >  1169          IMAGE_DLLCHARACTERISTICS_NO_SEH                = 0x0400,
                                                                                        >  1170          IMAGE_DLLCHARACTERISTICS_NO_BIND               = 0x0800,
                                                                                        >  1171          IMAGE_DLLCHARACTERISTICS_WDM_DRIVER            = 0x2000,
                                                                                        >  1172          IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE = 0x8000;
 1159                                                                                   |  1173  
 1160  // #if !defined(MIDL_PASS) && defined(_M_IX86)                                   <
 1161  // #if _MSC_VER >= 1200                                                          <
 1162  // #pragma warning(push)                                                         <
 1163  // #endif                                                                        |  1174  // ???
 1164  // #pragma warning (disable:4035)        // disable 4035 (function must return s <
 1165  PVOID GetFiberData() { asm { mov EAX, FS:[0x10]; mov EAX, [EAX]; } }             <
 1166  PVOID GetCurrentFiber() { asm { mov EAX, FS:[0x10]; } }                          |  1175  const IMAGE_SEPARATE_DEBUG_SIGNATURE = 0x4944;
 1167                                                                                   |  1176  
 1168  // #if _MSC_VER >= 1200                                                          |  1177  const size_t
 1169  // #pragma warning(pop)                                                          |  1178          IMAGE_NUMBEROF_DIRECTORY_ENTRIES =  16,
 1170  // #else                                                                         |  1179          IMAGE_SIZEOF_ROM_OPTIONAL_HEADER =  56,
 1171  // #...                                                                          |  1180          IMAGE_SIZEOF_STD_OPTIONAL_HEADER =  28,
 1172  // #endif                                                                        |  1181          IMAGE_SIZEOF_NT_OPTIONAL_HEADER  = 224,
 1173  // #endif                                                                        |  1182          IMAGE_SIZEOF_SHORT_NAME          =   8,
 1174                                                                                   <
                                                                                        >  1183          IMAGE_SIZEOF_SECTION_HEADER      =  40,
 1175  enum : uint { SIZE_OF_80387_REGISTERS = 80 }                                     |  1184          IMAGE_SIZEOF_SYMBOL              =  18,
 1176                                                                                   <
                                                                                        >  1185          IMAGE_SIZEOF_AUX_SYMBOL          =  18,
 1177  // #if !defined(RC_INVOKED)                                                      |  1186          IMAGE_SIZEOF_RELOCATION          =  10,
 1178                                                                                   <
                                                                                        >  1187          IMAGE_SIZEOF_BASE_RELOCATION     =   8,
 1179  enum : uint { CONTEXT_i386 = 0x00010000 }                                        |  1188          IMAGE_SIZEOF_LINENUMBER          =   6,
 1180  enum : uint { CONTEXT_i486 = 0x00010000 }                                        |  1189          IMAGE_SIZEOF_ARCHIVE_MEMBER_HDR  =  60,
                                                                                        >  1190          SIZEOF_RFPO_DATA                 =  16;
 1181                                                                                   |  1191  
 1182  enum : uint { CONTEXT_CONTROL = CONTEXT_i386 | 0x00000001L }                     <
 1183  enum : uint { CONTEXT_INTEGER = CONTEXT_i386 | 0x00000002L }                     |  1192  PIMAGE_SECTION_HEADER IMAGE_FIRST_SECTION(PIMAGE_NT_HEADERS h) {
 1184  enum : uint { CONTEXT_SEGMENTS = CONTEXT_i386 | 0x00000004L }                    |  1193          return cast(PIMAGE_SECTION_HEADER)
 1185  enum : uint { CONTEXT_FLOATING_POINT = CONTEXT_i386 | 0x00000008L }              |  1194                  (&h.OptionalHeader + h.FileHeader.SizeOfOptionalHeader);
 1186  enum : uint { CONTEXT_DEBUG_REGISTERS = CONTEXT_i386 | 0x00000010L }             <
 1187  enum : uint { CONTEXT_EXTENDED_REGISTERS = CONTEXT_i386 | 0x00000020L }          <
 1188                                                                                   |  1195  }
 1189  enum : uint { CONTEXT_FULL = CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENT <
 1190                                                                                   |  1196  
 1191  // #endif                                                                        <
 1192                                                                                   <
                                                                                        >  1197  // ImageDirectoryEntryToDataEx()
                                                                                        >  1198  enum : USHORT {
                                                                                        >  1199          IMAGE_DIRECTORY_ENTRY_EXPORT             =  0,
                                                                                        >  1200          IMAGE_DIRECTORY_ENTRY_IMPORT,
                                                                                        >  1201          IMAGE_DIRECTORY_ENTRY_RESOURCE,
 1193  enum : uint { MAXIMUM_SUPPORTED_EXTENSION = 512 }                                |  1202          IMAGE_DIRECTORY_ENTRY_EXCEPTION,
 1194                                                                                   <
                                                                                        >  1203          IMAGE_DIRECTORY_ENTRY_SECURITY,
 1195  struct _FLOATING_SAVE_AREA {                                                     |  1204          IMAGE_DIRECTORY_ENTRY_BASERELOC,
 1196    DWORD ControlWord;                                                             |  1205          IMAGE_DIRECTORY_ENTRY_DEBUG,
 1197    DWORD StatusWord;                                                              |  1206          IMAGE_DIRECTORY_ENTRY_COPYRIGHT,      // =  7
 1198    DWORD TagWord;                                                                 |  1207          IMAGE_DIRECTORY_ENTRY_ARCHITECTURE       =  7,
 1199    DWORD ErrorOffset;                                                             |  1208          IMAGE_DIRECTORY_ENTRY_GLOBALPTR,
 1200    DWORD ErrorSelector;                                                           |  1209          IMAGE_DIRECTORY_ENTRY_TLS,
 1201    DWORD DataOffset;                                                              |  1210          IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG,
 1202    DWORD DataSelector;                                                            |  1211          IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT,
 1203    BYTE RegisterArea[SIZE_OF_80387_REGISTERS];                                    |  1212          IMAGE_DIRECTORY_ENTRY_IAT,
 1204    DWORD Cr0NpxState;                                                             |  1213          IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT,
                                                                                        >  1214          IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR, // = 14
 1205  }                                                                                |  1215  }
 1206  alias _FLOATING_SAVE_AREA FLOATING_SAVE_AREA;                                    <
 1207                                                                                   |  1216  
 1208  alias FLOATING_SAVE_AREA* PFLOATING_SAVE_AREA;                                   |  1217  // IMAGE_SECTION_HEADER.Characteristics
 1209                                                                                   <
 1210  struct _CONTEXT {                                                                <
 1211                                                                                   <
 1212    DWORD ContextFlags;                                                            <
 1213                                                                                   <
 1214    DWORD Dr0;                                                                     |  1218  const DWORD
                                                                                        >  1219          IMAGE_SCN_TYPE_REG               = 0x00000000,
                                                                                        >  1220          IMAGE_SCN_TYPE_DSECT             = 0x00000001,
                                                                                        >  1221          IMAGE_SCN_TYPE_NOLOAD            = 0x00000002,
                                                                                        >  1222          IMAGE_SCN_TYPE_GROUP             = 0x00000004,
                                                                                        >  1223          IMAGE_SCN_TYPE_NO_PAD            = 0x00000008,
 1215    DWORD Dr1;                                                                     |  1224          IMAGE_SCN_TYPE_COPY              = 0x00000010,
 1216    DWORD Dr2;                                                                     |  1225          IMAGE_SCN_CNT_CODE               = 0x00000020,
 1217    DWORD Dr3;                                                                     |  1226          IMAGE_SCN_CNT_INITIALIZED_DATA   = 0x00000040,
 1218    DWORD Dr6;                                                                     |  1227          IMAGE_SCN_CNT_UNINITIALIZED_DATA = 0x00000080,
 1219    DWORD Dr7;                                                                     |  1228          IMAGE_SCN_LNK_OTHER              = 0x00000100,
 1220                                                                                   <
                                                                                        >  1229          IMAGE_SCN_LNK_INFO               = 0x00000200,
 1221    FLOATING_SAVE_AREA FloatSave;                                                  |  1230          IMAGE_SCN_TYPE_OVER              = 0x00000400,
 1222                                                                                   <
                                                                                        >  1231          IMAGE_SCN_LNK_REMOVE             = 0x00000800,
 1223    DWORD SegGs;                                                                   |  1232          IMAGE_SCN_LNK_COMDAT             = 0x00001000,
 1224    DWORD SegFs;                                                                   |  1233          IMAGE_SCN_MEM_FARDATA            = 0x00008000,
 1225    DWORD SegEs;                                                                   |  1234          IMAGE_SCN_GPREL                  = 0x00008000,
 1226    DWORD SegDs;                                                                   |  1235          IMAGE_SCN_MEM_PURGEABLE          = 0x00020000,
 1227                                                                                   <
                                                                                        >  1236          IMAGE_SCN_MEM_16BIT              = 0x00020000,
 1228    DWORD Edi;                                                                     |  1237          IMAGE_SCN_MEM_LOCKED             = 0x00040000,
 1229    DWORD Esi;                                                                     |  1238          IMAGE_SCN_MEM_PRELOAD            = 0x00080000,
 1230    DWORD Ebx;                                                                     |  1239          IMAGE_SCN_ALIGN_1BYTES           = 0x00100000,
 1231    DWORD Edx;                                                                     |  1240          IMAGE_SCN_ALIGN_2BYTES           = 0x00200000,
 1232    DWORD Ecx;                                                                     |  1241          IMAGE_SCN_ALIGN_4BYTES           = 0x00300000,
 1233    DWORD Eax;                                                                     |  1242          IMAGE_SCN_ALIGN_8BYTES           = 0x00400000,
 1234                                                                                   <
                                                                                        >  1243          IMAGE_SCN_ALIGN_16BYTES          = 0x00500000,
 1235    DWORD Ebp;                                                                     |  1244          IMAGE_SCN_ALIGN_32BYTES          = 0x00600000,
 1236    DWORD Eip;                                                                     |  1245          IMAGE_SCN_ALIGN_64BYTES          = 0x00700000,
 1237    DWORD SegCs;                                                                   |  1246          IMAGE_SCN_ALIGN_128BYTES         = 0x00800000,
 1238    DWORD EFlags;                                                                  |  1247          IMAGE_SCN_ALIGN_256BYTES         = 0x00900000,
 1239    DWORD Esp;                                                                     |  1248          IMAGE_SCN_ALIGN_512BYTES         = 0x00A00000,
 1240    DWORD SegSs;                                                                   |  1249          IMAGE_SCN_ALIGN_1024BYTES        = 0x00B00000,
 1241                                                                                   <
                                                                                        >  1250          IMAGE_SCN_ALIGN_2048BYTES        = 0x00C00000,
 1242    BYTE ExtendedRegisters[MAXIMUM_SUPPORTED_EXTENSION];                           |  1251          IMAGE_SCN_ALIGN_4096BYTES        = 0x00D00000,
 1243  }                                                                                <
                                                                                        >  1252          IMAGE_SCN_ALIGN_8192BYTES        = 0x00E00000,
 1244  alias _CONTEXT CONTEXT;                                                          |  1253          IMAGE_SCN_LNK_NRELOC_OVFL        = 0x01000000,
 1245                                                                                   <
                                                                                        >  1254          IMAGE_SCN_MEM_DISCARDABLE        = 0x02000000,
 1246  alias CONTEXT* PCONTEXT;                                                         |  1255          IMAGE_SCN_MEM_NOT_CACHED         = 0x04000000,
 1247                                                                                   <
                                                                                        >  1256          IMAGE_SCN_MEM_NOT_PAGED          = 0x08000000,
 1248  // #endif //_X86_                                                                |  1257          IMAGE_SCN_MEM_SHARED             = 0x10000000,
 1249                                                                                   <
                                                                                        >  1258          IMAGE_SCN_MEM_EXECUTE            = 0x20000000,
 1250  // #ifndef _LDT_ENTRY_DEFINED                                                    |  1259          IMAGE_SCN_MEM_READ               = 0x40000000,
 1251  // #define _LDT_ENTRY_DEFINED                                                    |  1260          IMAGE_SCN_MEM_WRITE              = 0x80000000;
 1252                                                                                   |  1261  
 1253  struct _LDT_ENTRY {                                                              |  1262  /*      The following constants are mostlydocumented at
 1254    WORD LimitLow;                                                                 |  1263   *      http://download.microsoft.com/download/1/6/1/161ba512-40e2-4cc9-843a-923
 1255    WORD BaseLow;                                                                  |  1264   *      but don't seem to be defined in the HTML docs.
 1256  union {                                                                          <
                                                                                        >  1265   */
 1257  struct {                                                                         |  1266  enum : SHORT {
 1258    BYTE BaseMid;                                                                  |  1267          IMAGE_SYM_UNDEFINED =  0,
 1259    BYTE Flags1;                                                                   |  1268          IMAGE_SYM_ABSOLUTE  = -1,
 1260    BYTE Flags2;                                                                   |  1269          IMAGE_SYM_DEBUG     = -2
 1261    BYTE BaseHi;                                                                   <
 1262  }                                                                                |  1270  }
 1263                                                                                   |  1271  
 1264  struct {                                                                         <
                                                                                        >  1272  enum : ubyte {
                                                                                        >  1273          IMAGE_SYM_TYPE_NULL,
 1265  // DWORD   BaseMid : 8;                                                          |  1274          IMAGE_SYM_TYPE_VOID,
 1266  // DWORD   Type : 5;                                                             |  1275          IMAGE_SYM_TYPE_CHAR,
 1267  // DWORD   Dpl : 2;                                                              |  1276          IMAGE_SYM_TYPE_SHORT,
 1268  // DWORD   Pres : 1;                                                             |  1277          IMAGE_SYM_TYPE_INT,
 1269  // DWORD   LimitHi : 4;                                                          |  1278          IMAGE_SYM_TYPE_LONG,
 1270  // DWORD   Sys : 1;                                                              |  1279          IMAGE_SYM_TYPE_FLOAT,
 1271  // DWORD   Reserved_0 : 1;                                                       |  1280          IMAGE_SYM_TYPE_DOUBLE,
 1272  // DWORD   Default_Big : 1;                                                      |  1281          IMAGE_SYM_TYPE_STRUCT,
 1273  // DWORD   Granularity : 1;                                                      |  1282          IMAGE_SYM_TYPE_UNION,
 1274  // DWORD   BaseHi : 8;                                                           <
                                                                                        >  1283          IMAGE_SYM_TYPE_ENUM,
                                                                                        >  1284          IMAGE_SYM_TYPE_MOE,
                                                                                        >  1285          IMAGE_SYM_TYPE_BYTE,
                                                                                        >  1286          IMAGE_SYM_TYPE_WORD,
                                                                                        >  1287          IMAGE_SYM_TYPE_UINT,
                                                                                        >  1288          IMAGE_SYM_TYPE_DWORD // = 15
 1275  }                                                                                |  1289  }
 1276                                                                                   <
 1277  }                                                                                <
 1278                                                                                   <
 1279  }                                                                                <
 1280  alias _LDT_ENTRY LDT_ENTRY;                                                      <
 1281  alias _LDT_ENTRY* PLDT_ENTRY;                                                    |  1290  const IMAGE_SYM_TYPE_PCODE = 32768; // ???
 1282                                                                                   |  1291  
 1283  // #endif                                                                        |  1292  enum : ubyte {
 1284                                                                                   <
                                                                                        >  1293          IMAGE_SYM_DTYPE_NULL,
 1285  // #if defined(_MIPS_)                                                           |  1294          IMAGE_SYM_DTYPE_POINTER,
                                                                                        >  1295          IMAGE_SYM_DTYPE_FUNCTION,
                                                                                        >  1296          IMAGE_SYM_DTYPE_ARRAY
 1286                                                                                   |  1297  }
 1287  // #...                                                                          <
 1288  // #...                                                                          <
 1289                                                                                   |  1298  
 1290  // #if !defined(RC_INVOKED)                                                      |  1299  enum : BYTE {
 1291                                                                                   <
                                                                                        >  1300          IMAGE_SYM_CLASS_END_OF_FUNCTION  = 0xFF,
 1292  // #...                                                                          |  1301          IMAGE_SYM_CLASS_NULL             =   0,
 1293                                                                                   <
 1294  // #...                                                                          <
 1295  // #...                                                                          <
 1296  // #...                                                                          <
 1297  // #...                                                                          <
 1298  // #...                                                                          <
 1299                                                                                   <
 1300  // #...                                                                          <
 1301  // ...                                                                           <
 1302                                                                                   <
 1303  // #endif                                                                        <
 1304                                                                                   <
 1305  // ...                                                                           <
 1306                                                                                   <
 1307  // ...                                                                           <
 1308                                                                                   <
 1309  // ...                                                                           <
 1310                                                                                   <
                                                                                        >  1302          IMAGE_SYM_CLASS_AUTOMATIC,
                                                                                        >  1303          IMAGE_SYM_CLASS_EXTERNAL,
                                                                                        >  1304          IMAGE_SYM_CLASS_STATIC,
                                                                                        >  1305          IMAGE_SYM_CLASS_REGISTER,
                                                                                        >  1306          IMAGE_SYM_CLASS_EXTERNAL_DEF,
                                                                                        >  1307          IMAGE_SYM_CLASS_LABEL,
                                                                                        >  1308          IMAGE_SYM_CLASS_UNDEFINED_LABEL,
                                                                                        >  1309          IMAGE_SYM_CLASS_MEMBER_OF_STRUCT,
                                                                                        >  1310          IMAGE_SYM_CLASS_ARGUMENT,
                                                                                        >  1311          IMAGE_SYM_CLASS_STRUCT_TAG,
                                                                                        >  1312          IMAGE_SYM_CLASS_MEMBER_OF_UNION,
                                                                                        >  1313          IMAGE_SYM_CLASS_UNION_TAG,
                                                                                        >  1314          IMAGE_SYM_CLASS_TYPE_DEFINITION,
                                                                                        >  1315          IMAGE_SYM_CLASS_UNDEFINED_STATIC,
                                                                                        >  1316          IMAGE_SYM_CLASS_ENUM_TAG,
                                                                                        >  1317          IMAGE_SYM_CLASS_MEMBER_OF_ENUM,
                                                                                        >  1318          IMAGE_SYM_CLASS_REGISTER_PARAM,
                                                                                        >  1319          IMAGE_SYM_CLASS_BIT_FIELD,    // =  18
 1311  // ...                                                                           |  1320          IMAGE_SYM_CLASS_FAR_EXTERNAL     =  68,
 1312                                                                                   <
 1313  // ...                                                                           <
 1314                                                                                   <
 1315  // ...                                                                           <
 1316                                                                                   <
                                                                                        >  1321          IMAGE_SYM_CLASS_BLOCK            = 100,
                                                                                        >  1322          IMAGE_SYM_CLASS_FUNCTION,
                                                                                        >  1323          IMAGE_SYM_CLASS_END_OF_STRUCT,
                                                                                        >  1324          IMAGE_SYM_CLASS_FILE,
                                                                                        >  1325          IMAGE_SYM_CLASS_SECTION,
 1317  // ...                                                                           |  1326          IMAGE_SYM_CLASS_WEAK_EXTERNAL,// = 105
                                                                                        >  1327          IMAGE_SYM_CLASS_CLR_TOKEN        = 107
 1318                                                                                   |  1328  }
 1319  // ...                                                                           <
 1320                                                                                   |  1329  
 1321  // ...                                                                           |  1330  enum : BYTE {
                                                                                        >  1331          IMAGE_COMDAT_SELECT_NODUPLICATES = 1,
                                                                                        >  1332          IMAGE_COMDAT_SELECT_ANY,
                                                                                        >  1333          IMAGE_COMDAT_SELECT_SAME_SIZE,
                                                                                        >  1334          IMAGE_COMDAT_SELECT_EXACT_MATCH,
                                                                                        >  1335          IMAGE_COMDAT_SELECT_ASSOCIATIVE,
                                                                                        >  1336          IMAGE_COMDAT_SELECT_LARGEST,
                                                                                        >  1337          IMAGE_COMDAT_SELECT_NEWEST    // = 7
 1322                                                                                   |  1338  }
 1323  // ...                                                                           <
 1324                                                                                   |  1339  
 1325  // ...                                                                           <
 1326                                                                                   <
 1327  // ...                                                                           <
 1328                                                                                   <
 1329  // ...                                                                           <
 1330                                                                                   <
 1331  // ...                                                                           |  1340  enum : DWORD {
                                                                                        >  1341          IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY = 1,
                                                                                        >  1342          IMAGE_WEAK_EXTERN_SEARCH_LIBRARY,
                                                                                        >  1343          IMAGE_WEAK_EXTERN_SEARCH_ALIAS
 1332                                                                                   |  1344  }
 1333  // ...                                                                           <
 1334                                                                                   |  1345  
 1335  // ...                                                                           <
 1336                                                                                   <
 1337  // #...                                                                          |  1346  enum : WORD {
 1338                                                                                   <
                                                                                        >  1347          IMAGE_REL_I386_ABSOLUTE       = 0x0000,
 1339  // #endif // MIPS                                                                |  1348          IMAGE_REL_I386_DIR16          = 0x0001,
 1340                                                                                   <
                                                                                        >  1349          IMAGE_REL_I386_REL16          = 0x0002,
 1341  // #if defined(_MIPS_)                                                           |  1350          IMAGE_REL_I386_DIR32          = 0x0006,
 1342                                                                                   <
                                                                                        >  1351          IMAGE_REL_I386_DIR32NB        = 0x0007,
 1343  // ...                                                                           |  1352          IMAGE_REL_I386_SEG12          = 0x0009,
 1344                                                                                   <
                                                                                        >  1353          IMAGE_REL_I386_SECTION        = 0x000A,
 1345  // #endif // MIPS                                                                |  1354          IMAGE_REL_I386_SECREL         = 0x000B,
                                                                                        >  1355          IMAGE_REL_I386_TOKEN          = 0x000C,
                                                                                        >  1356          IMAGE_REL_I386_SECREL7        = 0x000D,
                                                                                        >  1357          IMAGE_REL_I386_REL32          = 0x0014
 1346                                                                                   |  1358  }
 1347  // #if defined(_PPC_)                                                            <
 1348                                                                                   |  1359  
 1349  // #if defined(_M_PPC) && defined(_MSC_VER) && (_MSC_VER>=1000)                  <
 1350  // ...                                                                           <
 1351  // #...                                                                          |  1360  enum : WORD {
 1352  // #elif defined(_M_PPC)                                                         |  1361          IMAGE_REL_AMD64_ABSOLUTE      = 0x0000,
 1353  // ...                                                                           |  1362          IMAGE_REL_AMD64_ADDR64        = 0x0001,
 1354  // #...                                                                          |  1363          IMAGE_REL_AMD64_ADDR32        = 0x0002,
 1355  // #endif                                                                        |  1364          IMAGE_REL_AMD64_ADDR32NB      = 0x0003,
 1356                                                                                   <
                                                                                        >  1365          IMAGE_REL_AMD64_REL32         = 0x0004,
 1357  // #...                                                                          |  1366          IMAGE_REL_AMD64_REL32_1       = 0x0005,
 1358  // #...                                                                          |  1367          IMAGE_REL_AMD64_REL32_2       = 0x0006,
 1359                                                                                   <
                                                                                        >  1368          IMAGE_REL_AMD64_REL32_3       = 0x0007,
 1360  // #if !defined(RC_INVOKED)                                                      |  1369          IMAGE_REL_AMD64_REL32_4       = 0x0008,
 1361                                                                                   <
                                                                                        >  1370          IMAGE_REL_AMD64_REL32_5       = 0x0009,
 1362  // #...                                                                          |  1371          IMAGE_REL_AMD64_SECTION       = 0x000A,
 1363  // #...                                                                          |  1372          IMAGE_REL_AMD64_SECREL        = 0x000B,
 1364  // #...                                                                          |  1373          IMAGE_REL_AMD64_SECREL7       = 0x000C,
 1365  // #...                                                                          |  1374          IMAGE_REL_AMD64_TOKEN         = 0x000D,
 1366                                                                                   <
                                                                                        >  1375          IMAGE_REL_AMD64_SREL32        = 0x000E,
 1367  // #...                                                                          |  1376          IMAGE_REL_AMD64_PAIR          = 0x000F,
                                                                                        >  1377          IMAGE_REL_AMD64_SSPAN32       = 0x0010
 1368                                                                                   |  1378  }
 1369  // #endif                                                                        <
 1370                                                                                   |  1379  
 1371  // ...                                                                           |  1380  enum : WORD {
 1372                                                                                   <
                                                                                        >  1381          IMAGE_REL_IA64_ABSOLUTE       = 0x0000,
 1373  // ...                                                                           |  1382          IMAGE_REL_IA64_IMM14          = 0x0001,
 1374                                                                                   <
                                                                                        >  1383          IMAGE_REL_IA64_IMM22          = 0x0002,
 1375  // ...                                                                           |  1384          IMAGE_REL_IA64_IMM64          = 0x0003,
 1376                                                                                   <
                                                                                        >  1385          IMAGE_REL_IA64_DIR32          = 0x0004,
 1377  // ...                                                                           |  1386          IMAGE_REL_IA64_DIR64          = 0x0005,
 1378                                                                                   <
                                                                                        >  1387          IMAGE_REL_IA64_PCREL21B       = 0x0006,
 1379  // ...                                                                           |  1388          IMAGE_REL_IA64_PCREL21M       = 0x0007,
 1380                                                                                   <
                                                                                        >  1389          IMAGE_REL_IA64_PCREL21F       = 0x0008,
 1381  // ...                                                                           |  1390          IMAGE_REL_IA64_GPREL22        = 0x0009,
 1382                                                                                   <
                                                                                        >  1391          IMAGE_REL_IA64_LTOFF22        = 0x000A,
 1383  // ...                                                                           |  1392          IMAGE_REL_IA64_SECTION        = 0x000B,
 1384                                                                                   <
                                                                                        >  1393          IMAGE_REL_IA64_SECREL22       = 0x000C,
 1385  // ...                                                                           |  1394          IMAGE_REL_IA64_SECREL64I      = 0x000D,
 1386                                                                                   <
                                                                                        >  1395          IMAGE_REL_IA64_SECREL32       = 0x000E,
 1387  // ...                                                                           |  1396          IMAGE_REL_IA64_DIR32NB        = 0x0010,
 1388                                                                                   <
                                                                                        >  1397          IMAGE_REL_IA64_SREL14         = 0x0011,
 1389  // ...                                                                           |  1398          IMAGE_REL_IA64_SREL22         = 0x0012,
 1390                                                                                   <
                                                                                        >  1399          IMAGE_REL_IA64_SREL32         = 0x0013,
 1391  // ...                                                                           |  1400          IMAGE_REL_IA64_UREL32         = 0x0014,
 1392                                                                                   <
                                                                                        >  1401          IMAGE_REL_IA64_PCREL60X       = 0x0015,
 1393  // ...                                                                           |  1402          IMAGE_REL_IA64_PCREL60B       = 0x0016,
 1394                                                                                   <
                                                                                        >  1403          IMAGE_REL_IA64_PCREL60F       = 0x0017,
 1395  // ...                                                                           |  1404          IMAGE_REL_IA64_PCREL60I       = 0x0018,
 1396                                                                                   <
                                                                                        >  1405          IMAGE_REL_IA64_PCREL60M       = 0x0019,
 1397  // #endif // defined(_PPC_)                                                      |  1406          IMAGE_REL_IA64_IMMGPREL64     = 0x001A,
                                                                                        >  1407          IMAGE_REL_IA64_TOKEN          = 0x001B,
                                                                                        >  1408          IMAGE_REL_IA64_GPREL32        = 0x001C,
                                                                                        >  1409          IMAGE_REL_IA64_ADDEND         = 0x001F
 1398                                                                                   |  1410  }
 1399  // #if defined(_MPPC_)                                                           <
 1400                                                                                   |  1411  
 1401  // #if defined(_M_PPC) && defined(_MSC_VER) && (_MSC_VER>=1000)                  <
 1402  // ...                                                                           <
 1403  // #...                                                                          |  1412  enum : WORD {
 1404  // #elif defined(_M_PPC)                                                         |  1413          IMAGE_REL_SH3_ABSOLUTE        = 0x0000,
 1405  // ...                                                                           |  1414          IMAGE_REL_SH3_DIRECT16        = 0x0001,
 1406  // #...                                                                          |  1415          IMAGE_REL_SH3_DIRECT32        = 0x0002,
 1407  // #endif                                                                        |  1416          IMAGE_REL_SH3_DIRECT8         = 0x0003,
 1408                                                                                   <
                                                                                        >  1417          IMAGE_REL_SH3_DIRECT8_WORD    = 0x0004,
 1409  // #...                                                                          |  1418          IMAGE_REL_SH3_DIRECT8_LONG    = 0x0005,
 1410  // #...                                                                          |  1419          IMAGE_REL_SH3_DIRECT4         = 0x0006,
 1411                                                                                   <
                                                                                        >  1420          IMAGE_REL_SH3_DIRECT4_WORD    = 0x0007,
 1412  // #if !defined(RC_INVOKED)                                                      |  1421          IMAGE_REL_SH3_DIRECT4_LONG    = 0x0008,
 1413                                                                                   <
                                                                                        >  1422          IMAGE_REL_SH3_PCREL8_WORD     = 0x0009,
 1414  // #...                                                                          |  1423          IMAGE_REL_SH3_PCREL8_LONG     = 0x000A,
 1415  // #...                                                                          |  1424          IMAGE_REL_SH3_PCREL12_WORD    = 0x000B,
 1416  // #...                                                                          |  1425          IMAGE_REL_SH3_STARTOF_SECTION = 0x000C,
 1417  // #...                                                                          |  1426          IMAGE_REL_SH3_SIZEOF_SECTION  = 0x000D,
 1418                                                                                   <
                                                                                        >  1427          IMAGE_REL_SH3_SECTION         = 0x000E,
 1419  // #...                                                                          |  1428          IMAGE_REL_SH3_SECREL          = 0x000F,
 1420                                                                                   <
                                                                                        >  1429          IMAGE_REL_SH3_DIRECT32_NB     = 0x0010,
 1421  // #endif                                                                        |  1430          IMAGE_REL_SH3_GPREL4_LONG     = 0x0011,
 1422                                                                                   <
                                                                                        >  1431          IMAGE_REL_SH3_TOKEN           = 0x0012,
 1423  // ...                                                                           |  1432          IMAGE_REL_SHM_PCRELPT         = 0x0013,
 1424                                                                                   <
                                                                                        >  1433          IMAGE_REL_SHM_REFLO           = 0x0014,
 1425  // ...                                                                           |  1434          IMAGE_REL_SHM_REFHALF         = 0x0015,
 1426                                                                                   <
                                                                                        >  1435          IMAGE_REL_SHM_RELLO           = 0x0016,
 1427  // ...                                                                           |  1436          IMAGE_REL_SHM_RELHALF         = 0x0017,
 1428                                                                                   <
                                                                                        >  1437          IMAGE_REL_SHM_PAIR            = 0x0018,
 1429  // ...                                                                           |  1438          IMAGE_REL_SHM_NOMODE          = 0x8000
 1430                                                                                   |  1439  }
 1431  // ...                                                                           <
 1432                                                                                   |  1440  
                                                                                        >  1441  enum : WORD {
 1433  // ...                                                                           |  1442          IMAGE_REL_M32R_ABSOLUTE       = 0x0000,
 1434                                                                                   <
                                                                                        >  1443          IMAGE_REL_M32R_ADDR32         = 0x0001,
 1435  // ...                                                                           |  1444          IMAGE_REL_M32R_ADDR32NB       = 0x0002,
 1436                                                                                   <
                                                                                        >  1445          IMAGE_REL_M32R_ADDR24         = 0x0003,
 1437  // ...                                                                           |  1446          IMAGE_REL_M32R_GPREL16        = 0x0004,
 1438                                                                                   <
                                                                                        >  1447          IMAGE_REL_M32R_PCREL24        = 0x0005,
 1439  // ...                                                                           |  1448          IMAGE_REL_M32R_PCREL16        = 0x0006,
 1440                                                                                   <
                                                                                        >  1449          IMAGE_REL_M32R_PCREL8         = 0x0007,
 1441  // ...                                                                           |  1450          IMAGE_REL_M32R_REFHALF        = 0x0008,
 1442                                                                                   <
                                                                                        >  1451          IMAGE_REL_M32R_REFHI          = 0x0009,
 1443  // ...                                                                           |  1452          IMAGE_REL_M32R_REFLO          = 0x000A,
 1444                                                                                   <
                                                                                        >  1453          IMAGE_REL_M32R_PAIR           = 0x000B,
 1445  // ...                                                                           |  1454          IMAGE_REL_M32R_SECTION        = 0x000C,
 1446                                                                                   <
                                                                                        >  1455          IMAGE_REL_M32R_SECREL         = 0x000D,
 1447  // ...                                                                           |  1456          IMAGE_REL_M32R_TOKEN          = 0x000E
 1448                                                                                   |  1457  }
 1449  // #endif // defined(_MPPC_)                                                     <
 1450                                                                                   |  1458  
                                                                                        >  1459  enum : WORD {
 1451  // #if !defined(__midl) && !defined(GENUTIL) && !defined(_GENIA64_) && defined(_ |  1460          IMAGE_REL_MIPS_ABSOLUTE       = 0x0000,
 1452                                                                                   <
                                                                                        >  1461          IMAGE_REL_MIPS_REFHALF        = 0x0001,
 1453  // ...                                                                           |  1462          IMAGE_REL_MIPS_REFWORD        = 0x0002,
 1454  // #if defined(_M_IA64)                    // winnt                              |  1463          IMAGE_REL_MIPS_JMPADDR        = 0x0003,
 1455  // #...                                                                          |  1464          IMAGE_REL_MIPS_REFHI          = 0x0004,
 1456  // #endif                                  // winnt                              |  1465          IMAGE_REL_MIPS_REFLO          = 0x0005,
 1457                                                                                   <
                                                                                        >  1466          IMAGE_REL_MIPS_GPREL          = 0x0006,
 1458  // #if defined(_M_IA64)                                                          |  1467          IMAGE_REL_MIPS_LITERAL        = 0x0007,
 1459  // #...                                                                          |  1468          IMAGE_REL_MIPS_SECTION        = 0x000A,
 1460  // #else                                                                         |  1469          IMAGE_REL_MIPS_SECREL         = 0x000B,
 1461  // ...                                                                           |  1470          IMAGE_REL_MIPS_SECRELLO       = 0x000C,
 1462  // #endif                                                                        |  1471          IMAGE_REL_MIPS_SECRELHI       = 0x000D,
 1463                                                                                   <
                                                                                        >  1472          IMAGE_REL_MIPS_JMPADDR16      = 0x0010,
 1464  // #...                                                                          |  1473          IMAGE_REL_MIPS_REFWORDNB      = 0x0022,
 1465  // #...                                                                          |  1474          IMAGE_REL_MIPS_PAIR           = 0x0025
 1466                                                                                   |  1475  }
 1467  // #endif  // !defined(__midl) && !defined(GENUTIL) && !defined(_GENIA64_) && de <
 1468                                                                                   |  1476  
 1469  // #ifdef _IA64_                                                                 <
 1470                                                                                   |  1477  
                                                                                        >  1478  enum : WORD {
                                                                                        >  1479          IMAGE_REL_ALPHA_ABSOLUTE,
 1471  // #if !defined(RC_INVOKED)                                                      |  1480          IMAGE_REL_ALPHA_REFLONG,
 1472                                                                                   <
 1473  // #...                                                                          <
 1474                                                                                   <
 1475  // #...                                                                          <
 1476  // #...                                                                          <
 1477  // #...                                                                          <
 1478  // #...                                                                          <
 1479  // #...                                                                          <
 1480  // #...                                                                          <
 1481                                                                                   <
 1482  // #...                                                                          <
 1483  // #...                                                                          <
 1484                                                                                   <
                                                                                        >  1481          IMAGE_REL_ALPHA_REFQUAD,
                                                                                        >  1482          IMAGE_REL_ALPHA_GPREL32,
                                                                                        >  1483          IMAGE_REL_ALPHA_LITERAL,
                                                                                        >  1484          IMAGE_REL_ALPHA_LITUSE,
                                                                                        >  1485          IMAGE_REL_ALPHA_GPDISP,
                                                                                        >  1486          IMAGE_REL_ALPHA_BRADDR,
                                                                                        >  1487          IMAGE_REL_ALPHA_HINT,
                                                                                        >  1488          IMAGE_REL_ALPHA_INLINE_REFLONG,
                                                                                        >  1489          IMAGE_REL_ALPHA_REFHI,
                                                                                        >  1490          IMAGE_REL_ALPHA_REFLO,
                                                                                        >  1491          IMAGE_REL_ALPHA_PAIR,
                                                                                        >  1492          IMAGE_REL_ALPHA_MATCH,
                                                                                        >  1493          IMAGE_REL_ALPHA_SECTION,
 1485  // #endif // !defined(RC_INVOKED)                                                |  1494          IMAGE_REL_ALPHA_SECREL,
                                                                                        >  1495          IMAGE_REL_ALPHA_REFLONGNB,
                                                                                        >  1496          IMAGE_REL_ALPHA_SECRELLO,
                                                                                        >  1497          IMAGE_REL_ALPHA_SECRELHI // = 18
 1486                                                                                   |  1498  }
 1487  // ...                                                                           <
 1488                                                                                   |  1499  
 1489  // ...                                                                           <
 1490                                                                                   <
 1491  // ...                                                                           |  1500  enum : WORD {
                                                                                        >  1501          IMAGE_REL_PPC_ABSOLUTE,
                                                                                        >  1502          IMAGE_REL_PPC_ADDR64,
                                                                                        >  1503          IMAGE_REL_PPC_ADDR32,
                                                                                        >  1504          IMAGE_REL_PPC_ADDR24,
                                                                                        >  1505          IMAGE_REL_PPC_ADDR16,
                                                                                        >  1506          IMAGE_REL_PPC_ADDR14,
                                                                                        >  1507          IMAGE_REL_PPC_REL24,
                                                                                        >  1508          IMAGE_REL_PPC_REL14,
                                                                                        >  1509          IMAGE_REL_PPC_TOCREL16,
                                                                                        >  1510          IMAGE_REL_PPC_TOCREL14,
                                                                                        >  1511          IMAGE_REL_PPC_ADDR32NB,
                                                                                        >  1512          IMAGE_REL_PPC_SECREL,
                                                                                        >  1513          IMAGE_REL_PPC_SECTION,
                                                                                        >  1514          IMAGE_REL_PPC_IFGLUE,
                                                                                        >  1515          IMAGE_REL_PPC_IMGLUE,
                                                                                        >  1516          IMAGE_REL_PPC_SECREL16,
                                                                                        >  1517          IMAGE_REL_PPC_REFHI,
                                                                                        >  1518          IMAGE_REL_PPC_REFLO,
                                                                                        >  1519          IMAGE_REL_PPC_PAIR // = 18
 1492                                                                                   |  1520  }
 1493  // ...                                                                           <
 1494                                                                                   |  1521  
 1495  // ...                                                                           |  1522  // ???
 1496                                                                                   <
 1497  // ...                                                                           <
 1498                                                                                   <
 1499  // ...                                                                           <
 1500                                                                                   <
 1501  // ...                                                                           <
 1502                                                                                   <
 1503  // ...                                                                           <
 1504                                                                                   <
 1505  // ...                                                                           <
 1506                                                                                   <
 1507  // ...                                                                           <
 1508                                                                                   <
 1509  // ...                                                                           <
 1510                                                                                   <
 1511  // ...                                                                           <
 1512                                                                                   <
 1513  // ...                                                                           <
 1514                                                                                   <
                                                                                        >  1523  const IMAGE_REL_PPC_TYPEMASK = 0x00FF;
 1515  // ...                                                                           |  1524  const IMAGE_REL_PPC_NEG      = 0x0100;
 1516                                                                                   <
                                                                                        >  1525  const IMAGE_REL_PPC_BRTAKEN  = 0x0200;
 1517  // ...                                                                           |  1526  const IMAGE_REL_PPC_BRNTAKEN = 0x0400;
                                                                                        >  1527  const IMAGE_REL_PPC_TOCDEFN  = 0x0800;
 1518                                                                                   |  1528  
 1519  // ...                                                                           <
 1520                                                                                   <
 1521  // ...                                                                           <
 1522                                                                                   <
 1523  // ...                                                                           <
 1524                                                                                   <
 1525  // ...                                                                           <
 1526                                                                                   <
 1527  // ...                                                                           <
 1528                                                                                   <
 1529  // ...                                                                           <
 1530                                                                                   <
 1531  // ...                                                                           <
 1532                                                                                   <
 1533  // ...                                                                           <
 1534                                                                                   <
 1535  // ...                                                                           <
 1536                                                                                   <
 1537  // ...                                                                           <
 1538                                                                                   <
 1539  // ...                                                                           <
 1540                                                                                   <
 1541  // #endif // _IA64_                                                              <
 1542                                                                                   <
 1543  // #ifdef _IA64_                                                                 <
 1544                                                                                   <
 1545  // ...                                                                           <
 1546                                                                                   <
 1547  // #endif // _IA64_                                                              <
 1548                                                                                   <
 1549  enum : uint { EXCEPTION_NONCONTINUABLE = 0x1 }                                   <
 1550  enum : uint { EXCEPTION_MAXIMUM_PARAMETERS = 15 }                                <
 1551                                                                                   <
 1552  struct _EXCEPTION_RECORD {                                                       <
 1553    DWORD ExceptionCode;                                                           <
 1554    DWORD ExceptionFlags;                                                          <
 1555    _EXCEPTION_RECORD *ExceptionRecord;                                            <
 1556    PVOID ExceptionAddress;                                                        <
 1557    DWORD NumberParameters;                                                        <
 1558    ULONG_PTR ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];                  <
 1559  }                                                                                <
 1560  alias _EXCEPTION_RECORD EXCEPTION_RECORD;                                        <
 1561                                                                                   <
 1562  alias EXCEPTION_RECORD* PEXCEPTION_RECORD;                                       <
 1563                                                                                   <
 1564  struct _EXCEPTION_RECORD32 {                                                     <
 1565    DWORD ExceptionCode;                                                           <
 1566    DWORD ExceptionFlags;                                                          <
 1567    DWORD ExceptionRecord;                                                         <
 1568    DWORD ExceptionAddress;                                                        <
 1569    DWORD NumberParameters;                                                        <
 1570    DWORD ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];                      <
 1571  }                                                                                <
 1572  alias _EXCEPTION_RECORD32 EXCEPTION_RECORD32;                                    <
 1573  alias _EXCEPTION_RECORD32* PEXCEPTION_RECORD32;                                  <
 1574                                                                                   <
 1575  struct _EXCEPTION_RECORD64 {                                                     <
 1576    DWORD ExceptionCode;                                                           <
 1577    DWORD ExceptionFlags;                                                          <
 1578    DWORD64 ExceptionRecord;                                                       <
 1579    DWORD64 ExceptionAddress;                                                      <
 1580    DWORD NumberParameters;                                                        <
 1581    DWORD __unusedAlignment;                                                       <
 1582    DWORD64 ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];                    <
 1583  }                                                                                <
 1584  alias _EXCEPTION_RECORD64 EXCEPTION_RECORD64;                                    <
 1585  alias _EXCEPTION_RECORD64* PEXCEPTION_RECORD64;                                  <
 1586                                                                                   <
 1587  struct _EXCEPTION_POINTERS {                                                     <
 1588    PEXCEPTION_RECORD ExceptionRecord;                                             <
 1589    PCONTEXT ContextRecord;                                                        <
 1590  }                                                                                <
 1591  alias _EXCEPTION_POINTERS EXCEPTION_POINTERS;                                    <
 1592  alias _EXCEPTION_POINTERS* PEXCEPTION_POINTERS;                                  <
 1593                                                                                   <
 1594  alias PVOID PACCESS_TOKEN;                                                       <
 1595  alias PVOID PSECURITY_DESCRIPTOR;                                                <
 1596  alias PVOID PSID;                                                                <
 1597                                                                                   <
 1598  alias DWORD ACCESS_MASK;                                                         <
 1599  alias ACCESS_MASK* PACCESS_MASK;                                                 <
 1600                                                                                   <
 1601  enum : uint { DELETE = 0x00010000 }                                              <
 1602  enum : uint { READ_CONTROL = 0x00020000 }                                        <
 1603  enum : uint { WRITE_DAC = 0x00040000 }                                           <
 1604  enum : uint { WRITE_OWNER = 0x00080000 }                                         <
 1605  enum : uint { SYNCHRONIZE = 0x00100000 }                                         <
 1606                                                                                   <
 1607  enum : uint { STANDARD_RIGHTS_REQUIRED = 0x000F0000 }                            <
 1608                                                                                   <
 1609  enum : uint { STANDARD_RIGHTS_READ = READ_CONTROL }                              <
 1610  enum : uint { STANDARD_RIGHTS_WRITE = READ_CONTROL }                             <
 1611  enum : uint { STANDARD_RIGHTS_EXECUTE = READ_CONTROL }                           <
 1612                                                                                   <
 1613  enum : uint { STANDARD_RIGHTS_ALL = 0x001F0000 }                                 <
 1614                                                                                   <
 1615  enum : uint { SPECIFIC_RIGHTS_ALL = 0x0000FFFF }                                 <
 1616                                                                                   <
 1617  enum : uint { ACCESS_SYSTEM_SECURITY = 0x01000000 }                              <
 1618                                                                                   <
 1619  enum : uint { MAXIMUM_ALLOWED = 0x02000000 }                                     <
 1620                                                                                   <
 1621  enum : uint { GENERIC_READ = 0x80000000 }                                        <
 1622  enum : uint { GENERIC_WRITE = 0x40000000 }                                       <
 1623  enum : uint { GENERIC_EXECUTE = 0x20000000 }                                     <
 1624  enum : uint { GENERIC_ALL = 0x10000000 }                                         <
 1625                                                                                   <
 1626  struct _GENERIC_MAPPING {                                                        <
 1627    ACCESS_MASK GenericRead;                                                       <
 1628    ACCESS_MASK GenericWrite;                                                      <
 1629    ACCESS_MASK GenericExecute;                                                    <
 1630    ACCESS_MASK GenericAll;                                                        <
 1631  }                                                                                <
 1632  alias _GENERIC_MAPPING GENERIC_MAPPING;                                          <
 1633                                                                                   <
 1634  alias GENERIC_MAPPING* PGENERIC_MAPPING;                                         <
 1635                                                                                   <
 1636  align(4):                                                                        <
 1637                                                                                   <
 1638  struct _LUID_AND_ATTRIBUTES {                                                    <
 1639    LUID Luid;                                                                     <
 1640    DWORD Attributes;                                                              <
 1641  }                                                                                <
 1642  alias _LUID_AND_ATTRIBUTES LUID_AND_ATTRIBUTES;                                  <
 1643  alias _LUID_AND_ATTRIBUTES* PLUID_AND_ATTRIBUTES;                                <
 1644                                                                                   <
 1645  alias LUID_AND_ATTRIBUTES LUID_AND_ATTRIBUTES_ARRAY[ANYSIZE_ARRAY];              <
 1646  alias LUID_AND_ATTRIBUTES_ARRAY* PLUID_AND_ATTRIBUTES_ARRAY;                     <
 1647                                                                                   <
 1648  align:                                                                           <
 1649                                                                                   <
 1650  // #ifndef SID_IDENTIFIER_AUTHORITY_DEFINED                                      <
 1651  // #define SID_IDENTIFIER_AUTHORITY_DEFINED                                      <
 1652  struct _SID_IDENTIFIER_AUTHORITY {                                               <
 1653    BYTE Value[6];                                                                 <
 1654  }                                                                                <
 1655  alias _SID_IDENTIFIER_AUTHORITY SID_IDENTIFIER_AUTHORITY;                        <
 1656  alias _SID_IDENTIFIER_AUTHORITY* PSID_IDENTIFIER_AUTHORITY;                      <
 1657                                                                                   <
 1658  // #endif                                                                        <
 1659                                                                                   <
 1660  // #ifndef SID_DEFINED                                                           <
 1661  // #define SID_DEFINED                                                           <
 1662  struct _SID {                                                                    <
 1663    BYTE Revision;                                                                 <
 1664    BYTE SubAuthorityCount;                                                        <
 1665    SID_IDENTIFIER_AUTHORITY IdentifierAuthority;                                  <
 1666  // #ifdef MIDL_PASS                                                              <
 1667  // ...                                                                           <
 1668  // #else // MIDL_PASS                                                            <
 1669    DWORD SubAuthority[ANYSIZE_ARRAY];                                             <
 1670  // #endif // MIDL_PASS                                                           <
 1671  }                                                                                <
 1672  alias _SID SID;                                                                  <
 1673  alias _SID* PISID;                                                               <
 1674                                                                                   <
 1675  // #endif                                                                        <
 1676                                                                                   <
 1677  enum : uint { SID_REVISION = 1 }                                                 <
 1678  enum : uint { SID_MAX_SUB_AUTHORITIES = 15 }                                     <
 1679  enum : uint { SID_RECOMMENDED_SUB_AUTHORITIES = 1 }                              <
 1680                                                                                   <
 1681  // #ifndef MIDL_PASS                                                             <
 1682  const uint SECURITY_MAX_SID_SIZE = SID.sizeof - DWORD.sizeof + (SID_MAX_SUB_AUTH <
 1683  // #endif // MIDL_PASS                                                           <
 1684                                                                                   <
 1685  alias int _SID_NAME_USE;                                                         <
 1686  enum {                                                                              1529  enum {
 1687    SidTypeUser = 1,                                                               |  1530          IMAGE_REL_BASED_ABSOLUTE,
 1688    SidTypeGroup,                                                                  |  1531          IMAGE_REL_BASED_HIGH,
 1689    SidTypeDomain,                                                                 |  1532          IMAGE_REL_BASED_LOW,
 1690    SidTypeAlias,                                                                  |  1533          IMAGE_REL_BASED_HIGHLOW,
 1691    SidTypeWellKnownGroup,                                                         |  1534          IMAGE_REL_BASED_HIGHADJ,
 1692    SidTypeDeletedAccount,                                                         |  1535          IMAGE_REL_BASED_MIPS_JMPADDR
 1693    SidTypeInvalid,                                                                <
                                                                                        >  1536  }
 1694    SidTypeUnknown,                                                                |  1537  // End of constants documented in pecoff.doc
 1695    SidTypeComputer,                                                               <
 1696  }                                                                                |  1538  
 1697  alias _SID_NAME_USE SID_NAME_USE;                                                <
 1698  alias _SID_NAME_USE* PSID_NAME_USE;                                              <
                                                                                        >  1539  const size_t IMAGE_ARCHIVE_START_SIZE = 8;
 1699                                                                                   |  1540  
                                                                                        >  1541  const TCHAR[]
                                                                                        >  1542          IMAGE_ARCHIVE_START            = "!<arch>\n",
 1700  struct _SID_AND_ATTRIBUTES {                                                     |  1543          IMAGE_ARCHIVE_END              = "`\n",
 1701    PSID Sid;                                                                      |  1544          IMAGE_ARCHIVE_PAD              = "\n",
 1702    DWORD Attributes;                                                              |  1545          IMAGE_ARCHIVE_LINKER_MEMBER    = "/               ",
                                                                                        >  1546          IMAGE_ARCHIVE_LONGNAMES_MEMBER = "//              ";
 1703  }                                                                                |  1547  
 1704  alias _SID_AND_ATTRIBUTES SID_AND_ATTRIBUTES;                                    <
 1705  alias _SID_AND_ATTRIBUTES* PSID_AND_ATTRIBUTES;                                  |  1548  const IMAGE_ORDINAL_FLAG32 = 0x80000000;
 1706                                                                                   |  1549  
 1707  alias SID_AND_ATTRIBUTES SID_AND_ATTRIBUTES_ARRAY[ANYSIZE_ARRAY];                |  1550  ulong IMAGE_ORDINAL64(ulong Ordinal) { return Ordinal & 0xFFFF; }
 1708  alias SID_AND_ATTRIBUTES_ARRAY* PSID_AND_ATTRIBUTES_ARRAY;                       |  1551  uint IMAGE_ORDINAL32(uint Ordinal)   { return Ordinal & 0xFFFF; }
 1709                                                                                   |  1552  
 1710  // #define SECURITY_NULL_SID_AUTHORITY {0,0,0,0,0,0}                             |  1553  bool IMAGE_SNAP_BY_ORDINAL32(uint Ordinal) {
 1711  // #define SECURITY_WORLD_SID_AUTHORITY {0,0,0,0,0,1}                            |  1554          return (Ordinal & IMAGE_ORDINAL_FLAG32) != 0;
 1712  // #define SECURITY_LOCAL_SID_AUTHORITY {0,0,0,0,0,2}                            <
 1713  // #define SECURITY_CREATOR_SID_AUTHORITY {0,0,0,0,0,3}                          <
 1714  // #define SECURITY_NON_UNIQUE_AUTHORITY {0,0,0,0,0,4}                           <
 1715  // #define SECURITY_RESOURCE_MANAGER_AUTHORITY {0,0,0,0,0,9}                     <
 1716                                                                                   |  1555  }
 1717  enum : uint { SECURITY_NULL_RID = 0x00000000 }                                   <
 1718  enum : uint { SECURITY_WORLD_RID = 0x00000000 }                                  <
 1719  enum : uint { SECURITY_LOCAL_RID = 0x00000000 }                                  <
 1720                                                                                   |  1556  
 1721  enum : uint { SECURITY_CREATOR_OWNER_RID = 0x00000000 }                          <
 1722  enum : uint { SECURITY_CREATOR_GROUP_RID = 0x00000001 }                          <
                                                                                        >  1557  const ulong IMAGE_ORDINAL_FLAG64 = 0x8000000000000000;
 1723                                                                                   |  1558  
 1724  enum : uint { SECURITY_CREATOR_OWNER_SERVER_RID = 0x00000002 }                   <
 1725  enum : uint { SECURITY_CREATOR_GROUP_SERVER_RID = 0x00000003 }                   <
                                                                                        >  1559  bool IMAGE_SNAP_BY_ORDINAL64(ulong Ordinal) {
                                                                                        >  1560          return (Ordinal & IMAGE_ORDINAL_FLAG64) != 0;
 1726                                                                                   |  1561  }
 1727  // #define SECURITY_NT_AUTHORITY {0,0,0,0,0,5}                                   <
 1728                                                                                   |  1562  
                                                                                        >  1563  // ???
                                                                                        >  1564  const IMAGE_RESOURCE_NAME_IS_STRING    = 0x80000000;
                                                                                        >  1565  const IMAGE_RESOURCE_DATA_IS_DIRECTORY = 0x80000000;
                                                                                        >  1566  
                                                                                        >  1567  enum : DWORD {
                                                                                        >  1568          IMAGE_DEBUG_TYPE_UNKNOWN,
                                                                                        >  1569          IMAGE_DEBUG_TYPE_COFF,
                                                                                        >  1570          IMAGE_DEBUG_TYPE_CODEVIEW,
                                                                                        >  1571          IMAGE_DEBUG_TYPE_FPO,
 1729  enum : uint { SECURITY_DIALUP_RID = 0x00000001 }                                 |  1572          IMAGE_DEBUG_TYPE_MISC,
 1730  enum : uint { SECURITY_NETWORK_RID = 0x00000002 }                                |  1573          IMAGE_DEBUG_TYPE_EXCEPTION,
 1731  enum : uint { SECURITY_BATCH_RID = 0x00000003 }                                  |  1574          IMAGE_DEBUG_TYPE_FIXUP,
 1732  enum : uint { SECURITY_INTERACTIVE_RID = 0x00000004 }                            |  1575          IMAGE_DEBUG_TYPE_OMAP_TO_SRC,
 1733  enum : uint { SECURITY_SERVICE_RID = 0x00000006 }                                |  1576          IMAGE_DEBUG_TYPE_OMAP_FROM_SRC,
 1734  enum : uint { SECURITY_ANONYMOUS_LOGON_RID = 0x00000007 }                        |  1577          IMAGE_DEBUG_TYPE_BORLAND // = 9
 1735  enum : uint { SECURITY_PROXY_RID = 0x00000008 }                                  <
 1736  enum : uint { SECURITY_ENTERPRISE_CONTROLLERS_RID = 0x00000009 }                 <
 1737  alias SECURITY_ENTERPRISE_CONTROLLERS_RID SECURITY_SERVER_LOGON_RID;             <
 1738  enum : uint { SECURITY_PRINCIPAL_SELF_RID = 0x0000000A }                         <
 1739  enum : uint { SECURITY_AUTHENTICATED_USER_RID = 0x0000000B }                     <
 1740  enum : uint { SECURITY_RESTRICTED_CODE_RID = 0x0000000C }                        <
 1741  enum : uint { SECURITY_TERMINAL_SERVER_RID = 0x0000000D }                        <
 1742  enum : uint { SECURITY_REMOTE_LOGON_RID = 0x0000000E }                           <
 1743                                                                                   |  1578  }
 1744  enum : uint { SECURITY_LOGON_IDS_RID = 0x00000005 }                              <
 1745  enum : uint { SECURITY_LOGON_IDS_RID_COUNT = 3 }                                 <
 1746                                                                                   |  1579  
 1747  enum : uint { SECURITY_LOCAL_SYSTEM_RID = 0x00000012 }                           <
 1748  enum : uint { SECURITY_LOCAL_SERVICE_RID = 0x00000013 }                          <
 1749  enum : uint { SECURITY_NETWORK_SERVICE_RID = 0x00000014 }                        <
                                                                                        >  1580  enum : ubyte {
                                                                                        >  1581          FRAME_FPO,
                                                                                        >  1582          FRAME_TRAP,
                                                                                        >  1583          FRAME_TSS,
                                                                                        >  1584          FRAME_NONFPO
 1750                                                                                   |  1585  }
 1751  enum : uint { SECURITY_NT_NON_UNIQUE = 0x00000015 }                              <
 1752  enum : uint { SECURITY_NT_NON_UNIQUE_SUB_AUTH_COUNT = 3 }                        <
 1753                                                                                   |  1586  
 1754  enum : uint { SECURITY_BUILTIN_DOMAIN_RID = 0x00000020 }                         <
                                                                                        >  1587  // ???
                                                                                        >  1588  const IMAGE_DEBUG_MISC_EXENAME = 1;
 1755                                                                                   |  1589  
 1756  enum : uint { DOMAIN_USER_RID_ADMIN = 0x000001F4 }                               <
 1757  enum : uint { DOMAIN_USER_RID_GUEST = 0x000001F5 }                               <
 1758  enum : uint { DOMAIN_USER_RID_KRBTGT = 0x000001F6 }                              <
                                                                                        >  1590  // ???
                                                                                        >  1591  const N_BTMASK = 0x000F;
                                                                                        >  1592  const N_TMASK  = 0x0030;
                                                                                        >  1593  const N_TMASK1 = 0x00C0;
                                                                                        >  1594  const N_TMASK2 = 0x00F0;
                                                                                        >  1595  const N_BTSHFT = 4;
                                                                                        >  1596  const N_TSHIFT = 2;
 1759                                                                                   |  1597  
                                                                                        >  1598  const int
                                                                                        >  1599          IS_TEXT_UNICODE_ASCII16            = 0x0001,
                                                                                        >  1600          IS_TEXT_UNICODE_STATISTICS         = 0x0002,
                                                                                        >  1601          IS_TEXT_UNICODE_CONTROLS           = 0x0004,
                                                                                        >  1602          IS_TEXT_UNICODE_SIGNATURE          = 0x0008,
 1760  enum : uint { DOMAIN_GROUP_RID_ADMINS = 0x00000200 }                             |  1603          IS_TEXT_UNICODE_REVERSE_ASCII16    = 0x0010,
 1761  enum : uint { DOMAIN_GROUP_RID_USERS = 0x00000201 }                              |  1604          IS_TEXT_UNICODE_REVERSE_STATISTICS = 0x0020,
 1762  enum : uint { DOMAIN_GROUP_RID_GUESTS = 0x00000202 }                             |  1605          IS_TEXT_UNICODE_REVERSE_CONTROLS   = 0x0040,
 1763  enum : uint { DOMAIN_GROUP_RID_COMPUTERS = 0x00000203 }                          |  1606          IS_TEXT_UNICODE_REVERSE_SIGNATURE  = 0x0080,
 1764  enum : uint { DOMAIN_GROUP_RID_CONTROLLERS = 0x00000204 }                        |  1607          IS_TEXT_UNICODE_ILLEGAL_CHARS      = 0x0100,
 1765  enum : uint { DOMAIN_GROUP_RID_CERT_ADMINS = 0x00000205 }                        |  1608          IS_TEXT_UNICODE_ODD_LENGTH         = 0x0200,
 1766  enum : uint { DOMAIN_GROUP_RID_SCHEMA_ADMINS = 0x00000206 }                      |  1609          IS_TEXT_UNICODE_NULL_BYTES         = 0x1000,
 1767  enum : uint { DOMAIN_GROUP_RID_ENTERPRISE_ADMINS = 0x00000207 }                  |  1610          IS_TEXT_UNICODE_UNICODE_MASK       = 0x000F,
 1768  enum : uint { DOMAIN_GROUP_RID_POLICY_ADMINS = 0x00000208 }                      |  1611          IS_TEXT_UNICODE_REVERSE_MASK       = 0x00F0,
                                                                                        >  1612          IS_TEXT_UNICODE_NOT_UNICODE_MASK   = 0x0F00,
                                                                                        >  1613          IS_TEXT_UNICODE_NOT_ASCII_MASK     = 0xF000;
 1769                                                                                   |  1614  
 1770  enum : uint { DOMAIN_ALIAS_RID_ADMINS = 0x00000220 }                             <
 1771  enum : uint { DOMAIN_ALIAS_RID_USERS = 0x00000221 }                              <
 1772  enum : uint { DOMAIN_ALIAS_RID_GUESTS = 0x00000222 }                             |  1615  const DWORD
 1773  enum : uint { DOMAIN_ALIAS_RID_POWER_USERS = 0x00000223 }                        |  1616          SERVICE_KERNEL_DRIVER       = 0x0001,
 1774                                                                                   <
                                                                                        >  1617          SERVICE_FILE_SYSTEM_DRIVER  = 0x0002,
 1775  enum : uint { DOMAIN_ALIAS_RID_ACCOUNT_OPS = 0x00000224 }                        |  1618          SERVICE_ADAPTER             = 0x0004,
 1776  enum : uint { DOMAIN_ALIAS_RID_SYSTEM_OPS = 0x00000225 }                         |  1619          SERVICE_RECOGNIZER_DRIVER   = 0x0008,
 1777  enum : uint { DOMAIN_ALIAS_RID_PRINT_OPS = 0x00000226 }                          |  1620          SERVICE_WIN32_OWN_PROCESS   = 0x0010,
 1778  enum : uint { DOMAIN_ALIAS_RID_BACKUP_OPS = 0x00000227 }                         |  1621          SERVICE_WIN32_SHARE_PROCESS = 0x0020,
                                                                                        >  1622          SERVICE_INTERACTIVE_PROCESS = 0x0100,
                                                                                        >  1623          SERVICE_DRIVER              = 0x000B,
                                                                                        >  1624          SERVICE_WIN32               = 0x0030,
                                                                                        >  1625          SERVICE_TYPE_ALL            = 0x013F;
 1779                                                                                   |  1626  
 1780  enum : uint { DOMAIN_ALIAS_RID_REPLICATOR = 0x00000228 }                         <
 1781  enum : uint { DOMAIN_ALIAS_RID_RAS_SERVERS = 0x00000229 }                        <
 1782  enum : uint { DOMAIN_ALIAS_RID_PREW2KCOMPACCESS = 0x0000022A }                   <
 1783  enum : uint { DOMAIN_ALIAS_RID_REMOTE_DESKTOP_USERS = 0x0000022B }               <
 1784  enum : uint { DOMAIN_ALIAS_RID_NETWORK_CONFIGURATION_OPS = 0x0000022C }          |  1627  enum : DWORD {
                                                                                        >  1628          SERVICE_BOOT_START   = 0,
                                                                                        >  1629          SERVICE_SYSTEM_START = 1,
                                                                                        >  1630          SERVICE_AUTO_START   = 2,
                                                                                        >  1631          SERVICE_DEMAND_START = 3,
                                                                                        >  1632          SERVICE_DISABLED     = 4
 1785                                                                                   |  1633  }
 1786  const LUID SYSTEM_LUID = {LowPart: 0x3e7, HighPart: 0x0};                        <
 1787  const LUID ANONYMOUS_LOGON_LUID = {LowPart: 0x3e6, HighPart: 0x0};               <
 1788  const LUID LOCALSERVICE_LUID = {LowPart: 0x3e5, HighPart: 0x0};                  <
 1789  const LUID NETWORKSERVICE_LUID = {LowPart: 0x3e4, HighPart: 0x0};                <
 1790                                                                                   |  1634  
 1791  enum : uint { SE_GROUP_MANDATORY = 0x00000001 }                                  <
 1792  enum : uint { SE_GROUP_ENABLED_BY_DEFAULT = 0x00000002 }                         |  1635  enum : DWORD {
 1793  enum : uint { SE_GROUP_ENABLED = 0x00000004 }                                    |  1636          SERVICE_ERROR_IGNORE   = 0,
 1794  enum : uint { SE_GROUP_OWNER = 0x00000008 }                                      |  1637          SERVICE_ERROR_NORMAL   = 1,
 1795  enum : uint { SE_GROUP_USE_FOR_DENY_ONLY = 0x00000010 }                          |  1638          SERVICE_ERROR_SEVERE   = 2,
 1796  enum : uint { SE_GROUP_LOGON_ID = 0xC0000000 }                                   |  1639          SERVICE_ERROR_CRITICAL = 3
 1797  enum : uint { SE_GROUP_RESOURCE = 0x20000000 }                                   <
 1798                                                                                   |  1640  }
 1799  enum : uint { ACL_REVISION = 2 }                                                 <
 1800  enum : uint { ACL_REVISION_DS = 4 }                                              <
 1801                                                                                   |  1641  
                                                                                        >  1642  
                                                                                        >  1643  const uint
                                                                                        >  1644          SE_OWNER_DEFAULTED          = 0x0001,
 1802  enum : uint { ACL_REVISION1 = 1 }                                                |  1645          SE_GROUP_DEFAULTED          = 0x0002,
 1803  enum { MIN_ACL_REVISION = 2 }                                                    |  1646          SE_DACL_PRESENT             = 0x0004,
 1804  enum : uint { ACL_REVISION2 = 2 }                                                |  1647          SE_DACL_DEFAULTED           = 0x0008,
 1805  enum : uint { ACL_REVISION3 = 3 }                                                |  1648          SE_SACL_PRESENT             = 0x0010,
 1806  enum : uint { ACL_REVISION4 = 4 }                                                |  1649          SE_SACL_DEFAULTED           = 0x0020,
 1807  alias ACL_REVISION4 MAX_ACL_REVISION;                                            |  1650          SE_DACL_AUTO_INHERIT_REQ    = 0x0100,
                                                                                        >  1651          SE_SACL_AUTO_INHERIT_REQ    = 0x0200,
                                                                                        >  1652          SE_DACL_AUTO_INHERITED      = 0x0400,
                                                                                        >  1653          SE_SACL_AUTO_INHERITED      = 0x0800,
                                                                                        >  1654          SE_DACL_PROTECTED           = 0x1000,
                                                                                        >  1655          SE_SACL_PROTECTED           = 0x2000,
                                                                                        >  1656          SE_SELF_RELATIVE            = 0x8000;
 1808                                                                                   |  1657  
 1809  struct _ACL {                                                                    <
 1810    BYTE AclRevision;                                                              <
 1811    BYTE Sbz1;                                                                     <
                                                                                        >  1658  enum SECURITY_IMPERSONATION_LEVEL {
                                                                                        >  1659          SecurityAnonymous,
                                                                                        >  1660          SecurityIdentification,
                                                                                        >  1661          SecurityImpersonation,
                                                                                        >  1662          SecurityDelegation
                                                                                        >  1663  }
                                                                                        >  1664  alias SECURITY_IMPERSONATION_LEVEL* PSECURITY_IMPERSONATION_LEVEL;
                                                                                        >  1665  
                                                                                        >  1666  alias BOOLEAN SECURITY_CONTEXT_TRACKING_MODE;
                                                                                        >  1667  alias BOOLEAN* PSECURITY_CONTEXT_TRACKING_MODE;
                                                                                        >  1668  
                                                                                        >  1669  const size_t SECURITY_DESCRIPTOR_MIN_LENGTH = 20;
                                                                                        >  1670  
                                                                                        >  1671  const DWORD
                                                                                        >  1672          SECURITY_DESCRIPTOR_REVISION  = 1,
                                                                                        >  1673          SECURITY_DESCRIPTOR_REVISION1 = 1;
                                                                                        >  1674  
                                                                                        >  1675  const DWORD
                                                                                        >  1676          SE_PRIVILEGE_ENABLED_BY_DEFAULT = 0x00000001,
                                                                                        >  1677          SE_PRIVILEGE_ENABLED            = 0x00000002,
                                                                                        >  1678          SE_PRIVILEGE_USED_FOR_ACCESS    = 0x80000000;
                                                                                        >  1679  
                                                                                        >  1680  const DWORD PRIVILEGE_SET_ALL_NECESSARY = 1;
                                                                                        >  1681  
                                                                                        >  1682  const SECURITY_IMPERSONATION_LEVEL
                                                                                        >  1683          SECURITY_MAX_IMPERSONATION_LEVEL = SECURITY_IMPERSONATION_LEVEL.Security
                                                                                        >  1684          DEFAULT_IMPERSONATION_LEVEL      = SECURITY_IMPERSONATION_LEVEL.Security
                                                                                        >  1685  
                                                                                        >  1686  const BOOLEAN
                                                                                        >  1687          SECURITY_DYNAMIC_TRACKING = true,
                                                                                        >  1688          SECURITY_STATIC_TRACKING  = false;
                                                                                        >  1689  
                                                                                        >  1690  // also in ddk/ntifs.h
                                                                                        >  1691  const DWORD
                                                                                        >  1692          TOKEN_ASSIGN_PRIMARY    = 0x0001,
                                                                                        >  1693          TOKEN_DUPLICATE         = 0x0002,
                                                                                        >  1694          TOKEN_IMPERSONATE       = 0x0004,
                                                                                        >  1695          TOKEN_QUERY             = 0x0008,
                                                                                        >  1696          TOKEN_QUERY_SOURCE      = 0x0010,
                                                                                        >  1697          TOKEN_ADJUST_PRIVILEGES = 0x0020,
                                                                                        >  1698          TOKEN_ADJUST_GROUPS     = 0x0040,
                                                                                        >  1699          TOKEN_ADJUST_DEFAULT    = 0x0080,
                                                                                        >  1700  
                                                                                        >  1701          TOKEN_ALL_ACCESS        = STANDARD_RIGHTS_REQUIRED
                                                                                        >  1702                                | TOKEN_ASSIGN_PRIMARY
                                                                                        >  1703                                | TOKEN_DUPLICATE
                                                                                        >  1704                                | TOKEN_IMPERSONATE
                                                                                        >  1705                                | TOKEN_QUERY
                                                                                        >  1706                                | TOKEN_QUERY_SOURCE
                                                                                        >  1707                                | TOKEN_ADJUST_PRIVILEGES
                                                                                        >  1708                                | TOKEN_ADJUST_GROUPS
                                                                                        >  1709                                | TOKEN_ADJUST_DEFAULT,
                                                                                        >  1710          TOKEN_READ              = STANDARD_RIGHTS_READ | TOKEN_QUERY,
                                                                                        >  1711          TOKEN_WRITE             = STANDARD_RIGHTS_WRITE
                                                                                        >  1712                                | TOKEN_ADJUST_PRIVILEGES
                                                                                        >  1713                                | TOKEN_ADJUST_GROUPS
                                                                                        >  1714                                | TOKEN_ADJUST_DEFAULT,
                                                                                        >  1715          TOKEN_EXECUTE           = STANDARD_RIGHTS_EXECUTE;
                                                                                        >  1716  
                                                                                        >  1717  const size_t TOKEN_SOURCE_LENGTH = 8;
                                                                                        >  1718  // end ddk/ntifs.h
                                                                                        >  1719  
 1812    WORD AclSize;                                                                  |  1720  enum : DWORD {
                                                                                        >  1721          DLL_PROCESS_DETACH,
                                                                                        >  1722          DLL_PROCESS_ATTACH,
                                                                                        >  1723          DLL_THREAD_ATTACH,
                                                                                        >  1724          DLL_THREAD_DETACH
                                                                                        >  1725  }
                                                                                        >  1726  
 1813    WORD AceCount;                                                                 |  1727  enum : DWORD {
                                                                                        >  1728          DBG_CONTINUE              = 0x00010002,
                                                                                        >  1729          DBG_TERMINATE_THREAD      = 0x40010003,
                                                                                        >  1730          DBG_TERMINATE_PROCESS     = 0x40010004,
                                                                                        >  1731          DBG_CONTROL_C             = 0x40010005,
                                                                                        >  1732          DBG_CONTROL_BREAK         = 0x40010008,
                                                                                        >  1733          DBG_EXCEPTION_NOT_HANDLED = 0x80010001
                                                                                        >  1734  }
                                                                                        >  1735  
 1814    WORD Sbz2;                                                                     |  1736  enum : DWORD {
                                                                                        >  1737          TAPE_ABSOLUTE_POSITION,
                                                                                        >  1738          TAPE_LOGICAL_POSITION,
                                                                                        >  1739          TAPE_PSEUDO_LOGICAL_POSITION
 1815  }                                                                                |  1740  }
 1816  alias _ACL ACL;                                                                  <
 1817                                                                                   |  1741  
 1818  alias ACL* PACL;                                                                 <
                                                                                        >  1742  enum : DWORD {
                                                                                        >  1743          TAPE_REWIND,
                                                                                        >  1744          TAPE_ABSOLUTE_BLOCK,
                                                                                        >  1745          TAPE_LOGICAL_BLOCK,
                                                                                        >  1746          TAPE_PSEUDO_LOGICAL_BLOCK,
                                                                                        >  1747          TAPE_SPACE_END_OF_DATA,
                                                                                        >  1748          TAPE_SPACE_RELATIVE_BLOCKS,
                                                                                        >  1749          TAPE_SPACE_FILEMARKS,
                                                                                        >  1750          TAPE_SPACE_SEQUENTIAL_FMKS,
                                                                                        >  1751          TAPE_SPACE_SETMARKS,
                                                                                        >  1752          TAPE_SPACE_SEQUENTIAL_SMKS
 1819                                                                                   |  1753  }
                                                                                        >  1754  
                                                                                        >  1755  const DWORD
                                                                                        >  1756          TAPE_DRIVE_FIXED            = 0x00000001,
                                                                                        >  1757          TAPE_DRIVE_SELECT           = 0x00000002,
                                                                                        >  1758          TAPE_DRIVE_INITIATOR        = 0x00000004,
                                                                                        >  1759          TAPE_DRIVE_ERASE_SHORT      = 0x00000010,
                                                                                        >  1760          TAPE_DRIVE_ERASE_LONG       = 0x00000020,
                                                                                        >  1761          TAPE_DRIVE_ERASE_BOP_ONLY   = 0x00000040,
                                                                                        >  1762          TAPE_DRIVE_ERASE_IMMEDIATE  = 0x00000080,
                                                                                        >  1763          TAPE_DRIVE_TAPE_CAPACITY    = 0x00000100,
                                                                                        >  1764          TAPE_DRIVE_TAPE_REMAINING   = 0x00000200,
                                                                                        >  1765          TAPE_DRIVE_FIXED_BLOCK      = 0x00000400,
                                                                                        >  1766          TAPE_DRIVE_VARIABLE_BLOCK   = 0x00000800,
                                                                                        >  1767          TAPE_DRIVE_WRITE_PROTECT    = 0x00001000,
                                                                                        >  1768          TAPE_DRIVE_EOT_WZ_SIZE      = 0x00002000,
                                                                                        >  1769          TAPE_DRIVE_ECC              = 0x00010000,
                                                                                        >  1770          TAPE_DRIVE_COMPRESSION      = 0x00020000,
                                                                                        >  1771          TAPE_DRIVE_PADDING          = 0x00040000,
                                                                                        >  1772          TAPE_DRIVE_REPORT_SMKS      = 0x00080000,
                                                                                        >  1773          TAPE_DRIVE_GET_ABSOLUTE_BLK = 0x00100000,
                                                                                        >  1774          TAPE_DRIVE_GET_LOGICAL_BLK  = 0x00200000,
                                                                                        >  1775          TAPE_DRIVE_SET_EOT_WZ_SIZE  = 0x00400000,
                                                                                        >  1776          TAPE_DRIVE_EJECT_MEDIA      = 0x01000000,
                                                                                        >  1777          TAPE_DRIVE_CLEAN_REQUESTS   = 0x02000000,
                                                                                        >  1778          TAPE_DRIVE_SET_CMP_BOP_ONLY = 0x04000000,
                                                                                        >  1779          TAPE_DRIVE_RESERVED_BIT     = 0x80000000;
                                                                                        >  1780  
                                                                                        >  1781  const DWORD
                                                                                        >  1782          TAPE_DRIVE_LOAD_UNLOAD      = 0x80000001,
                                                                                        >  1783          TAPE_DRIVE_TENSION          = 0x80000002,
                                                                                        >  1784          TAPE_DRIVE_LOCK_UNLOCK      = 0x80000004,
                                                                                        >  1785          TAPE_DRIVE_REWIND_IMMEDIATE = 0x80000008,
                                                                                        >  1786          TAPE_DRIVE_SET_BLOCK_SIZE   = 0x80000010,
                                                                                        >  1787          TAPE_DRIVE_LOAD_UNLD_IMMED  = 0x80000020,
                                                                                        >  1788          TAPE_DRIVE_TENSION_IMMED    = 0x80000040,
                                                                                        >  1789          TAPE_DRIVE_LOCK_UNLK_IMMED  = 0x80000080,
                                                                                        >  1790          TAPE_DRIVE_SET_ECC          = 0x80000100,
                                                                                        >  1791          TAPE_DRIVE_SET_COMPRESSION  = 0x80000200,
                                                                                        >  1792          TAPE_DRIVE_SET_PADDING      = 0x80000400,
                                                                                        >  1793          TAPE_DRIVE_SET_REPORT_SMKS  = 0x80000800,
                                                                                        >  1794          TAPE_DRIVE_ABSOLUTE_BLK     = 0x80001000,
                                                                                        >  1795          TAPE_DRIVE_ABS_BLK_IMMED    = 0x80002000,
                                                                                        >  1796          TAPE_DRIVE_LOGICAL_BLK      = 0x80004000,
                                                                                        >  1797          TAPE_DRIVE_LOG_BLK_IMMED    = 0x80008000,
                                                                                        >  1798          TAPE_DRIVE_END_OF_DATA      = 0x80010000,
                                                                                        >  1799          TAPE_DRIVE_RELATIVE_BLKS    = 0x80020000,
                                                                                        >  1800          TAPE_DRIVE_FILEMARKS        = 0x80040000,
                                                                                        >  1801          TAPE_DRIVE_SEQUENTIAL_FMKS  = 0x80080000,
                                                                                        >  1802          TAPE_DRIVE_SETMARKS         = 0x80100000,
                                                                                        >  1803          TAPE_DRIVE_SEQUENTIAL_SMKS  = 0x80200000,
                                                                                        >  1804          TAPE_DRIVE_REVERSE_POSITION = 0x80400000,
                                                                                        >  1805          TAPE_DRIVE_SPACE_IMMEDIATE  = 0x80800000,
                                                                                        >  1806          TAPE_DRIVE_WRITE_SETMARKS   = 0x81000000,
                                                                                        >  1807          TAPE_DRIVE_WRITE_FILEMARKS  = 0x82000000,
                                                                                        >  1808          TAPE_DRIVE_WRITE_SHORT_FMKS = 0x84000000,
                                                                                        >  1809          TAPE_DRIVE_WRITE_LONG_FMKS  = 0x88000000,
                                                                                        >  1810          TAPE_DRIVE_WRITE_MARK_IMMED = 0x90000000,
                                                                                        >  1811          TAPE_DRIVE_FORMAT           = 0xA0000000,
                                                                                        >  1812          TAPE_DRIVE_FORMAT_IMMEDIATE = 0xC0000000,
                                                                                        >  1813          TAPE_DRIVE_HIGH_FEATURES    = 0x80000000;
                                                                                        >  1814  
                                                                                        >  1815  enum : DWORD {
                                                                                        >  1816          TAPE_FIXED_PARTITIONS     = 0,
                                                                                        >  1817          TAPE_SELECT_PARTITIONS    = 1,
                                                                                        >  1818          TAPE_INITIATOR_PARTITIONS = 2
                                                                                        >  1819  }
                                                                                        >  1820  
                                                                                        >  1821  enum : DWORD {
                                                                                        >  1822          TAPE_SETMARKS,
                                                                                        >  1823          TAPE_FILEMARKS,
                                                                                        >  1824          TAPE_SHORT_FILEMARKS,
                                                                                        >  1825          TAPE_LONG_FILEMARKS
                                                                                        >  1826  }
                                                                                        >  1827  
                                                                                        >  1828  enum : DWORD {
                                                                                        >  1829          TAPE_ERASE_SHORT,
                                                                                        >  1830          TAPE_ERASE_LONG
                                                                                        >  1831  }
                                                                                        >  1832  
                                                                                        >  1833  enum : DWORD {
                                                                                        >  1834          TAPE_LOAD,
                                                                                        >  1835          TAPE_UNLOAD,
                                                                                        >  1836          TAPE_TENSION,
                                                                                        >  1837          TAPE_LOCK,
                                                                                        >  1838          TAPE_UNLOCK,
                                                                                        >  1839          TAPE_FORMAT
                                                                                        >  1840  }
                                                                                        >  1841  
                                                                                        >  1842  enum : ULONG32 {
                                                                                        >  1843          VER_PLATFORM_WIN32s,
                                                                                        >  1844          VER_PLATFORM_WIN32_WINDOWS,
                                                                                        >  1845          VER_PLATFORM_WIN32_NT
                                                                                        >  1846  }
                                                                                        >  1847  
                                                                                        >  1848  enum : UCHAR {
                                                                                        >  1849          VER_NT_WORKSTATION = 1,
                                                                                        >  1850          VER_NT_DOMAIN_CONTROLLER,
                                                                                        >  1851          VER_NT_SERVER
                                                                                        >  1852  }
                                                                                        >  1853  
                                                                                        >  1854  const USHORT
                                                                                        >  1855          VER_SUITE_SMALLBUSINESS            = 0x0001,
                                                                                        >  1856          VER_SUITE_ENTERPRISE               = 0x0002,
                                                                                        >  1857          VER_SUITE_BACKOFFICE               = 0x0004,
                                                                                        >  1858          VER_SUITE_TERMINAL                 = 0x0010,
                                                                                        >  1859          VER_SUITE_SMALLBUSINESS_RESTRICTED = 0x0020,
                                                                                        >  1860          VER_SUITE_EMBEDDEDNT               = 0x0040,
                                                                                        >  1861          VER_SUITE_DATACENTER               = 0x0080,
                                                                                        >  1862          VER_SUITE_SINGLEUSERTS             = 0x0100,
                                                                                        >  1863          VER_SUITE_PERSONAL                 = 0x0200,
                                                                                        >  1864          VER_SUITE_BLADE                    = 0x0400,
                                                                                        >  1865          VER_SUITE_STORAGE_SERVER           = 0x2000,
                                                                                        >  1866          VER_SUITE_COMPUTE_SERVER           = 0x4000;
                                                                                        >  1867  
                                                                                        >  1868  const ULONG
                                                                                        >  1869          WT_EXECUTEDEFAULT            = 0x00000000,
                                                                                        >  1870          WT_EXECUTEINIOTHREAD         = 0x00000001,
                                                                                        >  1871          WT_EXECUTEINWAITTHREAD       = 0x00000004,
                                                                                        >  1872          WT_EXECUTEONLYONCE           = 0x00000008,
                                                                                        >  1873          WT_EXECUTELONGFUNCTION       = 0x00000010,
                                                                                        >  1874          WT_EXECUTEINTIMERTHREAD      = 0x00000020,
                                                                                        >  1875          WT_EXECUTEINPERSISTENTTHREAD = 0x00000080,
                                                                                        >  1876          WT_TRANSFER_IMPERSONATION    = 0x00000100;
                                                                                        >  1877  
                                                                                        >  1878  static if (_WIN32_WINNT_ONLY) {
                                                                                        >  1879          static if (_WIN32_WINNT >= 0x500) {
                                                                                        >  1880                  const DWORD
                                                                                        >  1881                          VER_MINORVERSION     = 0x01,
                                                                                        >  1882                          VER_MAJORVERSION     = 0x02,
                                                                                        >  1883                          VER_BUILDNUMBER      = 0x04,
                                                                                        >  1884                          VER_PLATFORMID       = 0x08,
                                                                                        >  1885                          VER_SERVICEPACKMINOR = 0x10,
                                                                                        >  1886                          VER_SERVICEPACKMAJOR = 0x20,
                                                                                        >  1887                          VER_SUITENAME        = 0x40,
                                                                                        >  1888                          VER_PRODUCT_TYPE     = 0x80;
                                                                                        >  1889  
                                                                                        >  1890                  enum : DWORD {
                                                                                        >  1891                          VER_EQUAL = 1,
                                                                                        >  1892                          VER_GREATER,
                                                                                        >  1893                          VER_GREATER_EQUAL,
                                                                                        >  1894                          VER_LESS,
                                                                                        >  1895                          VER_LESS_EQUAL,
                                                                                        >  1896                          VER_AND,
                                                                                        >  1897                          VER_OR // = 7
                                                                                        >  1898                  }
                                                                                        >  1899          }
                                                                                        >  1900  
                                                                                        >  1901          static if (_WIN32_WINNT >= 0x501) {
                                                                                        >  1902                  enum : ULONG {
                                                                                        >  1903                          ACTIVATION_CONTEXT_SECTION_ASSEMBLY_INFORMATION       = 
                                                                                        >  1904                          ACTIVATION_CONTEXT_SECTION_DLL_REDIRECTION,
                                                                                        >  1905                          ACTIVATION_CONTEXT_SECTION_WINDOW_CLASS_REDIRECTION,
                                                                                        >  1906                          ACTIVATION_CONTEXT_SECTION_COM_SERVER_REDIRECTION,
                                                                                        >  1907                          ACTIVATION_CONTEXT_SECTION_COM_INTERFACE_REDIRECTION,
                                                                                        >  1908                          ACTIVATION_CONTEXT_SECTION_COM_TYPE_LIBRARY_REDIRECTION,
                                                                                        >  1909                          ACTIVATION_CONTEXT_SECTION_COM_PROGID_REDIRECTION, // = 
                                                                                        >  1910                          ACTIVATION_CONTEXT_SECTION_CLR_SURROGATES             = 
                                                                                        >  1911                  }
                                                                                        >  1912          }
                                                                                        >  1913  }
                                                                                        >  1914  
                                                                                        >  1915  // Macros
                                                                                        >  1916  BYTE BTYPE(BYTE x) { return cast(BYTE) (x & N_BTMASK); }
                                                                                        >  1917  bool ISPTR(uint x) { return (x & N_TMASK) == (IMAGE_SYM_DTYPE_POINTER << N_BTSHF
                                                                                        >  1918  bool ISFCN(uint x) { return (x & N_TMASK) == (IMAGE_SYM_DTYPE_FUNCTION << N_BTSH
                                                                                        >  1919  bool ISARY(uint x) { return (x & N_TMASK) == (IMAGE_SYM_DTYPE_ARRAY << N_BTSHFT)
                                                                                        >  1920  bool ISTAG(uint x) {
                                                                                        >  1921          return x == IMAGE_SYM_CLASS_STRUCT_TAG
                                                                                        >  1922              || x == IMAGE_SYM_CLASS_UNION_TAG
                                                                                        >  1923              || x == IMAGE_SYM_CLASS_ENUM_TAG;
                                                                                        >  1924  }
                                                                                        >  1925  uint INCREF(uint x) {
                                                                                        >  1926          return ((x & ~N_BTMASK) << N_TSHIFT) | (IMAGE_SYM_DTYPE_POINTER << N_BTS
                                                                                        >  1927            | (x & N_BTMASK);
                                                                                        >  1928  }
                                                                                        >  1929  uint DECREF(uint x) { return ((x >>> N_TSHIFT) & ~N_BTMASK) | (x & N_BTMASK); }
                                                                                        >  1930  
                                                                                        >  1931  const DWORD TLS_MINIMUM_AVAILABLE = 64;
                                                                                        >  1932  
                                                                                        >  1933  const ULONG
                                                                                        >  1934          IO_REPARSE_TAG_RESERVED_ZERO  = 0,
                                                                                        >  1935          IO_REPARSE_TAG_RESERVED_ONE   = 1,
                                                                                        >  1936          IO_REPARSE_TAG_RESERVED_RANGE = IO_REPARSE_TAG_RESERVED_ONE,
                                                                                        >  1937          IO_REPARSE_TAG_SYMBOLIC_LINK  = IO_REPARSE_TAG_RESERVED_ZERO,
                                                                                        >  1938          IO_REPARSE_TAG_MOUNT_POINT    = 0xA0000003,
                                                                                        >  1939          IO_REPARSE_TAG_SYMLINK        = 0xA000000C,
                                                                                        >  1940          IO_REPARSE_TAG_VALID_VALUES   = 0xE000FFFF;
                                                                                        >  1941  
                                                                                        >  1942  /*      Although these are semantically boolean, they are documented and
                                                                                        >  1943   *      implemented to return ULONG; this behaviour is preserved for compatibili
                                                                                        >  1944   */
                                                                                        >  1945  ULONG IsReparseTagMicrosoft(ULONG x)     { return x & 0x80000000; }
                                                                                        >  1946  ULONG IsReparseTagHighLatency(ULONG x)   { return x & 0x40000000; }
                                                                                        >  1947  ULONG IsReparseTagNameSurrogate(ULONG x) { return x & 0x20000000; }
                                                                                        >  1948  
                                                                                        >  1949  bool IsReparseTagValid(ULONG x) {
                                                                                        >  1950          return !(x & ~IO_REPARSE_TAG_VALID_VALUES) && (x > IO_REPARSE_TAG_RESERV
                                                                                        >  1951  }
                                                                                        >  1952  
                                                                                        >  1953  // Doesn't seem to make sense, but anyway....
                                                                                        >  1954  ULONG WT_SET_MAX_THREADPOOL_THREADS(ref ULONG Flags, ushort Limit) {
                                                                                        >  1955          return Flags |= Limit << 16;
                                                                                        >  1956  }
                                                                                        >  1957  
                                                                                        >  1958  import win32.basetyps;
                                                                                        >  1959  /* also in win32.basetyps
                                                                                        >  1960  struct GUID {
                                                                                        >  1961          uint  Data1;
                                                                                        >  1962          ushort Data2;
                                                                                        >  1963          ushort Data3;
                                                                                        >  1964          ubyte  Data4[8];
                                                                                        >  1965  }
                                                                                        >  1966  alias GUID* REFGUID, LPGUID;
                                                                                        >  1967  */
                                                                                        >  1968  
                                                                                        >  1969  struct GENERIC_MAPPING {
                                                                                        >  1970          ACCESS_MASK GenericRead;
                                                                                        >  1971          ACCESS_MASK GenericWrite;
                                                                                        >  1972          ACCESS_MASK GenericExecute;
                                                                                        >  1973          ACCESS_MASK GenericAll;
                                                                                        >  1974  }
                                                                                        >  1975  alias GENERIC_MAPPING* PGENERIC_MAPPING;
                                                                                        >  1976  
 1820  struct _ACE_HEADER {                                                             |  1977  struct ACE_HEADER {
 1821    BYTE AceType;                                                                  |  1978          BYTE AceType;
 1822    BYTE AceFlags;                                                                 |  1979          BYTE AceFlags;
 1823    WORD AceSize;                                                                  |  1980          WORD AceSize;
 1824  }                                                                                |  1981  }
 1825  alias _ACE_HEADER ACE_HEADER;                                                    <
 1826                                                                                   <
 1827  alias ACE_HEADER* PACE_HEADER;                                                      1982  alias ACE_HEADER* PACE_HEADER;
 1828                                                                                      1983  
 1829  enum : uint { ACCESS_MIN_MS_ACE_TYPE = 0x0 }                                     <
 1830  enum : uint { ACCESS_ALLOWED_ACE_TYPE = 0x0 }                                    <
 1831  enum : uint { ACCESS_DENIED_ACE_TYPE = 0x1 }                                     <
 1832  enum : uint { SYSTEM_AUDIT_ACE_TYPE = 0x2 }                                      <
 1833  enum : uint { SYSTEM_ALARM_ACE_TYPE = 0x3 }                                      <
 1834  enum : uint { ACCESS_MAX_MS_V2_ACE_TYPE = 0x3 }                                  <
 1835                                                                                   <
 1836  enum : uint { ACCESS_ALLOWED_COMPOUND_ACE_TYPE = 0x4 }                           <
 1837  enum : uint { ACCESS_MAX_MS_V3_ACE_TYPE = 0x4 }                                  <
 1838                                                                                   <
 1839  enum : uint { ACCESS_MIN_MS_OBJECT_ACE_TYPE = 0x5 }                              <
 1840  enum : uint { ACCESS_ALLOWED_OBJECT_ACE_TYPE = 0x5 }                             <
 1841  enum : uint { ACCESS_DENIED_OBJECT_ACE_TYPE = 0x6 }                              <
 1842  enum : uint { SYSTEM_AUDIT_OBJECT_ACE_TYPE = 0x7 }                               <
 1843  enum : uint { SYSTEM_ALARM_OBJECT_ACE_TYPE = 0x8 }                               <
 1844  enum : uint { ACCESS_MAX_MS_OBJECT_ACE_TYPE = 0x8 }                              <
 1845                                                                                   <
 1846  enum : uint { ACCESS_MAX_MS_V4_ACE_TYPE = 0x8 }                                  <
 1847  enum : uint { ACCESS_MAX_MS_ACE_TYPE = 0x8 }                                     <
 1848                                                                                   <
 1849  enum : uint { ACCESS_ALLOWED_CALLBACK_ACE_TYPE = 0x9 }                           <
 1850  enum : uint { ACCESS_DENIED_CALLBACK_ACE_TYPE = 0xA }                            <
 1851  enum : uint { ACCESS_ALLOWED_CALLBACK_OBJECT_ACE_TYPE = 0xB }                    <
 1852  enum : uint { ACCESS_DENIED_CALLBACK_OBJECT_ACE_TYPE = 0xC }                     <
 1853  enum : uint { SYSTEM_AUDIT_CALLBACK_ACE_TYPE = 0xD }                             <
 1854  enum : uint { SYSTEM_ALARM_CALLBACK_ACE_TYPE = 0xE }                             <
 1855  enum : uint { SYSTEM_AUDIT_CALLBACK_OBJECT_ACE_TYPE = 0xF }                      <
 1856  enum : uint { SYSTEM_ALARM_CALLBACK_OBJECT_ACE_TYPE = 0x10 }                     <
 1857                                                                                   <
 1858  enum : uint { ACCESS_MAX_MS_V5_ACE_TYPE = 0x10 }                                 <
 1859                                                                                   <
 1860  enum : uint { OBJECT_INHERIT_ACE = 0x1 }                                         <
 1861  enum : uint { CONTAINER_INHERIT_ACE = 0x2 }                                      <
 1862  enum : uint { NO_PROPAGATE_INHERIT_ACE = 0x4 }                                   <
 1863  enum : uint { INHERIT_ONLY_ACE = 0x8 }                                           <
 1864  enum : uint { INHERITED_ACE = 0x10 }                                             <
 1865  enum : uint { VALID_INHERIT_FLAGS = 0x1F }                                       <
 1866                                                                                   <
 1867  enum : uint { SUCCESSFUL_ACCESS_ACE_FLAG = 0x40 }                                <
 1868  enum : uint { FAILED_ACCESS_ACE_FLAG = 0x80 }                                    <
 1869                                                                                   <
 1870  struct _ACCESS_ALLOWED_ACE {                                                     |  1984  struct ACCESS_ALLOWED_ACE {
 1871    ACE_HEADER Header;                                                             |  1985          ACE_HEADER  Header;
 1872    ACCESS_MASK Mask;                                                              |  1986          ACCESS_MASK Mask;
 1873    DWORD SidStart;                                                                |  1987          DWORD       SidStart;
 1874  }                                                                                   1988  }
 1875  alias _ACCESS_ALLOWED_ACE ACCESS_ALLOWED_ACE;                                    <
 1876                                                                                   <
 1877  alias ACCESS_ALLOWED_ACE* PACCESS_ALLOWED_ACE;                                      1989  alias ACCESS_ALLOWED_ACE* PACCESS_ALLOWED_ACE;
 1878                                                                                      1990  
 1879  struct _ACCESS_DENIED_ACE {                                                      |  1991  struct ACCESS_DENIED_ACE {
 1880    ACE_HEADER Header;                                                             |  1992          ACE_HEADER  Header;
 1881    ACCESS_MASK Mask;                                                              |  1993          ACCESS_MASK Mask;
 1882    DWORD SidStart;                                                                |  1994          DWORD       SidStart;
 1883  }                                                                                   1995  }
 1884  alias _ACCESS_DENIED_ACE ACCESS_DENIED_ACE;                                      <
 1885                                                                                   <
 1886  alias ACCESS_DENIED_ACE* PACCESS_DENIED_ACE;                                        1996  alias ACCESS_DENIED_ACE* PACCESS_DENIED_ACE;
 1887                                                                                      1997  
 1888  struct _SYSTEM_AUDIT_ACE {                                                       |  1998  struct SYSTEM_AUDIT_ACE {
 1889    ACE_HEADER Header;                                                             |  1999          ACE_HEADER  Header;
 1890    ACCESS_MASK Mask;                                                              |  2000          ACCESS_MASK Mask;
 1891    DWORD SidStart;                                                                |  2001          DWORD       SidStart;
 1892  }                                                                                   2002  }
 1893  alias _SYSTEM_AUDIT_ACE SYSTEM_AUDIT_ACE;                                        |  2003  alias SYSTEM_AUDIT_ACE *PSYSTEM_AUDIT_ACE;
 1894                                                                                      2004  
 1895  alias SYSTEM_AUDIT_ACE* PSYSTEM_AUDIT_ACE;                                       <
 1896                                                                                   <
 1897  struct _SYSTEM_ALARM_ACE {                                                       |  2005  struct SYSTEM_ALARM_ACE {
 1898    ACE_HEADER Header;                                                             |  2006          ACE_HEADER  Header;
 1899    ACCESS_MASK Mask;                                                              |  2007          ACCESS_MASK Mask;
 1900    DWORD SidStart;                                                                |  2008          DWORD       SidStart;
 1901  }                                                                                   2009  }
 1902  alias _SYSTEM_ALARM_ACE SYSTEM_ALARM_ACE;                                        <
 1903                                                                                   <
 1904  alias SYSTEM_ALARM_ACE* PSYSTEM_ALARM_ACE;                                          2010  alias SYSTEM_ALARM_ACE* PSYSTEM_ALARM_ACE;
 1905                                                                                      2011  
 1906  struct _ACCESS_ALLOWED_OBJECT_ACE {                                              |  2012  struct ACCESS_ALLOWED_OBJECT_ACE {
 1907    ACE_HEADER Header;                                                             |  2013          ACE_HEADER  Header;
 1908    ACCESS_MASK Mask;                                                              |  2014          ACCESS_MASK Mask;
 1909    DWORD Flags;                                                                   |  2015          DWORD       Flags;
 1910    GUID ObjectType;                                                               |  2016          GUID        ObjectType;
 1911    GUID InheritedObjectType;                                                      |  2017          GUID        InheritedObjectType;
 1912    DWORD SidStart;                                                                |  2018          DWORD       SidStart;
 1913  }                                                                                |  2019  }
 1914  alias _ACCESS_ALLOWED_OBJECT_ACE ACCESS_ALLOWED_OBJECT_ACE;                      <
 1915  alias _ACCESS_ALLOWED_OBJECT_ACE* PACCESS_ALLOWED_OBJECT_ACE;                    |  2020  alias ACCESS_ALLOWED_OBJECT_ACE* PACCESS_ALLOWED_OBJECT_ACE;
 1916                                                                                   |  2021  
 1917  struct _ACCESS_DENIED_OBJECT_ACE {                                               |  2022  struct ACCESS_DENIED_OBJECT_ACE {
 1918    ACE_HEADER Header;                                                             |  2023          ACE_HEADER  Header;
 1919    ACCESS_MASK Mask;                                                              |  2024          ACCESS_MASK Mask;
 1920    DWORD Flags;                                                                   |  2025          DWORD       Flags;
 1921    GUID ObjectType;                                                               |  2026          GUID        ObjectType;
 1922    GUID InheritedObjectType;                                                      |  2027          GUID        InheritedObjectType;
 1923    DWORD SidStart;                                                                |  2028          DWORD       SidStart;
 1924  }                                                                                |  2029  }
 1925  alias _ACCESS_DENIED_OBJECT_ACE ACCESS_DENIED_OBJECT_ACE;                        <
 1926  alias _ACCESS_DENIED_OBJECT_ACE* PACCESS_DENIED_OBJECT_ACE;                      |  2030  alias ACCESS_DENIED_OBJECT_ACE* PACCESS_DENIED_OBJECT_ACE;
 1927                                                                                   |  2031  
 1928  struct _SYSTEM_AUDIT_OBJECT_ACE {                                                |  2032  struct SYSTEM_AUDIT_OBJECT_ACE {
 1929    ACE_HEADER Header;                                                             |  2033          ACE_HEADER  Header;
 1930    ACCESS_MASK Mask;                                                              |  2034          ACCESS_MASK Mask;
 1931    DWORD Flags;                                                                   |  2035          DWORD       Flags;
 1932    GUID ObjectType;                                                               |  2036          GUID        ObjectType;
 1933    GUID InheritedObjectType;                                                      |  2037          GUID        InheritedObjectType;
 1934    DWORD SidStart;                                                                |  2038          DWORD       SidStart;
 1935  }                                                                                |  2039  }
 1936  alias _SYSTEM_AUDIT_OBJECT_ACE SYSTEM_AUDIT_OBJECT_ACE;                          <
 1937  alias _SYSTEM_AUDIT_OBJECT_ACE* PSYSTEM_AUDIT_OBJECT_ACE;                        |  2040  alias SYSTEM_AUDIT_OBJECT_ACE* PSYSTEM_AUDIT_OBJECT_ACE;
 1938                                                                                   |  2041  
 1939  struct _SYSTEM_ALARM_OBJECT_ACE {                                                |  2042  struct SYSTEM_ALARM_OBJECT_ACE {
 1940    ACE_HEADER Header;                                                             |  2043          ACE_HEADER  Header;
 1941    ACCESS_MASK Mask;                                                              |  2044          ACCESS_MASK Mask;
 1942    DWORD Flags;                                                                   |  2045          DWORD       Flags;
 1943    GUID ObjectType;                                                               |  2046          GUID        ObjectType;
 1944    GUID InheritedObjectType;                                                      |  2047          GUID        InheritedObjectType;
 1945    DWORD SidStart;                                                                |  2048          DWORD       SidStart;
 1946  }                                                                                |  2049  }
 1947  alias _SYSTEM_ALARM_OBJECT_ACE SYSTEM_ALARM_OBJECT_ACE;                          <
 1948  alias _SYSTEM_ALARM_OBJECT_ACE* PSYSTEM_ALARM_OBJECT_ACE;                        |  2050  alias SYSTEM_ALARM_OBJECT_ACE* PSYSTEM_ALARM_OBJECT_ACE;
 1949                                                                                   |  2051  
                                                                                        >  2052  struct ACL {
                                                                                        >  2053          BYTE AclRevision;
                                                                                        >  2054          BYTE Sbz1;
                                                                                        >  2055          WORD AclSize;
 1950  struct _ACCESS_ALLOWED_CALLBACK_ACE {                                            |  2056          WORD AceCount;
 1951    ACE_HEADER Header;                                                             <
 1952    ACCESS_MASK Mask;                                                              <
 1953    DWORD SidStart;                                                                |  2057          WORD Sbz2;
 1954  }                                                                                |  2058  }
 1955  alias _ACCESS_ALLOWED_CALLBACK_ACE ACCESS_ALLOWED_CALLBACK_ACE;                  <
 1956  alias _ACCESS_ALLOWED_CALLBACK_ACE* PACCESS_ALLOWED_CALLBACK_ACE;                <
                                                                                        >  2059  alias ACL* PACL;
 1957                                                                                   |  2060  
 1958  struct _ACCESS_DENIED_CALLBACK_ACE {                                             <
 1959    ACE_HEADER Header;                                                             <
 1960    ACCESS_MASK Mask;                                                              <
                                                                                        >  2061  struct ACL_REVISION_INFORMATION {
 1961    DWORD SidStart;                                                                |  2062          DWORD AclRevision;
 1962  }                                                                                |  2063  }
 1963  alias _ACCESS_DENIED_CALLBACK_ACE ACCESS_DENIED_CALLBACK_ACE;                    <
 1964  alias _ACCESS_DENIED_CALLBACK_ACE* PACCESS_DENIED_CALLBACK_ACE;                  <
 1965                                                                                   |  2064  
 1966  struct _SYSTEM_AUDIT_CALLBACK_ACE {                                              <
 1967    ACE_HEADER Header;                                                             <
 1968    ACCESS_MASK Mask;                                                              <
                                                                                        >  2065  struct ACL_SIZE_INFORMATION {
 1969    DWORD SidStart;                                                                |  2066          DWORD AceCount;
                                                                                        >  2067          DWORD AclBytesInUse;
                                                                                        >  2068          DWORD AclBytesFree;
 1970  }                                                                                |  2069  }
 1971  alias _SYSTEM_AUDIT_CALLBACK_ACE SYSTEM_AUDIT_CALLBACK_ACE;                      <
 1972  alias _SYSTEM_AUDIT_CALLBACK_ACE* PSYSTEM_AUDIT_CALLBACK_ACE;                    <
 1973                                                                                   |  2070  
                                                                                        >  2071  version (X86) {
                                                                                        >  2072          // ???
                                                                                        >  2073          const SIZE_OF_80387_REGISTERS     = 80;
                                                                                        >  2074          const CONTEXT_i386                = 0x010000;
                                                                                        >  2075          const CONTEXT_i486                = 0x010000;
                                                                                        >  2076          const CONTEXT_CONTROL             = CONTEXT_i386 | 0x01;
                                                                                        >  2077          const CONTEXT_INTEGER             = CONTEXT_i386 | 0x02;
                                                                                        >  2078          const CONTEXT_SEGMENTS            = CONTEXT_i386 | 0x04;
                                                                                        >  2079          const CONTEXT_FLOATING_POINT      = CONTEXT_i386 | 0x08;
 1974  struct _SYSTEM_ALARM_CALLBACK_ACE {                                              |  2080          const CONTEXT_DEBUG_REGISTERS     = CONTEXT_i386 | 0x10;
 1975    ACE_HEADER Header;                                                             |  2081          const CONTEXT_EXTENDED_REGISTERS  = CONTEXT_i386 | 0x20;
 1976    ACCESS_MASK Mask;                                                              |  2082          const CONTEXT_FULL                = CONTEXT_CONTROL | CONTEXT_INTEGER | 
 1977    DWORD SidStart;                                                                |  2083          const MAXIMUM_SUPPORTED_EXTENSION = 512;
 1978  }                                                                                |  2084  
 1979  alias _SYSTEM_ALARM_CALLBACK_ACE SYSTEM_ALARM_CALLBACK_ACE;                      |  2085          struct FLOATING_SAVE_AREA {
 1980  alias _SYSTEM_ALARM_CALLBACK_ACE* PSYSTEM_ALARM_CALLBACK_ACE;                    |  2086                  DWORD    ControlWord;
 1981                                                                                   <
                                                                                        >  2087                  DWORD    StatusWord;
 1982  struct _ACCESS_ALLOWED_CALLBACK_OBJECT_ACE {                                     |  2088                  DWORD    TagWord;
 1983    ACE_HEADER Header;                                                             |  2089                  DWORD    ErrorOffset;
 1984    ACCESS_MASK Mask;                                                              |  2090                  DWORD    ErrorSelector;
 1985    DWORD Flags;                                                                   |  2091                  DWORD    DataOffset;
 1986    GUID ObjectType;                                                               |  2092                  DWORD    DataSelector;
 1987    GUID InheritedObjectType;                                                      |  2093                  BYTE[80] RegisterArea;
 1988    DWORD SidStart;                                                                |  2094                  DWORD    Cr0NpxState;
 1989  }                                                                                |  2095          }
 1990  alias _ACCESS_ALLOWED_CALLBACK_OBJECT_ACE ACCESS_ALLOWED_CALLBACK_OBJECT_ACE;    <
 1991  alias _ACCESS_ALLOWED_CALLBACK_OBJECT_ACE* PACCESS_ALLOWED_CALLBACK_OBJECT_ACE;  <
 1992                                                                                   |  2096  
                                                                                        >  2097          struct CONTEXT {
                                                                                        >  2098                  DWORD ContextFlags;
 1993  struct _ACCESS_DENIED_CALLBACK_OBJECT_ACE {                                      |  2099                  DWORD Dr0;
 1994    ACE_HEADER Header;                                                             |  2100                  DWORD Dr1;
 1995    ACCESS_MASK Mask;                                                              |  2101                  DWORD Dr2;
 1996    DWORD Flags;                                                                   |  2102                  DWORD Dr3;
 1997    GUID ObjectType;                                                               |  2103                  DWORD Dr6;
 1998    GUID InheritedObjectType;                                                      |  2104                  DWORD Dr7;
                                                                                        >  2105                  FLOATING_SAVE_AREA FloatSave;
 1999    DWORD SidStart;                                                                |  2106                  DWORD SegGs;
 2000  }                                                                                <
 2001  alias _ACCESS_DENIED_CALLBACK_OBJECT_ACE ACCESS_DENIED_CALLBACK_OBJECT_ACE;      |  2107                  DWORD SegFs;
 2002  alias _ACCESS_DENIED_CALLBACK_OBJECT_ACE* PACCESS_DENIED_CALLBACK_OBJECT_ACE;    |  2108                  DWORD SegEs;
 2003                                                                                   <
                                                                                        >  2109                  DWORD SegDs;
 2004  struct _SYSTEM_AUDIT_CALLBACK_OBJECT_ACE {                                       |  2110                  DWORD Edi;
 2005    ACE_HEADER Header;                                                             |  2111                  DWORD Esi;
 2006    ACCESS_MASK Mask;                                                              |  2112                  DWORD Ebx;
 2007    DWORD Flags;                                                                   |  2113                  DWORD Edx;
 2008    GUID ObjectType;                                                               |  2114                  DWORD Ecx;
 2009    GUID InheritedObjectType;                                                      |  2115                  DWORD Eax;
                                                                                        >  2116                  DWORD Ebp;
                                                                                        >  2117                  DWORD Eip;
 2010    DWORD SidStart;                                                                |  2118                  DWORD SegCs;
                                                                                        >  2119                  DWORD EFlags;
                                                                                        >  2120                  DWORD Esp;
                                                                                        >  2121                  DWORD SegSs;
                                                                                        >  2122                  BYTE[MAXIMUM_SUPPORTED_EXTENSION] ExtendedRegisters;
 2011  }                                                                                |  2123          }
 2012  alias _SYSTEM_AUDIT_CALLBACK_OBJECT_ACE SYSTEM_AUDIT_CALLBACK_OBJECT_ACE;        <
 2013  alias _SYSTEM_AUDIT_CALLBACK_OBJECT_ACE* PSYSTEM_AUDIT_CALLBACK_OBJECT_ACE;      <
 2014                                                                                   |  2124  
 2015  struct _SYSTEM_ALARM_CALLBACK_OBJECT_ACE {                                       <
 2016    ACE_HEADER Header;                                                             <
 2017    ACCESS_MASK Mask;                                                              <
 2018    DWORD Flags;                                                                   <
 2019    GUID ObjectType;                                                               |  2125  } else {
 2020    GUID InheritedObjectType;                                                      |  2126          static assert(false, "Unsupported CPU");
 2021    DWORD SidStart;                                                                |  2127          // Versions for PowerPC, Alpha, SHX, and MIPS removed.
 2022  }                                                                                |  2128  }
 2023  alias _SYSTEM_ALARM_CALLBACK_OBJECT_ACE SYSTEM_ALARM_CALLBACK_OBJECT_ACE;        <
 2024  alias _SYSTEM_ALARM_CALLBACK_OBJECT_ACE* PSYSTEM_ALARM_CALLBACK_OBJECT_ACE;      <
 2025                                                                                   |  2129  
 2026  enum : uint { ACE_OBJECT_TYPE_PRESENT = 0x1 }                                    <
 2027  enum : uint { ACE_INHERITED_OBJECT_TYPE_PRESENT = 0x2 }                          <
                                                                                        >  2130  alias CONTEXT* PCONTEXT, LPCONTEXT;
 2028                                                                                   |  2131  
                                                                                        >  2132  struct EXCEPTION_RECORD {
                                                                                        >  2133          DWORD ExceptionCode;
                                                                                        >  2134          DWORD ExceptionFlags;
 2029  alias int _ACL_INFORMATION_CLASS;                                                |  2135          EXCEPTION_RECORD* ExceptionRecord;
 2030  enum {                                                                           |  2136          PVOID ExceptionAddress;
 2031    AclRevisionInformation = 1,                                                    |  2137          DWORD NumberParameters;
 2032    AclSizeInformation,                                                            |  2138          DWORD[EXCEPTION_MAXIMUM_PARAMETERS] ExceptionInformation;
 2033  }                                                                                |  2139  }
 2034  alias _ACL_INFORMATION_CLASS ACL_INFORMATION_CLASS;                              |  2140  alias EXCEPTION_RECORD* PEXCEPTION_RECORD, LPEXCEPTION_RECORD;
 2035                                                                                   |  2141  
 2036  struct _ACL_REVISION_INFORMATION {                                               |  2142  struct EXCEPTION_POINTERS {
 2037    DWORD AclRevision;                                                             |  2143          PEXCEPTION_RECORD ExceptionRecord;
                                                                                        >  2144          PCONTEXT          ContextRecord;
 2038  }                                                                                |  2145  }
 2039  alias _ACL_REVISION_INFORMATION ACL_REVISION_INFORMATION;                        <
                                                                                        >  2146  alias EXCEPTION_POINTERS* PEXCEPTION_POINTERS, LPEXCEPTION_POINTERS;
 2040                                                                                   |  2147  
 2041  alias ACL_REVISION_INFORMATION* PACL_REVISION_INFORMATION;                       <
 2042                                                                                   <
                                                                                        >  2148  union LARGE_INTEGER {
 2043  struct _ACL_SIZE_INFORMATION {                                                   |  2149          struct {
 2044    DWORD AceCount;                                                                |  2150                  uint LowPart;
 2045    DWORD AclBytesInUse;                                                           |  2151                  int  HighPart;
 2046    DWORD AclBytesFree;                                                            <
 2047  }                                                                                |  2152          }
 2048  alias _ACL_SIZE_INFORMATION ACL_SIZE_INFORMATION;                                <
                                                                                        >  2153          long QuadPart;
 2049                                                                                   |  2154  }
 2050  alias ACL_SIZE_INFORMATION* PACL_SIZE_INFORMATION;                               <
                                                                                        >  2155  alias LARGE_INTEGER* PLARGE_INTEGER;
 2051                                                                                   |  2156  
                                                                                        >  2157  union ULARGE_INTEGER {
 2052  enum : uint { SECURITY_DESCRIPTOR_REVISION = 1 }                                 |  2158          struct {
 2053  enum : uint { SECURITY_DESCRIPTOR_REVISION1 = 1 }                                |  2159                  uint LowPart;
                                                                                        >  2160                  uint HighPart;
 2054                                                                                   |  2161          }
 2055  const uint SECURITY_DESCRIPTOR_MIN_LENGTH = SECURITY_DESCRIPTOR.sizeof;          <
                                                                                        >  2162          ulong QuadPart;
 2056                                                                                   |  2163  }
 2057  alias WORD SECURITY_DESCRIPTOR_CONTROL;                                          <
 2058  alias WORD* PSECURITY_DESCRIPTOR_CONTROL;                                        |  2164  alias ULARGE_INTEGER* PULARGE_INTEGER;
 2059                                                                                   |  2165  
 2060  enum : uint { SE_OWNER_DEFAULTED = 0x0001 }                                      |  2166  alias LARGE_INTEGER LUID;
 2061  enum : uint { SE_GROUP_DEFAULTED = 0x0002 }                                      |  2167  alias LUID* PLUID;
 2062  enum : uint { SE_DACL_PRESENT = 0x0004 }                                         <
                                                                                        >  2168  
 2063  enum : uint { SE_DACL_DEFAULTED = 0x0008 }                                       |  2169  const LUID SYSTEM_LUID = { QuadPart:999 };
 2064  enum : uint { SE_SACL_PRESENT = 0x0010 }                                         <
 2065  enum : uint { SE_SACL_DEFAULTED = 0x0020 }                                       <
 2066  enum : uint { SE_DACL_AUTO_INHERIT_REQ = 0x0100 }                                <
 2067  enum : uint { SE_SACL_AUTO_INHERIT_REQ = 0x0200 }                                <
 2068  enum : uint { SE_DACL_AUTO_INHERITED = 0x0400 }                                  <
 2069  enum : uint { SE_SACL_AUTO_INHERITED = 0x0800 }                                  <
 2070  enum : uint { SE_DACL_PROTECTED = 0x1000 }                                       <
 2071  enum : uint { SE_SACL_PROTECTED = 0x2000 }                                       <
 2072  enum : uint { SE_RM_CONTROL_VALID = 0x4000 }                                     <
 2073  enum : uint { SE_SELF_RELATIVE = 0x8000 }                                        <
 2074                                                                                   |  2170  
 2075  struct _SECURITY_DESCRIPTOR_RELATIVE {                                           <
 2076    BYTE Revision;                                                                 <
 2077    BYTE Sbz1;                                                                     <
 2078    SECURITY_DESCRIPTOR_CONTROL Control;                                           <
                                                                                        >  2171  align(4) struct LUID_AND_ATTRIBUTES {
                                                                                        >  2172          LUID  Luid;
 2079    DWORD Owner;                                                                   |  2173          DWORD Attributes;
                                                                                        >  2174  }
                                                                                        >  2175  alias LUID_AND_ATTRIBUTES* PLUID_AND_ATTRIBUTES;
                                                                                        >  2176  
                                                                                        >  2177  struct PRIVILEGE_SET {
 2080    DWORD Group;                                                                   |  2178          DWORD PrivilegeCount;
 2081    DWORD Sacl;                                                                    |  2179          DWORD Control;
                                                                                        >  2180          LUID_AND_ATTRIBUTES _Privilege;
                                                                                        >  2181  
                                                                                        >  2182          LUID_AND_ATTRIBUTES* Privilege() { return &_Privilege; }
                                                                                        >  2183  }
                                                                                        >  2184  alias PRIVILEGE_SET* PPRIVILEGE_SET;
                                                                                        >  2185  
                                                                                        >  2186  struct SECURITY_ATTRIBUTES {
 2082    DWORD Dacl;                                                                    |  2187          DWORD  nLength;
                                                                                        >  2188          LPVOID lpSecurityDescriptor;
                                                                                        >  2189          BOOL   bInheritHandle;
 2083  }                                                                                |  2190  }
 2084  alias _SECURITY_DESCRIPTOR_RELATIVE SECURITY_DESCRIPTOR_RELATIVE;                <
 2085  alias _SECURITY_DESCRIPTOR_RELATIVE* PISECURITY_DESCRIPTOR_RELATIVE;             |  2191  alias SECURITY_ATTRIBUTES* PSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES;
 2086                                                                                   |  2192  
 2087  struct _SECURITY_DESCRIPTOR {                                                    |  2193  struct SECURITY_QUALITY_OF_SERVICE {
 2088    BYTE Revision;                                                                 |  2194          DWORD   Length;
 2089    BYTE Sbz1;                                                                     |  2195          SECURITY_IMPERSONATION_LEVEL   ImpersonationLevel;
 2090    SECURITY_DESCRIPTOR_CONTROL Control;                                           |  2196          SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode;
 2091    PSID Owner;                                                                    |  2197          BOOLEAN EffectiveOnly;
 2092    PSID Group;                                                                    <
                                                                                        >  2198  }
 2093    PACL Sacl;                                                                     |  2199  alias SECURITY_QUALITY_OF_SERVICE* PSECURITY_QUALITY_OF_SERVICE;
 2094    PACL Dacl;                                                                     <
 2095  }                                                                                |  2200  
 2096  alias _SECURITY_DESCRIPTOR SECURITY_DESCRIPTOR;                                  <
 2097  alias _SECURITY_DESCRIPTOR* PISECURITY_DESCRIPTOR;                               <
                                                                                        >  2201  alias PVOID PACCESS_TOKEN;
 2098                                                                                   |  2202  
                                                                                        >  2203  struct SE_IMPERSONATION_STATE {
                                                                                        >  2204          PACCESS_TOKEN Token;
 2099  struct _OBJECT_TYPE_LIST {                                                       |  2205          BOOLEAN       CopyOnOpen;
 2100    WORD Level;                                                                    |  2206          BOOLEAN       EffectiveOnly;
 2101    WORD Sbz;                                                                      |  2207          SECURITY_IMPERSONATION_LEVEL Level;
 2102    GUID *ObjectType;                                                              <
 2103  }                                                                                |  2208  }
 2104  alias _OBJECT_TYPE_LIST OBJECT_TYPE_LIST;                                        <
                                                                                        >  2209  alias SE_IMPERSONATION_STATE* PSE_IMPERSONATION_STATE;
                                                                                        >  2210  
 2105  alias _OBJECT_TYPE_LIST* POBJECT_TYPE_LIST;                                      |  2211  struct SID_IDENTIFIER_AUTHORITY {
                                                                                        >  2212          BYTE[6] Value;
 2106                                                                                   |  2213  }
 2107  enum : uint { ACCESS_OBJECT_GUID = 0 }                                           <
 2108  enum : uint { ACCESS_PROPERTY_SET_GUID = 1 }                                     |  2214  alias SID_IDENTIFIER_AUTHORITY* PSID_IDENTIFIER_AUTHORITY, LPSID_IDENTIFIER_AUTH
 2109  enum : uint { ACCESS_PROPERTY_GUID = 2 }                                         <
 2110                                                                                   |  2215  
 2111  enum : uint { ACCESS_MAX_LEVEL = 4 }                                             <
                                                                                        >  2216  alias PVOID PSID;
 2112                                                                                   |  2217  
                                                                                        >  2218  struct SID {
 2113  alias int _AUDIT_EVENT_TYPE;                                                     |  2219          BYTE  Revision;
 2114  enum {                                                                           |  2220          BYTE  SubAuthorityCount;
 2115    AuditEventObjectAccess,                                                        |  2221          SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
 2116    AuditEventDirectoryServiceAccess,                                              |  2222          DWORD _SubAuthority;
 2117  }                                                                                |  2223  
 2118  alias _AUDIT_EVENT_TYPE AUDIT_EVENT_TYPE;                                        |  2224          DWORD* SubAuthority() { return &_SubAuthority; }
 2119  alias _AUDIT_EVENT_TYPE* PAUDIT_EVENT_TYPE;                                      <
 2120                                                                                   |  2225  }
 2121  enum : uint { AUDIT_ALLOW_NO_PRIVILEGE = 0x1 }                                   <
                                                                                        >  2226  alias SID* PISID;
 2122                                                                                   |  2227  
                                                                                        >  2228  struct SID_AND_ATTRIBUTES {
 2123  const char[] ACCESS_DS_SOURCE_A = "DS";                                          |  2229          PSID  Sid;
 2124  const wchar[] ACCESS_DS_SOURCE_W = "DS";                                         |  2230          DWORD Attributes;
 2125  const char[] ACCESS_DS_OBJECT_TYPE_NAME_A = "Directory Service Object";          <
                                                                                        >  2231  }
 2126  const wchar[] ACCESS_DS_OBJECT_TYPE_NAME_W = "Directory Service Object";         |  2232  alias SID_AND_ATTRIBUTES* PSID_AND_ATTRIBUTES;
 2127                                                                                   |  2233  
 2128  enum : uint { SE_PRIVILEGE_ENABLED_BY_DEFAULT = 0x00000001 }                     |  2234  struct TOKEN_SOURCE {
 2129  enum : uint { SE_PRIVILEGE_ENABLED = 0x00000002 }                                |  2235          CHAR[TOKEN_SOURCE_LENGTH] SourceName;
 2130  enum : uint { SE_PRIVILEGE_USED_FOR_ACCESS = 0x80000000 }                        |  2236          LUID SourceIdentifier;
 2131                                                                                   |  2237  }
 2132  enum : uint { PRIVILEGE_SET_ALL_NECESSARY = 1 }                                  |  2238  alias TOKEN_SOURCE* PTOKEN_SOURCE;
 2133                                                                                   |  2239  
 2134  struct _PRIVILEGE_SET {                                                          |  2240  struct TOKEN_CONTROL {
 2135    DWORD PrivilegeCount;                                                          |  2241          LUID         TokenId;
 2136    DWORD Control;                                                                 |  2242          LUID         AuthenticationId;
 2137    LUID_AND_ATTRIBUTES Privilege[ANYSIZE_ARRAY];                                  |  2243          LUID         ModifiedId;
                                                                                        >  2244          TOKEN_SOURCE TokenSource;
 2138  }                                                                                |  2245  }
 2139  alias _PRIVILEGE_SET PRIVILEGE_SET;                                              <
 2140  alias _PRIVILEGE_SET* PPRIVILEGE_SET;                                            |  2246  alias TOKEN_CONTROL* PTOKEN_CONTROL;
 2141                                                                                   |  2247  
 2142  const TCHAR[] SE_CREATE_TOKEN_NAME = "SeCreateTokenPrivilege";                   |  2248  struct TOKEN_DEFAULT_DACL {
 2143  const TCHAR[] SE_ASSIGNPRIMARYTOKEN_NAME = "SeAssignPrimaryTokenPrivilege";      |  2249          PACL DefaultDacl;
 2144  const TCHAR[] SE_LOCK_MEMORY_NAME = "SeLockMemoryPrivilege";                     <
                                                                                        >  2250  }
 2145  const TCHAR[] SE_INCREASE_QUOTA_NAME = "SeIncreaseQuotaPrivilege";               |  2251  alias TOKEN_DEFAULT_DACL* PTOKEN_DEFAULT_DACL;
 2146  const TCHAR[] SE_UNSOLICITED_INPUT_NAME = "SeUnsolicitedInputPrivilege";         <
                                                                                        >  2252  
 2147  const TCHAR[] SE_MACHINE_ACCOUNT_NAME = "SeMachineAccountPrivilege";             |  2253  struct TOKEN_GROUPS {
 2148  const TCHAR[] SE_TCB_NAME = "SeTcbPrivilege";                                    |  2254          DWORD GroupCount;
 2149  const TCHAR[] SE_SECURITY_NAME = "SeSecurityPrivilege";                          |  2255          SID_AND_ATTRIBUTES _Groups;
 2150  const TCHAR[] SE_TAKE_OWNERSHIP_NAME = "SeTakeOwnershipPrivilege";               <
 2151  const TCHAR[] SE_LOAD_DRIVER_NAME = "SeLoadDriverPrivilege";                     <
 2152  const TCHAR[] SE_SYSTEM_PROFILE_NAME = "SeSystemProfilePrivilege";               <
 2153  const TCHAR[] SE_SYSTEMTIME_NAME = "SeSystemtimePrivilege";                      <
 2154  const TCHAR[] SE_PROF_SINGLE_PROCESS_NAME = "SeProfileSingleProcessPrivilege";   <
 2155  const TCHAR[] SE_INC_BASE_PRIORITY_NAME = "SeIncreaseBasePriorityPrivilege";     <
 2156  const TCHAR[] SE_CREATE_PAGEFILE_NAME = "SeCreatePagefilePrivilege";             <
 2157  const TCHAR[] SE_CREATE_PERMANENT_NAME = "SeCreatePermanentPrivilege";           <
 2158  const TCHAR[] SE_BACKUP_NAME = "SeBackupPrivilege";                              <
 2159  const TCHAR[] SE_RESTORE_NAME = "SeRestorePrivilege";                            <
 2160  const TCHAR[] SE_SHUTDOWN_NAME = "SeShutdownPrivilege";                          <
 2161  const TCHAR[] SE_DEBUG_NAME = "SeDebugPrivilege";                                <
 2162  const TCHAR[] SE_AUDIT_NAME = "SeAuditPrivilege";                                <
 2163  const TCHAR[] SE_SYSTEM_ENVIRONMENT_NAME = "SeSystemEnvironmentPrivilege";       <
 2164  const TCHAR[] SE_CHANGE_NOTIFY_NAME = "SeChangeNotifyPrivilege";                 <
 2165  const TCHAR[] SE_REMOTE_SHUTDOWN_NAME = "SeRemoteShutdownPrivilege";             <
 2166  const TCHAR[] SE_UNDOCK_NAME = "SeUndockPrivilege";                              <
 2167  const TCHAR[] SE_SYNC_AGENT_NAME = "SeSyncAgentPrivilege";                       <
 2168  const TCHAR[] SE_ENABLE_DELEGATION_NAME = "SeEnableDelegationPrivilege";         <
 2169  const TCHAR[] SE_MANAGE_VOLUME_NAME = "SeManageVolumePrivilege";                 <
 2170                                                                                   |  2256  
 2171  alias int _SECURITY_IMPERSONATION_LEVEL;                                         <
 2172  enum {                                                                           <
 2173    SecurityAnonymous,                                                             <
 2174    SecurityIdentification,                                                        <
 2175    SecurityImpersonation,                                                         <
 2176    SecurityDelegation,                                                            <
                                                                                        >  2257          SID_AND_ATTRIBUTES* Groups() { return &_Groups; }
 2177  }                                                                                |  2258  }
 2178  alias _SECURITY_IMPERSONATION_LEVEL SECURITY_IMPERSONATION_LEVEL;                <
 2179  alias _SECURITY_IMPERSONATION_LEVEL* PSECURITY_IMPERSONATION_LEVEL;              <
                                                                                        >  2259  alias TOKEN_GROUPS* PTOKEN_GROUPS, LPTOKEN_GROUPS;
 2180                                                                                   |  2260  
 2181  alias SecurityDelegation SECURITY_MAX_IMPERSONATION_LEVEL;                       <
 2182  alias SecurityAnonymous SECURITY_MIN_IMPERSONATION_LEVEL;                        <
 2183  alias SecurityImpersonation DEFAULT_IMPERSONATION_LEVEL;                         <
 2184  bit VALID_IMPERSONATION_LEVEL(SECURITY_IMPERSONATION_LEVEL L){ return (L >= SECU <
                                                                                        >  2261  struct TOKEN_OWNER {
                                                                                        >  2262          PSID Owner;
 2185                                                                                   |  2263  }
 2186  enum : uint { TOKEN_ASSIGN_PRIMARY = 0x0001 }                                    <
 2187  enum : uint { TOKEN_DUPLICATE = 0x0002 }                                         <
 2188  enum : uint { TOKEN_IMPERSONATE = 0x0004 }                                       <
 2189  enum : uint { TOKEN_QUERY = 0x0008 }                                             <
 2190  enum : uint { TOKEN_QUERY_SOURCE = 0x0010 }                                      <
 2191  enum : uint { TOKEN_ADJUST_PRIVILEGES = 0x0020 }                                 <
 2192  enum : uint { TOKEN_ADJUST_GROUPS = 0x0040 }                                     <
 2193  enum : uint { TOKEN_ADJUST_DEFAULT = 0x0080 }                                    <
 2194  enum : uint { TOKEN_ADJUST_SESSIONID = 0x0100 }                                  <
                                                                                        >  2264  alias TOKEN_OWNER* PTOKEN_OWNER;
 2195                                                                                   |  2265  
 2196  enum : uint { TOKEN_ALL_ACCESS_P = STANDARD_RIGHTS_REQUIRED | TOKEN_ASSIGN_PRIMA <
                                                                                        >  2266  struct TOKEN_PRIMARY_GROUP {
                                                                                        >  2267          PSID PrimaryGroup;
 2197                                                                                   |  2268  }
 2198  // #if ((defined(_WIN32_WINNT) && (_WIN32_WINNT > 0x0400)) || (!defined(_WIN32_W <
 2199  enum : uint { TOKEN_ALL_ACCESS = TOKEN_ALL_ACCESS_P | TOKEN_ADJUST_SESSIONID  }  <
 2200  // #else                                                                         <
 2201  // #...                                                                          <
 2202  // #endif                                                                        <
                                                                                        >  2269  alias TOKEN_PRIMARY_GROUP* PTOKEN_PRIMARY_GROUP;
 2203                                                                                   |  2270  
 2204  enum : uint { TOKEN_READ = STANDARD_RIGHTS_READ | TOKEN_QUERY }                  <
                                                                                        >  2271  struct TOKEN_PRIVILEGES {
                                                                                        >  2272          DWORD PrivilegeCount;
                                                                                        >  2273          LUID_AND_ATTRIBUTES _Privileges;
 2205                                                                                   |  2274  
 2206  enum : uint { TOKEN_WRITE = STANDARD_RIGHTS_WRITE | TOKEN_ADJUST_PRIVILEGES | TO <
                                                                                        >  2275          LUID_AND_ATTRIBUTES* Privileges() { return &_Privileges; }
 2207                                                                                   |  2276  }
 2208  enum : uint { TOKEN_EXECUTE = STANDARD_RIGHTS_EXECUTE }                          <
                                                                                        >  2277  alias TOKEN_PRIVILEGES* PTOKEN_PRIVILEGES, LPTOKEN_PRIVILEGES;
 2209                                                                                   |  2278  
 2210  alias int _TOKEN_TYPE;                                                           |  2279  enum TOKEN_TYPE {
 2211  enum {                                                                           <
 2212    TokenPrimary = 1,                                                              |  2280          TokenPrimary = 1,
 2213    TokenImpersonation,                                                            |  2281          TokenImpersonation
 2214  }                                                                                |  2282  }
 2215  alias _TOKEN_TYPE TOKEN_TYPE;                                                    <
 2216                                                                                   <
 2217  alias TOKEN_TYPE* PTOKEN_TYPE;                                                      2283  alias TOKEN_TYPE* PTOKEN_TYPE;
 2218                                                                                      2284  
 2219  alias int _TOKEN_INFORMATION_CLASS;                                              <
 2220  enum {                                                                           <
 2221    TokenUser = 1,                                                                 <
 2222    TokenGroups,                                                                   <
 2223    TokenPrivileges,                                                               <
 2224    TokenOwner,                                                                    <
 2225    TokenPrimaryGroup,                                                             <
 2226    TokenDefaultDacl,                                                              <
 2227    TokenSource,                                                                   <
 2228    TokenType,                                                                     <
 2229    TokenImpersonationLevel,                                                       <
 2230    TokenStatistics,                                                               <
 2231    TokenRestrictedSids,                                                           <
 2232    TokenSessionId,                                                                <
 2233    TokenGroupsAndPrivileges,                                                      <
 2234    TokenSessionReference,                                                         <
 2235    TokenSandBoxInert,                                                             <
 2236  }                                                                                <
 2237  alias _TOKEN_INFORMATION_CLASS TOKEN_INFORMATION_CLASS;                          <
 2238  alias _TOKEN_INFORMATION_CLASS* PTOKEN_INFORMATION_CLASS;                        <
 2239                                                                                   <
 2240  struct _TOKEN_USER {                                                             <
 2241    SID_AND_ATTRIBUTES User;                                                       <
 2242  }                                                                                <
 2243  alias _TOKEN_USER TOKEN_USER;                                                    <
 2244  alias _TOKEN_USER* PTOKEN_USER;                                                  <
 2245                                                                                   <
 2246  struct _TOKEN_GROUPS {                                                           <
 2247    DWORD GroupCount;                                                              <
 2248    SID_AND_ATTRIBUTES Groups[ANYSIZE_ARRAY];                                      <
 2249  }                                                                                <
 2250  alias _TOKEN_GROUPS TOKEN_GROUPS;                                                <
 2251  alias _TOKEN_GROUPS* PTOKEN_GROUPS;                                              <
 2252                                                                                   <
 2253  struct _TOKEN_PRIVILEGES {                                                       <
 2254    DWORD PrivilegeCount;                                                          <
 2255    LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY];                                 <
 2256  }                                                                                <
 2257  alias _TOKEN_PRIVILEGES TOKEN_PRIVILEGES;                                        <
 2258  alias _TOKEN_PRIVILEGES* PTOKEN_PRIVILEGES;                                      <
 2259                                                                                   <
 2260  struct _TOKEN_OWNER {                                                            <
 2261    PSID Owner;                                                                    <
 2262  }                                                                                <
 2263  alias _TOKEN_OWNER TOKEN_OWNER;                                                  <
 2264  alias _TOKEN_OWNER* PTOKEN_OWNER;                                                <
 2265                                                                                   <
 2266  struct _TOKEN_PRIMARY_GROUP {                                                    <
 2267    PSID PrimaryGroup;                                                             <
 2268  }                                                                                <
 2269  alias _TOKEN_PRIMARY_GROUP TOKEN_PRIMARY_GROUP;                                  <
 2270  alias _TOKEN_PRIMARY_GROUP* PTOKEN_PRIMARY_GROUP;                                <
 2271                                                                                   <
 2272  struct _TOKEN_DEFAULT_DACL {                                                     <
 2273    PACL DefaultDacl;                                                              <
 2274  }                                                                                <
 2275  alias _TOKEN_DEFAULT_DACL TOKEN_DEFAULT_DACL;                                    <
 2276  alias _TOKEN_DEFAULT_DACL* PTOKEN_DEFAULT_DACL;                                  <
 2277                                                                                   <
 2278  struct _TOKEN_GROUPS_AND_PRIVILEGES {                                            <
 2279    DWORD SidCount;                                                                <
 2280    DWORD SidLength;                                                               <
 2281    PSID_AND_ATTRIBUTES Sids;                                                      <
 2282    DWORD RestrictedSidCount;                                                      <
 2283    DWORD RestrictedSidLength;                                                     <
 2284    PSID_AND_ATTRIBUTES RestrictedSids;                                            <
 2285    DWORD PrivilegeCount;                                                          <
 2286    DWORD PrivilegeLength;                                                         <
 2287    PLUID_AND_ATTRIBUTES Privileges;                                               <
 2288    LUID AuthenticationId;                                                         <
 2289  }                                                                                <
 2290  alias _TOKEN_GROUPS_AND_PRIVILEGES TOKEN_GROUPS_AND_PRIVILEGES;                  <
 2291  alias _TOKEN_GROUPS_AND_PRIVILEGES* PTOKEN_GROUPS_AND_PRIVILEGES;                <
 2292                                                                                   <
 2293  enum : uint { TOKEN_SOURCE_LENGTH = 8 }                                          <
 2294                                                                                   <
 2295  struct _TOKEN_SOURCE {                                                           <
 2296    CHAR SourceName[TOKEN_SOURCE_LENGTH];                                          <
 2297    LUID SourceIdentifier;                                                         <
 2298  }                                                                                <
 2299  alias _TOKEN_SOURCE TOKEN_SOURCE;                                                <
 2300  alias _TOKEN_SOURCE* PTOKEN_SOURCE;                                              <
 2301                                                                                   <
 2302  struct _TOKEN_STATISTICS {                                                       |  2285  struct TOKEN_STATISTICS {
 2303    LUID TokenId;                                                                  |  2286          LUID          TokenId;
 2304    LUID AuthenticationId;                                                         |  2287          LUID          AuthenticationId;
 2305    LARGE_INTEGER ExpirationTime;                                                  |  2288          LARGE_INTEGER ExpirationTime;
 2306    TOKEN_TYPE TokenType;                                                          |  2289          TOKEN_TYPE    TokenType;
 2307    SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;                               |  2290          SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
 2308    DWORD DynamicCharged;                                                          |  2291          DWORD         DynamicCharged;
 2309    DWORD DynamicAvailable;                                                        |  2292          DWORD         DynamicAvailable;
 2310    DWORD GroupCount;                                                              |  2293          DWORD         GroupCount;
 2311    DWORD PrivilegeCount;                                                          |  2294          DWORD         PrivilegeCount;
 2312    LUID ModifiedId;                                                               |  2295          LUID          ModifiedId;
 2313  }                                                                                |  2296  }
 2314  alias _TOKEN_STATISTICS TOKEN_STATISTICS;                                        <
 2315  alias _TOKEN_STATISTICS* PTOKEN_STATISTICS;                                      |  2297  alias TOKEN_STATISTICS* PTOKEN_STATISTICS;
 2316                                                                                   |  2298  
 2317  struct _TOKEN_CONTROL {                                                          <
 2318    LUID TokenId;                                                                  <
 2319    LUID AuthenticationId;                                                         <
 2320    LUID ModifiedId;                                                               <
 2321    TOKEN_SOURCE TokenSource;                                                      <
                                                                                        >  2299  struct TOKEN_USER {
                                                                                        >  2300          SID_AND_ATTRIBUTES User;
 2322  }                                                                                |  2301  }
 2323  alias _TOKEN_CONTROL TOKEN_CONTROL;                                              <
 2324  alias _TOKEN_CONTROL* PTOKEN_CONTROL;                                            <
 2325                                                                                   <
 2326  enum : uint { SECURITY_DYNAMIC_TRACKING = TRUE }                                 <
 2327  enum : uint { SECURITY_STATIC_TRACKING = FALSE }                                 <
 2328                                                                                   <
 2329  alias BOOLEAN SECURITY_CONTEXT_TRACKING_MODE;                                    <
 2330  alias BOOLEAN* PSECURITY_CONTEXT_TRACKING_MODE;                                  <
 2331                                                                                   <
 2332  struct _SECURITY_QUALITY_OF_SERVICE {                                            <
 2333    DWORD Length;                                                                  <
 2334    SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;                               <
 2335    SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode;                            <
 2336    BOOLEAN EffectiveOnly;                                                         <
 2337  }                                                                                <
 2338  alias _SECURITY_QUALITY_OF_SERVICE SECURITY_QUALITY_OF_SERVICE;                  <
 2339  alias _SECURITY_QUALITY_OF_SERVICE* PSECURITY_QUALITY_OF_SERVICE;                <
 2340                                                                                   <
 2341  struct _SE_IMPERSONATION_STATE {                                                 <
 2342    PACCESS_TOKEN Token;                                                           <
 2343    BOOLEAN CopyOnOpen;                                                            <
 2344    BOOLEAN EffectiveOnly;                                                         <
 2345    SECURITY_IMPERSONATION_LEVEL Level;                                            <
 2346  }                                                                                <
 2347  alias _SE_IMPERSONATION_STATE SE_IMPERSONATION_STATE;                            <
 2348  alias _SE_IMPERSONATION_STATE* PSE_IMPERSONATION_STATE;                          <
 2349                                                                                   <
 2350  enum : uint { DISABLE_MAX_PRIVILEGE = 0x1 }                                      <
 2351  enum : uint { SANDBOX_INERT = 0x2 }                                              <
                                                                                        >  2302  alias TOKEN_USER* PTOKEN_USER;
 2352                                                                                      2303  
 2353  alias DWORD SECURITY_INFORMATION;                                                   2304  alias DWORD SECURITY_INFORMATION;
 2354  alias DWORD* PSECURITY_INFORMATION;                                              |  2305  alias SECURITY_INFORMATION* PSECURITY_INFORMATION;
                                                                                        >  2306  alias WORD SECURITY_DESCRIPTOR_CONTROL;
                                                                                        >  2307  alias SECURITY_DESCRIPTOR_CONTROL* PSECURITY_DESCRIPTOR_CONTROL;
 2355                                                                                   |  2308  
 2356  enum : uint { OWNER_SECURITY_INFORMATION = 0x00000001 }                          <
 2357  enum : uint { GROUP_SECURITY_INFORMATION = 0x00000002 }                          <
 2358  enum : uint { DACL_SECURITY_INFORMATION = 0x00000004 }                           |  2309  struct SECURITY_DESCRIPTOR {
 2359  enum : uint { SACL_SECURITY_INFORMATION = 0x00000008 }                           |  2310          BYTE Revision;
                                                                                        >  2311          BYTE Sbz1;
                                                                                        >  2312          SECURITY_DESCRIPTOR_CONTROL Control;
                                                                                        >  2313          PSID Owner;
                                                                                        >  2314          PSID Group;
                                                                                        >  2315          PACL Sacl;
                                                                                        >  2316          PACL Dacl;
 2360                                                                                   |  2317  }
 2361  enum : uint { PROTECTED_DACL_SECURITY_INFORMATION = 0x80000000 }                 <
 2362  enum : uint { PROTECTED_SACL_SECURITY_INFORMATION = 0x40000000 }                 <
 2363  enum : uint { UNPROTECTED_DACL_SECURITY_INFORMATION = 0x20000000 }               <
 2364  enum : uint { UNPROTECTED_SACL_SECURITY_INFORMATION = 0x10000000 }               <
                                                                                        >  2318  alias SECURITY_DESCRIPTOR* PSECURITY_DESCRIPTOR, PISECURITY_DESCRIPTOR;
 2365                                                                                   |  2319  
 2366  enum : uint { PROCESS_TERMINATE = 0x0001 }                                       <
 2367  enum : uint { PROCESS_CREATE_THREAD = 0x0002 }                                   <
 2368  enum : uint { PROCESS_SET_SESSIONID = 0x0004 }                                   <
 2369  enum : uint { PROCESS_VM_OPERATION = 0x0008 }                                    |  2320  enum TOKEN_INFORMATION_CLASS {
 2370  enum : uint { PROCESS_VM_READ = 0x0010 }                                         |  2321          TokenUser = 1,
 2371  enum : uint { PROCESS_VM_WRITE = 0x0020 }                                        |  2322          TokenGroups,
 2372  enum : uint { PROCESS_DUP_HANDLE = 0x0040 }                                      |  2323          TokenPrivileges,
 2373  enum : uint { PROCESS_CREATE_PROCESS = 0x0080 }                                  |  2324          TokenOwner,
 2374  enum : uint { PROCESS_SET_QUOTA = 0x0100 }                                       |  2325          TokenPrimaryGroup,
 2375  enum : uint { PROCESS_SET_INFORMATION = 0x0200 }                                 |  2326          TokenDefaultDacl,
 2376  enum : uint { PROCESS_QUERY_INFORMATION = 0x0400 }                               |  2327          TokenSource,
 2377  enum : uint { PROCESS_SUSPEND_RESUME = 0x0800 }                                  |  2328          TokenType,
 2378  enum : uint { PROCESS_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0xFF |  2329          TokenImpersonationLevel,
 2379                                                                                   <
                                                                                        >  2330          TokenStatistics,
 2380  // #if defined(_WIN64)                                                           |  2331          TokenRestrictedSids,
 2381                                                                                   <
 2382  // #...                                                                          <
 2383                                                                                   <
                                                                                        >  2332          TokenSessionId,
                                                                                        >  2333          TokenGroupsAndPrivileges,
                                                                                        >  2334          TokenSessionReference,
 2384  // #else                                                                         |  2335          TokenSandBoxInert,
 2385                                                                                   <
                                                                                        >  2336          TokenAuditPolicy,
 2386  enum : uint { MAXIMUM_PROCESSORS = 32 }                                          |  2337          TokenOrigin
 2387                                                                                   |  2338  }
 2388  // #endif                                                                        <
 2389                                                                                   |  2339  
                                                                                        >  2340  enum SID_NAME_USE {
 2390  enum : uint { THREAD_TERMINATE = 0x0001 }                                        |  2341          SidTypeUser = 1,
 2391  enum : uint { THREAD_SUSPEND_RESUME = 0x0002 }                                   |  2342          SidTypeGroup,
 2392  enum : uint { THREAD_GET_CONTEXT = 0x0008 }                                      |  2343          SidTypeDomain,
 2393  enum : uint { THREAD_SET_CONTEXT = 0x0010 }                                      |  2344          SidTypeAlias,
 2394  enum : uint { THREAD_SET_INFORMATION = 0x0020 }                                  |  2345          SidTypeWellKnownGroup,
 2395  enum : uint { THREAD_QUERY_INFORMATION = 0x0040 }                                |  2346          SidTypeDeletedAccount,
 2396  enum : uint { THREAD_SET_THREAD_TOKEN = 0x0080 }                                 |  2347          SidTypeInvalid,
 2397  enum : uint { THREAD_IMPERSONATE = 0x0100 }                                      |  2348          SidTypeUnknown,
 2398  enum : uint { THREAD_DIRECT_IMPERSONATION = 0x0200 }                             |  2349          SidTypeComputer
 2399                                                                                   |  2350  }
 2400  enum : uint { THREAD_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3FF |  2351  alias SID_NAME_USE* PSID_NAME_USE;
 2401                                                                                   |  2352  
 2402  enum : uint { JOB_OBJECT_ASSIGN_PROCESS = 0x0001 }                               <
 2403  enum : uint { JOB_OBJECT_SET_ATTRIBUTES = 0x0002 }                               <
 2404  enum : uint { JOB_OBJECT_QUERY = 0x0004 }                                        <
 2405  enum : uint { JOB_OBJECT_TERMINATE = 0x0008 }                                    <
 2406  enum : uint { JOB_OBJECT_SET_SECURITY_ATTRIBUTES = 0x0010 }                      <
 2407  enum : uint { JOB_OBJECT_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0 <
 2408                                                                                   <
 2409  struct _JOB_SET_ARRAY {                                                          <
 2410    HANDLE JobHandle;                                                              <
 2411    DWORD MemberLevel;                                                             <
 2412    DWORD Flags;                                                                   <
 2413  }                                                                                <
 2414  alias _JOB_SET_ARRAY JOB_SET_ARRAY;                                              <
 2415  alias _JOB_SET_ARRAY* PJOB_SET_ARRAY;                                            <
 2416                                                                                   <
 2417  enum : uint { TLS_MINIMUM_AVAILABLE = 64 }                                       <
 2418                                                                                   <
 2419  struct _NT_TIB {                                                                 <
 2420    _EXCEPTION_REGISTRATION_RECORD *ExceptionList;                                 <
 2421    PVOID StackBase;                                                               <
 2422    PVOID StackLimit;                                                              <
 2423    PVOID SubSystemTib;                                                            <
 2424  union {                                                                          <
 2425    PVOID FiberData;                                                               <
 2426    DWORD Version;                                                                 <
 2427  }                                                                                <
 2428                                                                                   <
 2429    PVOID ArbitraryUserPointer;                                                    <
 2430    _NT_TIB *Self;                                                                 <
 2431  }                                                                                <
 2432  alias _NT_TIB NT_TIB;                                                            <
 2433                                                                                   <
 2434  alias NT_TIB* PNT_TIB;                                                           <
 2435                                                                                   <
 2436  struct _NT_TIB32 {                                                               <
 2437    DWORD ExceptionList;                                                           <
 2438    DWORD StackBase;                                                               <
 2439    DWORD StackLimit;                                                              <
 2440    DWORD SubSystemTib;                                                            <
 2441  union {                                                                          <
 2442    DWORD FiberData;                                                               <
 2443    DWORD Version;                                                                 <
 2444  }                                                                                <
 2445                                                                                   <
 2446    DWORD ArbitraryUserPointer;                                                    <
 2447    DWORD Self;                                                                    <
 2448  }                                                                                <
 2449  alias _NT_TIB32 NT_TIB32;                                                        <
 2450  alias _NT_TIB32* PNT_TIB32;                                                      <
 2451                                                                                   <
 2452  struct _NT_TIB64 {                                                               <
 2453    DWORD64 ExceptionList;                                                         <
 2454    DWORD64 StackBase;                                                             <
 2455    DWORD64 StackLimit;                                                            <
 2456    DWORD64 SubSystemTib;                                                          <
 2457  union {                                                                          <
 2458    DWORD64 FiberData;                                                             <
 2459    DWORD Version;                                                                 <
 2460  }                                                                                <
 2461                                                                                   <
 2462    DWORD64 ArbitraryUserPointer;                                                  <
 2463    DWORD64 Self;                                                                  <
 2464  }                                                                                <
 2465  alias _NT_TIB64 NT_TIB64;                                                        <
 2466  alias _NT_TIB64* PNT_TIB64;                                                      <
 2467                                                                                   <
 2468  // #if !defined(_X86_) && !defined(_IA64_) && !defined(_AMD64_)                  <
 2469  // #...                                                                          <
 2470  // #endif                                                                        <
 2471                                                                                   <
 2472  enum : uint { THREAD_BASE_PRIORITY_LOWRT = 15 }                                  <
 2473  enum : uint { THREAD_BASE_PRIORITY_MAX = 2 }                                     <
 2474  enum { THREAD_BASE_PRIORITY_MIN = -2 }                                           <
 2475  enum { THREAD_BASE_PRIORITY_IDLE = -15 }                                         <
 2476                                                                                   <
 2477  struct _QUOTA_LIMITS {                                                           |  2353  struct QUOTA_LIMITS {
 2478    SIZE_T PagedPoolLimit;                                                         |  2354          SIZE_T PagedPoolLimit;
 2479    SIZE_T NonPagedPoolLimit;                                                      |  2355          SIZE_T NonPagedPoolLimit;
 2480    SIZE_T MinimumWorkingSetSize;                                                  |  2356          SIZE_T MinimumWorkingSetSize;
 2481    SIZE_T MaximumWorkingSetSize;                                                  |  2357          SIZE_T MaximumWorkingSetSize;
 2482    SIZE_T PagefileLimit;                                                          |  2358          SIZE_T PagefileLimit;
 2483    LARGE_INTEGER TimeLimit;                                                       |  2359          LARGE_INTEGER TimeLimit;
 2484  }                                                                                |  2360  }
 2485  alias _QUOTA_LIMITS QUOTA_LIMITS;                                                <
 2486                                                                                   <
 2487  alias QUOTA_LIMITS* PQUOTA_LIMITS;                                                  2361  alias QUOTA_LIMITS* PQUOTA_LIMITS;
 2488                                                                                      2362  
 2489  struct _IO_COUNTERS {                                                            |  2363  struct IO_COUNTERS {
 2490    ULONGLONG ReadOperationCount;                                                  |  2364          ULONGLONG ReadOperationCount;
 2491    ULONGLONG WriteOperationCount;                                                 |  2365          ULONGLONG WriteOperationCount;
 2492    ULONGLONG OtherOperationCount;                                                 |  2366          ULONGLONG OtherOperationCount;
 2493    ULONGLONG ReadTransferCount;                                                   |  2367          ULONGLONG ReadTransferCount;
 2494    ULONGLONG WriteTransferCount;                                                  |  2368          ULONGLONG WriteTransferCount;
 2495    ULONGLONG OtherTransferCount;                                                  |  2369          ULONGLONG OtherTransferCount;
 2496  }                                                                                   2370  }
 2497  alias _IO_COUNTERS IO_COUNTERS;                                                  <
 2498                                                                                   <
 2499  alias IO_COUNTERS* PIO_COUNTERS;                                                    2371  alias IO_COUNTERS* PIO_COUNTERS;
 2500                                                                                      2372  
 2501  struct _JOBOBJECT_BASIC_ACCOUNTING_INFORMATION {                                 |  2373  struct FILE_NOTIFY_INFORMATION {
 2502    LARGE_INTEGER TotalUserTime;                                                   |  2374          DWORD NextEntryOffset;
 2503    LARGE_INTEGER TotalKernelTime;                                                 <
 2504    LARGE_INTEGER ThisPeriodTotalUserTime;                                         <
 2505    LARGE_INTEGER ThisPeriodTotalKernelTime;                                       <
 2506    DWORD TotalPageFaultCount;                                                     <
 2507    DWORD TotalProcesses;                                                          <
 2508    DWORD ActiveProcesses;                                                         |  2375          DWORD Action;
 2509    DWORD TotalTerminatedProcesses;                                                <
                                                                                        >  2376          DWORD FileNameLength;
                                                                                        >  2377          WCHAR _FileName;
 2510  }                                                                                |  2378  
 2511  alias _JOBOBJECT_BASIC_ACCOUNTING_INFORMATION JOBOBJECT_BASIC_ACCOUNTING_INFORMA <
 2512  alias _JOBOBJECT_BASIC_ACCOUNTING_INFORMATION* PJOBOBJECT_BASIC_ACCOUNTING_INFOR <
                                                                                        >  2379          WCHAR* FileName() { return &_FileName; }
 2513                                                                                   |  2380  }
 2514  struct _JOBOBJECT_BASIC_LIMIT_INFORMATION {                                      <
 2515    LARGE_INTEGER PerProcessUserTimeLimit;                                         <
 2516    LARGE_INTEGER PerJobUserTimeLimit;                                             <
                                                                                        >  2381  alias FILE_NOTIFY_INFORMATION* PFILE_NOTIFY_INFORMATION;
                                                                                        >  2382  
                                                                                        >  2383  struct TAPE_ERASE {
 2517    DWORD LimitFlags;                                                              |  2384          DWORD   Type;
                                                                                        >  2385          BOOLEAN Immediate;
                                                                                        >  2386  }
                                                                                        >  2387  alias TAPE_ERASE* PTAPE_ERASE;
                                                                                        >  2388  
                                                                                        >  2389  struct TAPE_GET_DRIVE_PARAMETERS {
 2518    SIZE_T MinimumWorkingSetSize;                                                  |  2390          BOOLEAN ECC;
 2519    SIZE_T MaximumWorkingSetSize;                                                  |  2391          BOOLEAN Compression;
 2520    DWORD ActiveProcessLimit;                                                      |  2392          BOOLEAN DataPadding;
 2521    ULONG_PTR Affinity;                                                            |  2393          BOOLEAN ReportSetmarks;
 2522    DWORD PriorityClass;                                                           |  2394          DWORD   DefaultBlockSize;
 2523    DWORD SchedulingClass;                                                         |  2395          DWORD   MaximumBlockSize;
                                                                                        >  2396          DWORD   MinimumBlockSize;
                                                                                        >  2397          DWORD   MaximumPartitionCount;
                                                                                        >  2398          DWORD   FeaturesLow;
                                                                                        >  2399          DWORD   FeaturesHigh;
                                                                                        >  2400          DWORD   EOTWarningZoneSize;
 2524  }                                                                                |  2401  }
 2525  alias _JOBOBJECT_BASIC_LIMIT_INFORMATION JOBOBJECT_BASIC_LIMIT_INFORMATION;      <
 2526  alias _JOBOBJECT_BASIC_LIMIT_INFORMATION* PJOBOBJECT_BASIC_LIMIT_INFORMATION;    <
                                                                                        >  2402  alias TAPE_GET_DRIVE_PARAMETERS* PTAPE_GET_DRIVE_PARAMETERS;
 2527                                                                                   |  2403  
 2528  struct _JOBOBJECT_EXTENDED_LIMIT_INFORMATION {                                   <
 2529    JOBOBJECT_BASIC_LIMIT_INFORMATION BasicLimitInformation;                       <
 2530    IO_COUNTERS IoInfo;                                                            <
 2531    SIZE_T ProcessMemoryLimit;                                                     <
 2532    SIZE_T JobMemoryLimit;                                                         |  2404  struct TAPE_GET_MEDIA_PARAMETERS {
 2533    SIZE_T PeakProcessMemoryUsed;                                                  |  2405          LARGE_INTEGER Capacity;
 2534    SIZE_T PeakJobMemoryUsed;                                                      |  2406          LARGE_INTEGER Remaining;
                                                                                        >  2407          DWORD         BlockSize;
                                                                                        >  2408          DWORD         PartitionCount;
                                                                                        >  2409          BOOLEAN       WriteProtected;
 2535  }                                                                                |  2410  }
 2536  alias _JOBOBJECT_EXTENDED_LIMIT_INFORMATION JOBOBJECT_EXTENDED_LIMIT_INFORMATION <
 2537  alias _JOBOBJECT_EXTENDED_LIMIT_INFORMATION* PJOBOBJECT_EXTENDED_LIMIT_INFORMATI <
                                                                                        >  2411  alias TAPE_GET_MEDIA_PARAMETERS* PTAPE_GET_MEDIA_PARAMETERS;
 2538                                                                                   |  2412  
 2539  struct _JOBOBJECT_BASIC_PROCESS_ID_LIST {                                        <
 2540    DWORD NumberOfAssignedProcesses;                                               <
 2541    DWORD NumberOfProcessIdsInList;                                                |  2413  struct TAPE_GET_POSITION {
 2542    ULONG_PTR ProcessIdList[1];                                                    |  2414          ULONG Type;
                                                                                        >  2415          ULONG Partition;
                                                                                        >  2416          ULONG OffsetLow;
                                                                                        >  2417          ULONG OffsetHigh;
 2543  }                                                                                |  2418  }
 2544  alias _JOBOBJECT_BASIC_PROCESS_ID_LIST JOBOBJECT_BASIC_PROCESS_ID_LIST;          <
 2545  alias _JOBOBJECT_BASIC_PROCESS_ID_LIST* PJOBOBJECT_BASIC_PROCESS_ID_LIST;        <
                                                                                        >  2419  alias TAPE_GET_POSITION* PTAPE_GET_POSITION;
 2546                                                                                   |  2420  
 2547  struct _JOBOBJECT_BASIC_UI_RESTRICTIONS {                                        <
 2548    DWORD UIRestrictionsClass;                                                     <
                                                                                        >  2421  struct TAPE_PREPARE {
                                                                                        >  2422          DWORD   Operation;
                                                                                        >  2423          BOOLEAN Immediate;
 2549  }                                                                                |  2424  }
 2550  alias _JOBOBJECT_BASIC_UI_RESTRICTIONS JOBOBJECT_BASIC_UI_RESTRICTIONS;          <
 2551  alias _JOBOBJECT_BASIC_UI_RESTRICTIONS* PJOBOBJECT_BASIC_UI_RESTRICTIONS;        <
                                                                                        >  2425  alias TAPE_PREPARE* PTAPE_PREPARE;
 2552                                                                                   |  2426  
 2553  struct _JOBOBJECT_SECURITY_LIMIT_INFORMATION {                                   <
 2554    DWORD SecurityLimitFlags ;                                                     <
 2555    HANDLE JobToken ;                                                              |  2427  struct TAPE_SET_DRIVE_PARAMETERS {
 2556    PTOKEN_GROUPS SidsToDisable ;                                                  |  2428          BOOLEAN ECC;
 2557    PTOKEN_PRIVILEGES PrivilegesToDelete ;                                         |  2429          BOOLEAN Compression;
 2558    PTOKEN_GROUPS RestrictedSids ;                                                 |  2430          BOOLEAN DataPadding;
                                                                                        >  2431          BOOLEAN ReportSetmarks;
                                                                                        >  2432          ULONG   EOTWarningZoneSize;
 2559  }                                                                                |  2433  }
 2560  alias _JOBOBJECT_SECURITY_LIMIT_INFORMATION JOBOBJECT_SECURITY_LIMIT_INFORMATION <
 2561  alias _JOBOBJECT_SECURITY_LIMIT_INFORMATION* PJOBOBJECT_SECURITY_LIMIT_INFORMATI <
                                                                                        >  2434  alias TAPE_SET_DRIVE_PARAMETERS* PTAPE_SET_DRIVE_PARAMETERS;
 2562                                                                                   |  2435  
 2563  struct _JOBOBJECT_END_OF_JOB_TIME_INFORMATION {                                  <
 2564    DWORD EndOfJobTimeAction;                                                      |  2436  struct TAPE_SET_MEDIA_PARAMETERS {
                                                                                        >  2437          ULONG BlockSize;
 2565  }                                                                                |  2438  }
 2566  alias _JOBOBJECT_END_OF_JOB_TIME_INFORMATION JOBOBJECT_END_OF_JOB_TIME_INFORMATI <
 2567  alias _JOBOBJECT_END_OF_JOB_TIME_INFORMATION* PJOBOBJECT_END_OF_JOB_TIME_INFORMA |  2439  alias TAPE_SET_MEDIA_PARAMETERS* PTAPE_SET_MEDIA_PARAMETERS;
 2568                                                                                   |  2440  
 2569  struct _JOBOBJECT_ASSOCIATE_COMPLETION_PORT {                                    |  2441  struct TAPE_SET_POSITION {
 2570    PVOID CompletionKey;                                                           |  2442          DWORD         Method;
 2571    HANDLE CompletionPort;                                                         |  2443          DWORD         Partition;
                                                                                        >  2444          LARGE_INTEGER Offset;
                                                                                        >  2445          BOOLEAN       Immediate;
 2572  }                                                                                |  2446  }
 2573  alias _JOBOBJECT_ASSOCIATE_COMPLETION_PORT JOBOBJECT_ASSOCIATE_COMPLETION_PORT;  <
 2574  alias _JOBOBJECT_ASSOCIATE_COMPLETION_PORT* PJOBOBJECT_ASSOCIATE_COMPLETION_PORT <
                                                                                        >  2447  alias TAPE_SET_POSITION* PTAPE_SET_POSITION;
 2575                                                                                   |  2448  
 2576  struct _JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION {                          <
 2577    JOBOBJECT_BASIC_ACCOUNTING_INFORMATION BasicInfo;                              |  2449  struct TAPE_WRITE_MARKS {
 2578    IO_COUNTERS IoInfo;                                                            |  2450          DWORD   Type;
                                                                                        >  2451          DWORD   Count;
                                                                                        >  2452          BOOLEAN Immediate;
 2579  }                                                                                |  2453  }
 2580  alias _JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION JOBOBJECT_BASIC_AND_IO_ACCO <
 2581  alias _JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION* PJOBOBJECT_BASIC_AND_IO_AC <
                                                                                        >  2454  alias TAPE_WRITE_MARKS* PTAPE_WRITE_MARKS;
 2582                                                                                   |  2455  
 2583  struct _JOBOBJECT_JOBSET_INFORMATION {                                           <
                                                                                        >  2456  struct TAPE_CREATE_PARTITION {
 2584    DWORD MemberLevel;                                                             |  2457          DWORD Method;
                                                                                        >  2458          DWORD Count;
                                                                                        >  2459          DWORD Size;
 2585  }                                                                                |  2460  }
 2586  alias _JOBOBJECT_JOBSET_INFORMATION JOBOBJECT_JOBSET_INFORMATION;                <
 2587  alias _JOBOBJECT_JOBSET_INFORMATION* PJOBOBJECT_JOBSET_INFORMATION;              <
                                                                                        >  2461  alias TAPE_CREATE_PARTITION* PTAPE_CREATE_PARTITION;
 2588                                                                                   |  2462  
 2589  enum : uint { JOB_OBJECT_TERMINATE_AT_END_OF_JOB = 0 }                           <
 2590  enum : uint { JOB_OBJECT_POST_AT_END_OF_JOB = 1 }                                <
                                                                                        >  2463  struct MEMORY_BASIC_INFORMATION {
                                                                                        >  2464          PVOID BaseAddress;
                                                                                        >  2465          PVOID AllocationBase;
                                                                                        >  2466          DWORD AllocationProtect;
                                                                                        >  2467          DWORD RegionSize;
                                                                                        >  2468          DWORD State;
                                                                                        >  2469          DWORD Protect;
                                                                                        >  2470          DWORD Type;
 2591                                                                                   |  2471  }
 2592  enum : uint { JOB_OBJECT_MSG_END_OF_JOB_TIME = 1 }                               <
 2593  enum : uint { JOB_OBJECT_MSG_END_OF_PROCESS_TIME = 2 }                           <
 2594  enum : uint { JOB_OBJECT_MSG_ACTIVE_PROCESS_LIMIT = 3 }                          <
 2595  enum : uint { JOB_OBJECT_MSG_ACTIVE_PROCESS_ZERO = 4 }                           <
 2596  enum : uint { JOB_OBJECT_MSG_NEW_PROCESS = 6 }                                   <
 2597  enum : uint { JOB_OBJECT_MSG_EXIT_PROCESS = 7 }                                  <
 2598  enum : uint { JOB_OBJECT_MSG_ABNORMAL_EXIT_PROCESS = 8 }                         <
 2599  enum : uint { JOB_OBJECT_MSG_PROCESS_MEMORY_LIMIT = 9 }                          <
 2600  enum : uint { JOB_OBJECT_MSG_JOB_MEMORY_LIMIT = 10 }                             |  2472  alias MEMORY_BASIC_INFORMATION* PMEMORY_BASIC_INFORMATION;
 2601                                                                                   |  2473  
 2602  enum : uint { JOB_OBJECT_LIMIT_WORKINGSET = 0x00000001 }                         |  2474  struct MESSAGE_RESOURCE_ENTRY {
 2603  enum : uint { JOB_OBJECT_LIMIT_PROCESS_TIME = 0x00000002 }                       |  2475          WORD Length;
 2604  enum : uint { JOB_OBJECT_LIMIT_JOB_TIME = 0x00000004 }                           |  2476          WORD Flags;
 2605  enum : uint { JOB_OBJECT_LIMIT_ACTIVE_PROCESS = 0x00000008 }                     |  2477          BYTE _Text;
 2606  enum : uint { JOB_OBJECT_LIMIT_AFFINITY = 0x00000010 }                           <
 2607  enum : uint { JOB_OBJECT_LIMIT_PRIORITY_CLASS = 0x00000020 }                     <
 2608  enum : uint { JOB_OBJECT_LIMIT_PRESERVE_JOB_TIME = 0x00000040 }                  <
 2609  enum : uint { JOB_OBJECT_LIMIT_SCHEDULING_CLASS = 0x00000080 }                   <
 2610                                                                                   |  2478  
 2611  enum : uint { JOB_OBJECT_LIMIT_PROCESS_MEMORY = 0x00000100 }                     <
 2612  enum : uint { JOB_OBJECT_LIMIT_JOB_MEMORY = 0x00000200 }                         <
 2613  enum : uint { JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION = 0x00000400 }         <
 2614  enum : uint { JOB_OBJECT_LIMIT_BREAKAWAY_OK = 0x00000800 }                       <
 2615  enum : uint { JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK = 0x00001000 }                <
 2616  enum : uint { JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE = 0x00002000 }                  <
                                                                                        >  2479          BYTE* Text() { return &_Text; }
 2617                                                                                   |  2480  }
 2618  enum : uint { JOB_OBJECT_LIMIT_RESERVED2 = 0x00004000 }                          <
 2619  enum : uint { JOB_OBJECT_LIMIT_RESERVED3 = 0x00008000 }                          <
 2620  enum : uint { JOB_OBJECT_LIMIT_RESERVED4 = 0x00010000 }                          <
 2621  enum : uint { JOB_OBJECT_LIMIT_RESERVED5 = 0x00020000 }                          <
 2622  enum : uint { JOB_OBJECT_LIMIT_RESERVED6 = 0x00040000 }                          <
                                                                                        >  2481  alias MESSAGE_RESOURCE_ENTRY* PMESSAGE_RESOURCE_ENTRY;
 2623                                                                                   |  2482  
 2624  enum : uint { JOB_OBJECT_LIMIT_VALID_FLAGS = 0x0007ffff }                        <
                                                                                        >  2483  struct MESSAGE_RESOURCE_BLOCK {
                                                                                        >  2484          DWORD LowId;
                                                                                        >  2485          DWORD HighId;
                                                                                        >  2486          DWORD OffsetToEntries;
 2625                                                                                   |  2487  }
 2626  enum : uint { JOB_OBJECT_BASIC_LIMIT_VALID_FLAGS = 0x000000ff }                  <
 2627  enum : uint { JOB_OBJECT_EXTENDED_LIMIT_VALID_FLAGS = 0x00003fff }               <
 2628  enum : uint { JOB_OBJECT_RESERVED_LIMIT_VALID_FLAGS = 0x0007ffff }               <
                                                                                        >  2488  alias MESSAGE_RESOURCE_BLOCK* PMESSAGE_RESOURCE_BLOCK;
 2629                                                                                   |  2489  
 2630  enum : uint { JOB_OBJECT_UILIMIT_NONE = 0x00000000 }                             <
                                                                                        >  2490  struct MESSAGE_RESOURCE_DATA {
                                                                                        >  2491          DWORD NumberOfBlocks;
                                                                                        >  2492          MESSAGE_RESOURCE_BLOCK _Blocks;
 2631                                                                                   |  2493  
 2632  enum : uint { JOB_OBJECT_UILIMIT_HANDLES = 0x00000001 }                          <
 2633  enum : uint { JOB_OBJECT_UILIMIT_READCLIPBOARD = 0x00000002 }                    <
 2634  enum : uint { JOB_OBJECT_UILIMIT_WRITECLIPBOARD = 0x00000004 }                   <
 2635  enum : uint { JOB_OBJECT_UILIMIT_SYSTEMPARAMETERS = 0x00000008 }                 <
 2636  enum : uint { JOB_OBJECT_UILIMIT_DISPLAYSETTINGS = 0x00000010 }                  <
 2637  enum : uint { JOB_OBJECT_UILIMIT_GLOBALATOMS = 0x00000020 }                      <
 2638  enum : uint { JOB_OBJECT_UILIMIT_DESKTOP = 0x00000040 }                          <
 2639  enum : uint { JOB_OBJECT_UILIMIT_EXITWINDOWS = 0x00000080 }                      <
                                                                                        >  2494          MESSAGE_RESOURCE_BLOCK* Blocks() { return &_Blocks; }
 2640                                                                                   |  2495  }
 2641  enum : uint { JOB_OBJECT_UILIMIT_ALL = 0x000000FF }                              <
                                                                                        >  2496  alias MESSAGE_RESOURCE_DATA* PMESSAGE_RESOURCE_DATA;
 2642                                                                                   |  2497  
 2643  enum : uint { JOB_OBJECT_UI_VALID_FLAGS = 0x000000FF }                           <
                                                                                        >  2498  struct LIST_ENTRY {
                                                                                        >  2499          LIST_ENTRY* Flink;
                                                                                        >  2500          LIST_ENTRY* Blink;
 2644                                                                                   |  2501  }
 2645  enum : uint { JOB_OBJECT_SECURITY_NO_ADMIN = 0x00000001 }                        <
 2646  enum : uint { JOB_OBJECT_SECURITY_RESTRICTED_TOKEN = 0x00000002 }                <
 2647  enum : uint { JOB_OBJECT_SECURITY_ONLY_TOKEN = 0x00000004 }                      <
 2648  enum : uint { JOB_OBJECT_SECURITY_FILTER_TOKENS = 0x00000008 }                   <
                                                                                        >  2502  alias LIST_ENTRY* PLIST_ENTRY;
 2649                                                                                   |  2503  
 2650  enum : uint { JOB_OBJECT_SECURITY_VALID_FLAGS = 0x0000000f }                     <
                                                                                        >  2504  struct SINGLE_LIST_ENTRY {
                                                                                        >  2505          SINGLE_LIST_ENTRY* Next;
 2651                                                                                   |  2506  }
 2652  alias int _JOBOBJECTINFOCLASS;                                                   <
 2653  enum {                                                                           <
 2654    JobObjectBasicAccountingInformation = 1,                                       <
 2655    JobObjectBasicLimitInformation,                                                <
 2656    JobObjectBasicProcessIdList,                                                   <
 2657    JobObjectBasicUIRestrictions,                                                  <
 2658    JobObjectSecurityLimitInformation,                                             <
 2659    JobObjectEndOfJobTimeInformation,                                              <
 2660    JobObjectAssociateCompletionPortInformation,                                   <
 2661    JobObjectBasicAndIoAccountingInformation,                                      <
 2662    JobObjectExtendedLimitInformation,                                             <
 2663    JobObjectJobSetInformation,                                                    <
 2664    MaxJobObjectInfoClass,                                                         <
                                                                                        >  2507  alias SINGLE_LIST_ENTRY SLIST_ENTRY;
                                                                                        >  2508  alias SINGLE_LIST_ENTRY* PSINGLE_LIST_ENTRY, PSLIST_ENTRY;
 2665  }                                                                                |  2509  
 2666  alias _JOBOBJECTINFOCLASS JOBOBJECTINFOCLASS;                                    <
                                                                                        >  2510  union SLIST_HEADER {
                                                                                        >  2511          ULONGLONG       Alignment;
                                                                                        >  2512          struct {
                                                                                        >  2513                  SLIST_ENTRY Next;
                                                                                        >  2514                  WORD        Depth;
                                                                                        >  2515                  WORD        Sequence;
 2667                                                                                   |  2516          }
 2668  enum : uint { EVENT_MODIFY_STATE = 0x0002 }                                      <
 2669  enum : uint { EVENT_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3 }      <
 2670  enum : uint { MUTANT_QUERY_STATE = 0x0001 }                                      <
 2671                                                                                   |  2517  }
 2672  enum : uint { MUTANT_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE| MUTANT_Q <
 2673  enum : uint { SEMAPHORE_MODIFY_STATE = 0x0002 }                                  <
 2674  enum : uint { SEMAPHORE_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3 }  <
                                                                                        >  2518  alias SLIST_HEADER* PSLIST_HEADER;
 2675                                                                                   |  2519  
 2676  enum : uint { TIMER_QUERY_STATE = 0x0001 }                                       <
 2677  enum : uint { TIMER_MODIFY_STATE = 0x0002 }                                      <
                                                                                        >  2520  struct RTL_CRITICAL_SECTION_DEBUG {
                                                                                        >  2521          WORD       Type;
                                                                                        >  2522          WORD       CreatorBackTraceIndex;
                                                                                        >  2523          RTL_CRITICAL_SECTION* CriticalSection;
                                                                                        >  2524          LIST_ENTRY ProcessLocksList;
                                                                                        >  2525          DWORD      EntryCount;
                                                                                        >  2526          DWORD      ContentionCount;
                                                                                        >  2527          DWORD[2]   Spare;
 2678                                                                                   |  2528  }
 2679  enum : uint { TIMER_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE| TIMER_QUE <
                                                                                        >  2529  alias RTL_CRITICAL_SECTION_DEBUG* PRTL_CRITICAL_SECTION_DEBUG;
 2680                                                                                   |  2530  
 2681  enum : uint { TIME_ZONE_ID_UNKNOWN = 0 }                                         <
 2682  enum : uint { TIME_ZONE_ID_STANDARD = 1 }                                        <
 2683  enum : uint { TIME_ZONE_ID_DAYLIGHT = 2 }                                        <
                                                                                        >  2531  struct RTL_CRITICAL_SECTION {
                                                                                        >  2532          PRTL_CRITICAL_SECTION_DEBUG DebugInfo;
                                                                                        >  2533          LONG   LockCount;
                                                                                        >  2534          LONG   RecursionCount;
                                                                                        >  2535          HANDLE OwningThread;
                                                                                        >  2536          HANDLE LockSemaphore;
                                                                                        >  2537          DWORD  Reserved;
 2684                                                                                   |  2538  }
 2685  enum : uint { MAXIMUM_NUMA_NODES = 16 }                                          <
                                                                                        >  2539  alias RTL_CRITICAL_SECTION* PRTL_CRITICAL_SECTION;
 2686                                                                                   |  2540  
 2687  struct _SYSTEM_NUMA_INFORMATION {                                                <
 2688    DWORD HighestNodeNumber;                                                       <
                                                                                        >  2541  struct EVENTLOGRECORD {
                                                                                        >  2542          DWORD Length;
 2689    DWORD Reserved;                                                                |  2543          DWORD Reserved;
 2690  union {                                                                          <
 2691    ULONGLONG ActiveProcessorsAffinityMask[MAXIMUM_NUMA_NODES];                    <
 2692    ULONGLONG AvailableMemory[MAXIMUM_NUMA_NODES];                                 <
                                                                                        >  2544          DWORD RecordNumber;
                                                                                        >  2545          DWORD TimeGenerated;
                                                                                        >  2546          DWORD TimeWritten;
                                                                                        >  2547          DWORD EventID;
                                                                                        >  2548          WORD  EventType;
                                                                                        >  2549          WORD  NumStrings;
                                                                                        >  2550          WORD  EventCategory;
                                                                                        >  2551          WORD  ReservedFlags;
                                                                                        >  2552          DWORD ClosingRecordNumber;
                                                                                        >  2553          DWORD StringOffset;
                                                                                        >  2554          DWORD UserSidLength;
                                                                                        >  2555          DWORD UserSidOffset;
                                                                                        >  2556          DWORD DataLength;
                                                                                        >  2557          DWORD DataOffset;
 2693  }                                                                                |  2558  }
                                                                                        >  2559  alias EVENTLOGRECORD* PEVENTLOGRECORD;
 2694                                                                                   |  2560  
                                                                                        >  2561  struct OSVERSIONINFOA {
                                                                                        >  2562          DWORD     dwOSVersionInfoSize;
                                                                                        >  2563          DWORD     dwMajorVersion;
                                                                                        >  2564          DWORD     dwMinorVersion;
                                                                                        >  2565          DWORD     dwBuildNumber;
                                                                                        >  2566          DWORD     dwPlatformId;
                                                                                        >  2567          CHAR[128] szCSDVersion;
 2695  }                                                                                |  2568  }
 2696  alias _SYSTEM_NUMA_INFORMATION SYSTEM_NUMA_INFORMATION;                          <
 2697  alias _SYSTEM_NUMA_INFORMATION* PSYSTEM_NUMA_INFORMATION;                        |  2569  alias OSVERSIONINFOA* POSVERSIONINFOA, LPOSVERSIONINFOA;
 2698                                                                                   |  2570  
 2699  enum : uint { PROCESSOR_INTEL_386 = 386 }                                        |  2571  struct OSVERSIONINFOW {
 2700  enum : uint { PROCESSOR_INTEL_486 = 486 }                                        |  2572          DWORD      dwOSVersionInfoSize;
 2701  enum : uint { PROCESSOR_INTEL_PENTIUM = 586 }                                    |  2573          DWORD      dwMajorVersion;
 2702  enum : uint { PROCESSOR_INTEL_IA64 = 2200 }                                      |  2574          DWORD      dwMinorVersion;
 2703  enum : uint { PROCESSOR_MIPS_R4000 = 4000 }                                      |  2575          DWORD      dwBuildNumber;
 2704  enum : uint { PROCESSOR_ALPHA_21064 = 21064 }                                    |  2576          DWORD      dwPlatformId;
 2705  enum : uint { PROCESSOR_PPC_601 = 601 }                                          |  2577          WCHAR[128] szCSDVersion;
 2706  enum : uint { PROCESSOR_PPC_603 = 603 }                                          <
                                                                                        >  2578  }
 2707  enum : uint { PROCESSOR_PPC_604 = 604 }                                          |  2579  alias OSVERSIONINFOW* POSVERSIONINFOW, LPOSVERSIONINFOW;
 2708  enum : uint { PROCESSOR_PPC_620 = 620 }                                          <
                                                                                        >  2580  
 2709  enum : uint { PROCESSOR_HITACHI_SH3 = 10003 }                                    |  2581  struct OSVERSIONINFOEXA {
 2710  enum : uint { PROCESSOR_HITACHI_SH3E = 10004 }                                   |  2582          DWORD     dwOSVersionInfoSize;
 2711  enum : uint { PROCESSOR_HITACHI_SH4 = 10005 }                                    |  2583          DWORD     dwMajorVersion;
 2712  enum : uint { PROCESSOR_MOTOROLA_821 = 821 }                                     |  2584          DWORD     dwMinorVersion;
 2713  enum : uint { PROCESSOR_SHx_SH3 = 103 }                                          |  2585          DWORD     dwBuildNumber;
 2714  enum : uint { PROCESSOR_SHx_SH4 = 104 }                                          |  2586          DWORD     dwPlatformId;
 2715  enum : uint { PROCESSOR_STRONGARM = 2577 }                                       |  2587          CHAR[128] szCSDVersion;
 2716  enum : uint { PROCESSOR_ARM720 = 1824 }                                          |  2588          WORD      wServicePackMajor;
 2717  enum : uint { PROCESSOR_ARM820 = 2080 }                                          |  2589          WORD      wServicePackMinor;
 2718  enum : uint { PROCESSOR_ARM920 = 2336 }                                          |  2590          WORD      wSuiteMask;
 2719  enum : uint { PROCESSOR_ARM_7TDMI = 70001 }                                      |  2591          BYTE      wProductType;
 2720  enum : uint { PROCESSOR_OPTIL = 0x494f }                                         |  2592          BYTE      wReserved;
 2721                                                                                   |  2593  }
 2722  enum : uint { PROCESSOR_ARCHITECTURE_INTEL = 0 }                                 |  2594  alias OSVERSIONINFOEXA* POSVERSIONINFOEXA, LPOSVERSIONINFOEXA;
 2723  enum : uint { PROCESSOR_ARCHITECTURE_MIPS = 1 }                                  <
 2724  enum : uint { PROCESSOR_ARCHITECTURE_ALPHA = 2 }                                 <
 2725  enum : uint { PROCESSOR_ARCHITECTURE_PPC = 3 }                                   <
 2726  enum : uint { PROCESSOR_ARCHITECTURE_SHX = 4 }                                   <
 2727  enum : uint { PROCESSOR_ARCHITECTURE_ARM = 5 }                                   <
 2728  enum : uint { PROCESSOR_ARCHITECTURE_IA64 = 6 }                                  <
 2729  enum : uint { PROCESSOR_ARCHITECTURE_ALPHA64 = 7 }                               <
 2730  enum : uint { PROCESSOR_ARCHITECTURE_MSIL = 8 }                                  <
 2731  enum : uint { PROCESSOR_ARCHITECTURE_AMD64 = 9 }                                 <
 2732  enum : uint { PROCESSOR_ARCHITECTURE_IA32_ON_WIN64 = 10 }                        <
 2733                                                                                   |  2595  
                                                                                        >  2596  struct OSVERSIONINFOEXW {
                                                                                        >  2597          DWORD      dwOSVersionInfoSize;
                                                                                        >  2598          DWORD      dwMajorVersion;
                                                                                        >  2599          DWORD      dwMinorVersion;
                                                                                        >  2600          DWORD      dwBuildNumber;
                                                                                        >  2601          DWORD      dwPlatformId;
                                                                                        >  2602          WCHAR[128] szCSDVersion;
                                                                                        >  2603          WORD       wServicePackMajor;
                                                                                        >  2604          WORD       wServicePackMinor;
                                                                                        >  2605          WORD       wSuiteMask;
 2734  enum : uint { PROCESSOR_ARCHITECTURE_UNKNOWN = 0xFFFF }                          |  2606          BYTE       wProductType;
                                                                                        >  2607          BYTE       wReserved;
 2735                                                                                   |  2608  }
 2736  enum : uint { PF_FLOATING_POINT_PRECISION_ERRATA = 0 }                           <
 2737  enum : uint { PF_FLOATING_POINT_EMULATED = 1 }                                   |  2609  alias OSVERSIONINFOEXW* POSVERSIONINFOEXW, LPOSVERSIONINFOEXW;
 2738  enum : uint { PF_COMPARE_EXCHANGE_DOUBLE = 2 }                                   <
 2739  enum : uint { PF_MMX_INSTRUCTIONS_AVAILABLE = 3 }                                <
 2740  enum : uint { PF_PPC_MOVEMEM_64BIT_OK = 4 }                                      <
 2741  enum : uint { PF_ALPHA_BYTE_INSTRUCTIONS = 5 }                                   <
 2742  enum : uint { PF_XMMI_INSTRUCTIONS_AVAILABLE = 6 }                               <
 2743  enum : uint { PF_3DNOW_INSTRUCTIONS_AVAILABLE = 7 }                              <
 2744  enum : uint { PF_RDTSC_INSTRUCTION_AVAILABLE = 8 }                               <
 2745  enum : uint { PF_PAE_ENABLED = 9 }                                               <
 2746  enum : uint { PF_XMMI64_INSTRUCTIONS_AVAILABLE = 10 }                            <
 2747                                                                                   |  2610  
                                                                                        >  2611  align(2) struct IMAGE_VXD_HEADER {
                                                                                        >  2612          WORD     e32_magic;
                                                                                        >  2613          BYTE     e32_border;
                                                                                        >  2614          BYTE     e32_worder;
                                                                                        >  2615          DWORD    e32_level;
                                                                                        >  2616          WORD     e32_cpu;
                                                                                        >  2617          WORD     e32_os;
                                                                                        >  2618          DWORD    e32_ver;
                                                                                        >  2619          DWORD    e32_mflags;
 2748  struct _MEMORY_BASIC_INFORMATION {                                               |  2620          DWORD    e32_mpages;
 2749    PVOID BaseAddress;                                                             |  2621          DWORD    e32_startobj;
 2750    PVOID AllocationBase;                                                          |  2622          DWORD    e32_eip;
 2751    DWORD AllocationProtect;                                                       |  2623          DWORD    e32_stackobj;
 2752    SIZE_T RegionSize;                                                             <
 2753    DWORD State;                                                                   |  2624          DWORD    e32_esp;
                                                                                        >  2625          DWORD    e32_pagesize;
 2754    DWORD Protect;                                                                 |  2626          DWORD    e32_lastpagesize;
                                                                                        >  2627          DWORD    e32_fixupsize;
 2755    DWORD Type;                                                                    |  2628          DWORD    e32_fixupsum;
 2756  }                                                                                <
 2757  alias _MEMORY_BASIC_INFORMATION MEMORY_BASIC_INFORMATION;                        |  2629          DWORD    e32_ldrsize;
 2758  alias _MEMORY_BASIC_INFORMATION* PMEMORY_BASIC_INFORMATION;                      |  2630          DWORD    e32_ldrsum;
 2759                                                                                   <
                                                                                        >  2631          DWORD    e32_objtab;
 2760  struct _MEMORY_BASIC_INFORMATION32 {                                             |  2632          DWORD    e32_objcnt;
 2761    DWORD BaseAddress;                                                             |  2633          DWORD    e32_objmap;
 2762    DWORD AllocationBase;                                                          |  2634          DWORD    e32_itermap;
 2763    DWORD AllocationProtect;                                                       |  2635          DWORD    e32_rsrctab;
 2764    DWORD RegionSize;                                                              |  2636          DWORD    e32_rsrccnt;
 2765    DWORD State;                                                                   |  2637          DWORD    e32_restab;
 2766    DWORD Protect;                                                                 |  2638          DWORD    e32_enttab;
 2767    DWORD Type;                                                                    |  2639          DWORD    e32_dirtab;
 2768  }                                                                                <
                                                                                        >  2640          DWORD    e32_dircnt;
 2769  alias _MEMORY_BASIC_INFORMATION32 MEMORY_BASIC_INFORMATION32;                    |  2641          DWORD    e32_fpagetab;
 2770  alias _MEMORY_BASIC_INFORMATION32* PMEMORY_BASIC_INFORMATION32;                  |  2642          DWORD    e32_frectab;
 2771                                                                                   <
                                                                                        >  2643          DWORD    e32_impmod;
 2772  struct _MEMORY_BASIC_INFORMATION64 {                                             |  2644          DWORD    e32_impmodcnt;
 2773    ULONGLONG BaseAddress;                                                         |  2645          DWORD    e32_impproc;
 2774    ULONGLONG AllocationBase;                                                      |  2646          DWORD    e32_pagesum;
 2775    DWORD AllocationProtect;                                                       |  2647          DWORD    e32_datapage;
 2776    DWORD __alignment1;                                                            |  2648          DWORD    e32_preload;
 2777    ULONGLONG RegionSize;                                                          |  2649          DWORD    e32_nrestab;
 2778    DWORD State;                                                                   |  2650          DWORD    e32_cbnrestab;
 2779    DWORD Protect;                                                                 |  2651          DWORD    e32_nressum;
 2780    DWORD Type;                                                                    |  2652          DWORD    e32_autodata;
 2781    DWORD __alignment2;                                                            |  2653          DWORD    e32_debuginfo;
 2782  }                                                                                <
                                                                                        >  2654          DWORD    e32_debuglen;
 2783  alias _MEMORY_BASIC_INFORMATION64 MEMORY_BASIC_INFORMATION64;                    |  2655          DWORD    e32_instpreload;
 2784  alias _MEMORY_BASIC_INFORMATION64* PMEMORY_BASIC_INFORMATION64;                  |  2656          DWORD    e32_instdemand;
                                                                                        >  2657          DWORD    e32_heapsize;
                                                                                        >  2658          BYTE[12] e32_res3;
                                                                                        >  2659          DWORD    e32_winresoff;
                                                                                        >  2660          DWORD    e32_winreslen;
                                                                                        >  2661          WORD     e32_devid;
                                                                                        >  2662          WORD     e32_ddkver;
 2785                                                                                   |  2663  }
 2786  enum : uint { SECTION_QUERY = 0x0001 }                                           <
 2787  enum : uint { SECTION_MAP_WRITE = 0x0002 }                                       <
 2788  enum : uint { SECTION_MAP_READ = 0x0004 }                                        <
 2789  enum : uint { SECTION_MAP_EXECUTE = 0x0008 }                                     <
 2790  enum : uint { SECTION_EXTEND_SIZE = 0x0010 }                                     <
                                                                                        >  2664  alias IMAGE_VXD_HEADER* PIMAGE_VXD_HEADER;
 2791                                                                                   |  2665  
 2792  enum : uint { SECTION_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED|SECTION_QUERY| SECTI <
 2793  enum : uint { PAGE_NOACCESS = 0x01 }                                             <
 2794  enum : uint { PAGE_READONLY = 0x02 }                                             |  2666  align(4):
 2795  enum : uint { PAGE_READWRITE = 0x04 }                                            |  2667  struct IMAGE_FILE_HEADER {
 2796  enum : uint { PAGE_WRITECOPY = 0x08 }                                            |  2668          WORD  Machine;
 2797  enum : uint { PAGE_EXECUTE = 0x10 }                                              |  2669          WORD  NumberOfSections;
 2798  enum : uint { PAGE_EXECUTE_READ = 0x20 }                                         |  2670          DWORD TimeDateStamp;
 2799  enum : uint { PAGE_EXECUTE_READWRITE = 0x40 }                                    |  2671          DWORD PointerToSymbolTable;
 2800  enum : uint { PAGE_EXECUTE_WRITECOPY = 0x80 }                                    |  2672          DWORD NumberOfSymbols;
 2801  enum : uint { PAGE_GUARD = 0x100 }                                               |  2673          WORD  SizeOfOptionalHeader;
 2802  enum : uint { PAGE_NOCACHE = 0x200 }                                             |  2674          WORD  Characteristics;
 2803  enum : uint { PAGE_WRITECOMBINE = 0x400 }                                        <
 2804  enum : uint { MEM_COMMIT = 0x1000 }                                              <
 2805  enum : uint { MEM_RESERVE = 0x2000 }                                             <
 2806  enum : uint { MEM_DECOMMIT = 0x4000 }                                            <
 2807  enum : uint { MEM_RELEASE = 0x8000 }                                             <
 2808  enum : uint { MEM_FREE = 0x10000 }                                               <
 2809  enum : uint { MEM_PRIVATE = 0x20000 }                                            <
 2810  enum : uint { MEM_MAPPED = 0x40000 }                                             <
 2811  enum : uint { MEM_RESET = 0x80000 }                                              <
 2812  enum : uint { MEM_TOP_DOWN = 0x100000 }                                          <
 2813  enum : uint { MEM_WRITE_WATCH = 0x200000 }                                       <
 2814  enum : uint { MEM_PHYSICAL = 0x400000 }                                          <
 2815  enum : uint { MEM_4MB_PAGES = 0x80000000 }                                       <
 2816  enum : uint { SEC_FILE = 0x800000 }                                              <
 2817  enum : uint { SEC_IMAGE = 0x1000000 }                                            <
 2818  enum : uint { SEC_RESERVE = 0x4000000 }                                          <
 2819  enum : uint { SEC_COMMIT = 0x8000000 }                                           <
 2820  enum : uint { SEC_NOCACHE = 0x10000000 }                                         <
 2821  alias SEC_IMAGE MEM_IMAGE;                                                       <
 2822  enum : uint { WRITE_WATCH_FLAG_RESET = 0x01 }                                    <
 2823                                                                                   |  2675  }
 2824  enum : uint { FILE_READ_DATA = 0x0001 }                                          <
 2825  enum : uint { FILE_LIST_DIRECTORY = 0x0001 }                                     <
                                                                                        >  2676  alias IMAGE_FILE_HEADER* PIMAGE_FILE_HEADER;
                                                                                        >  2677  // const IMAGE_SIZEOF_FILE_HEADER = IMAGE_FILE_HEADER.sizeof;
 2826                                                                                   |  2678  
 2827  enum : uint { FILE_WRITE_DATA = 0x0002 }                                         <
 2828  enum : uint { FILE_ADD_FILE = 0x0002 }                                           <
                                                                                        >  2679  struct IMAGE_DATA_DIRECTORY {
                                                                                        >  2680          DWORD VirtualAddress;
                                                                                        >  2681          DWORD Size;
 2829                                                                                   |  2682  }
 2830  enum : uint { FILE_APPEND_DATA = 0x0004 }                                        <
 2831  enum : uint { FILE_ADD_SUBDIRECTORY = 0x0004 }                                   <
 2832  enum : uint { FILE_CREATE_PIPE_INSTANCE = 0x0004 }                               <
                                                                                        >  2683  alias IMAGE_DATA_DIRECTORY* PIMAGE_DATA_DIRECTORY;
 2833                                                                                   |  2684  
                                                                                        >  2685  struct IMAGE_OPTIONAL_HEADER32 {
                                                                                        >  2686          WORD  Magic;
                                                                                        >  2687          BYTE  MajorLinkerVersion;
                                                                                        >  2688          BYTE  MinorLinkerVersion;
                                                                                        >  2689          DWORD SizeOfCode;
                                                                                        >  2690          DWORD SizeOfInitializedData;
                                                                                        >  2691          DWORD SizeOfUninitializedData;
                                                                                        >  2692          DWORD AddressOfEntryPoint;
                                                                                        >  2693          DWORD BaseOfCode;
                                                                                        >  2694          DWORD BaseOfData;
                                                                                        >  2695          DWORD ImageBase;
                                                                                        >  2696          DWORD SectionAlignment;
                                                                                        >  2697          DWORD FileAlignment;
                                                                                        >  2698          WORD  MajorOperatingSystemVersion;
                                                                                        >  2699          WORD  MinorOperatingSystemVersion;
                                                                                        >  2700          WORD  MajorImageVersion;
                                                                                        >  2701          WORD  MinorImageVersion;
                                                                                        >  2702          WORD  MajorSubsystemVersion;
                                                                                        >  2703          WORD  MinorSubsystemVersion;
                                                                                        >  2704          DWORD Win32VersionValue;
                                                                                        >  2705          DWORD SizeOfImage;
 2834  enum : uint { FILE_READ_EA = 0x0008 }                                            |  2706          DWORD SizeOfHeaders;
 2835                                                                                   <
                                                                                        >  2707          DWORD CheckSum;
 2836  enum : uint { FILE_WRITE_EA = 0x0010 }                                           |  2708          WORD  Subsystem;
 2837                                                                                   <
                                                                                        >  2709          WORD  DllCharacteristics;
 2838  enum : uint { FILE_EXECUTE = 0x0020 }                                            |  2710          DWORD SizeOfStackReserve;
 2839  enum : uint { FILE_TRAVERSE = 0x0020 }                                           |  2711          DWORD SizeOfStackCommit;
 2840                                                                                   <
                                                                                        >  2712          DWORD SizeOfHeapReserve;
 2841  enum : uint { FILE_DELETE_CHILD = 0x0040 }                                       |  2713          DWORD SizeOfHeapCommit;
 2842                                                                                   <
                                                                                        >  2714          DWORD LoaderFlags;
 2843  enum : uint { FILE_READ_ATTRIBUTES = 0x0080 }                                    |  2715          DWORD NumberOfRvaAndSizes;
                                                                                        >  2716          IMAGE_DATA_DIRECTORY[IMAGE_NUMBEROF_DIRECTORY_ENTRIES] DataDirectory;
 2844                                                                                   |  2717  }
 2845  enum : uint { FILE_WRITE_ATTRIBUTES = 0x0100 }                                   <
                                                                                        >  2718  alias IMAGE_OPTIONAL_HEADER32* PIMAGE_OPTIONAL_HEADER32;
 2846                                                                                   |  2719  
 2847  enum : uint { FILE_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x1FF } <
 2848                                                                                   <
                                                                                        >  2720  struct IMAGE_OPTIONAL_HEADER64 {
 2849  enum : uint { FILE_GENERIC_READ = STANDARD_RIGHTS_READ | FILE_READ_DATA | FILE_R |  2721          WORD      Magic;
 2850                                                                                   <
                                                                                        >  2722          BYTE      MajorLinkerVersion;
 2851  enum : uint { FILE_GENERIC_WRITE = STANDARD_RIGHTS_WRITE | FILE_WRITE_DATA | FIL |  2723          BYTE      MinorLinkerVersion;
 2852                                                                                   <
                                                                                        >  2724          DWORD     SizeOfCode;
 2853  enum : uint { FILE_GENERIC_EXECUTE = STANDARD_RIGHTS_EXECUTE | FILE_READ_ATTRIBU |  2725          DWORD     SizeOfInitializedData;
 2854                                                                                   <
                                                                                        >  2726          DWORD     SizeOfUninitializedData;
 2855  enum : uint { FILE_SHARE_READ = 0x00000001 }                                     |  2727          DWORD     AddressOfEntryPoint;
 2856  enum : uint { FILE_SHARE_WRITE = 0x00000002 }                                    |  2728          DWORD     BaseOfCode;
 2857  enum : uint { FILE_SHARE_DELETE = 0x00000004 }                                   |  2729          ULONGLONG ImageBase;
 2858  enum : uint { FILE_ATTRIBUTE_READONLY = 0x00000001 }                             |  2730          DWORD     SectionAlignment;
 2859  enum : uint { FILE_ATTRIBUTE_HIDDEN = 0x00000002 }                               |  2731          DWORD     FileAlignment;
 2860  enum : uint { FILE_ATTRIBUTE_SYSTEM = 0x00000004 }                               |  2732          WORD      MajorOperatingSystemVersion;
 2861  enum : uint { FILE_ATTRIBUTE_DIRECTORY = 0x00000010 }                            |  2733          WORD      MinorOperatingSystemVersion;
 2862  enum : uint { FILE_ATTRIBUTE_ARCHIVE = 0x00000020 }                              |  2734          WORD      MajorImageVersion;
 2863  enum : uint { FILE_ATTRIBUTE_DEVICE = 0x00000040 }                               |  2735          WORD      MinorImageVersion;
 2864  enum : uint { FILE_ATTRIBUTE_NORMAL = 0x00000080 }                               |  2736          WORD      MajorSubsystemVersion;
 2865  enum : uint { FILE_ATTRIBUTE_TEMPORARY = 0x00000100 }                            |  2737          WORD      MinorSubsystemVersion;
 2866  enum : uint { FILE_ATTRIBUTE_SPARSE_FILE = 0x00000200 }                          |  2738          DWORD     Win32VersionValue;
 2867  enum : uint { FILE_ATTRIBUTE_REPARSE_POINT = 0x00000400 }                        |  2739          DWORD     SizeOfImage;
 2868  enum : uint { FILE_ATTRIBUTE_COMPRESSED = 0x00000800 }                           |  2740          DWORD     SizeOfHeaders;
 2869  enum : uint { FILE_ATTRIBUTE_OFFLINE = 0x00001000 }                              |  2741          DWORD     CheckSum;
 2870  enum : uint { FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = 0x00002000 }                  |  2742          WORD      Subsystem;
 2871  enum : uint { FILE_ATTRIBUTE_ENCRYPTED = 0x00004000 }                            |  2743          WORD      DllCharacteristics;
 2872  enum : uint { FILE_NOTIFY_CHANGE_FILE_NAME = 0x00000001 }                        |  2744          ULONGLONG SizeOfStackReserve;
 2873  enum : uint { FILE_NOTIFY_CHANGE_DIR_NAME = 0x00000002 }                         |  2745          ULONGLONG SizeOfStackCommit;
 2874  enum : uint { FILE_NOTIFY_CHANGE_ATTRIBUTES = 0x00000004 }                       |  2746          ULONGLONG SizeOfHeapReserve;
 2875  enum : uint { FILE_NOTIFY_CHANGE_SIZE = 0x00000008 }                             |  2747          ULONGLONG SizeOfHeapCommit;
 2876  enum : uint { FILE_NOTIFY_CHANGE_LAST_WRITE = 0x00000010 }                       <
 2877  enum : uint { FILE_NOTIFY_CHANGE_LAST_ACCESS = 0x00000020 }                      <
 2878  enum : uint { FILE_NOTIFY_CHANGE_CREATION = 0x00000040 }                         <
 2879  enum : uint { FILE_NOTIFY_CHANGE_SECURITY = 0x00000100 }                         <
 2880  enum : uint { FILE_ACTION_ADDED = 0x00000001 }                                   <
 2881  enum : uint { FILE_ACTION_REMOVED = 0x00000002 }                                 <
 2882  enum : uint { FILE_ACTION_MODIFIED = 0x00000003 }                                <
 2883  enum : uint { FILE_ACTION_RENAMED_OLD_NAME = 0x00000004 }                        <
 2884  enum : uint { FILE_ACTION_RENAMED_NEW_NAME = 0x00000005 }                        <
 2885  enum : DWORD { MAILSLOT_NO_MESSAGE = cast(DWORD)-1 }                             <
 2886  enum : DWORD { MAILSLOT_WAIT_FOREVER = cast(DWORD)-1 }                           <
 2887  enum : uint { FILE_CASE_SENSITIVE_SEARCH = 0x00000001 }                          <
 2888  enum : uint { FILE_CASE_PRESERVED_NAMES = 0x00000002 }                           <
 2889  enum : uint { FILE_UNICODE_ON_DISK = 0x00000004 }                                <
 2890  enum : uint { FILE_PERSISTENT_ACLS = 0x00000008 }                                <
 2891  enum : uint { FILE_FILE_COMPRESSION = 0x00000010 }                               <
 2892  enum : uint { FILE_VOLUME_QUOTAS = 0x00000020 }                                  <
 2893  enum : uint { FILE_SUPPORTS_SPARSE_FILES = 0x00000040 }                          <
 2894  enum : uint { FILE_SUPPORTS_REPARSE_POINTS = 0x00000080 }                        <
 2895  enum : uint { FILE_SUPPORTS_REMOTE_STORAGE = 0x00000100 }                        <
 2896  enum : uint { FILE_VOLUME_IS_COMPRESSED = 0x00008000 }                           <
 2897  enum : uint { FILE_SUPPORTS_OBJECT_IDS = 0x00010000 }                            <
 2898  enum : uint { FILE_SUPPORTS_ENCRYPTION = 0x00020000 }                            <
 2899  enum : uint { FILE_NAMED_STREAMS = 0x00040000 }                                  <
 2900  enum : uint { FILE_READ_ONLY_VOLUME = 0x00080000 }                               <
 2901                                                                                   <
 2902  struct _FILE_NOTIFY_INFORMATION {                                                <
 2903    DWORD NextEntryOffset;                                                         <
 2904    DWORD Action;                                                                  |  2748          DWORD     LoaderFlags;
 2905    DWORD FileNameLength;                                                          <
 2906    WCHAR FileName[1];                                                             <
                                                                                        >  2749          DWORD     NumberOfRvaAndSizes;
                                                                                        >  2750          IMAGE_DATA_DIRECTORY[IMAGE_NUMBEROF_DIRECTORY_ENTRIES] DataDirectory;
 2907  }                                                                                |  2751  }
 2908  alias _FILE_NOTIFY_INFORMATION FILE_NOTIFY_INFORMATION;                          <
 2909  alias _FILE_NOTIFY_INFORMATION* PFILE_NOTIFY_INFORMATION;                        <
                                                                                        >  2752  alias IMAGE_OPTIONAL_HEADER64* PIMAGE_OPTIONAL_HEADER64;
 2910                                                                                   |  2753  
 2911  union _FILE_SEGMENT_ELEMENT {                                                    <
 2912    PVOID64 Buffer;                                                                <
 2913    ULONGLONG Alignment;                                                           <
                                                                                        >  2754  struct IMAGE_ROM_OPTIONAL_HEADER {
                                                                                        >  2755          WORD     Magic;
                                                                                        >  2756          BYTE     MajorLinkerVersion;
                                                                                        >  2757          BYTE     MinorLinkerVersion;
                                                                                        >  2758          DWORD    SizeOfCode;
                                                                                        >  2759          DWORD    SizeOfInitializedData;
                                                                                        >  2760          DWORD    SizeOfUninitializedData;
                                                                                        >  2761          DWORD    AddressOfEntryPoint;
                                                                                        >  2762          DWORD    BaseOfCode;
                                                                                        >  2763          DWORD    BaseOfData;
                                                                                        >  2764          DWORD    BaseOfBss;
                                                                                        >  2765          DWORD    GprMask;
                                                                                        >  2766          DWORD[4] CprMask;
                                                                                        >  2767          DWORD    GpValue;
 2914  }                                                                                |  2768  }
 2915  alias _FILE_SEGMENT_ELEMENT FILE_SEGMENT_ELEMENT;                                <
 2916  alias _FILE_SEGMENT_ELEMENT* PFILE_SEGMENT_ELEMENT;                              <
                                                                                        >  2769  alias IMAGE_ROM_OPTIONAL_HEADER* PIMAGE_ROM_OPTIONAL_HEADER;
 2917                                                                                   |  2770  
 2918  struct _REPARSE_GUID_DATA_BUFFER {                                               <
 2919    DWORD ReparseTag;                                                              <
 2920    WORD ReparseDataLength;                                                        <
 2921    WORD Reserved;                                                                 <
 2922    GUID ReparseGuid;                                                              <
                                                                                        >  2771  align(2):
 2923  struct {                                                                         |  2772  struct IMAGE_DOS_HEADER {
 2924    BYTE DataBuffer[1];                                                            <
                                                                                        >  2773          WORD     e_magic;
                                                                                        >  2774          WORD     e_cblp;
                                                                                        >  2775          WORD     e_cp;
                                                                                        >  2776          WORD     e_crlc;
                                                                                        >  2777          WORD     e_cparhdr;
                                                                                        >  2778          WORD     e_minalloc;
                                                                                        >  2779          WORD     e_maxalloc;
                                                                                        >  2780          WORD     e_ss;
                                                                                        >  2781          WORD     e_sp;
                                                                                        >  2782          WORD     e_csum;
                                                                                        >  2783          WORD     e_ip;
                                                                                        >  2784          WORD     e_cs;
                                                                                        >  2785          WORD     e_lfarlc;
                                                                                        >  2786          WORD     e_ovno;
                                                                                        >  2787          WORD[4] e_res;
                                                                                        >  2788          WORD     e_oemid;
                                                                                        >  2789          WORD     e_oeminfo;
                                                                                        >  2790          WORD[10] e_res2;
                                                                                        >  2791          LONG     e_lfanew;
 2925  }                                                                                |  2792  }
                                                                                        >  2793  alias IMAGE_DOS_HEADER* PIMAGE_DOS_HEADER;
 2926                                                                                   |  2794  
 2927  }                                                                                <
                                                                                        >  2795  struct IMAGE_OS2_HEADER {
                                                                                        >  2796          WORD ne_magic;
                                                                                        >  2797          CHAR ne_ver;
                                                                                        >  2798          CHAR ne_rev;
                                                                                        >  2799          WORD ne_enttab;
 2928  alias _REPARSE_GUID_DATA_BUFFER REPARSE_GUID_DATA_BUFFER;                        |  2800          WORD ne_cbenttab;
 2929  alias _REPARSE_GUID_DATA_BUFFER* PREPARSE_GUID_DATA_BUFFER;                      |  2801          LONG ne_crc;
 2930                                                                                   <
                                                                                        >  2802          WORD ne_flags;
 2931  // #define REPARSE_GUID_DATA_BUFFER_HEADER_SIZE FIELD_OFFSET(REPARSE_GUID_DATA_B |  2803          WORD ne_autodata;
 2932                                                                                   <
                                                                                        >  2804          WORD ne_heap;
 2933  enum : uint { MAXIMUM_REPARSE_DATA_BUFFER_SIZE =  16 * 1024  }                   |  2805          WORD ne_stack;
 2934                                                                                   <
                                                                                        >  2806          LONG ne_csip;
 2935  enum : uint { IO_REPARSE_TAG_RESERVED_ZERO = 0 }                                 |  2807          LONG ne_sssp;
 2936  enum : uint { IO_REPARSE_TAG_RESERVED_ONE = 1 }                                  |  2808          WORD ne_cseg;
                                                                                        >  2809          WORD ne_cmod;
                                                                                        >  2810          WORD ne_cbnrestab;
                                                                                        >  2811          WORD ne_segtab;
                                                                                        >  2812          WORD ne_rsrctab;
                                                                                        >  2813          WORD ne_restab;
                                                                                        >  2814          WORD ne_modtab;
                                                                                        >  2815          WORD ne_imptab;
                                                                                        >  2816          LONG ne_nrestab;
                                                                                        >  2817          WORD ne_cmovent;
                                                                                        >  2818          WORD ne_align;
                                                                                        >  2819          WORD ne_cres;
                                                                                        >  2820          BYTE ne_exetyp;
                                                                                        >  2821          BYTE ne_flagsothers;
                                                                                        >  2822          WORD ne_pretthunks;
                                                                                        >  2823          WORD ne_psegrefbytes;
                                                                                        >  2824          WORD ne_swaparea;
                                                                                        >  2825          WORD ne_expver;
 2937                                                                                   |  2826  }
 2938  alias IO_REPARSE_TAG_RESERVED_ONE IO_REPARSE_TAG_RESERVED_RANGE;                 <
                                                                                        >  2827  alias IMAGE_OS2_HEADER* PIMAGE_OS2_HEADER;
 2939                                                                                   |  2828  
 2940  // #define IsReparseTagMicrosoft(_tag) ( ((_tag) & 0x80000000) )                 <
                                                                                        >  2829  align(4) struct IMAGE_NT_HEADERS32 {
                                                                                        >  2830          DWORD                 Signature;
                                                                                        >  2831          IMAGE_FILE_HEADER     FileHeader;
                                                                                        >  2832          IMAGE_OPTIONAL_HEADER OptionalHeader;
 2941                                                                                   |  2833  }
 2942  // #define IsReparseTagNameSurrogate(_tag) ( ((_tag) & 0x20000000) )             <
                                                                                        >  2834  alias IMAGE_NT_HEADERS32* PIMAGE_NT_HEADERS32;
 2943                                                                                   |  2835  
 2944  enum : uint { IO_REPARSE_TAG_MOUNT_POINT = 0xA0000003 }                          <
 2945  enum : uint { IO_REPARSE_TAG_HSM = 0xC0000004 }                                  <
 2946  enum : uint { IO_REPARSE_TAG_SIS = 0x80000007 }                                  <
 2947  enum : uint { IO_REPARSE_TAG_FILTER_MANAGER = 0x8000000B }                       <
 2948  enum : uint { IO_COMPLETION_MODIFY_STATE = 0x0002 }                              <
 2949  enum : uint { IO_COMPLETION_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x <
 2950  enum : uint { DUPLICATE_CLOSE_SOURCE = 0x00000001 }                              <
 2951  enum : uint { DUPLICATE_SAME_ACCESS = 0x00000002 }                               <
                                                                                        >  2836  align(4) struct IMAGE_NT_HEADERS64 {
                                                                                        >  2837          DWORD                 Signature;
                                                                                        >  2838          IMAGE_FILE_HEADER     FileHeader;
                                                                                        >  2839          IMAGE_OPTIONAL_HEADER OptionalHeader;
 2952                                                                                   |  2840  }
 2953  alias int _SYSTEM_POWER_STATE;                                                   <
 2954  enum {                                                                           <
 2955    PowerSystemUnspecified = 0,                                                    <
 2956    PowerSystemWorking = 1,                                                        <
 2957    PowerSystemSleeping1 = 2,                                                      <
 2958    PowerSystemSleeping2 = 3,                                                      <
 2959    PowerSystemSleeping3 = 4,                                                      <
 2960    PowerSystemHibernate = 5,                                                      <
 2961    PowerSystemShutdown = 6,                                                       <
 2962    PowerSystemMaximum = 7,                                                        <
                                                                                        >  2841  alias IMAGE_NT_HEADERS64* PIMAGE_NT_HEADERS64;
 2963  }                                                                                |  2842  
 2964  alias _SYSTEM_POWER_STATE SYSTEM_POWER_STATE;                                    <
 2965  alias _SYSTEM_POWER_STATE* PSYSTEM_POWER_STATE;                                  <
                                                                                        >  2843  struct IMAGE_ROM_HEADERS {
                                                                                        >  2844          IMAGE_FILE_HEADER         FileHeader;
                                                                                        >  2845          IMAGE_ROM_OPTIONAL_HEADER OptionalHeader;
 2966                                                                                   |  2846  }
 2967  enum : uint { POWER_SYSTEM_MAXIMUM = 7 }                                         <
                                                                                        >  2847  alias IMAGE_ROM_HEADERS* PIMAGE_ROM_HEADERS;
 2968                                                                                   |  2848  
 2969  enum _4 {                                                                        <
 2970    PowerActionNone = 0,                                                           <
 2971    PowerActionReserved,                                                           <
 2972    PowerActionSleep,                                                              <
 2973    PowerActionHibernate,                                                          <
 2974    PowerActionShutdown,                                                           <
 2975    PowerActionShutdownReset,                                                      <
 2976    PowerActionShutdownOff,                                                        <
 2977    PowerActionWarmEject,                                                          |  2849  struct IMAGE_SECTION_HEADER {
 2978  }                                                                                <
                                                                                        >  2850          BYTE[IMAGE_SIZEOF_SHORT_NAME] Name;
 2979  alias _4 POWER_ACTION;                                                           |  2851          union _Misc {
 2980  alias _4* PPOWER_ACTION;                                                         |  2852                  DWORD PhysicalAddress;
                                                                                        >  2853                  DWORD VirtualSize;
 2981                                                                                   |  2854          }
 2982  alias int _DEVICE_POWER_STATE;                                                   <
 2983  enum {                                                                           |  2855          _Misc Misc;
 2984    PowerDeviceUnspecified = 0,                                                    |  2856          DWORD VirtualAddress;
 2985    PowerDeviceD0,                                                                 |  2857          DWORD SizeOfRawData;
 2986    PowerDeviceD1,                                                                 |  2858          DWORD PointerToRawData;
 2987    PowerDeviceD2,                                                                 |  2859          DWORD PointerToRelocations;
 2988    PowerDeviceD3,                                                                 |  2860          DWORD PointerToLinenumbers;
 2989    PowerDeviceMaximum,                                                            |  2861          WORD  NumberOfRelocations;
                                                                                        >  2862          WORD  NumberOfLinenumbers;
                                                                                        >  2863          DWORD Characteristics;
 2990  }                                                                                |  2864  }
 2991  alias _DEVICE_POWER_STATE DEVICE_POWER_STATE;                                    <
 2992  alias _DEVICE_POWER_STATE* PDEVICE_POWER_STATE;                                  <
                                                                                        >  2865  alias IMAGE_SECTION_HEADER* PIMAGE_SECTION_HEADER;
 2993                                                                                   |  2866  
 2994  enum : DWORD { ES_SYSTEM_REQUIRED = 0x00000001 }                                 <
 2995  enum : DWORD { ES_DISPLAY_REQUIRED = 0x00000002 }                                |  2867  struct IMAGE_SYMBOL {
 2996  enum : DWORD { ES_USER_PRESENT = 0x00000004 }                                    |  2868          union _N {
 2997  enum : DWORD { ES_CONTINUOUS = 0x80000000 }                                      |  2869                  BYTE[8]   ShortName;
 2998                                                                                   <
 2999  alias DWORD EXECUTION_STATE;                                                     <
 3000                                                                                   <
 3001  enum _5 {                                                                        <
 3002    LT_DONT_CARE,                                                                  <
 3003    LT_LOWEST_LATENCY,                                                             <
 3004  }                                                                                <
 3005  alias _5 LATENCY_TIME;                                                           <
 3006                                                                                   <
 3007  enum : uint { PDCAP_D0_SUPPORTED = 0x00000001 }                                  <
 3008  enum : uint { PDCAP_D1_SUPPORTED = 0x00000002 }                                  <
 3009  enum : uint { PDCAP_D2_SUPPORTED = 0x00000004 }                                  <
 3010  enum : uint { PDCAP_D3_SUPPORTED = 0x00000008 }                                  <
 3011  enum : uint { PDCAP_WAKE_FROM_D0_SUPPORTED = 0x00000010 }                        <
 3012  enum : uint { PDCAP_WAKE_FROM_D1_SUPPORTED = 0x00000020 }                        <
 3013  enum : uint { PDCAP_WAKE_FROM_D2_SUPPORTED = 0x00000040 }                        <
 3014  enum : uint { PDCAP_WAKE_FROM_D3_SUPPORTED = 0x00000080 }                        <
 3015  enum : uint { PDCAP_WARM_EJECT_SUPPORTED = 0x00000100 }                          <
 3016                                                                                   <
 3017  struct CM_Power_Data_s {                                                         |  2870                  struct Name {
 3018    DWORD PD_Size;                                                                 |  2871                          DWORD Short;
 3019    DEVICE_POWER_STATE PD_MostRecentPowerState;                                    <
 3020    DWORD PD_Capabilities;                                                         <
 3021    DWORD PD_D1Latency;                                                            |  2872                          DWORD Long;
 3022    DWORD PD_D2Latency;                                                            <
 3023    DWORD PD_D3Latency;                                                            <
 3024    DEVICE_POWER_STATE PD_PowerStateMapping[POWER_SYSTEM_MAXIMUM];                 <
 3025    SYSTEM_POWER_STATE PD_DeepestSystemWake;                                       <
 3026  }                                                                                |  2873                  }
 3027  alias CM_Power_Data_s CM_POWER_DATA;                                             <
 3028  alias CM_Power_Data_s* PCM_POWER_DATA;                                           <
                                                                                        >  2874                  PBYTE[2]  LongName;
 3029                                                                                   |  2875          }
 3030  enum _6 {                                                                        <
 3031    SystemPowerPolicyAc,                                                           <
 3032    SystemPowerPolicyDc,                                                           <
 3033    VerifySystemPolicyAc,                                                          <
 3034    VerifySystemPolicyDc,                                                          <
 3035    SystemPowerCapabilities,                                                       <
 3036    SystemBatteryState,                                                            <
 3037    SystemPowerStateHandler,                                                       <
 3038    ProcessorStateHandler,                                                         <
 3039    SystemPowerPolicyCurrent,                                                      <
 3040    AdministratorPowerPolicy,                                                      <
 3041    SystemReserveHiberFile,                                                        <
 3042    ProcessorInformation,                                                          <
 3043    SystemPowerInformation,                                                        <
 3044    ProcessorStateHandler2,                                                        <
 3045    LastWakeTime,                                                                  <
 3046    LastSleepTime,                                                                 <
 3047    SystemExecutionState,                                                          <
 3048    SystemPowerStateNotifyHandler,                                                 <
 3049    ProcessorPowerPolicyAc,                                                        <
 3050    ProcessorPowerPolicyDc,                                                        <
 3051    VerifyProcessorPowerPolicyAc,                                                  <
 3052    VerifyProcessorPowerPolicyDc,                                                  <
 3053    ProcessorPowerPolicyCurrent,                                                   <
 3054  }                                                                                <
 3055  alias _6 POWER_INFORMATION_LEVEL;                                                <
 3056                                                                                   <
 3057  struct _7 {                                                                      <
                                                                                        >  2876          _N    N;
 3058    DWORD Granularity;                                                             |  2877          DWORD Value;
                                                                                        >  2878          SHORT SectionNumber;
 3059    DWORD Capacity;                                                                |  2879          WORD  Type;
                                                                                        >  2880          BYTE  StorageClass;
                                                                                        >  2881          BYTE  NumberOfAuxSymbols;
 3060  }                                                                                |  2882  }
 3061  alias _7 BATTERY_REPORTING_SCALE;                                                <
 3062  alias _7* PBATTERY_REPORTING_SCALE;                                              <
                                                                                        >  2883  alias IMAGE_SYMBOL* PIMAGE_SYMBOL;
 3063                                                                                   |  2884  
                                                                                        >  2885  union IMAGE_AUX_SYMBOL {
 3064  struct _8 {                                                                      |  2886          struct _Sym {
 3065    POWER_ACTION Action;                                                           <
                                                                                        >  2887                  DWORD           TagIndex;
                                                                                        >  2888                  union _Misc {
                                                                                        >  2889                          struct _LnSz {
                                                                                        >  2890                                  WORD    Linenumber;
 3066    DWORD Flags;                                                                   |  2891                                  WORD    Size;
 3067    DWORD EventCode;                                                               <
 3068  }                                                                                |  2892                          }
 3069  alias _8 POWER_ACTION_POLICY;                                                    <
 3070  alias _8* PPOWER_ACTION_POLICY;                                                  <
                                                                                        >  2893                          _LnSz       LnSz;
                                                                                        >  2894                          DWORD       TotalSize;
 3071                                                                                   |  2895                  }
 3072  enum : uint { POWER_ACTION_QUERY_ALLOWED = 0x00000001 }                          <
 3073  enum : uint { POWER_ACTION_UI_ALLOWED = 0x00000002 }                             <
 3074  enum : uint { POWER_ACTION_OVERRIDE_APPS = 0x00000004 }                          <
 3075  enum : uint { POWER_ACTION_LIGHTEST_FIRST = 0x10000000 }                         <
 3076  enum : uint { POWER_ACTION_LOCK_CONSOLE = 0x20000000 }                           <
 3077  enum : uint { POWER_ACTION_DISABLE_WAKES = 0x40000000 }                          <
 3078  enum : uint { POWER_ACTION_CRITICAL = 0x80000000 }                               <
                                                                                        >  2896                  _Misc Misc;
                                                                                        >  2897                  union _FcnAry {
                                                                                        >  2898                          struct _Function {
                                                                                        >  2899                                  DWORD   PointerToLinenumber;
                                                                                        >  2900                                  DWORD   PointerToNextFunction;
 3079                                                                                   |  2901                          }
 3080  enum : uint { POWER_LEVEL_USER_NOTIFY_TEXT = 0x00000001 }                        <
 3081  enum : uint { POWER_LEVEL_USER_NOTIFY_SOUND = 0x00000002 }                       <
 3082  enum : uint { POWER_LEVEL_USER_NOTIFY_EXEC = 0x00000004 }                        <
 3083  enum : uint { POWER_USER_NOTIFY_BUTTON = 0x00000008 }                            <
 3084  enum : uint { POWER_USER_NOTIFY_SHUTDOWN = 0x00000010 }                          <
 3085  enum : uint { POWER_FORCE_TRIGGER_RESET = 0x80000000 }                           <
 3086                                                                                   <
                                                                                        >  2902                          _Function   Function;
 3087  struct _9 {                                                                      |  2903                          struct _Array {
 3088    BOOLEAN Enable;                                                                <
 3089    BYTE Spare[3];                                                                 <
 3090    DWORD BatteryLevel;                                                            <
 3091    POWER_ACTION_POLICY PowerPolicy;                                               <
 3092    SYSTEM_POWER_STATE MinSystemState;                                             <
                                                                                        >  2904                                  WORD[4] Dimension;
 3093  }                                                                                |  2905                          }
 3094  alias _9 SYSTEM_POWER_LEVEL;                                                     <
 3095  alias _9* PSYSTEM_POWER_LEVEL;                                                   <
                                                                                        >  2906                          _Array      Array;
 3096                                                                                   |  2907                  }
 3097  enum : uint { NUM_DISCHARGE_POLICIES = 4 }                                       <
 3098  enum : uint { DISCHARGE_POLICY_CRITICAL = 0 }                                    <
 3099  enum : uint { DISCHARGE_POLICY_LOW = 1 }                                         <
                                                                                        >  2908                  _FcnAry         FcnAry;
                                                                                        >  2909                  WORD            TvIndex;
 3100                                                                                   |  2910          }
 3101  enum : uint { PO_THROTTLE_NONE = 0 }                                             <
 3102  enum : uint { PO_THROTTLE_CONSTANT = 1 }                                         <
 3103  enum : uint { PO_THROTTLE_DEGRADE = 2 }                                          <
 3104  enum : uint { PO_THROTTLE_ADAPTIVE = 3 }                                         <
 3105  enum : uint { PO_THROTTLE_MAXIMUM = 4 }                                          <
 3106                                                                                   <
                                                                                        >  2911          _Sym                Sym;
 3107  struct _SYSTEM_POWER_POLICY {                                                    |  2912          struct _File {
 3108    DWORD Revision;                                                                <
                                                                                        >  2913                  BYTE[IMAGE_SIZEOF_SYMBOL] Name;
 3109                                                                                   |  2914          }
 3110    POWER_ACTION_POLICY PowerButton;                                               <
 3111    POWER_ACTION_POLICY SleepButton;                                               <
 3112    POWER_ACTION_POLICY LidClose;                                                  <
 3113    SYSTEM_POWER_STATE LidOpenWake;                                                <
 3114    DWORD Reserved;                                                                <
 3115    POWER_ACTION_POLICY Idle;                                                      <
 3116    DWORD IdleTimeout;                                                             <
 3117    BYTE IdleSensitivity;                                                          <
 3118                                                                                   <
 3119    BYTE DynamicThrottle;                                                          <
 3120    BYTE Spare2[2];                                                                <
 3121    SYSTEM_POWER_STATE MinSleep;                                                   <
 3122    SYSTEM_POWER_STATE MaxSleep;                                                   <
 3123    SYSTEM_POWER_STATE ReducedLatencySleep;                                        <
 3124    DWORD WinLogonFlags;                                                           <
 3125    DWORD Spare3;                                                                  <
 3126    DWORD DozeS4Timeout;                                                           <
 3127    DWORD BroadcastCapacityResolution;                                             <
 3128    SYSTEM_POWER_LEVEL DischargePolicy[NUM_DISCHARGE_POLICIES];                    <
 3129    DWORD VideoTimeout;                                                            <
 3130    BOOLEAN VideoDimDisplay;                                                       <
 3131    DWORD VideoReserved[3];                                                        <
 3132    DWORD SpindownTimeout;                                                         <
 3133    BOOLEAN OptimizeForPower;                                                      <
 3134    BYTE FanThrottleTolerance;                                                     <
 3135    BYTE ForcedThrottle;                                                           <
 3136    BYTE MinThrottle;                                                              <
 3137    POWER_ACTION_POLICY OverThrottled;                                             <
 3138  }                                                                                <
 3139  alias _SYSTEM_POWER_POLICY SYSTEM_POWER_POLICY;                                  <
 3140  alias _SYSTEM_POWER_POLICY* PSYSTEM_POWER_POLICY;                                <
 3141                                                                                   <
 3142  struct _PROCESSOR_POWER_POLICY_INFO {                                            <
 3143                                                                                   <
 3144    DWORD TimeCheck;                                                               <
 3145    DWORD DemoteLimit;                                                             <
 3146    DWORD PromoteLimit;                                                            <
 3147                                                                                   <
 3148    BYTE DemotePercent;                                                            <
 3149    BYTE PromotePercent;                                                           <
 3150    BYTE Spare[2];                                                                 <
 3151  // DWORD                   AllowDemotion:1;                                      |  2915          _File               File;
                                                                                        >  2916          struct _Section {
 3152  // DWORD                   AllowPromotion:1;                                     |  2917                  DWORD           Length;
                                                                                        >  2918                  WORD            NumberOfRelocations;
                                                                                        >  2919                  WORD            NumberOfLinenumbers;
 3153  // DWORD                   Reserved:30;                                          |  2920                  DWORD           CheckSum;
                                                                                        >  2921                  SHORT           Number;
                                                                                        >  2922                  BYTE            Selection;
 3154                                                                                   |  2923          }
                                                                                        >  2924          _Section            Section;
 3155  }                                                                                |  2925  }
 3156  alias _PROCESSOR_POWER_POLICY_INFO PROCESSOR_POWER_POLICY_INFO;                  <
 3157  alias _PROCESSOR_POWER_POLICY_INFO* PPROCESSOR_POWER_POLICY_INFO;                <
                                                                                        >  2926  alias IMAGE_AUX_SYMBOL* PIMAGE_AUX_SYMBOL;
 3158                                                                                   |  2927  
 3159  struct _PROCESSOR_POWER_POLICY {                                                 <
                                                                                        >  2928  struct IMAGE_COFF_SYMBOLS_HEADER {
                                                                                        >  2929          DWORD NumberOfSymbols;
                                                                                        >  2930          DWORD LvaToFirstSymbol;
                                                                                        >  2931          DWORD NumberOfLinenumbers;
                                                                                        >  2932          DWORD LvaToFirstLinenumber;
                                                                                        >  2933          DWORD RvaToFirstByteOfCode;
 3160    DWORD Revision;                                                                |  2934          DWORD RvaToLastByteOfCode;
                                                                                        >  2935          DWORD RvaToFirstByteOfData;
                                                                                        >  2936          DWORD RvaToLastByteOfData;
 3161                                                                                   |  2937  }
 3162    BYTE DynamicThrottle;                                                          <
 3163    BYTE Spare[3];                                                                 <
 3164    DWORD Reserved;                                                                <
                                                                                        >  2938  alias IMAGE_COFF_SYMBOLS_HEADER* PIMAGE_COFF_SYMBOLS_HEADER;
 3165                                                                                   |  2939  
                                                                                        >  2940  struct IMAGE_RELOCATION {
                                                                                        >  2941          union {
                                                                                        >  2942                  DWORD VirtualAddress;
 3166    DWORD PolicyCount;                                                             |  2943                  DWORD RelocCount;
 3167    PROCESSOR_POWER_POLICY_INFO Policy[3];                                         <
 3168  }                                                                                |  2944          }
 3169  alias _PROCESSOR_POWER_POLICY PROCESSOR_POWER_POLICY;                            <
 3170  alias _PROCESSOR_POWER_POLICY* PPROCESSOR_POWER_POLICY;                          <
                                                                                        >  2945          DWORD     SymbolTableIndex;
                                                                                        >  2946          WORD      Type;
 3171                                                                                   |  2947  }
 3172  struct _ADMINISTRATOR_POWER_POLICY {                                             <
                                                                                        >  2948  alias IMAGE_RELOCATION* PIMAGE_RELOCATION;
 3173                                                                                   |  2949  
 3174    SYSTEM_POWER_STATE MinSleep;                                                   <
 3175    SYSTEM_POWER_STATE MaxSleep;                                                   <
 3176    DWORD MinVideoTimeout;                                                         <
 3177    DWORD MaxVideoTimeout;                                                         <
 3178    DWORD MinSpindownTimeout;                                                      <
 3179    DWORD MaxSpindownTimeout;                                                      <
                                                                                        >  2950  align(4) struct IMAGE_BASE_RELOCATION {
                                                                                        >  2951          DWORD VirtualAddress;
                                                                                        >  2952          DWORD SizeOfBlock;
 3180  }                                                                                |  2953  }
 3181  alias _ADMINISTRATOR_POWER_POLICY ADMINISTRATOR_POWER_POLICY;                    <
 3182  alias _ADMINISTRATOR_POWER_POLICY* PADMINISTRATOR_POWER_POLICY;                  <
                                                                                        >  2954  alias IMAGE_BASE_RELOCATION* PIMAGE_BASE_RELOCATION;
 3183                                                                                   |  2955  
 3184  struct _10 {                                                                     <
 3185                                                                                   <
 3186    BOOLEAN PowerButtonPresent;                                                    <
 3187    BOOLEAN SleepButtonPresent;                                                    <
 3188    BOOLEAN LidPresent;                                                            <
 3189    BOOLEAN SystemS1;                                                              <
 3190    BOOLEAN SystemS2;                                                              <
 3191    BOOLEAN SystemS3;                                                              <
 3192    BOOLEAN SystemS4;                                                              <
 3193    BOOLEAN SystemS5;                                                              <
 3194    BOOLEAN HiberFilePresent;                                                      <
 3195    BOOLEAN FullWake;                                                              <
 3196    BOOLEAN VideoDimPresent;                                                       <
 3197    BOOLEAN ApmPresent;                                                            <
 3198    BOOLEAN UpsPresent;                                                            <
 3199    BOOLEAN ThermalControl;                                                        <
 3200    BOOLEAN ProcessorThrottle;                                                     <
 3201    BYTE ProcessorMinThrottle;                                                     <
 3202    BYTE ProcessorMaxThrottle;                                                     <
 3203    BYTE spare2[4];                                                                <
 3204    BOOLEAN DiskSpinDown;                                                          <
 3205    BYTE spare3[8];                                                                <
 3206    BOOLEAN SystemBatteriesPresent;                                                <
 3207    BOOLEAN BatteriesAreShortTerm;                                                 <
 3208    BATTERY_REPORTING_SCALE BatteryScale[3];                                       <
 3209    SYSTEM_POWER_STATE AcOnLineWake;                                               <
 3210    SYSTEM_POWER_STATE SoftLidWake;                                                <
 3211    SYSTEM_POWER_STATE RtcWake;                                                    <
 3212    SYSTEM_POWER_STATE MinDeviceWakeState;                                         <
 3213    SYSTEM_POWER_STATE DefaultLowLatencyWake;                                      <
 3214  }                                                                                <
 3215  alias _10 SYSTEM_POWER_CAPABILITIES;                                             <
 3216  alias _10* PSYSTEM_POWER_CAPABILITIES;                                           <
 3217                                                                                   <
 3218  struct _11 {                                                                     <
 3219    BOOLEAN AcOnLine;                                                              <
 3220    BOOLEAN BatteryPresent;                                                        <
 3221    BOOLEAN Charging;                                                              <
 3222    BOOLEAN Discharging;                                                           <
 3223    BOOLEAN Spare1[4];                                                             <
 3224    DWORD MaxCapacity;                                                             <
 3225    DWORD RemainingCapacity;                                                       <
                                                                                        >  2956  align(2) struct IMAGE_LINENUMBER {
                                                                                        >  2957          union _Type {
                                                                                        >  2958                  DWORD SymbolTableIndex;
 3226    DWORD Rate;                                                                    |  2959                  DWORD VirtualAddress;
 3227    DWORD EstimatedTime;                                                           <
 3228    DWORD DefaultAlert1;                                                           <
 3229    DWORD DefaultAlert2;                                                           <
 3230  }                                                                                |  2960          }
 3231  alias _11 SYSTEM_BATTERY_STATE;                                                  <
 3232  alias _11* PSYSTEM_BATTERY_STATE;                                                <
                                                                                        >  2961          _Type Type;
                                                                                        >  2962          WORD  Linenumber;
 3233                                                                                   |  2963  }
 3234  // #ifndef _MAC                                                                  <
                                                                                        >  2964  alias IMAGE_LINENUMBER* PIMAGE_LINENUMBER;
 3235                                                                                      2965  
 3236  align(4):                                                                           2966  align(4):
                                                                                        >  2967  struct IMAGE_ARCHIVE_MEMBER_HEADER {
                                                                                        >  2968          BYTE[16] Name;
                                                                                        >  2969          BYTE[12] Date;
                                                                                        >  2970          BYTE[6]  UserID;
                                                                                        >  2971          BYTE[6]  GroupID;
                                                                                        >  2972          BYTE[8]  Mode;
                                                                                        >  2973          BYTE[10] Size;
                                                                                        >  2974          BYTE[2]  EndHeader;
 3237                                                                                   |  2975  }
 3238  enum : uint { IMAGE_DOS_SIGNATURE = 0x5A4D }                                     <
 3239  enum : uint { IMAGE_OS2_SIGNATURE = 0x454E }                                     <
 3240  enum : uint { IMAGE_OS2_SIGNATURE_LE = 0x454C }                                  <
 3241  enum : uint { IMAGE_VXD_SIGNATURE = 0x454C }                                     <
 3242  enum : uint { IMAGE_NT_SIGNATURE = 0x00004550 }                                  <
                                                                                        >  2976  alias IMAGE_ARCHIVE_MEMBER_HEADER* PIMAGE_ARCHIVE_MEMBER_HEADER;
 3243                                                                                   |  2977  
 3244  align(2):                                                                        <
                                                                                        >  2978  struct IMAGE_EXPORT_DIRECTORY {
                                                                                        >  2979          DWORD Characteristics;
                                                                                        >  2980          DWORD TimeDateStamp;
                                                                                        >  2981          WORD  MajorVersion;
                                                                                        >  2982          WORD  MinorVersion;
                                                                                        >  2983          DWORD Name;
                                                                                        >  2984          DWORD Base;
                                                                                        >  2985          DWORD NumberOfFunctions;
                                                                                        >  2986          DWORD NumberOfNames;
                                                                                        >  2987          DWORD AddressOfFunctions;
                                                                                        >  2988          DWORD AddressOfNames;
                                                                                        >  2989          DWORD AddressOfNameOrdinals;
 3245                                                                                   |  2990  }
 3246  // #else                                                                         <
                                                                                        >  2991  alias IMAGE_EXPORT_DIRECTORY* PIMAGE_EXPORT_DIRECTORY;
 3247                                                                                   |  2992  
 3248  // #...                                                                          <
                                                                                        >  2993  struct IMAGE_IMPORT_BY_NAME {
                                                                                        >  2994          WORD Hint;
                                                                                        >  2995          BYTE _Name;
 3249                                                                                   |  2996  
 3250  // #...                                                                          <
 3251  // #...                                                                          <
 3252  // #...                                                                          <
 3253  // #...                                                                          <
 3254  // #endif                                                                        <
                                                                                        >  2997          BYTE* Name() {
                                                                                        >  2998                  return &_Name;
 3255                                                                                   |  2999          }
 3256  struct _IMAGE_DOS_HEADER {                                                       <
 3257    WORD e_magic;                                                                  <
 3258    WORD e_cblp;                                                                   <
                                                                                        >  3000  }
                                                                                        >  3001  alias IMAGE_IMPORT_BY_NAME* PIMAGE_IMPORT_BY_NAME;
                                                                                        >  3002  
                                                                                        >  3003  struct IMAGE_THUNK_DATA32 {
                                                                                        >  3004          union _u1 {
                                                                                        >  3005                  DWORD ForwarderString;
 3259    WORD e_cp;                                                                     |  3006                  DWORD Function;
 3260    WORD e_crlc;                                                                   <
 3261    WORD e_cparhdr;                                                                <
 3262    WORD e_minalloc;                                                               <
 3263    WORD e_maxalloc;                                                               <
 3264    WORD e_ss;                                                                     |  3007                  DWORD Ordinal;
 3265    WORD e_sp;                                                                     <
 3266    WORD e_csum;                                                                   <
 3267    WORD e_ip;                                                                     <
 3268    WORD e_cs;                                                                     <
 3269    WORD e_lfarlc;                                                                 <
 3270    WORD e_ovno;                                                                   <
 3271    WORD e_res[4];                                                                 <
 3272    WORD e_oemid;                                                                  <
 3273    WORD e_oeminfo;                                                                <
 3274    WORD e_res2[10];                                                               <
 3275    LONG e_lfanew;                                                                 <
                                                                                        >  3008                  DWORD AddressOfData;
 3276  }                                                                                |  3009          }
 3277  alias _IMAGE_DOS_HEADER IMAGE_DOS_HEADER;                                        <
 3278  alias _IMAGE_DOS_HEADER* PIMAGE_DOS_HEADER;                                      <
                                                                                        >  3010          _u1 u1;
 3279                                                                                   |  3011  }
 3280  struct _IMAGE_OS2_HEADER {                                                       <
 3281    WORD ne_magic;                                                                 <
 3282    CHAR ne_ver;                                                                   |  3012  alias IMAGE_THUNK_DATA32* PIMAGE_THUNK_DATA32;
 3283    CHAR ne_rev;                                                                   <
                                                                                        >  3013  
 3284    WORD ne_enttab;                                                                |  3014  struct IMAGE_THUNK_DATA64 {
 3285    WORD ne_cbenttab;                                                              |  3015          union _u1 {
 3286    LONG ne_crc;                                                                   |  3016                  ULONGLONG ForwarderString;
 3287    WORD ne_flags;                                                                 |  3017                  ULONGLONG Function;
 3288    WORD ne_autodata;                                                              |  3018                  ULONGLONG Ordinal;
 3289    WORD ne_heap;                                                                  |  3019                  ULONGLONG AddressOfData;
 3290    WORD ne_stack;                                                                 <
                                                                                        >  3020          }
 3291    LONG ne_csip;                                                                  |  3021          _u1 u1;
 3292    LONG ne_sssp;                                                                  <
                                                                                        >  3022  }
 3293    WORD ne_cseg;                                                                  |  3023  alias IMAGE_THUNK_DATA64* PIMAGE_THUNK_DATA64;
 3294    WORD ne_cmod;                                                                  <
                                                                                        >  3024  
 3295    WORD ne_cbnrestab;                                                             |  3025  struct IMAGE_IMPORT_DESCRIPTOR {
 3296    WORD ne_segtab;                                                                |  3026          union {
 3297    WORD ne_rsrctab;                                                               |  3027                  DWORD Characteristics;
 3298    WORD ne_restab;                                                                |  3028                  DWORD OriginalFirstThunk;
 3299    WORD ne_modtab;                                                                <
                                                                                        >  3029          }
 3300    WORD ne_imptab;                                                                |  3030          DWORD TimeDateStamp;
 3301    LONG ne_nrestab;                                                               |  3031          DWORD ForwarderChain;
 3302    WORD ne_cmovent;                                                               |  3032          DWORD Name;
 3303    WORD ne_align;                                                                 |  3033          DWORD FirstThunk;
 3304    WORD ne_cres;                                                                  <
                                                                                        >  3034  }
 3305    BYTE ne_exetyp;                                                                |  3035  alias IMAGE_IMPORT_DESCRIPTOR* PIMAGE_IMPORT_DESCRIPTOR;
 3306    BYTE ne_flagsothers;                                                           <
                                                                                        >  3036  
 3307    WORD ne_pretthunks;                                                            |  3037  struct IMAGE_BOUND_IMPORT_DESCRIPTOR {
 3308    WORD ne_psegrefbytes;                                                          |  3038          DWORD TimeDateStamp;
 3309    WORD ne_swaparea;                                                              |  3039          WORD  OffsetModuleName;
 3310    WORD ne_expver;                                                                |  3040          WORD  NumberOfModuleForwarderRefs;
 3311  }                                                                                |  3041  }
 3312  alias _IMAGE_OS2_HEADER IMAGE_OS2_HEADER;                                        |  3042  alias IMAGE_BOUND_IMPORT_DESCRIPTOR* PIMAGE_BOUND_IMPORT_DESCRIPTOR;
 3313  alias _IMAGE_OS2_HEADER* PIMAGE_OS2_HEADER;                                      <
 3314                                                                                   |  3043  
                                                                                        >  3044  struct IMAGE_BOUND_FORWARDER_REF {
 3315  struct _IMAGE_VXD_HEADER {                                                       |  3045          DWORD TimeDateStamp;
 3316    WORD e32_magic;                                                                |  3046          WORD  OffsetModuleName;
 3317    BYTE e32_border;                                                               <
 3318    BYTE e32_worder;                                                               <
 3319    DWORD e32_level;                                                               <
 3320    WORD e32_cpu;                                                                  |  3047          WORD  Reserved;
                                                                                        >  3048  }
                                                                                        >  3049  alias IMAGE_BOUND_FORWARDER_REF* PIMAGE_BOUND_FORWARDER_REF;
                                                                                        >  3050  
 3321    WORD e32_os;                                                                   |  3051  struct IMAGE_TLS_DIRECTORY32 {
 3322    DWORD e32_ver;                                                                 |  3052          DWORD StartAddressOfRawData;
 3323    DWORD e32_mflags;                                                              |  3053          DWORD EndAddressOfRawData;
 3324    DWORD e32_mpages;                                                              |  3054          DWORD AddressOfIndex;
 3325    DWORD e32_startobj;                                                            |  3055          DWORD AddressOfCallBacks;
 3326    DWORD e32_eip;                                                                 |  3056          DWORD SizeOfZeroFill;
 3327    DWORD e32_stackobj;                                                            |  3057          DWORD Characteristics;
 3328    DWORD e32_esp;                                                                 <
                                                                                        >  3058  }
 3329    DWORD e32_pagesize;                                                            |  3059  alias IMAGE_TLS_DIRECTORY32* PIMAGE_TLS_DIRECTORY32;
 3330    DWORD e32_lastpagesize;                                                        <
                                                                                        >  3060  
 3331    DWORD e32_fixupsize;                                                           |  3061  struct IMAGE_TLS_DIRECTORY64 {
 3332    DWORD e32_fixupsum;                                                            |  3062          ULONGLONG StartAddressOfRawData;
 3333    DWORD e32_ldrsize;                                                             |  3063          ULONGLONG EndAddressOfRawData;
 3334    DWORD e32_ldrsum;                                                              |  3064          ULONGLONG AddressOfIndex;
 3335    DWORD e32_objtab;                                                              |  3065          ULONGLONG AddressOfCallBacks;
 3336    DWORD e32_objcnt;                                                              |  3066          DWORD     SizeOfZeroFill;
 3337    DWORD e32_objmap;                                                              |  3067          DWORD     Characteristics;
 3338    DWORD e32_itermap;                                                             <
                                                                                        >  3068  }
 3339    DWORD e32_rsrctab;                                                             |  3069  alias IMAGE_TLS_DIRECTORY64* PIMAGE_TLS_DIRECTORY64;
 3340    DWORD e32_rsrccnt;                                                             <
                                                                                        >  3070  
 3341    DWORD e32_restab;                                                              |  3071  struct IMAGE_RESOURCE_DIRECTORY {
 3342    DWORD e32_enttab;                                                              |  3072          DWORD Characteristics;
 3343    DWORD e32_dirtab;                                                              |  3073          DWORD TimeDateStamp;
 3344    DWORD e32_dircnt;                                                              |  3074          WORD  MajorVersion;
 3345    DWORD e32_fpagetab;                                                            |  3075          WORD  MinorVersion;
 3346    DWORD e32_frectab;                                                             |  3076          WORD  NumberOfNamedEntries;
 3347    DWORD e32_impmod;                                                              |  3077          WORD  NumberOfIdEntries;
 3348    DWORD e32_impmodcnt;                                                           <
                                                                                        >  3078  }
 3349    DWORD e32_impproc;                                                             |  3079  alias IMAGE_RESOURCE_DIRECTORY* PIMAGE_RESOURCE_DIRECTORY;
 3350    DWORD e32_pagesum;                                                             <
                                                                                        >  3080  
 3351    DWORD e32_datapage;                                                            |  3081  struct IMAGE_RESOURCE_DIRECTORY_ENTRY {
 3352    DWORD e32_preload;                                                             |  3082          union {
 3353    DWORD e32_nrestab;                                                             |  3083                  /+struct {
 3354    DWORD e32_cbnrestab;                                                           |  3084                          DWORD NameOffset:31;
 3355    DWORD e32_nressum;                                                             |  3085                          DWORD NameIsString:1;
                                                                                        >  3086                  }+/
 3356    DWORD e32_autodata;                                                            |  3087                  DWORD Name;
 3357    DWORD e32_debuginfo;                                                           <
 3358    DWORD e32_debuglen;                                                            |  3088                  WORD Id;
                                                                                        >  3089          }
                                                                                        >  3090          DWORD OffsetToData;
                                                                                        >  3091                  /+struct {
                                                                                        >  3092                          DWORD OffsetToDirectory:31;
                                                                                        >  3093                          DWORD DataIsDirectory:1;
                                                                                        >  3094                  }+/
                                                                                        >  3095  
                                                                                        >  3096          uint NameOffset()        { return Name & 0x7FFFFFFF; }
                                                                                        >  3097          bool NameIsString()      { return cast(bool)(Name & 0x80000000); }
                                                                                        >  3098          uint OffsetToDirectory() { return OffsetToData & 0x7FFFFFFF; }
                                                                                        >  3099          bool DataIsDirectory()   { return cast(bool)(OffsetToData & 0x80000000);
                                                                                        >  3100  
                                                                                        >  3101          uint NameOffset(uint n) {
                                                                                        >  3102                  Name = (Name & 0x80000000) | (n & 0x7FFFFFFF);
                                                                                        >  3103                  return n & 0x7FFFFFFF;
                                                                                        >  3104          }
                                                                                        >  3105  
                                                                                        >  3106          bool NameIsString(bool n) {
                                                                                        >  3107                  Name = (Name & 0x7FFFFFFF) | (n << 31); return n;
                                                                                        >  3108          }
                                                                                        >  3109  
                                                                                        >  3110          uint OffsetToDirectory(uint o) {
                                                                                        >  3111                  OffsetToData = (OffsetToData & 0x80000000) | (o & 0x7FFFFFFF);
                                                                                        >  3112                  return o & 0x7FFFFFFF;
                                                                                        >  3113          }
                                                                                        >  3114  
                                                                                        >  3115          bool DataIsDirectory(bool d) {
                                                                                        >  3116                  OffsetToData = (OffsetToData & 0x7FFFFFFF) | (d << 31); return d
                                                                                        >  3117          }
                                                                                        >  3118  }
                                                                                        >  3119  alias IMAGE_RESOURCE_DIRECTORY_ENTRY* PIMAGE_RESOURCE_DIRECTORY_ENTRY;
                                                                                        >  3120  
                                                                                        >  3121  struct IMAGE_RESOURCE_DIRECTORY_STRING {
                                                                                        >  3122          WORD Length;
                                                                                        >  3123          CHAR _NameString;
                                                                                        >  3124  
                                                                                        >  3125          CHAR* NameString() { return &_NameString; }
                                                                                        >  3126  }
                                                                                        >  3127  alias IMAGE_RESOURCE_DIRECTORY_STRING* PIMAGE_RESOURCE_DIRECTORY_STRING;
                                                                                        >  3128  
                                                                                        >  3129  struct IMAGE_RESOURCE_DIR_STRING_U {
                                                                                        >  3130          WORD  Length;
                                                                                        >  3131          WCHAR _NameString;
                                                                                        >  3132  
                                                                                        >  3133          WCHAR* NameString() { return &_NameString; }
                                                                                        >  3134  }
                                                                                        >  3135  alias IMAGE_RESOURCE_DIR_STRING_U* PIMAGE_RESOURCE_DIR_STRING_U;
                                                                                        >  3136  
                                                                                        >  3137  struct IMAGE_RESOURCE_DATA_ENTRY {
                                                                                        >  3138          DWORD OffsetToData;
 3359    DWORD e32_instpreload;                                                         |  3139          DWORD Size;
 3360    DWORD e32_instdemand;                                                          <
 3361    DWORD e32_heapsize;                                                            |  3140          DWORD CodePage;
 3362    BYTE e32_res3[12];                                                             <
 3363    DWORD e32_winresoff;                                                           |  3141          DWORD Reserved;
                                                                                        >  3142  }
                                                                                        >  3143  alias IMAGE_RESOURCE_DATA_ENTRY* PIMAGE_RESOURCE_DATA_ENTRY;
                                                                                        >  3144  
                                                                                        >  3145  struct IMAGE_LOAD_CONFIG_DIRECTORY {
                                                                                        >  3146          DWORD    Characteristics;
                                                                                        >  3147          DWORD    TimeDateStamp;
                                                                                        >  3148          WORD     MajorVersion;
                                                                                        >  3149          WORD     MinorVersion;
                                                                                        >  3150          DWORD    GlobalFlagsClear;
                                                                                        >  3151          DWORD    GlobalFlagsSet;
                                                                                        >  3152          DWORD    CriticalSectionDefaultTimeout;
                                                                                        >  3153          DWORD    DeCommitFreeBlockThreshold;
                                                                                        >  3154          DWORD    DeCommitTotalFreeThreshold;
                                                                                        >  3155          PVOID    LockPrefixTable;
                                                                                        >  3156          DWORD    MaximumAllocationSize;
                                                                                        >  3157          DWORD    VirtualMemoryThreshold;
                                                                                        >  3158          DWORD    ProcessHeapFlags;
                                                                                        >  3159          DWORD[4] Reserved;
                                                                                        >  3160  }
                                                                                        >  3161  alias IMAGE_LOAD_CONFIG_DIRECTORY* PIMAGE_LOAD_CONFIG_DIRECTORY;
                                                                                        >  3162  
                                                                                        >  3163  struct IMAGE_LOAD_CONFIG_DIRECTORY64 {
                                                                                        >  3164          DWORD     Characteristics;
                                                                                        >  3165          DWORD     TimeDateStamp;
                                                                                        >  3166          WORD      MajorVersion;
                                                                                        >  3167          WORD      MinorVersion;
                                                                                        >  3168          DWORD     GlobalFlagsClear;
                                                                                        >  3169          DWORD     GlobalFlagsSet;
                                                                                        >  3170          DWORD     CriticalSectionDefaultTimeout;
                                                                                        >  3171          ULONGLONG DeCommitFreeBlockThreshold;
                                                                                        >  3172          ULONGLONG DeCommitTotalFreeThreshold;
                                                                                        >  3173          ULONGLONG LockPrefixTable;
                                                                                        >  3174          ULONGLONG MaximumAllocationSize;
                                                                                        >  3175          ULONGLONG VirtualMemoryThreshold;
                                                                                        >  3176          ULONGLONG ProcessAffinityMask;
                                                                                        >  3177          DWORD     ProcessHeapFlags;
                                                                                        >  3178          WORD      CSDFlags;
                                                                                        >  3179          WORD      Reserved1;
                                                                                        >  3180          ULONGLONG EditList;
                                                                                        >  3181          DWORD[2]  Reserved;
                                                                                        >  3182  }
                                                                                        >  3183  alias IMAGE_LOAD_CONFIG_DIRECTORY64* PIMAGE_LOAD_CONFIG_DIRECTORY64;
                                                                                        >  3184  
                                                                                        >  3185  struct IMAGE_RUNTIME_FUNCTION_ENTRY {
                                                                                        >  3186          DWORD BeginAddress;
                                                                                        >  3187          DWORD EndAddress;
                                                                                        >  3188          PVOID ExceptionHandler;
                                                                                        >  3189          PVOID HandlerData;
                                                                                        >  3190          DWORD PrologEndAddress;
                                                                                        >  3191  }
                                                                                        >  3192  alias IMAGE_RUNTIME_FUNCTION_ENTRY* PIMAGE_RUNTIME_FUNCTION_ENTRY;
                                                                                        >  3193  
                                                                                        >  3194  struct IMAGE_CE_RUNTIME_FUNCTION_ENTRY {
                                                                                        >  3195          uint      FuncStart;
                                                                                        >  3196          union {
                                                                                        >  3197                  ubyte PrologLen;
                                                                                        >  3198                  uint  _bf;
                                                                                        >  3199          }
                                                                                        >  3200  /+
                                                                                        >  3201          unsigned int FuncLen:22;
                                                                                        >  3202          unsigned int ThirtyTwoBit:1;
                                                                                        >  3203          unsigned int ExceptionFlag:1;
                                                                                        >  3204  +/
                                                                                        >  3205          uint FuncLen()       { return (_bf >> 8) & 0x3FFFFF; }
                                                                                        >  3206          bool ThirtyTwoBit()  { return cast(bool)(_bf & 0x40000000); }
                                                                                        >  3207          bool ExceptionFlag() { return cast(bool)(_bf & 0x80000000); }
                                                                                        >  3208  
                                                                                        >  3209          uint FuncLen(uint f) {
                                                                                        >  3210                  _bf = (_bf & ~0x3FFFFF00) | ((f & 0x3FFFFF) << 8); return f & 0x
                                                                                        >  3211          }
                                                                                        >  3212  
                                                                                        >  3213          bool ThirtyTwoBit(bool t) {
                                                                                        >  3214                  _bf = (_bf & ~0x40000000) | (t << 30); return t;
                                                                                        >  3215          }
                                                                                        >  3216  
                                                                                        >  3217          bool ExceptionFlag(bool e) {
                                                                                        >  3218                  _bf = (_bf & ~0x80000000) | (e << 31); return e;
                                                                                        >  3219          }
                                                                                        >  3220  }
                                                                                        >  3221  alias IMAGE_CE_RUNTIME_FUNCTION_ENTRY* PIMAGE_CE_RUNTIME_FUNCTION_ENTRY;
                                                                                        >  3222  
                                                                                        >  3223  struct IMAGE_DEBUG_DIRECTORY {
                                                                                        >  3224          DWORD Characteristics;
                                                                                        >  3225          DWORD TimeDateStamp;
                                                                                        >  3226          WORD  MajorVersion;
                                                                                        >  3227          WORD  MinorVersion;
 3364    DWORD e32_winreslen;                                                           |  3228          DWORD Type;
                                                                                        >  3229          DWORD SizeOfData;
                                                                                        >  3230          DWORD AddressOfRawData;
                                                                                        >  3231          DWORD PointerToRawData;
                                                                                        >  3232  }
                                                                                        >  3233  alias IMAGE_DEBUG_DIRECTORY* PIMAGE_DEBUG_DIRECTORY;
                                                                                        >  3234  
                                                                                        >  3235  struct FPO_DATA {
                                                                                        >  3236          DWORD  ulOffStart;
                                                                                        >  3237          DWORD  cbProcSize;
                                                                                        >  3238          DWORD  cdwLocals;
                                                                                        >  3239          WORD   cdwParams;
                                                                                        >  3240          ubyte  cbProlog;
                                                                                        >  3241          ubyte  _bf;
                                                                                        >  3242  /+
 3365    WORD e32_devid;                                                                |  3243          WORD cbRegs:3;
 3366    WORD e32_ddkver;                                                               <
                                                                                        >  3244          WORD fHasSEH:1;
                                                                                        >  3245          WORD fUseBP:1;
                                                                                        >  3246          WORD reserved:1;
                                                                                        >  3247          WORD cbFrame:2;
                                                                                        >  3248  +/
                                                                                        >  3249          ubyte cbRegs()  { return cast(ubyte)(_bf & 0x07); }
                                                                                        >  3250          bool fHasSEH()  { return cast(bool)(_bf & 0x08); }
                                                                                        >  3251          bool fUseBP()   { return cast(bool)(_bf & 0x10); }
                                                                                        >  3252          bool reserved() { return cast(bool)(_bf & 0x20); }
                                                                                        >  3253          ubyte cbFrame() { return cast(ubyte)(_bf >> 6); }
 3367  }                                                                                |  3254  
 3368  alias _IMAGE_VXD_HEADER IMAGE_VXD_HEADER;                                        <
 3369  alias _IMAGE_VXD_HEADER* PIMAGE_VXD_HEADER;                                      <
                                                                                        >  3255          ubyte cbRegs(ubyte c) {
                                                                                        >  3256                  _bf = cast(ubyte) ((_bf & ~0x07) | (c & 0x07));
                                                                                        >  3257                  return cast(ubyte)(c & 0x07);
 3370                                                                                   |  3258          }
 3371  // #ifndef _MAC                                                                  <
                                                                                        >  3259  
                                                                                        >  3260          bool fHasSEH(bool f)  { _bf = cast(ubyte)((_bf & ~0x08) | (f << 3)); ret
                                                                                        >  3261          bool fUseBP(bool f)   { _bf = cast(ubyte)((_bf & ~0x10) | (f << 4)); ret
                                                                                        >  3262          bool reserved(bool r) { _bf = cast(ubyte)((_bf & ~0x20) | (r << 5)); ret
                                                                                        >  3263  
                                                                                        >  3264          ubyte cbFrame(ubyte c) {
                                                                                        >  3265                  _bf = cast(ubyte) ((_bf & ~0xC0) | ((c & 0x03) << 6));
                                                                                        >  3266                  return cast(ubyte)(c & 0x03);
                                                                                        >  3267          }
                                                                                        >  3268  }
                                                                                        >  3269  alias FPO_DATA* PFPO_DATA;
                                                                                        >  3270  
                                                                                        >  3271  struct IMAGE_DEBUG_MISC {
                                                                                        >  3272          DWORD   DataType;
                                                                                        >  3273          DWORD   Length;
                                                                                        >  3274          BOOLEAN Unicode;
                                                                                        >  3275          BYTE[3] Reserved;
                                                                                        >  3276          BYTE    _Data;
                                                                                        >  3277  
                                                                                        >  3278          BYTE*   Data() { return &_Data; }
                                                                                        >  3279  }
                                                                                        >  3280  alias IMAGE_DEBUG_MISC* PIMAGE_DEBUG_MISC;
                                                                                        >  3281  
                                                                                        >  3282  struct IMAGE_FUNCTION_ENTRY {
                                                                                        >  3283          DWORD StartingAddress;
                                                                                        >  3284          DWORD EndingAddress;
                                                                                        >  3285          DWORD EndOfPrologue;
                                                                                        >  3286  }
                                                                                        >  3287  alias IMAGE_FUNCTION_ENTRY* PIMAGE_FUNCTION_ENTRY;
                                                                                        >  3288  
                                                                                        >  3289  struct IMAGE_FUNCTION_ENTRY64 {
                                                                                        >  3290          ULONGLONG     StartingAddress;
                                                                                        >  3291          ULONGLONG     EndingAddress;
                                                                                        >  3292          union {
                                                                                        >  3293                  ULONGLONG EndOfPrologue;
                                                                                        >  3294                  ULONGLONG UnwindInfoAddress;
                                                                                        >  3295          }
                                                                                        >  3296  }
                                                                                        >  3297  alias IMAGE_FUNCTION_ENTRY64* PIMAGE_FUNCTION_ENTRY64;
                                                                                        >  3298  
                                                                                        >  3299  struct IMAGE_SEPARATE_DEBUG_HEADER {
                                                                                        >  3300          WORD     Signature;
                                                                                        >  3301          WORD     Flags;
                                                                                        >  3302          WORD     Machine;
                                                                                        >  3303          WORD     Characteristics;
                                                                                        >  3304          DWORD    TimeDateStamp;
                                                                                        >  3305          DWORD    CheckSum;
                                                                                        >  3306          DWORD    ImageBase;
                                                                                        >  3307          DWORD    SizeOfImage;
                                                                                        >  3308          DWORD    NumberOfSections;
                                                                                        >  3309          DWORD    ExportedNamesSize;
                                                                                        >  3310          DWORD    DebugDirectorySize;
                                                                                        >  3311          DWORD    SectionAlignment;
                                                                                        >  3312          DWORD[2] Reserved;
                                                                                        >  3313  }
                                                                                        >  3314  alias IMAGE_SEPARATE_DEBUG_HEADER* PIMAGE_SEPARATE_DEBUG_HEADER;
                                                                                        >  3315  
                                                                                        >  3316  enum SERVICE_NODE_TYPE {
                                                                                        >  3317          DriverType               = SERVICE_KERNEL_DRIVER,
                                                                                        >  3318          FileSystemType           = SERVICE_FILE_SYSTEM_DRIVER,
                                                                                        >  3319          Win32ServiceOwnProcess   = SERVICE_WIN32_OWN_PROCESS,
                                                                                        >  3320          Win32ServiceShareProcess = SERVICE_WIN32_SHARE_PROCESS,
                                                                                        >  3321          AdapterType              = SERVICE_ADAPTER,
                                                                                        >  3322          RecognizerType           = SERVICE_RECOGNIZER_DRIVER
                                                                                        >  3323  }
                                                                                        >  3324  
                                                                                        >  3325  enum SERVICE_LOAD_TYPE {
                                                                                        >  3326          BootLoad    = SERVICE_BOOT_START,
                                                                                        >  3327          SystemLoad  = SERVICE_SYSTEM_START,
                                                                                        >  3328          AutoLoad    = SERVICE_AUTO_START,
                                                                                        >  3329          DemandLoad  = SERVICE_DEMAND_START,
                                                                                        >  3330          DisableLoad = SERVICE_DISABLED
                                                                                        >  3331  }
                                                                                        >  3332  
                                                                                        >  3333  enum SERVICE_ERROR_TYPE {
                                                                                        >  3334          IgnoreError   = SERVICE_ERROR_IGNORE,
                                                                                        >  3335          NormalError   = SERVICE_ERROR_NORMAL,
                                                                                        >  3336          SevereError   = SERVICE_ERROR_SEVERE,
                                                                                        >  3337          CriticalError = SERVICE_ERROR_CRITICAL
                                                                                        >  3338  }
                                                                                        >  3339  alias SERVICE_ERROR_TYPE _CM_ERROR_CONTROL_TYPE;
                                                                                        >  3340  
                                                                                        >  3341  //DAC: According to MSJ, 'UnderTheHood', May 1996, this
                                                                                        >  3342  // structure is not documented in any official Microsoft header file.
                                                                                        >  3343  alias void EXCEPTION_REGISTRATION_RECORD;
                                                                                        >  3344  
 3372  align:                                                                              3345  align:
 3373  // #endif                                                                        |  3346  struct NT_TIB {
                                                                                        >  3347          EXCEPTION_REGISTRATION_RECORD *ExceptionList;
                                                                                        >  3348          PVOID StackBase;
                                                                                        >  3349          PVOID StackLimit;
                                                                                        >  3350          PVOID SubSystemTib;
                                                                                        >  3351          union {
                                                                                        >  3352                  PVOID FiberData;
                                                                                        >  3353                  DWORD Version;
 3374                                                                                   |  3354          }
 3375  struct _IMAGE_FILE_HEADER {                                                      <
                                                                                        >  3355          PVOID ArbitraryUserPointer;
                                                                                        >  3356          NT_TIB *Self;
                                                                                        >  3357  }
                                                                                        >  3358  alias NT_TIB* PNT_TIB;
                                                                                        >  3359  
                                                                                        >  3360  struct REPARSE_DATA_BUFFER {
                                                                                        >  3361          DWORD  ReparseTag;
                                                                                        >  3362          WORD   ReparseDataLength;
                                                                                        >  3363          WORD   Reserved;
                                                                                        >  3364          union {
                                                                                        >  3365                  struct _GenericReparseBuffer {
                                                                                        >  3366                          BYTE  _DataBuffer;
                                                                                        >  3367  
                                                                                        >  3368                          BYTE* DataBuffer() { return &_DataBuffer; }
                                                                                        >  3369                  }
                                                                                        >  3370                  _GenericReparseBuffer GenericReparseBuffer;
                                                                                        >  3371                  struct _SymbolicLinkReparseBuffer {
                                                                                        >  3372                          WORD  SubstituteNameOffset;
                                                                                        >  3373                          WORD  SubstituteNameLength;
                                                                                        >  3374                          WORD  PrintNameOffset;
                                                                                        >  3375                          WORD  PrintNameLength;
                                                                                        >  3376                          // ??? This is in MinGW, but absent in MSDN docs
                                                                                        >  3377                          ULONG Flags;
                                                                                        >  3378                          WCHAR _PathBuffer;
                                                                                        >  3379  
                                                                                        >  3380                          WCHAR* PathBuffer() { return &_PathBuffer; }
                                                                                        >  3381                  }
                                                                                        >  3382                  _SymbolicLinkReparseBuffer SymbolicLinkReparseBuffer;
                                                                                        >  3383                  struct _MountPointReparseBuffer {
                                                                                        >  3384                          WORD  SubstituteNameOffset;
                                                                                        >  3385                          WORD  SubstituteNameLength;
                                                                                        >  3386                          WORD  PrintNameOffset;
                                                                                        >  3387                          WORD  PrintNameLength;
                                                                                        >  3388                          WCHAR _PathBuffer;
                                                                                        >  3389  
                                                                                        >  3390                          WCHAR* PathBuffer() { return &_PathBuffer; }
                                                                                        >  3391                  }
                                                                                        >  3392                  _MountPointReparseBuffer MountPointReparseBuffer;
                                                                                        >  3393          }
                                                                                        >  3394  }
                                                                                        >  3395  alias REPARSE_DATA_BUFFER *PREPARSE_DATA_BUFFER;
                                                                                        >  3396  
                                                                                        >  3397  struct REPARSE_GUID_DATA_BUFFER {
                                                                                        >  3398          DWORD    ReparseTag;
                                                                                        >  3399          WORD     ReparseDataLength;
                                                                                        >  3400          WORD     Reserved;
                                                                                        >  3401          GUID     ReparseGuid;
                                                                                        >  3402          struct _GenericReparseBuffer {
                                                                                        >  3403                  BYTE _DataBuffer;
                                                                                        >  3404  
                                                                                        >  3405                  BYTE* DataBuffer() { return &_DataBuffer; }
                                                                                        >  3406          }
                                                                                        >  3407          _GenericReparseBuffer GenericReparseBuffer;
                                                                                        >  3408  }
                                                                                        >  3409  alias REPARSE_GUID_DATA_BUFFER* PREPARSE_GUID_DATA_BUFFER;
                                                                                        >  3410  
                                                                                        >  3411  const size_t
                                                                                        >  3412          REPARSE_DATA_BUFFER_HEADER_SIZE = REPARSE_DATA_BUFFER.GenericReparseBuff
                                                                                        >  3413          REPARSE_GUID_DATA_BUFFER_HEADER_SIZE = REPARSE_GUID_DATA_BUFFER.GenericR
                                                                                        >  3414          MAXIMUM_REPARSE_DATA_BUFFER_SIZE = 16384;
                                                                                        >  3415  
                                                                                        >  3416  
                                                                                        >  3417  struct REPARSE_POINT_INFORMATION {
                                                                                        >  3418          WORD ReparseDataLength;
                                                                                        >  3419          WORD UnparsedNameLength;
                                                                                        >  3420  }
                                                                                        >  3421  alias REPARSE_POINT_INFORMATION* PREPARSE_POINT_INFORMATION;
                                                                                        >  3422  
                                                                                        >  3423  union FILE_SEGMENT_ELEMENT {
                                                                                        >  3424          PVOID64   Buffer;
                                                                                        >  3425          ULONGLONG Alignment;
                                                                                        >  3426  }
                                                                                        >  3427  alias FILE_SEGMENT_ELEMENT* PFILE_SEGMENT_ELEMENT;
                                                                                        >  3428  
                                                                                        >  3429  // JOBOBJECT_BASIC_LIMIT_INFORMATION.LimitFlags constants
                                                                                        >  3430  const DWORD
                                                                                        >  3431          JOB_OBJECT_LIMIT_WORKINGSET                 = 0x0001,
                                                                                        >  3432          JOB_OBJECT_LIMIT_PROCESS_TIME               = 0x0002,
                                                                                        >  3433          JOB_OBJECT_LIMIT_JOB_TIME                   = 0x0004,
                                                                                        >  3434          JOB_OBJECT_LIMIT_ACTIVE_PROCESS             = 0x0008,
                                                                                        >  3435          JOB_OBJECT_LIMIT_AFFINITY                   = 0x0010,
                                                                                        >  3436          JOB_OBJECT_LIMIT_PRIORITY_CLASS             = 0x0020,
                                                                                        >  3437          JOB_OBJECT_LIMIT_PRESERVE_JOB_TIME          = 0x0040,
                                                                                        >  3438          JOB_OBJECT_LIMIT_SCHEDULING_CLASS           = 0x0080,
                                                                                        >  3439          JOB_OBJECT_LIMIT_PROCESS_MEMORY             = 0x0100,
                                                                                        >  3440          JOB_OBJECT_LIMIT_JOB_MEMORY                 = 0x0200,
                                                                                        >  3441          JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION = 0x0400,
                                                                                        >  3442          JOB_OBJECT_BREAKAWAY_OK                     = 0x0800,
                                                                                        >  3443          JOB_OBJECT_SILENT_BREAKAWAY                 = 0x1000;
                                                                                        >  3444  
                                                                                        >  3445  // JOBOBJECT_BASIC_UI_RESTRICTIONS.UIRestrictionsClass constants
                                                                                        >  3446  const DWORD
                                                                                        >  3447          JOB_OBJECT_UILIMIT_HANDLES          = 0x0001,
                                                                                        >  3448          JOB_OBJECT_UILIMIT_READCLIPBOARD    = 0x0002,
                                                                                        >  3449          JOB_OBJECT_UILIMIT_WRITECLIPBOARD   = 0x0004,
                                                                                        >  3450          JOB_OBJECT_UILIMIT_SYSTEMPARAMETERS = 0x0008,
                                                                                        >  3451          JOB_OBJECT_UILIMIT_DISPLAYSETTINGS  = 0x0010,
                                                                                        >  3452          JOB_OBJECT_UILIMIT_GLOBALATOMS      = 0x0020,
                                                                                        >  3453          JOB_OBJECT_UILIMIT_DESKTOP          = 0x0040,
                                                                                        >  3454          JOB_OBJECT_UILIMIT_EXITWINDOWS      = 0x0080;
                                                                                        >  3455  
                                                                                        >  3456  // JOBOBJECT_SECURITY_LIMIT_INFORMATION.SecurityLimitFlags constants
                                                                                        >  3457  const DWORD
                                                                                        >  3458          JOB_OBJECT_SECURITY_NO_ADMIN         = 0x0001,
                                                                                        >  3459          JOB_OBJECT_SECURITY_RESTRICTED_TOKEN = 0x0002,
                                                                                        >  3460          JOB_OBJECT_SECURITY_ONLY_TOKEN       = 0x0004,
                                                                                        >  3461          JOB_OBJECT_SECURITY_FILTER_TOKENS    = 0x0008;
                                                                                        >  3462  
                                                                                        >  3463  // JOBOBJECT_END_OF_JOB_TIME_INFORMATION.EndOfJobTimeAction constants
                                                                                        >  3464  enum : DWORD {
                                                                                        >  3465          JOB_OBJECT_TERMINATE_AT_END_OF_JOB,
                                                                                        >  3466          JOB_OBJECT_POST_AT_END_OF_JOB
                                                                                        >  3467  }
                                                                                        >  3468  
                                                                                        >  3469  enum : DWORD {
                                                                                        >  3470          JOB_OBJECT_MSG_END_OF_JOB_TIME = 1,
                                                                                        >  3471          JOB_OBJECT_MSG_END_OF_PROCESS_TIME,
                                                                                        >  3472          JOB_OBJECT_MSG_ACTIVE_PROCESS_LIMIT,
                                                                                        >  3473          JOB_OBJECT_MSG_ACTIVE_PROCESS_ZERO,
                                                                                        >  3474          JOB_OBJECT_MSG_NEW_PROCESS,
                                                                                        >  3475          JOB_OBJECT_MSG_EXIT_PROCESS,
                                                                                        >  3476          JOB_OBJECT_MSG_ABNORMAL_EXIT_PROCESS,
                                                                                        >  3477          JOB_OBJECT_MSG_PROCESS_MEMORY_LIMIT,
                                                                                        >  3478          JOB_OBJECT_MSG_JOB_MEMORY_LIMIT
                                                                                        >  3479  }
                                                                                        >  3480  
                                                                                        >  3481  enum JOBOBJECTINFOCLASS {
                                                                                        >  3482          JobObjectBasicAccountingInformation = 1,
                                                                                        >  3483          JobObjectBasicLimitInformation,
                                                                                        >  3484          JobObjectBasicProcessIdList,
                                                                                        >  3485          JobObjectBasicUIRestrictions,
                                                                                        >  3486          JobObjectSecurityLimitInformation,
                                                                                        >  3487          JobObjectEndOfJobTimeInformation,
                                                                                        >  3488          JobObjectAssociateCompletionPortInformation,
                                                                                        >  3489          JobObjectBasicAndIoAccountingInformation,
                                                                                        >  3490          JobObjectExtendedLimitInformation,
                                                                                        >  3491          JobObjectJobSetInformation,
                                                                                        >  3492          MaxJobObjectInfoClass
                                                                                        >  3493  }
                                                                                        >  3494  
                                                                                        >  3495  struct JOBOBJECT_BASIC_ACCOUNTING_INFORMATION {
                                                                                        >  3496          LARGE_INTEGER TotalUserTime;
                                                                                        >  3497          LARGE_INTEGER TotalKernelTime;
                                                                                        >  3498          LARGE_INTEGER ThisPeriodTotalUserTime;
                                                                                        >  3499          LARGE_INTEGER ThisPeriodTotalKernelTime;
                                                                                        >  3500          DWORD         TotalPageFaultCount;
                                                                                        >  3501          DWORD         TotalProcesses;
                                                                                        >  3502          DWORD         ActiveProcesses;
                                                                                        >  3503          DWORD         TotalTerminatedProcesses;
                                                                                        >  3504  }
                                                                                        >  3505  alias JOBOBJECT_BASIC_ACCOUNTING_INFORMATION* PJOBOBJECT_BASIC_ACCOUNTING_INFORM
                                                                                        >  3506  
                                                                                        >  3507  struct JOBOBJECT_BASIC_LIMIT_INFORMATION {
                                                                                        >  3508          LARGE_INTEGER PerProcessUserTimeLimit;
                                                                                        >  3509          LARGE_INTEGER PerJobUserTimeLimit;
                                                                                        >  3510          DWORD         LimitFlags;
                                                                                        >  3511          SIZE_T        MinimumWorkingSetSize;
                                                                                        >  3512          SIZE_T        MaximumWorkingSetSize;
                                                                                        >  3513          DWORD         ActiveProcessLimit;
                                                                                        >  3514          ULONG_PTR     Affinity;
                                                                                        >  3515          DWORD         PriorityClass;
                                                                                        >  3516          DWORD         SchedulingClass;
                                                                                        >  3517  }
                                                                                        >  3518  alias JOBOBJECT_BASIC_LIMIT_INFORMATION* PJOBOBJECT_BASIC_LIMIT_INFORMATION;
                                                                                        >  3519  
                                                                                        >  3520  struct JOBOBJECT_BASIC_PROCESS_ID_LIST {
                                                                                        >  3521          DWORD     NumberOfAssignedProcesses;
                                                                                        >  3522          DWORD     NumberOfProcessIdsInList;
                                                                                        >  3523          ULONG_PTR _ProcessIdList;
                                                                                        >  3524  
                                                                                        >  3525          ULONG_PTR* ProcessIdList() { return &_ProcessIdList; }
                                                                                        >  3526  }
                                                                                        >  3527  alias JOBOBJECT_BASIC_PROCESS_ID_LIST* PJOBOBJECT_BASIC_PROCESS_ID_LIST;
                                                                                        >  3528  
                                                                                        >  3529  struct JOBOBJECT_BASIC_UI_RESTRICTIONS {
                                                                                        >  3530          DWORD UIRestrictionsClass;
                                                                                        >  3531  }
                                                                                        >  3532  alias JOBOBJECT_BASIC_UI_RESTRICTIONS* PJOBOBJECT_BASIC_UI_RESTRICTIONS;
                                                                                        >  3533  
                                                                                        >  3534  struct JOBOBJECT_SECURITY_LIMIT_INFORMATION {
                                                                                        >  3535          DWORD             SecurityLimitFlags;
                                                                                        >  3536          HANDLE            JobToken;
                                                                                        >  3537          PTOKEN_GROUPS     SidsToDisable;
                                                                                        >  3538          PTOKEN_PRIVILEGES PrivilegesToDelete;
                                                                                        >  3539          PTOKEN_GROUPS     RestrictedSids;
                                                                                        >  3540  }
                                                                                        >  3541  alias JOBOBJECT_SECURITY_LIMIT_INFORMATION* PJOBOBJECT_SECURITY_LIMIT_INFORMATIO
                                                                                        >  3542  
                                                                                        >  3543  struct JOBOBJECT_END_OF_JOB_TIME_INFORMATION {
                                                                                        >  3544          DWORD EndOfJobTimeAction;
                                                                                        >  3545  }
                                                                                        >  3546  alias JOBOBJECT_END_OF_JOB_TIME_INFORMATION* PJOBOBJECT_END_OF_JOB_TIME_INFORMAT
                                                                                        >  3547  
                                                                                        >  3548  struct JOBOBJECT_ASSOCIATE_COMPLETION_PORT {
                                                                                        >  3549          PVOID  CompletionKey;
                                                                                        >  3550          HANDLE CompletionPort;
                                                                                        >  3551  }
                                                                                        >  3552  alias JOBOBJECT_ASSOCIATE_COMPLETION_PORT* PJOBOBJECT_ASSOCIATE_COMPLETION_PORT;
                                                                                        >  3553  
                                                                                        >  3554  struct JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION {
                                                                                        >  3555          JOBOBJECT_BASIC_ACCOUNTING_INFORMATION BasicInfo;
                                                                                        >  3556          IO_COUNTERS IoInfo;
                                                                                        >  3557  }
                                                                                        >  3558  alias JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION *PJOBOBJECT_BASIC_AND_IO_ACC
                                                                                        >  3559  
                                                                                        >  3560  struct JOBOBJECT_EXTENDED_LIMIT_INFORMATION {
                                                                                        >  3561          JOBOBJECT_BASIC_LIMIT_INFORMATION BasicLimitInformation;
                                                                                        >  3562          IO_COUNTERS IoInfo;
                                                                                        >  3563          SIZE_T      ProcessMemoryLimit;
                                                                                        >  3564          SIZE_T      JobMemoryLimit;
                                                                                        >  3565          SIZE_T      PeakProcessMemoryUsed;
                                                                                        >  3566          SIZE_T      PeakJobMemoryUsed;
                                                                                        >  3567  }
                                                                                        >  3568  alias JOBOBJECT_EXTENDED_LIMIT_INFORMATION* PJOBOBJECT_EXTENDED_LIMIT_INFORMATIO
                                                                                        >  3569  
                                                                                        >  3570  struct JOBOBJECT_JOBSET_INFORMATION {
 3376    WORD Machine;                                                                  |  3571          DWORD MemberLevel;
 3377    WORD NumberOfSections;                                                         <
                                                                                        >  3572  }
                                                                                        >  3573  alias JOBOBJECT_JOBSET_INFORMATION* PJOBOBJECT_JOBSET_INFORMATION;
                                                                                        >  3574  
                                                                                        >  3575  // MinGW: Making these defines conditional on WINVER will break ddk includes
                                                                                        >  3576  //static if (WINVER >= 0x0500) {
                                                                                        >  3577  
                                                                                        >  3578  const DWORD
                                                                                        >  3579          ES_SYSTEM_REQUIRED  = 0x00000001,
                                                                                        >  3580          ES_DISPLAY_REQUIRED = 0x00000002,
                                                                                        >  3581          ES_USER_PRESENT     = 0x00000004,
                                                                                        >  3582          ES_CONTINUOUS       = 0x80000000;
                                                                                        >  3583  
                                                                                        >  3584  enum LATENCY_TIME {
                                                                                        >  3585          LT_DONT_CARE,
                                                                                        >  3586          LT_LOWEST_LATENCY
                                                                                        >  3587  }
                                                                                        >  3588  alias LATENCY_TIME* PLATENCY_TIME;
                                                                                        >  3589  
                                                                                        >  3590  enum SYSTEM_POWER_STATE {
                                                                                        >  3591          PowerSystemUnspecified,
                                                                                        >  3592          PowerSystemWorking,
                                                                                        >  3593          PowerSystemSleeping1,
                                                                                        >  3594          PowerSystemSleeping2,
                                                                                        >  3595          PowerSystemSleeping3,
                                                                                        >  3596          PowerSystemHibernate,
                                                                                        >  3597          PowerSystemShutdown,
                                                                                        >  3598          PowerSystemMaximum
                                                                                        >  3599  }
                                                                                        >  3600  alias SYSTEM_POWER_STATE* PSYSTEM_POWER_STATE;
                                                                                        >  3601  
                                                                                        >  3602  const POWER_SYSTEM_MAXIMUM = SYSTEM_POWER_STATE.PowerSystemMaximum;
                                                                                        >  3603  
                                                                                        >  3604  enum POWER_ACTION {
                                                                                        >  3605          PowerActionNone,
                                                                                        >  3606          PowerActionReserved,
                                                                                        >  3607          PowerActionSleep,
                                                                                        >  3608          PowerActionHibernate,
                                                                                        >  3609          PowerActionShutdown,
                                                                                        >  3610          PowerActionShutdownReset,
                                                                                        >  3611          PowerActionShutdownOff,
                                                                                        >  3612          PowerActionWarmEject
                                                                                        >  3613  }
                                                                                        >  3614  alias POWER_ACTION* PPOWER_ACTION;
                                                                                        >  3615  
                                                                                        >  3616  static if (WINVER >= 0x600) {
                                                                                        >  3617          enum SYSTEM_POWER_CONDITION {
                                                                                        >  3618                  PoAc,
                                                                                        >  3619                  PoDc,
                                                                                        >  3620                  PoHot,
                                                                                        >  3621                  PoConditionMaximum
                                                                                        >  3622          }
                                                                                        >  3623          alias SYSTEM_POWER_CONDITION* PSYSTEM_POWER_CONDITION;
                                                                                        >  3624  }
                                                                                        >  3625  
                                                                                        >  3626  enum DEVICE_POWER_STATE {
                                                                                        >  3627          PowerDeviceUnspecified,
                                                                                        >  3628          PowerDeviceD0,
                                                                                        >  3629          PowerDeviceD1,
                                                                                        >  3630          PowerDeviceD2,
                                                                                        >  3631          PowerDeviceD3,
                                                                                        >  3632          PowerDeviceMaximum
                                                                                        >  3633  }
                                                                                        >  3634  alias DEVICE_POWER_STATE* PDEVICE_POWER_STATE;
                                                                                        >  3635  
                                                                                        >  3636  align(4):
                                                                                        >  3637  struct BATTERY_REPORTING_SCALE {
                                                                                        >  3638          DWORD Granularity;
 3378    DWORD TimeDateStamp;                                                           |  3639          DWORD Capacity;
 3379    DWORD PointerToSymbolTable;                                                    <
 3380    DWORD NumberOfSymbols;                                                         <
 3381    WORD SizeOfOptionalHeader;                                                     <
 3382    WORD Characteristics;                                                          <
                                                                                        >  3640  }
                                                                                        >  3641  alias BATTERY_REPORTING_SCALE* PBATTERY_REPORTING_SCALE;
                                                                                        >  3642  
                                                                                        >  3643  struct POWER_ACTION_POLICY {
                                                                                        >  3644          POWER_ACTION Action;
                                                                                        >  3645          ULONG        Flags;
                                                                                        >  3646          ULONG        EventCode;
                                                                                        >  3647  }
                                                                                        >  3648  alias POWER_ACTION_POLICY* PPOWER_ACTION_POLICY;
                                                                                        >  3649  
                                                                                        >  3650  // POWER_ACTION_POLICY.Flags constants
                                                                                        >  3651  const ULONG
                                                                                        >  3652          POWER_ACTION_QUERY_ALLOWED  = 0x00000001,
                                                                                        >  3653          POWER_ACTION_UI_ALLOWED     = 0x00000002,
                                                                                        >  3654          POWER_ACTION_OVERRIDE_APPS  = 0x00000004,
                                                                                        >  3655          POWER_ACTION_LIGHTEST_FIRST = 0x10000000,
                                                                                        >  3656          POWER_ACTION_LOCK_CONSOLE   = 0x20000000,
                                                                                        >  3657          POWER_ACTION_DISABLE_WAKES  = 0x40000000,
                                                                                        >  3658          POWER_ACTION_CRITICAL       = 0x80000000;
                                                                                        >  3659  
                                                                                        >  3660  // POWER_ACTION_POLICY.EventCode constants
                                                                                        >  3661  const ULONG
                                                                                        >  3662          POWER_LEVEL_USER_NOTIFY_TEXT  = 0x00000001,
                                                                                        >  3663          POWER_LEVEL_USER_NOTIFY_SOUND = 0x00000002,
                                                                                        >  3664          POWER_LEVEL_USER_NOTIFY_EXEC  = 0x00000004,
                                                                                        >  3665          POWER_USER_NOTIFY_BUTTON      = 0x00000008,
                                                                                        >  3666          POWER_USER_NOTIFY_SHUTDOWN    = 0x00000010,
                                                                                        >  3667          POWER_FORCE_TRIGGER_RESET     = 0x80000000;
                                                                                        >  3668  
                                                                                        >  3669  const size_t
                                                                                        >  3670          DISCHARGE_POLICY_CRITICAL = 0,
                                                                                        >  3671          DISCHARGE_POLICY_LOW      = 1,
                                                                                        >  3672          NUM_DISCHARGE_POLICIES    = 4;
                                                                                        >  3673  
                                                                                        >  3674  enum : BYTE {
                                                                                        >  3675          PO_THROTTLE_NONE,
                                                                                        >  3676          PO_THROTTLE_CONSTANT,
                                                                                        >  3677          PO_THROTTLE_DEGRADE,
                                                                                        >  3678          PO_THROTTLE_ADAPTIVE,
                                                                                        >  3679          PO_THROTTLE_MAXIMUM
                                                                                        >  3680  }
                                                                                        >  3681  
                                                                                        >  3682  struct SYSTEM_POWER_LEVEL {
                                                                                        >  3683          BOOLEAN             Enable;
                                                                                        >  3684          UCHAR[3]            Spare;
                                                                                        >  3685          ULONG               BatteryLevel;
                                                                                        >  3686          POWER_ACTION_POLICY PowerPolicy;
                                                                                        >  3687          SYSTEM_POWER_STATE  MinSystemState;
                                                                                        >  3688  }
                                                                                        >  3689  alias SYSTEM_POWER_LEVEL* PSYSTEM_POWER_LEVEL;
                                                                                        >  3690  
                                                                                        >  3691  struct SYSTEM_POWER_POLICY {
                                                                                        >  3692          ULONG               Revision;
                                                                                        >  3693          POWER_ACTION_POLICY PowerButton;
                                                                                        >  3694          POWER_ACTION_POLICY SleepButton;
                                                                                        >  3695          POWER_ACTION_POLICY LidClose;
                                                                                        >  3696          SYSTEM_POWER_STATE  LidOpenWake;
                                                                                        >  3697          ULONG               Reserved;
                                                                                        >  3698          POWER_ACTION_POLICY Idle;
                                                                                        >  3699          ULONG               IdleTimeout;
                                                                                        >  3700          UCHAR               IdleSensitivity;
                                                                                        >  3701          UCHAR               DynamicThrottle;
                                                                                        >  3702          UCHAR[2]            Spare2;
                                                                                        >  3703          SYSTEM_POWER_STATE  MinSleep;
                                                                                        >  3704          SYSTEM_POWER_STATE  MaxSleep;
                                                                                        >  3705          SYSTEM_POWER_STATE  ReducedLatencySleep;
                                                                                        >  3706          ULONG               WinLogonFlags;
                                                                                        >  3707          ULONG               Spare3;
                                                                                        >  3708          ULONG               DozeS4Timeout;
                                                                                        >  3709          ULONG               BroadcastCapacityResolution;
                                                                                        >  3710          SYSTEM_POWER_LEVEL[NUM_DISCHARGE_POLICIES] DischargePolicy;
                                                                                        >  3711          ULONG               VideoTimeout;
                                                                                        >  3712          BOOLEAN             VideoDimDisplay;
                                                                                        >  3713          ULONG[3]            VideoReserved;
                                                                                        >  3714          ULONG               SpindownTimeout;
                                                                                        >  3715          BOOLEAN             OptimizeForPower;
                                                                                        >  3716          UCHAR               FanThrottleTolerance;
                                                                                        >  3717          UCHAR               ForcedThrottle;
                                                                                        >  3718          UCHAR               MinThrottle;
                                                                                        >  3719          POWER_ACTION_POLICY OverThrottled;
                                                                                        >  3720  }
                                                                                        >  3721  alias SYSTEM_POWER_POLICY* PSYSTEM_POWER_POLICY;
                                                                                        >  3722  
                                                                                        >  3723  struct SYSTEM_POWER_CAPABILITIES {
                                                                                        >  3724          BOOLEAN                    PowerButtonPresent;
                                                                                        >  3725          BOOLEAN                    SleepButtonPresent;
                                                                                        >  3726          BOOLEAN                    LidPresent;
                                                                                        >  3727          BOOLEAN                    SystemS1;
                                                                                        >  3728          BOOLEAN                    SystemS2;
                                                                                        >  3729          BOOLEAN                    SystemS3;
                                                                                        >  3730          BOOLEAN                    SystemS4;
                                                                                        >  3731          BOOLEAN                    SystemS5;
                                                                                        >  3732          BOOLEAN                    HiberFilePresent;
                                                                                        >  3733          BOOLEAN                    FullWake;
                                                                                        >  3734          BOOLEAN                    VideoDimPresent;
                                                                                        >  3735          BOOLEAN                    ApmPresent;
                                                                                        >  3736          BOOLEAN                    UpsPresent;
                                                                                        >  3737          BOOLEAN                    ThermalControl;
                                                                                        >  3738          BOOLEAN                    ProcessorThrottle;
                                                                                        >  3739          UCHAR                      ProcessorMinThrottle;
                                                                                        >  3740          UCHAR                      ProcessorMaxThrottle;
                                                                                        >  3741          UCHAR[4]                   spare2;
                                                                                        >  3742          BOOLEAN                    DiskSpinDown;
                                                                                        >  3743          UCHAR[8]                   spare3;
                                                                                        >  3744          BOOLEAN                    SystemBatteriesPresent;
                                                                                        >  3745          BOOLEAN                    BatteriesAreShortTerm;
                                                                                        >  3746          BATTERY_REPORTING_SCALE[3] BatteryScale;
                                                                                        >  3747          SYSTEM_POWER_STATE         AcOnLineWake;
                                                                                        >  3748          SYSTEM_POWER_STATE         SoftLidWake;
                                                                                        >  3749          SYSTEM_POWER_STATE         RtcWake;
                                                                                        >  3750          SYSTEM_POWER_STATE         MinDeviceWakeState;
                                                                                        >  3751          SYSTEM_POWER_STATE         DefaultLowLatencyWake;
                                                                                        >  3752  }
                                                                                        >  3753  alias SYSTEM_POWER_CAPABILITIES* PSYSTEM_POWER_CAPABILITIES;
                                                                                        >  3754  
                                                                                        >  3755  struct SYSTEM_BATTERY_STATE {
                                                                                        >  3756          BOOLEAN    AcOnLine;
                                                                                        >  3757          BOOLEAN    BatteryPresent;
                                                                                        >  3758          BOOLEAN    Charging;
                                                                                        >  3759          BOOLEAN    Discharging;
                                                                                        >  3760          BOOLEAN[4] Spare1;
                                                                                        >  3761          ULONG      MaxCapacity;
                                                                                        >  3762          ULONG      RemainingCapacity;
                                                                                        >  3763          ULONG      Rate;
                                                                                        >  3764          ULONG      EstimatedTime;
                                                                                        >  3765          ULONG      DefaultAlert1;
                                                                                        >  3766          ULONG      DefaultAlert2;
                                                                                        >  3767  }
                                                                                        >  3768  alias SYSTEM_BATTERY_STATE* PSYSTEM_BATTERY_STATE;
                                                                                        >  3769  
                                                                                        >  3770  enum POWER_INFORMATION_LEVEL {
                                                                                        >  3771          SystemPowerPolicyAc,
                                                                                        >  3772          SystemPowerPolicyDc,
                                                                                        >  3773          VerifySystemPolicyAc,
                                                                                        >  3774          VerifySystemPolicyDc,
                                                                                        >  3775          SystemPowerCapabilities,
                                                                                        >  3776          SystemBatteryState,
                                                                                        >  3777          SystemPowerStateHandler,
                                                                                        >  3778          ProcessorStateHandler,
                                                                                        >  3779          SystemPowerPolicyCurrent,
                                                                                        >  3780          AdministratorPowerPolicy,
                                                                                        >  3781          SystemReserveHiberFile,
                                                                                        >  3782          ProcessorInformation,
                                                                                        >  3783          SystemPowerInformation,
                                                                                        >  3784          ProcessorStateHandler2,
                                                                                        >  3785          LastWakeTime,
                                                                                        >  3786          LastSleepTime,
                                                                                        >  3787          SystemExecutionState,
                                                                                        >  3788          SystemPowerStateNotifyHandler,
                                                                                        >  3789          ProcessorPowerPolicyAc,
                                                                                        >  3790          ProcessorPowerPolicyDc,
                                                                                        >  3791          VerifyProcessorPowerPolicyAc,
                                                                                        >  3792          VerifyProcessorPowerPolicyDc,
                                                                                        >  3793          ProcessorPowerPolicyCurrent
                                                                                        >  3794  }
                                                                                        >  3795  
                                                                                        >  3796  //#if 1 /* (WIN32_WINNT >= 0x0500) */
                                                                                        >  3797  struct SYSTEM_POWER_INFORMATION {
                                                                                        >  3798          ULONG MaxIdlenessAllowed;
                                                                                        >  3799          ULONG Idleness;
                                                                                        >  3800          ULONG TimeRemaining;
                                                                                        >  3801          UCHAR CoolingMode;
                                                                                        >  3802  }
                                                                                        >  3803  alias SYSTEM_POWER_INFORMATION* PSYSTEM_POWER_INFORMATION;
                                                                                        >  3804  //#endif
                                                                                        >  3805  
                                                                                        >  3806  struct PROCESSOR_POWER_POLICY_INFO {
                                                                                        >  3807          ULONG    TimeCheck;
                                                                                        >  3808          ULONG    DemoteLimit;
                                                                                        >  3809          ULONG    PromoteLimit;
                                                                                        >  3810          UCHAR    DemotePercent;
                                                                                        >  3811          UCHAR    PromotePercent;
                                                                                        >  3812          UCHAR[2] Spare;
                                                                                        >  3813          uint     _bf;
                                                                                        >  3814  
                                                                                        >  3815          bool AllowDemotion()  { return cast(bool)(_bf & 1); }
                                                                                        >  3816          bool AllowPromotion() { return cast(bool)(_bf & 2); }
                                                                                        >  3817  
                                                                                        >  3818          bool AllowDemotion(bool a)  { _bf = (_bf & ~1) | a; return a; }
                                                                                        >  3819          bool AllowPromotion(bool a) { _bf = (_bf & ~2) | (a << 1); return a; }
                                                                                        >  3820  /+
                                                                                        >  3821          ULONG  AllowDemotion : 1;
                                                                                        >  3822          ULONG  AllowPromotion : 1;
                                                                                        >  3823          ULONG  Reserved : 30;
                                                                                        >  3824  +/
                                                                                        >  3825  }
                                                                                        >  3826  alias PROCESSOR_POWER_POLICY_INFO* PPROCESSOR_POWER_POLICY_INFO;
                                                                                        >  3827  
                                                                                        >  3828  struct PROCESSOR_POWER_POLICY {
                                                                                        >  3829          ULONG    Revision;
                                                                                        >  3830          UCHAR    DynamicThrottle;
                                                                                        >  3831          UCHAR[3] Spare;
                                                                                        >  3832          ULONG    Reserved;
                                                                                        >  3833          ULONG    PolicyCount;
                                                                                        >  3834          PROCESSOR_POWER_POLICY_INFO[3] Policy;
                                                                                        >  3835  }
                                                                                        >  3836  alias PROCESSOR_POWER_POLICY* PPROCESSOR_POWER_POLICY;
                                                                                        >  3837  
                                                                                        >  3838  struct ADMINISTRATOR_POWER_POLICY {
                                                                                        >  3839          SYSTEM_POWER_STATE MinSleep;
                                                                                        >  3840          SYSTEM_POWER_STATE MaxSleep;
                                                                                        >  3841          ULONG              MinVideoTimeout;
                                                                                        >  3842          ULONG              MaxVideoTimeout;
                                                                                        >  3843          ULONG              MinSpindownTimeout;
                                                                                        >  3844          ULONG              MaxSpindownTimeout;
 3383  }                                                                                   3845  }
 3384  alias _IMAGE_FILE_HEADER IMAGE_FILE_HEADER;                                      |  3846  alias ADMINISTRATOR_POWER_POLICY* PADMINISTRATOR_POWER_POLICY;
 3385  alias _IMAGE_FILE_HEADER* PIMAGE_FILE_HEADER;                                    <
 3386                                                                                   |  3847  
 3387  enum : uint { IMAGE_SIZEOF_FILE_HEADER = 20 }                                    <
                                                                                        >  3848  //}//#endif /* WINVER >= 0x0500 */
 3388                                                                                   |  3849  
                                                                                        >  3850  extern (Windows) {
 3389  enum : uint { IMAGE_FILE_RELOCS_STRIPPED = 0x0001 }                              |  3851          alias void function(PVOID, DWORD, PVOID) PIMAGE_TLS_CALLBACK;
 3390  enum : uint { IMAGE_FILE_EXECUTABLE_IMAGE = 0x0002 }                             <
 3391  enum : uint { IMAGE_FILE_LINE_NUMS_STRIPPED = 0x0004 }                           <
 3392  enum : uint { IMAGE_FILE_LOCAL_SYMS_STRIPPED = 0x0008 }                          <
 3393  enum : uint { IMAGE_FILE_AGGRESIVE_WS_TRIM = 0x0010 }                            <
 3394  enum : uint { IMAGE_FILE_LARGE_ADDRESS_AWARE = 0x0020 }                          <
 3395  enum : uint { IMAGE_FILE_BYTES_REVERSED_LO = 0x0080 }                            <
 3396  enum : uint { IMAGE_FILE_32BIT_MACHINE = 0x0100 }                                <
 3397  enum : uint { IMAGE_FILE_DEBUG_STRIPPED = 0x0200 }                               <
 3398  enum : uint { IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP = 0x0400 }                      <
 3399  enum : uint { IMAGE_FILE_NET_RUN_FROM_SWAP = 0x0800 }                            <
 3400  enum : uint { IMAGE_FILE_SYSTEM = 0x1000 }                                       <
 3401  enum : uint { IMAGE_FILE_DLL = 0x2000 }                                          <
 3402  enum : uint { IMAGE_FILE_UP_SYSTEM_ONLY = 0x4000 }                               <
 3403  enum : uint { IMAGE_FILE_BYTES_REVERSED_HI = 0x8000 }                            <
 3404                                                                                   |  3852  
 3405  enum : uint { IMAGE_FILE_MACHINE_UNKNOWN = 0 }                                   <
 3406  enum : uint { IMAGE_FILE_MACHINE_I386 = 0x014c }                                 <
 3407  enum : uint { IMAGE_FILE_MACHINE_R3000 = 0x0162 }                                <
 3408  enum : uint { IMAGE_FILE_MACHINE_R4000 = 0x0166 }                                <
 3409  enum : uint { IMAGE_FILE_MACHINE_R10000 = 0x0168 }                               <
 3410  enum : uint { IMAGE_FILE_MACHINE_WCEMIPSV2 = 0x0169 }                            <
 3411  enum : uint { IMAGE_FILE_MACHINE_ALPHA = 0x0184 }                                <
 3412  enum : uint { IMAGE_FILE_MACHINE_SH3 = 0x01a2 }                                  <
 3413  enum : uint { IMAGE_FILE_MACHINE_SH3DSP = 0x01a3 }                               <
 3414  enum : uint { IMAGE_FILE_MACHINE_SH3E = 0x01a4 }                                 <
 3415  enum : uint { IMAGE_FILE_MACHINE_SH4 = 0x01a6 }                                  <
 3416  enum : uint { IMAGE_FILE_MACHINE_SH5 = 0x01a8 }                                  <
 3417  enum : uint { IMAGE_FILE_MACHINE_ARM = 0x01c0 }                                  <
 3418  enum : uint { IMAGE_FILE_MACHINE_THUMB = 0x01c2 }                                <
 3419  enum : uint { IMAGE_FILE_MACHINE_AM33 = 0x01d3 }                                 <
 3420  enum : uint { IMAGE_FILE_MACHINE_POWERPC = 0x01F0 }                              <
 3421  enum : uint { IMAGE_FILE_MACHINE_POWERPCFP = 0x01f1 }                            <
 3422  enum : uint { IMAGE_FILE_MACHINE_IA64 = 0x0200 }                                 <
 3423  enum : uint { IMAGE_FILE_MACHINE_MIPS16 = 0x0266 }                               <
 3424  enum : uint { IMAGE_FILE_MACHINE_ALPHA64 = 0x0284 }                              <
 3425  enum : uint { IMAGE_FILE_MACHINE_MIPSFPU = 0x0366 }                              <
 3426  enum : uint { IMAGE_FILE_MACHINE_MIPSFPU16 = 0x0466 }                            <
 3427  alias IMAGE_FILE_MACHINE_ALPHA64 IMAGE_FILE_MACHINE_AXP64;                       <
 3428  enum : uint { IMAGE_FILE_MACHINE_TRICORE = 0x0520 }                              <
 3429  enum : uint { IMAGE_FILE_MACHINE_CEF = 0x0CEF }                                  <
 3430  enum : uint { IMAGE_FILE_MACHINE_EBC = 0x0EBC }                                  <
 3431  enum : uint { IMAGE_FILE_MACHINE_AMD64 = 0x8664 }                                <
 3432  enum : uint { IMAGE_FILE_MACHINE_M32R = 0x9041 }                                 <
 3433  enum : uint { IMAGE_FILE_MACHINE_CEE = 0xC0EE }                                  <
                                                                                        >  3853          static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) {
                                                                                        >  3854                  alias LONG function(PEXCEPTION_POINTERS) PVECTORED_EXCEPTION_HAN
                                                                                        >  3855                  alias void function(PVOID, BOOLEAN) WAITORTIMERCALLBACKFUNC;
 3434                                                                                   |  3856          }
 3435  struct _IMAGE_DATA_DIRECTORY {                                                   <
 3436    DWORD VirtualAddress;                                                          <
 3437    DWORD Size;                                                                    <
 3438  }                                                                                   3857  }
 3439  alias _IMAGE_DATA_DIRECTORY IMAGE_DATA_DIRECTORY;                                <
 3440  alias _IMAGE_DATA_DIRECTORY* PIMAGE_DATA_DIRECTORY;                              <
 3441                                                                                      3858  
 3442  enum : uint { IMAGE_NUMBEROF_DIRECTORY_ENTRIES = 16 }                            |  3859  static if (WINVER >= 0x501) {
                                                                                        >  3860          enum HEAP_INFORMATION_CLASS {
                                                                                        >  3861                  HeapCompatibilityInformation
                                                                                        >  3862          }
                                                                                        >  3863  
                                                                                        >  3864          enum ACTIVATION_CONTEXT_INFO_CLASS {
                                                                                        >  3865                  ActivationContextBasicInformation = 1,
                                                                                        >  3866                  ActivationContextDetailedInformation,
                                                                                        >  3867                  AssemblyDetailedInformationInActivationContext,
                                                                                        >  3868                  FileInformationInAssemblyOfAssemblyInActivationContext
                                                                                        >  3869          }
                                                                                        >  3870  
                                                                                        >  3871          struct ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION {
                                                                                        >  3872                  DWORD         ulFlags;
                                                                                        >  3873                  DWORD         ulEncodedAssemblyIdentityLength;
                                                                                        >  3874                  DWORD         ulManifestPathType;
                                                                                        >  3875                  DWORD         ulManifestPathLength;
                                                                                        >  3876                  LARGE_INTEGER liManifestLastWriteTime;
                                                                                        >  3877                  DWORD         ulPolicyPathType;
                                                                                        >  3878                  DWORD         ulPolicyPathLength;
                                                                                        >  3879                  LARGE_INTEGER liPolicyLastWriteTime;
                                                                                        >  3880                  DWORD         ulMetadataSatelliteRosterIndex;
                                                                                        >  3881                  DWORD         ulManifestVersionMajor;
                                                                                        >  3882                  DWORD         ulManifestVersionMinor;
                                                                                        >  3883                  DWORD         ulPolicyVersionMajor;
                                                                                        >  3884                  DWORD         ulPolicyVersionMinor;
                                                                                        >  3885                  DWORD         ulAssemblyDirectoryNameLength;
                                                                                        >  3886                  PCWSTR        lpAssemblyEncodedAssemblyIdentity;
                                                                                        >  3887                  PCWSTR        lpAssemblyManifestPath;
                                                                                        >  3888                  PCWSTR        lpAssemblyPolicyPath;
                                                                                        >  3889                  PCWSTR        lpAssemblyDirectoryName;
                                                                                        >  3890          }
                                                                                        >  3891          alias ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION*
                                                                                        >  3892            PACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION;
                                                                                        >  3893          alias CPtr!(ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION)
                                                                                        >  3894            PCACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION;
 3443                                                                                      3895  
 3444  struct _IMAGE_OPTIONAL_HEADER {                                                  |  3896          struct ACTIVATION_CONTEXT_DETAILED_INFORMATION {
                                                                                        >  3897                  DWORD  dwFlags;
                                                                                        >  3898                  DWORD  ulFormatVersion;
                                                                                        >  3899                  DWORD  ulAssemblyCount;
                                                                                        >  3900                  DWORD  ulRootManifestPathType;
                                                                                        >  3901                  DWORD  ulRootManifestPathChars;
                                                                                        >  3902                  DWORD  ulRootConfigurationPathType;
                                                                                        >  3903                  DWORD  ulRootConfigurationPathChars;
                                                                                        >  3904                  DWORD  ulAppDirPathType;
                                                                                        >  3905                  DWORD  ulAppDirPathChars;
                                                                                        >  3906                  PCWSTR lpRootManifestPath;
                                                                                        >  3907                  PCWSTR lpRootConfigurationPath;
                                                                                        >  3908                  PCWSTR lpAppDirPath;
                                                                                        >  3909          }
                                                                                        >  3910          alias ACTIVATION_CONTEXT_DETAILED_INFORMATION*
                                                                                        >  3911            PACTIVATION_CONTEXT_DETAILED_INFORMATION;
                                                                                        >  3912          alias CPtr!(ACTIVATION_CONTEXT_DETAILED_INFORMATION)
                                                                                        >  3913            PCACTIVATION_CONTEXT_DETAILED_INFORMATION;
 3445                                                                                      3914  
 3446    WORD Magic;                                                                    |  3915          struct ACTIVATION_CONTEXT_QUERY_INDEX {
 3447    BYTE MajorLinkerVersion;                                                       |  3916                  ULONG ulAssemblyIndex;
 3448    BYTE MinorLinkerVersion;                                                       |  3917                  ULONG ulFileIndexInAssembly;
 3449    DWORD SizeOfCode;                                                              <
                                                                                        >  3918          }
 3450    DWORD SizeOfInitializedData;                                                   |  3919          alias ACTIVATION_CONTEXT_QUERY_INDEX*       PACTIVATION_CONTEXT_QUERY_IN
 3451    DWORD SizeOfUninitializedData;                                                 |  3920          alias CPtr!(ACTIVATION_CONTEXT_QUERY_INDEX) PCACTIVATION_CONTEXT_QUERY_I
 3452    DWORD AddressOfEntryPoint;                                                     <
 3453    DWORD BaseOfCode;                                                              <
 3454    DWORD BaseOfData;                                                              <
 3455                                                                                      3921  
                                                                                        >  3922          struct ASSEMBLY_FILE_DETAILED_INFORMATION {
 3456    DWORD ImageBase;                                                               |  3923                  DWORD  ulFlags;
 3457    DWORD SectionAlignment;                                                        <
 3458    DWORD FileAlignment;                                                           |  3924                  DWORD  ulFilenameLength;
 3459    WORD MajorOperatingSystemVersion;                                              |  3925                  DWORD  ulPathLength;
 3460    WORD MinorOperatingSystemVersion;                                              |  3926                  PCWSTR lpFileName;
 3461    WORD MajorImageVersion;                                                        |  3927                  PCWSTR lpFilePath;
 3462    WORD MinorImageVersion;                                                        <
                                                                                        >  3928          }
 3463    WORD MajorSubsystemVersion;                                                    |  3929          alias ASSEMBLY_FILE_DETAILED_INFORMATION*
 3464    WORD MinorSubsystemVersion;                                                    |  3930            PASSEMBLY_FILE_DETAILED_INFORMATION;
 3465    DWORD Win32VersionValue;                                                       |  3931          alias CPtr!(ASSEMBLY_FILE_DETAILED_INFORMATION)
 3466    DWORD SizeOfImage;                                                             |  3932            PCASSEMBLY_FILE_DETAILED_INFORMATION;
 3467    DWORD SizeOfHeaders;                                                           <
 3468    DWORD CheckSum;                                                                <
 3469    WORD Subsystem;                                                                <
 3470    WORD DllCharacteristics;                                                       <
 3471    DWORD SizeOfStackReserve;                                                      <
 3472    DWORD SizeOfStackCommit;                                                       <
 3473    DWORD SizeOfHeapReserve;                                                       <
 3474    DWORD SizeOfHeapCommit;                                                        <
 3475    DWORD LoaderFlags;                                                             <
 3476    DWORD NumberOfRvaAndSizes;                                                     <
 3477    IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES];          <
 3478  }                                                                                   3933  }
 3479  alias _IMAGE_OPTIONAL_HEADER IMAGE_OPTIONAL_HEADER32;                            <
 3480  alias _IMAGE_OPTIONAL_HEADER* PIMAGE_OPTIONAL_HEADER32;                          <
 3481                                                                                   <
 3482  struct _IMAGE_ROM_OPTIONAL_HEADER {                                              <
 3483    WORD Magic;                                                                    <
 3484    BYTE MajorLinkerVersion;                                                       <
 3485    BYTE MinorLinkerVersion;                                                       <
 3486    DWORD SizeOfCode;                                                              <
 3487    DWORD SizeOfInitializedData;                                                   <
 3488    DWORD SizeOfUninitializedData;                                                 <
 3489    DWORD AddressOfEntryPoint;                                                     <
 3490    DWORD BaseOfCode;                                                              <
 3491    DWORD BaseOfData;                                                              <
 3492    DWORD BaseOfBss;                                                               <
 3493    DWORD GprMask;                                                                 <
 3494    DWORD CprMask[4];                                                              <
 3495    DWORD GpValue;                                                                 <
 3496  }                                                                                <
 3497  alias _IMAGE_ROM_OPTIONAL_HEADER IMAGE_ROM_OPTIONAL_HEADER;                      <
 3498  alias _IMAGE_ROM_OPTIONAL_HEADER* PIMAGE_ROM_OPTIONAL_HEADER;                    <
 3499                                                                                      3934  
 3500  struct _IMAGE_OPTIONAL_HEADER64 {                                                |  3935  version (Unicode) {
 3501    WORD Magic;                                                                    |  3936          alias OSVERSIONINFOW OSVERSIONINFO;
 3502    BYTE MajorLinkerVersion;                                                       |  3937          alias OSVERSIONINFOEXW OSVERSIONINFOEX;
 3503    BYTE MinorLinkerVersion;                                                       |  3938  } else {
 3504    DWORD SizeOfCode;                                                              |  3939          alias OSVERSIONINFOA OSVERSIONINFO;
 3505    DWORD SizeOfInitializedData;                                                   |  3940          alias OSVERSIONINFOEXA OSVERSIONINFOEX;
 3506    DWORD SizeOfUninitializedData;                                                 <
 3507    DWORD AddressOfEntryPoint;                                                     <
 3508    DWORD BaseOfCode;                                                              <
 3509    ULONGLONG ImageBase;                                                           <
 3510    DWORD SectionAlignment;                                                        <
 3511    DWORD FileAlignment;                                                           <
 3512    WORD MajorOperatingSystemVersion;                                              <
 3513    WORD MinorOperatingSystemVersion;                                              <
 3514    WORD MajorImageVersion;                                                        <
 3515    WORD MinorImageVersion;                                                        <
 3516    WORD MajorSubsystemVersion;                                                    <
 3517    WORD MinorSubsystemVersion;                                                    <
 3518    DWORD Win32VersionValue;                                                       <
 3519    DWORD SizeOfImage;                                                             <
 3520    DWORD SizeOfHeaders;                                                           <
 3521    DWORD CheckSum;                                                                <
 3522    WORD Subsystem;                                                                <
 3523    WORD DllCharacteristics;                                                       <
 3524    ULONGLONG SizeOfStackReserve;                                                  <
 3525    ULONGLONG SizeOfStackCommit;                                                   <
 3526    ULONGLONG SizeOfHeapReserve;                                                   <
 3527    ULONGLONG SizeOfHeapCommit;                                                    <
 3528    DWORD LoaderFlags;                                                             <
 3529    DWORD NumberOfRvaAndSizes;                                                     <
 3530    IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES];          <
 3531  }                                                                                   3941  }
 3532  alias _IMAGE_OPTIONAL_HEADER64 IMAGE_OPTIONAL_HEADER64;                          <
 3533  alias _IMAGE_OPTIONAL_HEADER64* PIMAGE_OPTIONAL_HEADER64;                        <
 3534                                                                                      3942  
 3535  enum : uint { IMAGE_SIZEOF_ROM_OPTIONAL_HEADER = 56 }                            |  3943  alias OSVERSIONINFO*   POSVERSIONINFO,   LPOSVERSIONINFO;
 3536  enum : uint { IMAGE_SIZEOF_STD_OPTIONAL_HEADER = 28 }                            |  3944  alias OSVERSIONINFOEX* POSVERSIONINFOEX, LPOSVERSIONINFOEX;
 3537  enum : uint { IMAGE_SIZEOF_NT_OPTIONAL32_HEADER = 224 }                          <
 3538  enum : uint { IMAGE_SIZEOF_NT_OPTIONAL64_HEADER = 240 }                          <
                                                                                        >  3945  
 3539                                                                                      3946  
 3540  enum : uint { IMAGE_NT_OPTIONAL_HDR32_MAGIC = 0x10b }                            |  3947  static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) {
 3541  enum : uint { IMAGE_NT_OPTIONAL_HDR64_MAGIC = 0x20b }                            |  3948          extern (Windows) ULONGLONG VerSetConditionMask(ULONGLONG, DWORD, BYTE);
 3542  enum : uint { IMAGE_ROM_OPTIONAL_HDR_MAGIC = 0x107 }                             <
 3543                                                                                   <
 3544  // #ifdef _WIN64                                                                 <
 3545  // ...                                                                           <
 3546  // #...                                                                          <
 3547  // #...                                                                          <
 3548  // #else                                                                         <
 3549  alias IMAGE_OPTIONAL_HEADER32 IMAGE_OPTIONAL_HEADER;                             <
 3550  alias PIMAGE_OPTIONAL_HEADER32 PIMAGE_OPTIONAL_HEADER;                           <
 3551  alias IMAGE_SIZEOF_NT_OPTIONAL32_HEADER IMAGE_SIZEOF_NT_OPTIONAL_HEADER;         <
 3552  alias IMAGE_NT_OPTIONAL_HDR32_MAGIC IMAGE_NT_OPTIONAL_HDR_MAGIC;                 <
 3553  // #endif                                                                        <
 3554                                                                                   <
 3555  struct _IMAGE_NT_HEADERS64 {                                                     <
 3556    DWORD Signature;                                                               <
 3557    IMAGE_FILE_HEADER FileHeader;                                                  <
 3558    IMAGE_OPTIONAL_HEADER64 OptionalHeader;                                        <
 3559  }                                                                                <
 3560  alias _IMAGE_NT_HEADERS64 IMAGE_NT_HEADERS64;                                    <
 3561  alias _IMAGE_NT_HEADERS64* PIMAGE_NT_HEADERS64;                                  <
 3562                                                                                   <
 3563  struct _IMAGE_NT_HEADERS {                                                       <
 3564    DWORD Signature;                                                               <
 3565    IMAGE_FILE_HEADER FileHeader;                                                  <
 3566    IMAGE_OPTIONAL_HEADER32 OptionalHeader;                                        <
 3567  }                                                                                <
 3568  alias _IMAGE_NT_HEADERS IMAGE_NT_HEADERS32;                                      <
 3569  alias _IMAGE_NT_HEADERS* PIMAGE_NT_HEADERS32;                                    <
 3570                                                                                   <
 3571  struct _IMAGE_ROM_HEADERS {                                                      <
 3572    IMAGE_FILE_HEADER FileHeader;                                                  <
 3573    IMAGE_ROM_OPTIONAL_HEADER OptionalHeader;                                      <
 3574  }                                                                                <
 3575  alias _IMAGE_ROM_HEADERS IMAGE_ROM_HEADERS;                                      <
 3576  alias _IMAGE_ROM_HEADERS* PIMAGE_ROM_HEADERS;                                    <
 3577                                                                                   <
 3578  // #ifdef _WIN64                                                                 <
 3579  // ...                                                                           <
 3580  // #else                                                                         <
 3581  alias IMAGE_NT_HEADERS32 IMAGE_NT_HEADERS;                                       <
 3582  alias PIMAGE_NT_HEADERS32 PIMAGE_NT_HEADERS;                                     <
 3583  // #endif                                                                        <
 3584                                                                                   <
 3585  // #define IMAGE_FIRST_SECTION( ntheader ) ((PIMAGE_SECTION_HEADER) ((ULONG_PTR) <
 3586                                                                                   <
 3587  enum : uint { IMAGE_SUBSYSTEM_UNKNOWN = 0 }                                      <
 3588  enum : uint { IMAGE_SUBSYSTEM_NATIVE = 1 }                                       <
 3589  enum : uint { IMAGE_SUBSYSTEM_WINDOWS_GUI = 2 }                                  <
 3590  enum : uint { IMAGE_SUBSYSTEM_WINDOWS_CUI = 3 }                                  <
 3591  enum : uint { IMAGE_SUBSYSTEM_OS2_CUI = 5 }                                      <
 3592  enum : uint { IMAGE_SUBSYSTEM_POSIX_CUI = 7 }                                    <
 3593  enum : uint { IMAGE_SUBSYSTEM_NATIVE_WINDOWS = 8 }                               <
 3594  enum : uint { IMAGE_SUBSYSTEM_WINDOWS_CE_GUI = 9 }                               <
 3595  enum : uint { IMAGE_SUBSYSTEM_EFI_APPLICATION = 10 }                             <
 3596  enum : uint { IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER = 11 }                     <
 3597  enum : uint { IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER = 12 }                          <
 3598  enum : uint { IMAGE_SUBSYSTEM_EFI_ROM = 13 }                                     <
 3599  enum : uint { IMAGE_SUBSYSTEM_XBOX = 14 }                                        <
 3600                                                                                   <
 3601  enum : uint { IMAGE_DLLCHARACTERISTICS_NO_BIND = 0x0800 }                        <
 3602                                                                                   <
 3603  enum : uint { IMAGE_DLLCHARACTERISTICS_WDM_DRIVER = 0x2000 }                     <
 3604                                                                                   <
 3605  enum : uint { IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE = 0x8000 }          <
 3606                                                                                   <
 3607  enum : uint { IMAGE_DIRECTORY_ENTRY_EXPORT = 0 }                                 <
 3608  enum : uint { IMAGE_DIRECTORY_ENTRY_IMPORT = 1 }                                 <
 3609  enum : uint { IMAGE_DIRECTORY_ENTRY_RESOURCE = 2 }                               <
 3610  enum : uint { IMAGE_DIRECTORY_ENTRY_EXCEPTION = 3 }                              <
 3611  enum : uint { IMAGE_DIRECTORY_ENTRY_SECURITY = 4 }                               <
 3612  enum : uint { IMAGE_DIRECTORY_ENTRY_BASERELOC = 5 }                              <
 3613  enum : uint { IMAGE_DIRECTORY_ENTRY_DEBUG = 6 }                                  <
 3614                                                                                   <
 3615  enum : uint { IMAGE_DIRECTORY_ENTRY_ARCHITECTURE = 7 }                           <
 3616  enum : uint { IMAGE_DIRECTORY_ENTRY_GLOBALPTR = 8 }                              <
 3617  enum : uint { IMAGE_DIRECTORY_ENTRY_TLS = 9 }                                    <
 3618  enum : uint { IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG = 10 }                           <
 3619  enum : uint { IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT = 11 }                          <
 3620  enum : uint { IMAGE_DIRECTORY_ENTRY_IAT = 12 }                                   <
 3621  enum : uint { IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT = 13 }                          <
 3622  enum : uint { IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR = 14 }                        <
 3623                                                                                   <
 3624  struct ANON_OBJECT_HEADER {                                                      <
 3625    WORD Sig1;                                                                     <
 3626    WORD Sig2;                                                                     <
 3627    WORD Version;                                                                  <
 3628    WORD Machine;                                                                  <
 3629    DWORD TimeDateStamp;                                                           <
 3630    CLSID ClassID;                                                                 <
 3631    DWORD SizeOfData;                                                              <
 3632  }                                                                                   3949  }
 3633                                                                                      3950  
 3634  enum : uint { IMAGE_SIZEOF_SHORT_NAME = 8 }                                      |  3951  version (Win64) {
 3635                                                                                   <
 3636  struct _IMAGE_SECTION_HEADER {                                                   <
 3637    BYTE Name[IMAGE_SIZEOF_SHORT_NAME];                                            <
 3638  union {                                                                          <
 3639    DWORD PhysicalAddress;                                                         <
 3640    DWORD VirtualSize;                                                             <
 3641  }                                                                                <
 3642                                                                                   <
 3643    DWORD VirtualAddress;                                                          <
 3644    DWORD SizeOfRawData;                                                           <
 3645    DWORD PointerToRawData;                                                        <
 3646    DWORD PointerToRelocations;                                                    <
 3647    DWORD PointerToLinenumbers;                                                    <
 3648    WORD NumberOfRelocations;                                                      <
 3649    WORD NumberOfLinenumbers;                                                      <
 3650    DWORD Characteristics;                                                         <
 3651  }                                                                                <
 3652  alias _IMAGE_SECTION_HEADER IMAGE_SECTION_HEADER;                                <
 3653  alias _IMAGE_SECTION_HEADER* PIMAGE_SECTION_HEADER;                              <
                                                                                        >  3952          const WORD IMAGE_NT_OPTIONAL_HDR_MAGIC = IMAGE_NT_OPTIONAL_HDR64_MAGIC;
 3654                                                                                      3953  
 3655  enum : uint { IMAGE_SIZEOF_SECTION_HEADER = 40 }                                 |  3954          alias IMAGE_ORDINAL_FLAG64 IMAGE_ORDINAL_FLAG;
 3656                                                                                   <
                                                                                        >  3955          alias IMAGE_SNAP_BY_ORDINAL64 IMAGE_SNAP_BY_ORDINAL;
 3657  enum : uint { IMAGE_SCN_TYPE_NO_PAD = 0x00000008 }                               |  3956          alias IMAGE_ORDINAL64 IMAGE_ORDINAL;
 3658                                                                                   <
                                                                                        >  3957          alias IMAGE_OPTIONAL_HEADER64 IMAGE_OPTIONAL_HEADER;
 3659  enum : uint { IMAGE_SCN_CNT_CODE = 0x00000020 }                                  |  3958          alias IMAGE_NT_HEADERS64 IMAGE_NT_HEADERS;
 3660  enum : uint { IMAGE_SCN_CNT_INITIALIZED_DATA = 0x00000040 }                      |  3959          alias IMAGE_THUNK_DATA64 IMAGE_THUNK_DATA;
 3661  enum : uint { IMAGE_SCN_CNT_UNINITIALIZED_DATA = 0x00000080 }                    |  3960          alias IMAGE_TLS_DIRECTORY64 IMAGE_TLS_DIRECTORY;
 3662                                                                                   <
                                                                                        >  3961  } else {
 3663  enum : uint { IMAGE_SCN_LNK_OTHER = 0x00000100 }                                 |  3962          const WORD IMAGE_NT_OPTIONAL_HDR_MAGIC = IMAGE_NT_OPTIONAL_HDR32_MAGIC;
 3664  enum : uint { IMAGE_SCN_LNK_INFO = 0x00000200 }                                  <
 3665                                                                                   <
 3666  enum : uint { IMAGE_SCN_LNK_REMOVE = 0x00000800 }                                <
 3667  enum : uint { IMAGE_SCN_LNK_COMDAT = 0x00001000 }                                <
 3668                                                                                   <
 3669  enum : uint { IMAGE_SCN_NO_DEFER_SPEC_EXC = 0x00004000 }                         <
 3670  enum : uint { IMAGE_SCN_GPREL = 0x00008000 }                                     <
 3671  enum : uint { IMAGE_SCN_MEM_FARDATA = 0x00008000 }                               <
 3672                                                                                   <
 3673  enum : uint { IMAGE_SCN_MEM_PURGEABLE = 0x00020000 }                             <
 3674  enum : uint { IMAGE_SCN_MEM_16BIT = 0x00020000 }                                 <
 3675  enum : uint { IMAGE_SCN_MEM_LOCKED = 0x00040000 }                                <
 3676  enum : uint { IMAGE_SCN_MEM_PRELOAD = 0x00080000 }                               <
 3677                                                                                   <
 3678  enum : uint { IMAGE_SCN_ALIGN_1BYTES = 0x00100000 }                              <
 3679  enum : uint { IMAGE_SCN_ALIGN_2BYTES = 0x00200000 }                              <
 3680  enum : uint { IMAGE_SCN_ALIGN_4BYTES = 0x00300000 }                              <
 3681  enum : uint { IMAGE_SCN_ALIGN_8BYTES = 0x00400000 }                              <
 3682  enum : uint { IMAGE_SCN_ALIGN_16BYTES = 0x00500000 }                             <
 3683  enum : uint { IMAGE_SCN_ALIGN_32BYTES = 0x00600000 }                             <
 3684  enum : uint { IMAGE_SCN_ALIGN_64BYTES = 0x00700000 }                             <
 3685  enum : uint { IMAGE_SCN_ALIGN_128BYTES = 0x00800000 }                            <
 3686  enum : uint { IMAGE_SCN_ALIGN_256BYTES = 0x00900000 }                            <
 3687  enum : uint { IMAGE_SCN_ALIGN_512BYTES = 0x00A00000 }                            <
 3688  enum : uint { IMAGE_SCN_ALIGN_1024BYTES = 0x00B00000 }                           <
 3689  enum : uint { IMAGE_SCN_ALIGN_2048BYTES = 0x00C00000 }                           <
 3690  enum : uint { IMAGE_SCN_ALIGN_4096BYTES = 0x00D00000 }                           <
 3691  enum : uint { IMAGE_SCN_ALIGN_8192BYTES = 0x00E00000 }                           <
 3692                                                                                   <
 3693  enum : uint { IMAGE_SCN_ALIGN_MASK = 0x00F00000 }                                <
 3694                                                                                   <
 3695  enum : uint { IMAGE_SCN_LNK_NRELOC_OVFL = 0x01000000 }                           <
 3696  enum : uint { IMAGE_SCN_MEM_DISCARDABLE = 0x02000000 }                           <
 3697  enum : uint { IMAGE_SCN_MEM_NOT_CACHED = 0x04000000 }                            <
 3698  enum : uint { IMAGE_SCN_MEM_NOT_PAGED = 0x08000000 }                             <
 3699  enum : uint { IMAGE_SCN_MEM_SHARED = 0x10000000 }                                <
 3700  enum : uint { IMAGE_SCN_MEM_EXECUTE = 0x20000000 }                               <
 3701  enum : uint { IMAGE_SCN_MEM_READ = 0x40000000 }                                  <
 3702  enum : uint { IMAGE_SCN_MEM_WRITE = 0x80000000 }                                 <
 3703                                                                                   <
 3704  enum : uint { IMAGE_SCN_SCALE_INDEX = 0x00000001 }                               <
 3705                                                                                   <
 3706  // #ifndef _MAC                                                                  <
 3707  align(2):                                                                        <
 3708  // #endif                                                                        <
 3709                                                                                   <
 3710  struct _IMAGE_SYMBOL {                                                           <
 3711  union {                                                                          <
 3712    BYTE ShortName[8];                                                             <
 3713  struct {                                                                         <
 3714    DWORD Short;                                                                   <
 3715    DWORD Long;                                                                    <
 3716  }                                                                                <
 3717                                                                                   <
 3718    DWORD LongName[2];                                                             <
 3719  }                                                                                <
 3720                                                                                   <
 3721    DWORD Value;                                                                   <
 3722    SHORT SectionNumber;                                                           <
 3723    WORD Type;                                                                     <
 3724    BYTE StorageClass;                                                             <
 3725    BYTE NumberOfAuxSymbols;                                                       <
 3726  }                                                                                <
 3727  alias _IMAGE_SYMBOL IMAGE_SYMBOL;                                                <
 3728                                                                                   <
 3729  alias IMAGE_SYMBOL* PIMAGE_SYMBOL;                                               <
 3730                                                                                   <
 3731  enum : uint { IMAGE_SIZEOF_SYMBOL = 18 }                                         <
 3732                                                                                      3963  
 3733  enum : SHORT { IMAGE_SYM_UNDEFINED = 0 }                                         |  3964          alias IMAGE_ORDINAL_FLAG32 IMAGE_ORDINAL_FLAG;
 3734  enum : SHORT { IMAGE_SYM_ABSOLUTE = -1 }                                         |  3965          alias IMAGE_ORDINAL32 IMAGE_ORDINAL;
 3735  enum : SHORT { IMAGE_SYM_DEBUG = -2 }                                            |  3966          alias IMAGE_SNAP_BY_ORDINAL32 IMAGE_SNAP_BY_ORDINAL;
 3736  enum : uint { IMAGE_SYM_SECTION_MAX = 0xFEFF }                                   |  3967          alias IMAGE_OPTIONAL_HEADER32 IMAGE_OPTIONAL_HEADER;
 3737                                                                                   <
                                                                                        >  3968          alias IMAGE_NT_HEADERS32 IMAGE_NT_HEADERS;
 3738  enum : uint { IMAGE_SYM_TYPE_NULL = 0x0000 }                                     |  3969          alias IMAGE_THUNK_DATA32 IMAGE_THUNK_DATA;
 3739  enum : uint { IMAGE_SYM_TYPE_VOID = 0x0001 }                                     |  3970          alias IMAGE_TLS_DIRECTORY32 IMAGE_TLS_DIRECTORY;
 3740  enum : uint { IMAGE_SYM_TYPE_CHAR = 0x0002 }                                     <
 3741  enum : uint { IMAGE_SYM_TYPE_SHORT = 0x0003 }                                    <
 3742  enum : uint { IMAGE_SYM_TYPE_INT = 0x0004 }                                      <
 3743  enum : uint { IMAGE_SYM_TYPE_LONG = 0x0005 }                                     <
 3744  enum : uint { IMAGE_SYM_TYPE_FLOAT = 0x0006 }                                    <
 3745  enum : uint { IMAGE_SYM_TYPE_DOUBLE = 0x0007 }                                   <
 3746  enum : uint { IMAGE_SYM_TYPE_STRUCT = 0x0008 }                                   <
 3747  enum : uint { IMAGE_SYM_TYPE_UNION = 0x0009 }                                    <
 3748  enum : uint { IMAGE_SYM_TYPE_ENUM = 0x000A }                                     <
 3749  enum : uint { IMAGE_SYM_TYPE_MOE = 0x000B }                                      <
 3750  enum : uint { IMAGE_SYM_TYPE_BYTE = 0x000C }                                     <
 3751  enum : uint { IMAGE_SYM_TYPE_WORD = 0x000D }                                     <
 3752  enum : uint { IMAGE_SYM_TYPE_UINT = 0x000E }                                     <
 3753  enum : uint { IMAGE_SYM_TYPE_DWORD = 0x000F }                                    <
 3754  enum : uint { IMAGE_SYM_TYPE_PCODE = 0x8000 }                                    <
 3755                                                                                   <
 3756  enum : uint { IMAGE_SYM_DTYPE_NULL = 0 }                                         <
 3757  enum : uint { IMAGE_SYM_DTYPE_POINTER = 1 }                                      <
 3758  enum : uint { IMAGE_SYM_DTYPE_FUNCTION = 2 }                                     <
 3759  enum : uint { IMAGE_SYM_DTYPE_ARRAY = 3 }                                        <
 3760                                                                                   <
 3761  enum : BYTE { IMAGE_SYM_CLASS_END_OF_FUNCTION = cast(BYTE)-1 }                   <
 3762  enum : uint { IMAGE_SYM_CLASS_NULL = 0x0000 }                                    <
 3763  enum : uint { IMAGE_SYM_CLASS_AUTOMATIC = 0x0001 }                               <
 3764  enum : uint { IMAGE_SYM_CLASS_EXTERNAL = 0x0002 }                                <
 3765  enum : uint { IMAGE_SYM_CLASS_STATIC = 0x0003 }                                  <
 3766  enum : uint { IMAGE_SYM_CLASS_REGISTER = 0x0004 }                                <
 3767  enum : uint { IMAGE_SYM_CLASS_EXTERNAL_DEF = 0x0005 }                            <
 3768  enum : uint { IMAGE_SYM_CLASS_LABEL = 0x0006 }                                   <
 3769  enum : uint { IMAGE_SYM_CLASS_UNDEFINED_LABEL = 0x0007 }                         <
 3770  enum : uint { IMAGE_SYM_CLASS_MEMBER_OF_STRUCT = 0x0008 }                        <
 3771  enum : uint { IMAGE_SYM_CLASS_ARGUMENT = 0x0009 }                                <
 3772  enum : uint { IMAGE_SYM_CLASS_STRUCT_TAG = 0x000A }                              <
 3773  enum : uint { IMAGE_SYM_CLASS_MEMBER_OF_UNION = 0x000B }                         <
 3774  enum : uint { IMAGE_SYM_CLASS_UNION_TAG = 0x000C }                               <
 3775  enum : uint { IMAGE_SYM_CLASS_TYPE_DEFINITION = 0x000D }                         <
 3776  enum : uint { IMAGE_SYM_CLASS_UNDEFINED_STATIC = 0x000E }                        <
 3777  enum : uint { IMAGE_SYM_CLASS_ENUM_TAG = 0x000F }                                <
 3778  enum : uint { IMAGE_SYM_CLASS_MEMBER_OF_ENUM = 0x0010 }                          <
 3779  enum : uint { IMAGE_SYM_CLASS_REGISTER_PARAM = 0x0011 }                          <
 3780  enum : uint { IMAGE_SYM_CLASS_BIT_FIELD = 0x0012 }                               <
 3781                                                                                   <
 3782  enum : uint { IMAGE_SYM_CLASS_FAR_EXTERNAL = 0x0044 }                            <
 3783                                                                                   <
 3784  enum : uint { IMAGE_SYM_CLASS_BLOCK = 0x0064 }                                   <
 3785  enum : uint { IMAGE_SYM_CLASS_FUNCTION = 0x0065 }                                <
 3786  enum : uint { IMAGE_SYM_CLASS_END_OF_STRUCT = 0x0066 }                           <
 3787  enum : uint { IMAGE_SYM_CLASS_FILE = 0x0067 }                                    <
 3788                                                                                   <
 3789  enum : uint { IMAGE_SYM_CLASS_SECTION = 0x0068 }                                 <
 3790  enum : uint { IMAGE_SYM_CLASS_WEAK_EXTERNAL = 0x0069 }                           <
 3791                                                                                   <
 3792  enum : uint { IMAGE_SYM_CLASS_CLR_TOKEN = 0x006B }                               <
 3793                                                                                   <
 3794  enum : uint { N_BTMASK = 0x000F }                                                <
 3795  enum : uint { N_TMASK = 0x0030 }                                                 <
 3796  enum : uint { N_TMASK1 = 0x00C0 }                                                <
 3797  enum : uint { N_TMASK2 = 0x00F0 }                                                <
 3798  enum : uint { N_BTSHFT = 4 }                                                     <
 3799  enum : uint { N_TSHIFT = 2 }                                                     <
 3800                                                                                   <
 3801  BYTE BTYPE(BYTE x){ return x & N_BTMASK; }                                       <
 3802                                                                                   <
 3803  // #ifndef ISPTR                                                                 <
 3804  bit ISPTR(uint x){ return (x & N_TMASK) == (IMAGE_SYM_DTYPE_POINTER << N_BTSHFT) <
 3805  // #endif                                                                        <
 3806                                                                                   <
 3807  // #ifndef ISFCN                                                                 <
 3808  bit ISFCN(uint x){ return (x & N_TMASK) == (IMAGE_SYM_DTYPE_FUNCTION << N_BTSHFT <
 3809  // #endif                                                                        <
 3810                                                                                   <
 3811  // #ifndef ISARY                                                                 <
 3812  bit ISARY(uint x){ return (x & N_TMASK) == (IMAGE_SYM_DTYPE_ARRAY << N_BTSHFT);  <
 3813  // #endif                                                                        <
 3814                                                                                   <
 3815  // #ifndef ISTAG                                                                 <
 3816  bit ISTAG(uint x){ return x == IMAGE_SYM_CLASS_STRUCT_TAG || x == IMAGE_SYM_CLAS <
 3817  // #endif                                                                        <
 3818                                                                                   <
 3819  // #ifndef INCREF                                                                <
 3820  uint INCREF(uint x){ return ((x&~N_BTMASK)<<N_TSHIFT)|(IMAGE_SYM_DTYPE_POINTER<< <
 3821  // #endif                                                                        <
 3822  // #ifndef DECREF                                                                <
 3823  uint DECREF(uint x){ return ((x >>> N_TSHIFT) & ~N_BTMASK)|(x & N_BTMASK); }     <
 3824  // #endif                                                                        <
 3825                                                                                   <
 3826  union _IMAGE_AUX_SYMBOL {                                                        <
 3827  struct {                                                                         <
 3828    DWORD TagIndex;                                                                <
 3829  union {                                                                          <
 3830  struct {                                                                         <
 3831    WORD Linenumber;                                                               <
 3832    WORD Size;                                                                     <
 3833  }                                                                                   3971  }
 3834                                                                                      3972  
 3835    DWORD TotalSize;                                                               |  3973  alias IMAGE_OPTIONAL_HEADER* PIMAGE_OPTIONAL_HEADER;
 3836  }                                                                                <
 3837                                                                                   <
                                                                                        >  3974  alias IMAGE_NT_HEADERS* PIMAGE_NT_HEADERS;
                                                                                        >  3975  alias IMAGE_THUNK_DATA* PIMAGE_THUNK_DATA;
 3838  union {                                                                          |  3976  alias IMAGE_TLS_DIRECTORY* PIMAGE_TLS_DIRECTORY;
 3839  struct {                                                                         <
 3840    DWORD PointerToLinenumber;                                                     <
 3841    DWORD PointerToNextFunction;                                                   <
 3842  }                                                                                <
 3843                                                                                   <
 3844  struct {                                                                         <
 3845    WORD Dimension[4];                                                             <
 3846  }                                                                                <
 3847                                                                                   <
 3848  }                                                                                <
 3849                                                                                   <
 3850    WORD TvIndex;                                                                  <
 3851  }                                                                                <
 3852                                                                                   <
 3853  struct {                                                                         <
 3854    BYTE Name[IMAGE_SIZEOF_SYMBOL];                                                <
 3855  }                                                                                <
 3856                                                                                   <
 3857  struct {                                                                         <
 3858    DWORD Length;                                                                  <
 3859    WORD NumberOfRelocations;                                                      <
 3860    WORD NumberOfLinenumbers;                                                      <
 3861    DWORD CheckSum;                                                                <
 3862    SHORT Number;                                                                  <
 3863    BYTE Selection;                                                                <
 3864  }                                                                                <
 3865                                                                                   <
 3866  }                                                                                <
 3867  alias _IMAGE_AUX_SYMBOL IMAGE_AUX_SYMBOL;                                        <
 3868                                                                                   <
 3869  alias IMAGE_AUX_SYMBOL* PIMAGE_AUX_SYMBOL;                                       <
 3870                                                                                   <
 3871  enum : uint { IMAGE_SIZEOF_AUX_SYMBOL = 18 }                                     <
 3872                                                                                   <
 3873  alias int IMAGE_AUX_SYMBOL_TYPE;                                                 <
 3874  enum {                                                                           <
 3875    IMAGE_AUX_SYMBOL_TYPE_TOKEN_DEF = 1,                                           <
 3876  }                                                                                <
 3877                                                                                   <
 3878  align(2):                                                                        <
 3879                                                                                   <
 3880  struct IMAGE_AUX_SYMBOL_TOKEN_DEF {                                              <
 3881    BYTE bAuxType;                                                                 <
 3882    BYTE bReserved;                                                                <
 3883    DWORD SymbolTableIndex;                                                        <
 3884    BYTE rgbReserved[12];                                                          <
 3885  }                                                                                <
 3886                                                                                   <
 3887  alias IMAGE_AUX_SYMBOL_TOKEN_DEF* PIMAGE_AUX_SYMBOL_TOKEN_DEF;                   <
 3888                                                                                   <
 3889  align:                                                                           <
 3890                                                                                   <
 3891  enum : uint { IMAGE_COMDAT_SELECT_NODUPLICATES = 1 }                             <
 3892  enum : uint { IMAGE_COMDAT_SELECT_ANY = 2 }                                      <
 3893  enum : uint { IMAGE_COMDAT_SELECT_SAME_SIZE = 3 }                                <
 3894  enum : uint { IMAGE_COMDAT_SELECT_EXACT_MATCH = 4 }                              <
 3895  enum : uint { IMAGE_COMDAT_SELECT_ASSOCIATIVE = 5 }                              <
 3896  enum : uint { IMAGE_COMDAT_SELECT_LARGEST = 6 }                                  <
 3897  enum : uint { IMAGE_COMDAT_SELECT_NEWEST = 7 }                                   <
 3898                                                                                   <
 3899  enum : uint { IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY = 1 }                           <
 3900  enum : uint { IMAGE_WEAK_EXTERN_SEARCH_LIBRARY = 2 }                             <
 3901  enum : uint { IMAGE_WEAK_EXTERN_SEARCH_ALIAS = 3 }                               <
 3902                                                                                   <
 3903  struct _IMAGE_RELOCATION {                                                       <
 3904  union {                                                                          <
 3905    DWORD VirtualAddress;                                                          <
 3906    DWORD RelocCount;                                                              <
 3907  }                                                                                <
 3908                                                                                   <
 3909    DWORD SymbolTableIndex;                                                        <
 3910    WORD Type;                                                                     <
 3911  }                                                                                <
 3912  alias _IMAGE_RELOCATION IMAGE_RELOCATION;                                        <
 3913                                                                                   <
 3914  alias IMAGE_RELOCATION* PIMAGE_RELOCATION;                                       <
 3915                                                                                   <
 3916  enum : uint { IMAGE_SIZEOF_RELOCATION = 10 }                                     <
 3917                                                                                   <
 3918  enum : uint { IMAGE_REL_I386_ABSOLUTE = 0x0000 }                                 <
 3919  enum : uint { IMAGE_REL_I386_DIR16 = 0x0001 }                                    <
 3920  enum : uint { IMAGE_REL_I386_REL16 = 0x0002 }                                    <
 3921  enum : uint { IMAGE_REL_I386_DIR32 = 0x0006 }                                    <
 3922  enum : uint { IMAGE_REL_I386_DIR32NB = 0x0007 }                                  <
 3923  enum : uint { IMAGE_REL_I386_SEG12 = 0x0009 }                                    <
 3924  enum : uint { IMAGE_REL_I386_SECTION = 0x000A }                                  <
 3925  enum : uint { IMAGE_REL_I386_SECREL = 0x000B }                                   <
 3926  enum : uint { IMAGE_REL_I386_TOKEN = 0x000C }                                    <
 3927  enum : uint { IMAGE_REL_I386_SECREL7 = 0x000D }                                  <
 3928  enum : uint { IMAGE_REL_I386_REL32 = 0x0014 }                                    <
 3929                                                                                   <
 3930  enum : uint { IMAGE_REL_MIPS_ABSOLUTE = 0x0000 }                                 <
 3931  enum : uint { IMAGE_REL_MIPS_REFHALF = 0x0001 }                                  <
 3932  enum : uint { IMAGE_REL_MIPS_REFWORD = 0x0002 }                                  <
 3933  enum : uint { IMAGE_REL_MIPS_JMPADDR = 0x0003 }                                  <
 3934  enum : uint { IMAGE_REL_MIPS_REFHI = 0x0004 }                                    <
 3935  enum : uint { IMAGE_REL_MIPS_REFLO = 0x0005 }                                    <
 3936  enum : uint { IMAGE_REL_MIPS_GPREL = 0x0006 }                                    <
 3937  enum : uint { IMAGE_REL_MIPS_LITERAL = 0x0007 }                                  <
 3938  enum : uint { IMAGE_REL_MIPS_SECTION = 0x000A }                                  <
 3939  enum : uint { IMAGE_REL_MIPS_SECREL = 0x000B }                                   <
 3940  enum : uint { IMAGE_REL_MIPS_SECRELLO = 0x000C }                                 <
 3941  enum : uint { IMAGE_REL_MIPS_SECRELHI = 0x000D }                                 <
 3942  enum : uint { IMAGE_REL_MIPS_TOKEN = 0x000E }                                    <
 3943  enum : uint { IMAGE_REL_MIPS_JMPADDR16 = 0x0010 }                                <
 3944  enum : uint { IMAGE_REL_MIPS_REFWORDNB = 0x0022 }                                <
 3945  enum : uint { IMAGE_REL_MIPS_PAIR = 0x0025 }                                     <
 3946                                                                                   <
 3947  enum : uint { IMAGE_REL_ALPHA_ABSOLUTE = 0x0000 }                                <
 3948  enum : uint { IMAGE_REL_ALPHA_REFLONG = 0x0001 }                                 <
 3949  enum : uint { IMAGE_REL_ALPHA_REFQUAD = 0x0002 }                                 <
 3950  enum : uint { IMAGE_REL_ALPHA_GPREL32 = 0x0003 }                                 <
 3951  enum : uint { IMAGE_REL_ALPHA_LITERAL = 0x0004 }                                 <
 3952  enum : uint { IMAGE_REL_ALPHA_LITUSE = 0x0005 }                                  <
 3953  enum : uint { IMAGE_REL_ALPHA_GPDISP = 0x0006 }                                  <
 3954  enum : uint { IMAGE_REL_ALPHA_BRADDR = 0x0007 }                                  <
 3955  enum : uint { IMAGE_REL_ALPHA_HINT = 0x0008 }                                    <
 3956  enum : uint { IMAGE_REL_ALPHA_INLINE_REFLONG = 0x0009 }                          <
 3957  enum : uint { IMAGE_REL_ALPHA_REFHI = 0x000A }                                   <
 3958  enum : uint { IMAGE_REL_ALPHA_REFLO = 0x000B }                                   <
 3959  enum : uint { IMAGE_REL_ALPHA_PAIR = 0x000C }                                    <
 3960  enum : uint { IMAGE_REL_ALPHA_MATCH = 0x000D }                                   <
 3961  enum : uint { IMAGE_REL_ALPHA_SECTION = 0x000E }                                 <
 3962  enum : uint { IMAGE_REL_ALPHA_SECREL = 0x000F }                                  <
 3963  enum : uint { IMAGE_REL_ALPHA_REFLONGNB = 0x0010 }                               <
 3964  enum : uint { IMAGE_REL_ALPHA_SECRELLO = 0x0011 }                                <
 3965  enum : uint { IMAGE_REL_ALPHA_SECRELHI = 0x0012 }                                <
 3966  enum : uint { IMAGE_REL_ALPHA_REFQ3 = 0x0013 }                                   <
 3967  enum : uint { IMAGE_REL_ALPHA_REFQ2 = 0x0014 }                                   <
 3968  enum : uint { IMAGE_REL_ALPHA_REFQ1 = 0x0015 }                                   <
 3969  enum : uint { IMAGE_REL_ALPHA_GPRELLO = 0x0016 }                                 <
 3970  enum : uint { IMAGE_REL_ALPHA_GPRELHI = 0x0017 }                                 <
 3971                                                                                   <
 3972  enum : uint { IMAGE_REL_PPC_ABSOLUTE = 0x0000 }                                  <
 3973  enum : uint { IMAGE_REL_PPC_ADDR64 = 0x0001 }                                    <
 3974  enum : uint { IMAGE_REL_PPC_ADDR32 = 0x0002 }                                    <
 3975  enum : uint { IMAGE_REL_PPC_ADDR24 = 0x0003 }                                    <
 3976  enum : uint { IMAGE_REL_PPC_ADDR16 = 0x0004 }                                    <
 3977  enum : uint { IMAGE_REL_PPC_ADDR14 = 0x0005 }                                    <
 3978  enum : uint { IMAGE_REL_PPC_REL24 = 0x0006 }                                     <
 3979  enum : uint { IMAGE_REL_PPC_REL14 = 0x0007 }                                     <
 3980  enum : uint { IMAGE_REL_PPC_TOCREL16 = 0x0008 }                                  <
 3981  enum : uint { IMAGE_REL_PPC_TOCREL14 = 0x0009 }                                  <
 3982                                                                                   <
 3983  enum : uint { IMAGE_REL_PPC_ADDR32NB = 0x000A }                                  <
 3984  enum : uint { IMAGE_REL_PPC_SECREL = 0x000B }                                    <
 3985  enum : uint { IMAGE_REL_PPC_SECTION = 0x000C }                                   <
 3986  enum : uint { IMAGE_REL_PPC_IFGLUE = 0x000D }                                    <
 3987  enum : uint { IMAGE_REL_PPC_IMGLUE = 0x000E }                                    <
 3988  enum : uint { IMAGE_REL_PPC_SECREL16 = 0x000F }                                  <
 3989  enum : uint { IMAGE_REL_PPC_REFHI = 0x0010 }                                     <
 3990  enum : uint { IMAGE_REL_PPC_REFLO = 0x0011 }                                     <
 3991  enum : uint { IMAGE_REL_PPC_PAIR = 0x0012 }                                      <
 3992  enum : uint { IMAGE_REL_PPC_SECRELLO = 0x0013 }                                  <
 3993  enum : uint { IMAGE_REL_PPC_SECRELHI = 0x0014 }                                  <
 3994  enum : uint { IMAGE_REL_PPC_GPREL = 0x0015 }                                     <
 3995  enum : uint { IMAGE_REL_PPC_TOKEN = 0x0016 }                                     <
 3996                                                                                   <
 3997  enum : uint { IMAGE_REL_PPC_TYPEMASK = 0x00FF }                                  <
 3998                                                                                   <
 3999  enum : uint { IMAGE_REL_PPC_NEG = 0x0100 }                                       <
 4000  enum : uint { IMAGE_REL_PPC_BRTAKEN = 0x0200 }                                   <
 4001  enum : uint { IMAGE_REL_PPC_BRNTAKEN = 0x0400 }                                  <
 4002  enum : uint { IMAGE_REL_PPC_TOCDEFN = 0x0800 }                                   <
 4003                                                                                   <
 4004  enum : uint { IMAGE_REL_SH3_ABSOLUTE = 0x0000 }                                  <
 4005  enum : uint { IMAGE_REL_SH3_DIRECT16 = 0x0001 }                                  <
 4006  enum : uint { IMAGE_REL_SH3_DIRECT32 = 0x0002 }                                  <
 4007  enum : uint { IMAGE_REL_SH3_DIRECT8 = 0x0003 }                                   <
 4008  enum : uint { IMAGE_REL_SH3_DIRECT8_WORD = 0x0004 }                              <
 4009  enum : uint { IMAGE_REL_SH3_DIRECT8_LONG = 0x0005 }                              <
 4010  enum : uint { IMAGE_REL_SH3_DIRECT4 = 0x0006 }                                   <
 4011  enum : uint { IMAGE_REL_SH3_DIRECT4_WORD = 0x0007 }                              <
 4012  enum : uint { IMAGE_REL_SH3_DIRECT4_LONG = 0x0008 }                              <
 4013  enum : uint { IMAGE_REL_SH3_PCREL8_WORD = 0x0009 }                               <
 4014  enum : uint { IMAGE_REL_SH3_PCREL8_LONG = 0x000A }                               <
 4015  enum : uint { IMAGE_REL_SH3_PCREL12_WORD = 0x000B }                              <
 4016  enum : uint { IMAGE_REL_SH3_STARTOF_SECTION = 0x000C }                           <
 4017  enum : uint { IMAGE_REL_SH3_SIZEOF_SECTION = 0x000D }                            <
 4018  enum : uint { IMAGE_REL_SH3_SECTION = 0x000E }                                   <
 4019  enum : uint { IMAGE_REL_SH3_SECREL = 0x000F }                                    <
 4020  enum : uint { IMAGE_REL_SH3_DIRECT32_NB = 0x0010 }                               <
 4021  enum : uint { IMAGE_REL_SH3_GPREL4_LONG = 0x0011 }                               <
 4022  enum : uint { IMAGE_REL_SH3_TOKEN = 0x0012 }                                     <
 4023                                                                                   <
 4024  enum : uint { IMAGE_REL_ARM_ABSOLUTE = 0x0000 }                                  <
 4025  enum : uint { IMAGE_REL_ARM_ADDR32 = 0x0001 }                                    <
 4026  enum : uint { IMAGE_REL_ARM_ADDR32NB = 0x0002 }                                  <
 4027  enum : uint { IMAGE_REL_ARM_BRANCH24 = 0x0003 }                                  <
 4028  enum : uint { IMAGE_REL_ARM_BRANCH11 = 0x0004 }                                  <
 4029  enum : uint { IMAGE_REL_ARM_TOKEN = 0x0005 }                                     <
 4030  enum : uint { IMAGE_REL_ARM_GPREL12 = 0x0006 }                                   <
 4031  enum : uint { IMAGE_REL_ARM_GPREL7 = 0x0007 }                                    <
 4032  enum : uint { IMAGE_REL_ARM_BLX24 = 0x0008 }                                     <
 4033  enum : uint { IMAGE_REL_ARM_BLX11 = 0x0009 }                                     <
 4034  enum : uint { IMAGE_REL_ARM_SECTION = 0x000E }                                   <
 4035  enum : uint { IMAGE_REL_ARM_SECREL = 0x000F }                                    <
 4036                                                                                   <
 4037  enum : uint { IMAGE_REL_AM_ABSOLUTE = 0x0000 }                                   <
 4038  enum : uint { IMAGE_REL_AM_ADDR32 = 0x0001 }                                     <
 4039  enum : uint { IMAGE_REL_AM_ADDR32NB = 0x0002 }                                   <
 4040  enum : uint { IMAGE_REL_AM_CALL32 = 0x0003 }                                     <
 4041  enum : uint { IMAGE_REL_AM_FUNCINFO = 0x0004 }                                   <
 4042  enum : uint { IMAGE_REL_AM_REL32_1 = 0x0005 }                                    <
 4043  enum : uint { IMAGE_REL_AM_REL32_2 = 0x0006 }                                    <
 4044  enum : uint { IMAGE_REL_AM_SECREL = 0x0007 }                                     <
 4045  enum : uint { IMAGE_REL_AM_SECTION = 0x0008 }                                    <
 4046  enum : uint { IMAGE_REL_AM_TOKEN = 0x0009 }                                      <
 4047                                                                                   <
 4048  enum : uint { IMAGE_REL_AMD64_ABSOLUTE = 0x0000 }                                <
 4049  enum : uint { IMAGE_REL_AMD64_ADDR64 = 0x0001 }                                  <
 4050  enum : uint { IMAGE_REL_AMD64_ADDR32 = 0x0002 }                                  <
 4051  enum : uint { IMAGE_REL_AMD64_ADDR32NB = 0x0003 }                                <
 4052  enum : uint { IMAGE_REL_AMD64_REL32 = 0x0004 }                                   <
 4053  enum : uint { IMAGE_REL_AMD64_REL32_1 = 0x0005 }                                 <
 4054  enum : uint { IMAGE_REL_AMD64_REL32_2 = 0x0006 }                                 <
 4055  enum : uint { IMAGE_REL_AMD64_REL32_3 = 0x0007 }                                 <
 4056  enum : uint { IMAGE_REL_AMD64_REL32_4 = 0x0008 }                                 <
 4057  enum : uint { IMAGE_REL_AMD64_REL32_5 = 0x0009 }                                 <
 4058  enum : uint { IMAGE_REL_AMD64_SECTION = 0x000A }                                 <
 4059  enum : uint { IMAGE_REL_AMD64_SECREL = 0x000B }                                  <
 4060  enum : uint { IMAGE_REL_AMD64_SECREL7 = 0x000C }                                 <
 4061  enum : uint { IMAGE_REL_AMD64_TOKEN = 0x000D }                                   <
 4062                                                                                   <
 4063  enum : uint { IMAGE_REL_IA64_ABSOLUTE = 0x0000 }                                 <
 4064  enum : uint { IMAGE_REL_IA64_IMM14 = 0x0001 }                                    <
 4065  enum : uint { IMAGE_REL_IA64_IMM22 = 0x0002 }                                    <
 4066  enum : uint { IMAGE_REL_IA64_IMM64 = 0x0003 }                                    <
 4067  enum : uint { IMAGE_REL_IA64_DIR32 = 0x0004 }                                    <
 4068  enum : uint { IMAGE_REL_IA64_DIR64 = 0x0005 }                                    <
 4069  enum : uint { IMAGE_REL_IA64_PCREL21B = 0x0006 }                                 <
 4070  enum : uint { IMAGE_REL_IA64_PCREL21M = 0x0007 }                                 <
 4071  enum : uint { IMAGE_REL_IA64_PCREL21F = 0x0008 }                                 <
 4072  enum : uint { IMAGE_REL_IA64_GPREL22 = 0x0009 }                                  <
 4073  enum : uint { IMAGE_REL_IA64_LTOFF22 = 0x000A }                                  <
 4074  enum : uint { IMAGE_REL_IA64_SECTION = 0x000B }                                  <
 4075  enum : uint { IMAGE_REL_IA64_SECREL22 = 0x000C }                                 <
 4076  enum : uint { IMAGE_REL_IA64_SECREL64I = 0x000D }                                <
 4077  enum : uint { IMAGE_REL_IA64_SECREL32 = 0x000E }                                 <
 4078                                                                                   <
 4079  enum : uint { IMAGE_REL_IA64_DIR32NB = 0x0010 }                                  <
 4080  enum : uint { IMAGE_REL_IA64_SREL14 = 0x0011 }                                   <
 4081  enum : uint { IMAGE_REL_IA64_SREL22 = 0x0012 }                                   <
 4082  enum : uint { IMAGE_REL_IA64_SREL32 = 0x0013 }                                   <
 4083  enum : uint { IMAGE_REL_IA64_UREL32 = 0x0014 }                                   <
 4084  enum : uint { IMAGE_REL_IA64_PCREL60X = 0x0015 }                                 <
 4085  enum : uint { IMAGE_REL_IA64_PCREL60B = 0x0016 }                                 <
 4086  enum : uint { IMAGE_REL_IA64_PCREL60F = 0x0017 }                                 <
 4087  enum : uint { IMAGE_REL_IA64_PCREL60I = 0x0018 }                                 <
 4088  enum : uint { IMAGE_REL_IA64_PCREL60M = 0x0019 }                                 <
 4089  enum : uint { IMAGE_REL_IA64_IMMGPREL64 = 0x001A }                               <
 4090  enum : uint { IMAGE_REL_IA64_TOKEN = 0x001B }                                    <
 4091  enum : uint { IMAGE_REL_IA64_GPREL32 = 0x001C }                                  <
 4092  enum : uint { IMAGE_REL_IA64_ADDEND = 0x001F }                                   <
 4093                                                                                   <
 4094  enum : uint { IMAGE_REL_CEF_ABSOLUTE = 0x0000 }                                  <
 4095  enum : uint { IMAGE_REL_CEF_ADDR32 = 0x0001 }                                    <
 4096  enum : uint { IMAGE_REL_CEF_ADDR64 = 0x0002 }                                    <
 4097  enum : uint { IMAGE_REL_CEF_ADDR32NB = 0x0003 }                                  <
 4098  enum : uint { IMAGE_REL_CEF_SECTION = 0x0004 }                                   <
 4099  enum : uint { IMAGE_REL_CEF_SECREL = 0x0005 }                                    <
 4100  enum : uint { IMAGE_REL_CEF_TOKEN = 0x0006 }                                     <
 4101                                                                                   <
 4102  enum : uint { IMAGE_REL_CEE_ABSOLUTE = 0x0000 }                                  <
 4103  enum : uint { IMAGE_REL_CEE_ADDR32 = 0x0001 }                                    <
 4104  enum : uint { IMAGE_REL_CEE_ADDR64 = 0x0002 }                                    <
 4105  enum : uint { IMAGE_REL_CEE_ADDR32NB = 0x0003 }                                  <
 4106  enum : uint { IMAGE_REL_CEE_SECTION = 0x0004 }                                   <
 4107  enum : uint { IMAGE_REL_CEE_SECREL = 0x0005 }                                    <
 4108  enum : uint { IMAGE_REL_CEE_TOKEN = 0x0006 }                                     <
 4109                                                                                   <
 4110  enum : uint { IMAGE_REL_M32R_ABSOLUTE = 0x0000 }                                 <
 4111  enum : uint { IMAGE_REL_M32R_ADDR32 = 0x0001 }                                   <
 4112  enum : uint { IMAGE_REL_M32R_ADDR32NB = 0x0002 }                                 <
 4113  enum : uint { IMAGE_REL_M32R_ADDR24 = 0x0003 }                                   <
 4114  enum : uint { IMAGE_REL_M32R_GPREL16 = 0x0004 }                                  <
 4115  enum : uint { IMAGE_REL_M32R_PCREL24 = 0x0005 }                                  <
 4116  enum : uint { IMAGE_REL_M32R_PCREL16 = 0x0006 }                                  <
 4117  enum : uint { IMAGE_REL_M32R_PCREL8 = 0x0007 }                                   <
 4118  enum : uint { IMAGE_REL_M32R_REFHALF = 0x0008 }                                  <
 4119  enum : uint { IMAGE_REL_M32R_REFHI = 0x0009 }                                    <
 4120  enum : uint { IMAGE_REL_M32R_REFLO = 0x000A }                                    <
 4121  enum : uint { IMAGE_REL_M32R_PAIR = 0x000B }                                     <
 4122  enum : uint { IMAGE_REL_M32R_SECTION = 0x000C }                                  <
 4123  enum : uint { IMAGE_REL_M32R_SECREL32 = 0x000D }                                 <
 4124  enum : uint { IMAGE_REL_M32R_TOKEN = 0x000E }                                    <
 4125                                                                                      3977  
 4126  // #define EXT_IMM64(Value, Address, Size, InstPos, ValPos) Value |= (((ULONGLON |  3978  // TODO: MinGW implements these in assembly.  How to translate?
 4127                                                                                   <
                                                                                        >  3979  PVOID GetCurrentFiber();
 4128  // #define INS_IMM64(Value, Address, Size, InstPos, ValPos) *(PDWORD)Address = ( |  3980  PVOID GetFiberData();
 4129                                                                                   <
 4130  enum : uint { EMARCH_ENC_I17_IMM7B_INST_WORD_X = 3 }                             <
 4131  enum : uint { EMARCH_ENC_I17_IMM7B_SIZE_X = 7 }                                  <
 4132  enum : uint { EMARCH_ENC_I17_IMM7B_INST_WORD_POS_X = 4 }                         <
 4133  enum : uint { EMARCH_ENC_I17_IMM7B_VAL_POS_X = 0 }                               <
 4134                                                                                   <
 4135  enum : uint { EMARCH_ENC_I17_IMM9D_INST_WORD_X = 3 }                             <
 4136  enum : uint { EMARCH_ENC_I17_IMM9D_SIZE_X = 9 }                                  <
 4137  enum : uint { EMARCH_ENC_I17_IMM9D_INST_WORD_POS_X = 18 }                        <
 4138  enum : uint { EMARCH_ENC_I17_IMM9D_VAL_POS_X = 7 }                               <
 4139                                                                                   <
 4140  enum : uint { EMARCH_ENC_I17_IMM5C_INST_WORD_X = 3 }                             <
 4141  enum : uint { EMARCH_ENC_I17_IMM5C_SIZE_X = 5 }                                  <
 4142  enum : uint { EMARCH_ENC_I17_IMM5C_INST_WORD_POS_X = 13 }                        <
 4143  enum : uint { EMARCH_ENC_I17_IMM5C_VAL_POS_X = 16 }                              <
 4144                                                                                   <
 4145  enum : uint { EMARCH_ENC_I17_IC_INST_WORD_X = 3 }                                <
 4146  enum : uint { EMARCH_ENC_I17_IC_SIZE_X = 1 }                                     <
 4147  enum : uint { EMARCH_ENC_I17_IC_INST_WORD_POS_X = 12 }                           <
 4148  enum : uint { EMARCH_ENC_I17_IC_VAL_POS_X = 21 }                                 <
 4149                                                                                   <
 4150  enum : uint { EMARCH_ENC_I17_IMM41a_INST_WORD_X = 1 }                            <
 4151  enum : uint { EMARCH_ENC_I17_IMM41a_SIZE_X = 10 }                                <
 4152  enum : uint { EMARCH_ENC_I17_IMM41a_INST_WORD_POS_X = 14 }                       <
 4153  enum : uint { EMARCH_ENC_I17_IMM41a_VAL_POS_X = 22 }                             <
 4154                                                                                   <
 4155  enum : uint { EMARCH_ENC_I17_IMM41b_INST_WORD_X = 1 }                            <
 4156  enum : uint { EMARCH_ENC_I17_IMM41b_SIZE_X = 8 }                                 <
 4157  enum : uint { EMARCH_ENC_I17_IMM41b_INST_WORD_POS_X = 24 }                       <
 4158  enum : uint { EMARCH_ENC_I17_IMM41b_VAL_POS_X = 32 }                             <
 4159                                                                                   <
 4160  enum : uint { EMARCH_ENC_I17_IMM41c_INST_WORD_X = 2 }                            <
 4161  enum : uint { EMARCH_ENC_I17_IMM41c_SIZE_X = 23 }                                <
 4162  enum : uint { EMARCH_ENC_I17_IMM41c_INST_WORD_POS_X = 0 }                        <
 4163  enum : uint { EMARCH_ENC_I17_IMM41c_VAL_POS_X = 40 }                             <
 4164                                                                                   <
 4165  enum : uint { EMARCH_ENC_I17_SIGN_INST_WORD_X = 3 }                              <
 4166  enum : uint { EMARCH_ENC_I17_SIGN_SIZE_X = 1 }                                   <
 4167  enum : uint { EMARCH_ENC_I17_SIGN_INST_WORD_POS_X = 27 }                         <
 4168  enum : uint { EMARCH_ENC_I17_SIGN_VAL_POS_X = 63 }                               <
 4169                                                                                   <
 4170  struct _IMAGE_LINENUMBER {                                                       <
 4171  union {                                                                          <
 4172    DWORD SymbolTableIndex;                                                        <
 4173    DWORD VirtualAddress;                                                          <
 4174  }                                                                                <
 4175                                                                                   <
 4176    WORD Linenumber;                                                               <
 4177  }                                                                                <
 4178  alias _IMAGE_LINENUMBER IMAGE_LINENUMBER;                                        <
 4179                                                                                   <
 4180  alias IMAGE_LINENUMBER* PIMAGE_LINENUMBER;                                       <
 4181                                                                                   <
 4182  enum : uint { IMAGE_SIZEOF_LINENUMBER = 6 }                                      <
 4183                                                                                   <
 4184  // #ifndef _MAC                                                                  <
 4185  align:                                                                           <
 4186  // #endif                                                                        <
 4187                                                                                   <
 4188  struct _IMAGE_BASE_RELOCATION {                                                  <
 4189    DWORD VirtualAddress;                                                          <
 4190    DWORD SizeOfBlock;                                                             <
 4191  }                                                                                <
 4192  alias _IMAGE_BASE_RELOCATION IMAGE_BASE_RELOCATION;                              <
 4193                                                                                   <
 4194  alias IMAGE_BASE_RELOCATION* PIMAGE_BASE_RELOCATION;                             <
 4195                                                                                   <
 4196  enum : uint { IMAGE_SIZEOF_BASE_RELOCATION = 8 }                                 <
 4197                                                                                   <
 4198  enum : uint { IMAGE_REL_BASED_ABSOLUTE = 0 }                                     <
 4199  enum : uint { IMAGE_REL_BASED_HIGH = 1 }                                         <
 4200  enum : uint { IMAGE_REL_BASED_LOW = 2 }                                          <
 4201  enum : uint { IMAGE_REL_BASED_HIGHLOW = 3 }                                      <
 4202  enum : uint { IMAGE_REL_BASED_HIGHADJ = 4 }                                      <
 4203  enum : uint { IMAGE_REL_BASED_MIPS_JMPADDR = 5 }                                 <
 4204  enum : uint { IMAGE_REL_BASED_MIPS_JMPADDR16 = 9 }                               <
 4205  enum : uint { IMAGE_REL_BASED_IA64_IMM64 = 9 }                                   <
 4206  enum : uint { IMAGE_REL_BASED_DIR64 = 10 }                                       <
 4207                                                                                   <
 4208  enum : uint { IMAGE_ARCHIVE_START_SIZE = 8 }                                     <
 4209  const char[] IMAGE_ARCHIVE_START = "!<arch>\n";                                  <
 4210  const char[] IMAGE_ARCHIVE_END = "`\n";                                          <
 4211  const char[] IMAGE_ARCHIVE_PAD = "\n";                                           <
 4212  const char[] IMAGE_ARCHIVE_LINKER_MEMBER = "/ ";                                 <
 4213  const char[] IMAGE_ARCHIVE_LONGNAMES_MEMBER = "// ";                             <
 4214                                                                                   <
 4215  struct _IMAGE_ARCHIVE_MEMBER_HEADER {                                            <
 4216    BYTE Name[16];                                                                 <
 4217    BYTE Date[12];                                                                 <
 4218    BYTE UserID[6];                                                                <
 4219    BYTE GroupID[6];                                                               <
 4220    BYTE Mode[8];                                                                  <
 4221    BYTE Size[10];                                                                 <
 4222    BYTE EndHeader[2];                                                             <
 4223  }                                                                                <
 4224  alias _IMAGE_ARCHIVE_MEMBER_HEADER IMAGE_ARCHIVE_MEMBER_HEADER;                  <
 4225  alias _IMAGE_ARCHIVE_MEMBER_HEADER* PIMAGE_ARCHIVE_MEMBER_HEADER;                <
 4226                                                                                   <
 4227  enum : uint { IMAGE_SIZEOF_ARCHIVE_MEMBER_HDR = 60 }                             <
 4228                                                                                   <
 4229  struct _IMAGE_EXPORT_DIRECTORY {                                                 <
 4230    DWORD Characteristics;                                                         <
 4231    DWORD TimeDateStamp;                                                           <
 4232    WORD MajorVersion;                                                             <
 4233    WORD MinorVersion;                                                             <
 4234    DWORD Name;                                                                    <
 4235    DWORD Base;                                                                    <
 4236    DWORD NumberOfFunctions;                                                       <
 4237    DWORD NumberOfNames;                                                           <
 4238    DWORD AddressOfFunctions;                                                      <
 4239    DWORD AddressOfNames;                                                          <
 4240    DWORD AddressOfNameOrdinals;                                                   <
 4241  }                                                                                <
 4242  alias _IMAGE_EXPORT_DIRECTORY IMAGE_EXPORT_DIRECTORY;                            <
 4243  alias _IMAGE_EXPORT_DIRECTORY* PIMAGE_EXPORT_DIRECTORY;                          <
 4244                                                                                   <
 4245  struct _IMAGE_IMPORT_BY_NAME {                                                   <
 4246    WORD Hint;                                                                     <
 4247    BYTE Name[1];                                                                  <
 4248  }                                                                                <
 4249  alias _IMAGE_IMPORT_BY_NAME IMAGE_IMPORT_BY_NAME;                                <
 4250  alias _IMAGE_IMPORT_BY_NAME* PIMAGE_IMPORT_BY_NAME;                              <
 4251                                                                                   <
 4252  align(8):                                                                        <
 4253                                                                                   <
 4254  struct _IMAGE_THUNK_DATA64 {                                                     <
 4255  union {                                                                          <
 4256    ULONGLONG ForwarderString;                                                     <
 4257    ULONGLONG Function;                                                            <
 4258    ULONGLONG Ordinal;                                                             <
 4259    ULONGLONG AddressOfData;                                                       <
 4260  }                                                                                <
 4261                                                                                   <
 4262  }                                                                                <
 4263  alias _IMAGE_THUNK_DATA64 IMAGE_THUNK_DATA64;                                    <
 4264                                                                                   <
 4265  alias IMAGE_THUNK_DATA64* PIMAGE_THUNK_DATA64;                                   <
 4266                                                                                   <
 4267  align:                                                                           <
 4268                                                                                   <
 4269  struct _IMAGE_THUNK_DATA32 {                                                     <
 4270  union {                                                                          <
 4271    DWORD ForwarderString;                                                         <
 4272    DWORD Function;                                                                <
 4273    DWORD Ordinal;                                                                 <
 4274    DWORD AddressOfData;                                                           <
 4275  }                                                                                <
 4276                                                                                   <
 4277  }                                                                                <
 4278  alias _IMAGE_THUNK_DATA32 IMAGE_THUNK_DATA32;                                    <
 4279                                                                                   <
 4280  alias IMAGE_THUNK_DATA32* PIMAGE_THUNK_DATA32;                                   <
 4281                                                                                   <
 4282  const ulong IMAGE_ORDINAL_FLAG64 = 0x8000000000000000;                           <
 4283  enum : uint { IMAGE_ORDINAL_FLAG32 = 0x80000000 }                                <
 4284  ulong IMAGE_ORDINAL64(ulong Ordinal){ return Ordinal & 0xffff; }                 <
 4285  uint IMAGE_ORDINAL32(uint Ordinal){ return Ordinal & 0xffff; }                   <
 4286  bit IMAGE_SNAP_BY_ORDINAL64(ulong Ordinal){ return (Ordinal & IMAGE_ORDINAL_FLAG <
 4287  bit IMAGE_SNAP_BY_ORDINAL32(uint Ordinal){ return (Ordinal & IMAGE_ORDINAL_FLAG3 <
 4288                                                                                   <
 4289  extern(Windows) alias VOID function( PVOID DllHandle, DWORD Reason, PVOID Reserv <
 4290                                                                                   <
 4291  struct _IMAGE_TLS_DIRECTORY64 {                                                  <
 4292    ULONGLONG StartAddressOfRawData;                                               <
 4293    ULONGLONG EndAddressOfRawData;                                                 <
 4294    ULONGLONG AddressOfIndex;                                                      <
 4295    ULONGLONG AddressOfCallBacks;                                                  <
 4296    DWORD SizeOfZeroFill;                                                          <
 4297    DWORD Characteristics;                                                         <
 4298  }                                                                                <
 4299  alias _IMAGE_TLS_DIRECTORY64 IMAGE_TLS_DIRECTORY64;                              <
 4300                                                                                   <
 4301  alias IMAGE_TLS_DIRECTORY64* PIMAGE_TLS_DIRECTORY64;                             <
 4302                                                                                   <
 4303  struct _IMAGE_TLS_DIRECTORY32 {                                                  <
 4304    DWORD StartAddressOfRawData;                                                   <
 4305    DWORD EndAddressOfRawData;                                                     <
 4306    DWORD AddressOfIndex;                                                          <
 4307    DWORD AddressOfCallBacks;                                                      <
 4308    DWORD SizeOfZeroFill;                                                          <
 4309    DWORD Characteristics;                                                         <
 4310  }                                                                                <
 4311  alias _IMAGE_TLS_DIRECTORY32 IMAGE_TLS_DIRECTORY32;                              <
 4312                                                                                   <
 4313  alias IMAGE_TLS_DIRECTORY32* PIMAGE_TLS_DIRECTORY32;                             <
 4314                                                                                   <
 4315  // #ifdef _WIN64                                                                 <
 4316  // #...                                                                          <
 4317  // #...                                                                          <
 4318  // ...                                                                           <
 4319  // #...                                                                          <
 4320  // ...                                                                           <
 4321  // #else                                                                         <
 4322  alias IMAGE_ORDINAL_FLAG32 IMAGE_ORDINAL_FLAG;                                   <
 4323  alias IMAGE_ORDINAL32 IMAGE_ORDINAL;                                             <
 4324  alias IMAGE_THUNK_DATA32 IMAGE_THUNK_DATA;                                       <
 4325  alias PIMAGE_THUNK_DATA32 PIMAGE_THUNK_DATA;                                     <
 4326  alias IMAGE_SNAP_BY_ORDINAL32 IMAGE_SNAP_BY_ORDINAL;                             <
 4327  alias IMAGE_TLS_DIRECTORY32 IMAGE_TLS_DIRECTORY;                                 <
 4328  alias PIMAGE_TLS_DIRECTORY32 PIMAGE_TLS_DIRECTORY;                               <
 4329  // #endif                                                                        <
 4330                                                                                   <
 4331  struct _IMAGE_IMPORT_DESCRIPTOR {                                                <
 4332  union {                                                                          <
 4333    DWORD Characteristics;                                                         <
 4334    DWORD OriginalFirstThunk;                                                      <
 4335  }                                                                                <
 4336                                                                                   <
 4337    DWORD TimeDateStamp;                                                           <
 4338                                                                                   <
 4339    DWORD ForwarderChain;                                                          <
 4340    DWORD Name;                                                                    <
 4341    DWORD FirstThunk;                                                              <
 4342  }                                                                                <
 4343  alias _IMAGE_IMPORT_DESCRIPTOR IMAGE_IMPORT_DESCRIPTOR;                          <
 4344                                                                                   <
 4345  alias IMAGE_IMPORT_DESCRIPTOR* PIMAGE_IMPORT_DESCRIPTOR;                         <
 4346                                                                                   <
 4347  struct _IMAGE_BOUND_IMPORT_DESCRIPTOR {                                          <
 4348    DWORD TimeDateStamp;                                                           <
 4349    WORD OffsetModuleName;                                                         <
 4350    WORD NumberOfModuleForwarderRefs;                                              <
 4351  }                                                                                <
 4352  alias _IMAGE_BOUND_IMPORT_DESCRIPTOR IMAGE_BOUND_IMPORT_DESCRIPTOR;              <
 4353  alias _IMAGE_BOUND_IMPORT_DESCRIPTOR* PIMAGE_BOUND_IMPORT_DESCRIPTOR;            <
 4354                                                                                   <
 4355  struct _IMAGE_BOUND_FORWARDER_REF {                                              <
 4356    DWORD TimeDateStamp;                                                           <
 4357    WORD OffsetModuleName;                                                         <
 4358    WORD Reserved;                                                                 <
 4359  }                                                                                <
 4360  alias _IMAGE_BOUND_FORWARDER_REF IMAGE_BOUND_FORWARDER_REF;                      <
 4361  alias _IMAGE_BOUND_FORWARDER_REF* PIMAGE_BOUND_FORWARDER_REF;                    <
 4362                                                                                   <
 4363  struct _IMAGE_RESOURCE_DIRECTORY {                                               <
 4364    DWORD Characteristics;                                                         <
 4365    DWORD TimeDateStamp;                                                           <
 4366    WORD MajorVersion;                                                             <
 4367    WORD MinorVersion;                                                             <
 4368    WORD NumberOfNamedEntries;                                                     <
 4369    WORD NumberOfIdEntries;                                                        <
 4370  }                                                                                <
 4371  alias _IMAGE_RESOURCE_DIRECTORY IMAGE_RESOURCE_DIRECTORY;                        <
 4372  alias _IMAGE_RESOURCE_DIRECTORY* PIMAGE_RESOURCE_DIRECTORY;                      <
 4373                                                                                   <
 4374  enum : uint { IMAGE_RESOURCE_NAME_IS_STRING = 0x80000000 }                       <
 4375  enum : uint { IMAGE_RESOURCE_DATA_IS_DIRECTORY = 0x80000000 }                    <
 4376                                                                                   <
 4377  struct _IMAGE_RESOURCE_DIRECTORY_ENTRY {                                         <
 4378  union {                                                                          <
 4379  struct {                                                                         <
 4380  // DWORD NameOffset:31;                                                          <
 4381  // DWORD NameIsString:1;                                                         <
 4382  }                                                                                <
 4383                                                                                   <
 4384    DWORD Name;                                                                    <
 4385    WORD Id;                                                                       <
 4386  }                                                                                <
 4387                                                                                   <
 4388  union {                                                                          <
 4389    DWORD OffsetToData;                                                            <
 4390  struct {                                                                         <
 4391  // DWORD   OffsetToDirectory:31;                                                 <
 4392  // DWORD   DataIsDirectory:1;                                                    <
 4393  }                                                                                <
 4394                                                                                   <
 4395  }                                                                                <
 4396                                                                                   <
 4397  }                                                                                <
 4398  alias _IMAGE_RESOURCE_DIRECTORY_ENTRY IMAGE_RESOURCE_DIRECTORY_ENTRY;            <
 4399  alias _IMAGE_RESOURCE_DIRECTORY_ENTRY* PIMAGE_RESOURCE_DIRECTORY_ENTRY;          <
 4400                                                                                   <
 4401  struct _IMAGE_RESOURCE_DIRECTORY_STRING {                                        <
 4402    WORD Length;                                                                   <
 4403    CHAR NameString[ 1 ];                                                          <
 4404  }                                                                                <
 4405  alias _IMAGE_RESOURCE_DIRECTORY_STRING IMAGE_RESOURCE_DIRECTORY_STRING;          <
 4406  alias _IMAGE_RESOURCE_DIRECTORY_STRING* PIMAGE_RESOURCE_DIRECTORY_STRING;        <
 4407                                                                                   <
 4408  struct _IMAGE_RESOURCE_DIR_STRING_U {                                            <
 4409    WORD Length;                                                                   <
 4410    WCHAR NameString[ 1 ];                                                         <
 4411  }                                                                                <
 4412  alias _IMAGE_RESOURCE_DIR_STRING_U IMAGE_RESOURCE_DIR_STRING_U;                  <
 4413  alias _IMAGE_RESOURCE_DIR_STRING_U* PIMAGE_RESOURCE_DIR_STRING_U;                <
 4414                                                                                   <
 4415  struct _IMAGE_RESOURCE_DATA_ENTRY {                                              <
 4416    DWORD OffsetToData;                                                            <
 4417    DWORD Size;                                                                    <
 4418    DWORD CodePage;                                                                <
 4419    DWORD Reserved;                                                                <
 4420  }                                                                                <
 4421  alias _IMAGE_RESOURCE_DATA_ENTRY IMAGE_RESOURCE_DATA_ENTRY;                      <
 4422  alias _IMAGE_RESOURCE_DATA_ENTRY* PIMAGE_RESOURCE_DATA_ENTRY;                    <
 4423                                                                                   <
 4424  struct _12 {                                                                     <
 4425    DWORD Characteristics;                                                         <
 4426    DWORD TimeDateStamp;                                                           <
 4427    WORD MajorVersion;                                                             <
 4428    WORD MinorVersion;                                                             <
 4429    DWORD GlobalFlagsClear;                                                        <
 4430    DWORD GlobalFlagsSet;                                                          <
 4431    DWORD CriticalSectionDefaultTimeout;                                           <
 4432    DWORD DeCommitFreeBlockThreshold;                                              <
 4433    DWORD DeCommitTotalFreeThreshold;                                              <
 4434    DWORD LockPrefixTable;                                                         <
 4435    DWORD MaximumAllocationSize;                                                   <
 4436    DWORD VirtualMemoryThreshold;                                                  <
 4437    DWORD ProcessHeapFlags;                                                        <
 4438    DWORD ProcessAffinityMask;                                                     <
 4439    WORD CSDVersion;                                                               <
 4440    WORD Reserved1;                                                                <
 4441    DWORD EditList;                                                                <
 4442    DWORD Reserved[ 1 ];                                                           <
 4443  }                                                                                <
 4444  alias _12 IMAGE_LOAD_CONFIG_DIRECTORY32;                                         <
 4445  alias _12* PIMAGE_LOAD_CONFIG_DIRECTORY32;                                       <
 4446                                                                                   <
 4447  struct _13 {                                                                     <
 4448    DWORD Characteristics;                                                         <
 4449    DWORD TimeDateStamp;                                                           <
 4450    WORD MajorVersion;                                                             <
 4451    WORD MinorVersion;                                                             <
 4452    DWORD GlobalFlagsClear;                                                        <
 4453    DWORD GlobalFlagsSet;                                                          <
 4454    DWORD CriticalSectionDefaultTimeout;                                           <
 4455    ULONGLONG DeCommitFreeBlockThreshold;                                          <
 4456    ULONGLONG DeCommitTotalFreeThreshold;                                          <
 4457    ULONGLONG LockPrefixTable;                                                     <
 4458    ULONGLONG MaximumAllocationSize;                                               <
 4459    ULONGLONG VirtualMemoryThreshold;                                              <
 4460    ULONGLONG ProcessAffinityMask;                                                 <
 4461    DWORD ProcessHeapFlags;                                                        <
 4462    WORD CSDVersion;                                                               <
 4463    WORD Reserved1;                                                                <
 4464    ULONGLONG EditList;                                                            <
 4465    DWORD Reserved[ 2 ];                                                           <
 4466  }                                                                                <
 4467  alias _13 IMAGE_LOAD_CONFIG_DIRECTORY64;                                         <
 4468  alias _13* PIMAGE_LOAD_CONFIG_DIRECTORY64;                                       <
 4469                                                                                   <
 4470  // #ifdef _WIN64                                                                 <
 4471  // ...                                                                           <
 4472  // #else                                                                         <
 4473  alias IMAGE_LOAD_CONFIG_DIRECTORY32 IMAGE_LOAD_CONFIG_DIRECTORY;                 <
 4474  alias PIMAGE_LOAD_CONFIG_DIRECTORY32 PIMAGE_LOAD_CONFIG_DIRECTORY;               <
 4475  // #endif                                                                        <
 4476                                                                                   <
 4477  struct _IMAGE_CE_RUNTIME_FUNCTION_ENTRY {                                        <
 4478    DWORD FuncStart;                                                               <
 4479  // DWORD PrologLen : 8;                                                          <
 4480  // DWORD FuncLen : 22;                                                           <
 4481  // DWORD ThirtyTwoBit : 1;                                                       <
 4482  // DWORD ExceptionFlag : 1;                                                      <
 4483  }                                                                                <
 4484  alias _IMAGE_CE_RUNTIME_FUNCTION_ENTRY IMAGE_CE_RUNTIME_FUNCTION_ENTRY;          <
 4485  alias _IMAGE_CE_RUNTIME_FUNCTION_ENTRY* PIMAGE_CE_RUNTIME_FUNCTION_ENTRY;        <
 4486                                                                                   <
 4487  struct _IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY {                                   <
 4488    ULONGLONG BeginAddress;                                                        <
 4489    ULONGLONG EndAddress;                                                          <
 4490    ULONGLONG ExceptionHandler;                                                    <
 4491    ULONGLONG HandlerData;                                                         <
 4492    ULONGLONG PrologEndAddress;                                                    <
 4493  }                                                                                <
 4494  alias _IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY <
 4495  alias _IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY* PIMAGE_ALPHA64_RUNTIME_FUNCTION_ENT <
 4496                                                                                   <
 4497  struct _IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY {                                     <
 4498    DWORD BeginAddress;                                                            <
 4499    DWORD EndAddress;                                                              <
 4500    DWORD ExceptionHandler;                                                        <
 4501    DWORD HandlerData;                                                             <
 4502    DWORD PrologEndAddress;                                                        <
 4503  }                                                                                <
 4504  alias _IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY;    <
 4505  alias _IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY* PIMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY;  <
 4506                                                                                   <
 4507  struct _IMAGE_RUNTIME_FUNCTION_ENTRY {                                           <
 4508    DWORD BeginAddress;                                                            <
 4509    DWORD EndAddress;                                                              <
 4510    DWORD UnwindInfoAddress;                                                       <
 4511  }                                                                                <
 4512  alias _IMAGE_RUNTIME_FUNCTION_ENTRY* _PIMAGE_RUNTIME_FUNCTION_ENTRY;             <
 4513                                                                                   <
 4514  alias _IMAGE_RUNTIME_FUNCTION_ENTRY IMAGE_IA64_RUNTIME_FUNCTION_ENTRY;           <
 4515  alias _PIMAGE_RUNTIME_FUNCTION_ENTRY PIMAGE_IA64_RUNTIME_FUNCTION_ENTRY;         <
 4516                                                                                   <
 4517  // #if defined(_AXP64_)                                                          <
 4518                                                                                   <
 4519  // ...                                                                           <
 4520                                                                                   <
 4521  // #elif defined(_ALPHA_)                                                        <
 4522                                                                                   <
 4523  // ...                                                                           <
 4524                                                                                   <
 4525  // #else                                                                         <
 4526                                                                                   <
 4527  alias _IMAGE_RUNTIME_FUNCTION_ENTRY IMAGE_RUNTIME_FUNCTION_ENTRY;                <
 4528  alias _PIMAGE_RUNTIME_FUNCTION_ENTRY PIMAGE_RUNTIME_FUNCTION_ENTRY;              <
 4529                                                                                   <
 4530  // #endif                                                                        <
 4531                                                                                   <
 4532  struct _IMAGE_DEBUG_DIRECTORY {                                                  <
 4533    DWORD Characteristics;                                                         <
 4534    DWORD TimeDateStamp;                                                           <
 4535    WORD MajorVersion;                                                             <
 4536    WORD MinorVersion;                                                             <
 4537    DWORD Type;                                                                    <
 4538    DWORD SizeOfData;                                                              <
 4539    DWORD AddressOfRawData;                                                        <
 4540    DWORD PointerToRawData;                                                        <
 4541  }                                                                                <
 4542  alias _IMAGE_DEBUG_DIRECTORY IMAGE_DEBUG_DIRECTORY;                              <
 4543  alias _IMAGE_DEBUG_DIRECTORY* PIMAGE_DEBUG_DIRECTORY;                            <
 4544                                                                                   <
 4545  enum : uint { IMAGE_DEBUG_TYPE_UNKNOWN = 0 }                                     <
 4546  enum : uint { IMAGE_DEBUG_TYPE_COFF = 1 }                                        <
 4547  enum : uint { IMAGE_DEBUG_TYPE_CODEVIEW = 2 }                                    <
 4548  enum : uint { IMAGE_DEBUG_TYPE_FPO = 3 }                                         <
 4549  enum : uint { IMAGE_DEBUG_TYPE_MISC = 4 }                                        <
 4550  enum : uint { IMAGE_DEBUG_TYPE_EXCEPTION = 5 }                                   <
 4551  enum : uint { IMAGE_DEBUG_TYPE_FIXUP = 6 }                                       <
 4552  enum : uint { IMAGE_DEBUG_TYPE_OMAP_TO_SRC = 7 }                                 <
 4553  enum : uint { IMAGE_DEBUG_TYPE_OMAP_FROM_SRC = 8 }                               <
 4554  enum : uint { IMAGE_DEBUG_TYPE_BORLAND = 9 }                                     <
 4555  enum : uint { IMAGE_DEBUG_TYPE_RESERVED10 = 10 }                                 <
 4556  enum : uint { IMAGE_DEBUG_TYPE_CLSID = 11 }                                      <
 4557                                                                                   <
 4558  struct _IMAGE_COFF_SYMBOLS_HEADER {                                              <
 4559    DWORD NumberOfSymbols;                                                         <
 4560    DWORD LvaToFirstSymbol;                                                        <
 4561    DWORD NumberOfLinenumbers;                                                     <
 4562    DWORD LvaToFirstLinenumber;                                                    <
 4563    DWORD RvaToFirstByteOfCode;                                                    <
 4564    DWORD RvaToLastByteOfCode;                                                     <
 4565    DWORD RvaToFirstByteOfData;                                                    <
 4566    DWORD RvaToLastByteOfData;                                                     <
 4567  }                                                                                <
 4568  alias _IMAGE_COFF_SYMBOLS_HEADER IMAGE_COFF_SYMBOLS_HEADER;                      <
 4569  alias _IMAGE_COFF_SYMBOLS_HEADER* PIMAGE_COFF_SYMBOLS_HEADER;                    <
 4570                                                                                   <
 4571  enum : uint { FRAME_FPO = 0 }                                                    <
 4572  enum : uint { FRAME_TRAP = 1 }                                                   <
 4573  enum : uint { FRAME_TSS = 2 }                                                    <
 4574  enum : uint { FRAME_NONFPO = 3 }                                                 <
 4575                                                                                   <
 4576  struct _FPO_DATA {                                                               <
 4577    DWORD ulOffStart;                                                              <
 4578    DWORD cbProcSize;                                                              <
 4579    DWORD cdwLocals;                                                               <
 4580    WORD cdwParams;                                                                <
 4581  // WORD        cbProlog : 8;                                                     <
 4582  // WORD        cbRegs   : 3;                                                     <
 4583  // WORD        fHasSEH  : 1;                                                     <
 4584  // WORD        fUseBP   : 1;                                                     <
 4585  // WORD        reserved : 1;                                                     <
 4586  // WORD        cbFrame  : 2;                                                     <
 4587  }                                                                                <
 4588  alias _FPO_DATA FPO_DATA;                                                        <
 4589  alias _FPO_DATA* PFPO_DATA;                                                      <
 4590                                                                                   <
 4591  enum : uint { SIZEOF_RFPO_DATA = 16 }                                            <
 4592                                                                                   <
 4593  enum : uint { IMAGE_DEBUG_MISC_EXENAME = 1 }                                     <
 4594                                                                                   <
 4595  struct _IMAGE_DEBUG_MISC {                                                       <
 4596    DWORD DataType;                                                                <
 4597    DWORD Length;                                                                  <
 4598                                                                                   <
 4599    BOOLEAN Unicode;                                                               <
 4600    BYTE Reserved[ 3 ];                                                            <
 4601    BYTE Data[ 1 ];                                                                <
 4602  }                                                                                <
 4603  alias _IMAGE_DEBUG_MISC IMAGE_DEBUG_MISC;                                        <
 4604  alias _IMAGE_DEBUG_MISC* PIMAGE_DEBUG_MISC;                                      <
 4605                                                                                   <
 4606  struct _IMAGE_FUNCTION_ENTRY {                                                   <
 4607    DWORD StartingAddress;                                                         <
 4608    DWORD EndingAddress;                                                           <
 4609    DWORD EndOfPrologue;                                                           <
 4610  }                                                                                <
 4611  alias _IMAGE_FUNCTION_ENTRY IMAGE_FUNCTION_ENTRY;                                <
 4612  alias _IMAGE_FUNCTION_ENTRY* PIMAGE_FUNCTION_ENTRY;                              <
 4613                                                                                   <
 4614  struct _IMAGE_FUNCTION_ENTRY64 {                                                 <
 4615    ULONGLONG StartingAddress;                                                     <
 4616    ULONGLONG EndingAddress;                                                       <
 4617  union {                                                                          <
 4618    ULONGLONG EndOfPrologue;                                                       <
 4619    ULONGLONG UnwindInfoAddress;                                                   <
 4620  }                                                                                <
 4621                                                                                   <
 4622  }                                                                                <
 4623  alias _IMAGE_FUNCTION_ENTRY64 IMAGE_FUNCTION_ENTRY64;                            <
 4624  alias _IMAGE_FUNCTION_ENTRY64* PIMAGE_FUNCTION_ENTRY64;                          <
 4625                                                                                   <
 4626  struct _IMAGE_SEPARATE_DEBUG_HEADER {                                            <
 4627    WORD Signature;                                                                <
 4628    WORD Flags;                                                                    <
 4629    WORD Machine;                                                                  <
 4630    WORD Characteristics;                                                          <
 4631    DWORD TimeDateStamp;                                                           <
 4632    DWORD CheckSum;                                                                <
 4633    DWORD ImageBase;                                                               <
 4634    DWORD SizeOfImage;                                                             <
 4635    DWORD NumberOfSections;                                                        <
 4636    DWORD ExportedNamesSize;                                                       <
 4637    DWORD DebugDirectorySize;                                                      <
 4638    DWORD SectionAlignment;                                                        <
 4639    DWORD Reserved[2];                                                             <
 4640  }                                                                                <
 4641  alias _IMAGE_SEPARATE_DEBUG_HEADER IMAGE_SEPARATE_DEBUG_HEADER;                  <
 4642  alias _IMAGE_SEPARATE_DEBUG_HEADER* PIMAGE_SEPARATE_DEBUG_HEADER;                <
 4643                                                                                   <
 4644  struct _NON_PAGED_DEBUG_INFO {                                                   <
 4645    WORD Signature;                                                                <
 4646    WORD Flags;                                                                    <
 4647    DWORD Size;                                                                    <
 4648    WORD Machine;                                                                  <
 4649    WORD Characteristics;                                                          <
 4650    DWORD TimeDateStamp;                                                           <
 4651    DWORD CheckSum;                                                                <
 4652    DWORD SizeOfImage;                                                             <
 4653    ULONGLONG ImageBase;                                                           <
 4654                                                                                   <
 4655  }                                                                                <
 4656  alias _NON_PAGED_DEBUG_INFO NON_PAGED_DEBUG_INFO;                                <
 4657  alias _NON_PAGED_DEBUG_INFO* PNON_PAGED_DEBUG_INFO;                              <
 4658                                                                                   <
 4659  // #ifndef _MAC                                                                  <
 4660  enum : uint { IMAGE_SEPARATE_DEBUG_SIGNATURE = 0x4944 }                          <
 4661  enum : uint { NON_PAGED_DEBUG_SIGNATURE = 0x494E }                               <
 4662  // #else                                                                         <
 4663  // #...                                                                          <
 4664  // #...                                                                          <
 4665  // #endif                                                                        <
 4666                                                                                   <
 4667  enum : uint { IMAGE_SEPARATE_DEBUG_FLAGS_MASK = 0x8000 }                         <
 4668  enum : uint { IMAGE_SEPARATE_DEBUG_MISMATCH = 0x8000 }                           <
 4669                                                                                   <
 4670  struct _ImageArchitectureHeader {                                                <
 4671  // unsigned int AmaskValue: 1;                                                   <
 4672                                                                                   <
 4673  // int :7;                                                                       <
 4674  // unsigned int AmaskShift: 8;                                                   <
 4675  // int :16;                                                                      <
 4676    DWORD FirstEntryRVA;                                                           <
 4677  }                                                                                <
 4678  alias _ImageArchitectureHeader IMAGE_ARCHITECTURE_HEADER;                        <
 4679  alias _ImageArchitectureHeader* PIMAGE_ARCHITECTURE_HEADER;                      <
 4680                                                                                   <
 4681  struct _ImageArchitectureEntry {                                                 <
 4682    DWORD FixupInstRVA;                                                            <
 4683    DWORD NewInst;                                                                 <
 4684  }                                                                                <
 4685  alias _ImageArchitectureEntry IMAGE_ARCHITECTURE_ENTRY;                          <
 4686  alias _ImageArchitectureEntry* PIMAGE_ARCHITECTURE_ENTRY;                        <
 4687                                                                                   <
 4688  align:                                                                           <
 4689                                                                                   <
 4690  enum : uint { IMPORT_OBJECT_HDR_SIG2 = 0xffff }                                  <
 4691                                                                                   <
 4692  struct IMPORT_OBJECT_HEADER {                                                    <
 4693    WORD Sig1;                                                                     <
 4694    WORD Sig2;                                                                     <
 4695    WORD Version;                                                                  <
 4696    WORD Machine;                                                                  <
 4697    DWORD TimeDateStamp;                                                           <
 4698    DWORD SizeOfData;                                                              <
 4699                                                                                   <
 4700  union {                                                                          <
 4701    WORD Ordinal;                                                                  <
 4702    WORD Hint;                                                                     <
 4703  }                                                                                <
 4704                                                                                   <
 4705  // WORD    Type : 2;                                                             <
 4706  // WORD    NameType : 3;                                                         <
 4707  // WORD    Reserved : 11;                                                        <
 4708  }                                                                                <
 4709                                                                                   <
 4710  alias int IMPORT_OBJECT_TYPE;                                                    <
 4711  enum {                                                                           <
 4712    IMPORT_OBJECT_CODE = 0,                                                        <
 4713    IMPORT_OBJECT_DATA = 1,                                                        <
 4714    IMPORT_OBJECT_CONST = 2,                                                       <
 4715  }                                                                                <
 4716                                                                                   <
 4717  alias int IMPORT_OBJECT_NAME_TYPE;                                               <
 4718  enum {                                                                           <
 4719    IMPORT_OBJECT_ORDINAL = 0,                                                     <
 4720    IMPORT_OBJECT_NAME = 1,                                                        <
 4721    IMPORT_OBJECT_NAME_NO_PREFIX = 2,                                              <
 4722    IMPORT_OBJECT_NAME_UNDECORATE = 3,                                             <
 4723                                                                                   <
 4724  }                                                                                <
 4725                                                                                   <
 4726  // #ifndef __IMAGE_COR20_HEADER_DEFINED__                                        <
 4727  // #define __IMAGE_COR20_HEADER_DEFINED__                                        <
 4728                                                                                   <
 4729  alias int ReplacesCorHdrNumericDefines;                                          <
 4730  enum {                                                                           <
 4731                                                                                   <
 4732    COMIMAGE_FLAGS_ILONLY = 0x00000001,                                            <
 4733    COMIMAGE_FLAGS_32BITREQUIRED = 0x00000002,                                     <
 4734    COMIMAGE_FLAGS_IL_LIBRARY = 0x00000004,                                        <
 4735    COMIMAGE_FLAGS_TRACKDEBUGDATA = 0x00010000,                                    <
 4736                                                                                   <
 4737    COR_VERSION_MAJOR_V2 = 2,                                                      <
 4738    COR_VERSION_MAJOR = COR_VERSION_MAJOR_V2,                                      <
 4739    COR_VERSION_MINOR = 0,                                                         <
 4740    COR_DELETED_NAME_LENGTH = 8,                                                   <
 4741    COR_VTABLEGAP_NAME_LENGTH = 8,                                                 <
 4742                                                                                   <
 4743    NATIVE_TYPE_MAX_CB = 1,                                                        <
 4744    COR_ILMETHOD_SECT_SMALL_MAX_DATASIZE = 0xFF,                                   <
 4745                                                                                   <
 4746    IMAGE_COR_MIH_METHODRVA = 0x01,                                                <
 4747    IMAGE_COR_MIH_EHRVA = 0x02,                                                    <
 4748    IMAGE_COR_MIH_BASICBLOCK = 0x08,                                               <
 4749                                                                                   <
 4750    COR_VTABLE_32BIT = 0x01,                                                       <
 4751    COR_VTABLE_64BIT = 0x02,                                                       <
 4752    COR_VTABLE_FROM_UNMANAGED = 0x04,                                              <
 4753    COR_VTABLE_CALL_MOST_DERIVED = 0x10,                                           <
 4754                                                                                   <
 4755    IMAGE_COR_EATJ_THUNK_SIZE = 32,                                                <
 4756                                                                                   <
 4757    MAX_CLASS_NAME = 1024,                                                         <
 4758    MAX_PACKAGE_NAME = 1024,                                                       <
 4759  }                                                                                <
 4760                                                                                   <
 4761  struct IMAGE_COR20_HEADER {                                                      <
 4762                                                                                   <
 4763    DWORD cb;                                                                      <
 4764    WORD MajorRuntimeVersion;                                                      <
 4765    WORD MinorRuntimeVersion;                                                      <
 4766    IMAGE_DATA_DIRECTORY MetaData;                                                 <
 4767    DWORD Flags;                                                                   <
 4768    DWORD EntryPointToken;                                                         <
 4769    IMAGE_DATA_DIRECTORY Resources;                                                <
 4770    IMAGE_DATA_DIRECTORY StrongNameSignature;                                      <
 4771    IMAGE_DATA_DIRECTORY CodeManagerTable;                                         <
 4772    IMAGE_DATA_DIRECTORY VTableFixups;                                             <
 4773    IMAGE_DATA_DIRECTORY ExportAddressTableJumps;                                  <
 4774    IMAGE_DATA_DIRECTORY ManagedNativeHeader;                                      <
 4775  }                                                                                <
 4776  alias IMAGE_COR20_HEADER* PIMAGE_COR20_HEADER;                                   <
 4777                                                                                   <
 4778  // #endif // __IMAGE_COR20_HEADER_DEFINED__                                      <
 4779                                                                                   <
 4780  // #ifdef _MAC                                                                   <
 4781  // #ifndef _INC_STRING                                                           <
 4782  // #...                                                                          <
 4783  // #endif /* _INC_STRING */                                                      <
 4784  // #else                                                                         <
 4785  // #include <string.h>                                                           <
 4786  // #endif // _MAC                                                                <
 4787                                                                                   <
 4788  // #ifndef _SLIST_HEADER_                                                        <
 4789  // #define _SLIST_HEADER_                                                        <
 4790                                                                                   <
 4791  alias SINGLE_LIST_ENTRY SLIST_ENTRY;                                             <
 4792  alias _SINGLE_LIST_ENTRY _SLIST_ENTRY;                                           <
 4793  alias PSINGLE_LIST_ENTRY PSLIST_ENTRY;                                           <
 4794                                                                                   <
 4795  // #if defined(_WIN64)                                                           <
 4796                                                                                   <
 4797  // ...                                                                           <
 4798                                                                                   <
 4799  // ...                                                                           <
 4800                                                                                   <
 4801  // #else                                                                         <
 4802                                                                                   <
 4803  union _SLIST_HEADER {                                                            <
 4804    ULONGLONG Alignment;                                                           <
 4805  struct {                                                                         <
 4806    SLIST_ENTRY Next;                                                              <
 4807    WORD Depth;                                                                    <
 4808    WORD Sequence;                                                                 <
 4809  }                                                                                <
 4810                                                                                   <
 4811  }                                                                                <
 4812  alias _SLIST_HEADER SLIST_HEADER;                                                <
 4813  alias _SLIST_HEADER* PSLIST_HEADER;                                              <
 4814                                                                                   <
 4815  // #endif                                                                        <
 4816                                                                                   <
 4817  // #endif                                                                        <
 4818                                                                                   <
 4819  extern(Windows) export VOID RtlInitializeSListHead(                              <
 4820    PSLIST_HEADER ListHead);                                                       <
 4821                                                                                   <
 4822  extern(Windows) export PSLIST_ENTRY RtlFirstEntrySList(                          <
 4823    SLIST_HEADER *ListHead);                                                       <
 4824                                                                                   <
 4825  extern(Windows) export PSLIST_ENTRY RtlInterlockedPopEntrySList(                 <
 4826    PSLIST_HEADER ListHead);                                                       <
 4827                                                                                   <
 4828  extern(Windows) export PSLIST_ENTRY RtlInterlockedPushEntrySList(                <
 4829    PSLIST_HEADER ListHead,                                                        <
 4830    PSLIST_ENTRY ListEntry);                                                       <
 4831                                                                                   <
 4832  extern(Windows) export PSLIST_ENTRY RtlInterlockedFlushSList(                    <
 4833    PSLIST_HEADER ListHead);                                                       <
 4834                                                                                   <
 4835  extern(Windows) export WORD RtlQueryDepthSList(                                  <
 4836    PSLIST_HEADER ListHead);                                                       <
 4837                                                                                   <
 4838  enum : uint { HEAP_NO_SERIALIZE = 0x00000001 }                                   <
 4839  enum : uint { HEAP_GROWABLE = 0x00000002 }                                       <
 4840  enum : uint { HEAP_GENERATE_EXCEPTIONS = 0x00000004 }                            <
 4841  enum : uint { HEAP_ZERO_MEMORY = 0x00000008 }                                    <
 4842  enum : uint { HEAP_REALLOC_IN_PLACE_ONLY = 0x00000010 }                          <
 4843  enum : uint { HEAP_TAIL_CHECKING_ENABLED = 0x00000020 }                          <
 4844  enum : uint { HEAP_FREE_CHECKING_ENABLED = 0x00000040 }                          <
 4845  enum : uint { HEAP_DISABLE_COALESCE_ON_FREE = 0x00000080 }                       <
 4846  enum : uint { HEAP_CREATE_ALIGN_16 = 0x00010000 }                                <
 4847  enum : uint { HEAP_CREATE_ENABLE_TRACING = 0x00020000 }                          <
 4848  enum : uint { HEAP_MAXIMUM_TAG = 0x0FFF }                                        <
 4849  enum : uint { HEAP_PSEUDO_TAG_FLAG = 0x8000 }                                    <
 4850  enum : uint { HEAP_TAG_SHIFT = 18 }                                              <
 4851  uint HEAP_MAKE_TAG_FLAGS(uint b, uint o){ return b + (o << 18); }                <
 4852                                                                                   <
 4853  enum : uint { IS_TEXT_UNICODE_ASCII16 = 0x0001 }                                 <
 4854  enum : uint { IS_TEXT_UNICODE_REVERSE_ASCII16 = 0x0010 }                         <
 4855                                                                                   <
 4856  enum : uint { IS_TEXT_UNICODE_STATISTICS = 0x0002 }                              <
 4857  enum : uint { IS_TEXT_UNICODE_REVERSE_STATISTICS = 0x0020 }                      <
 4858                                                                                   <
 4859  enum : uint { IS_TEXT_UNICODE_CONTROLS = 0x0004 }                                <
 4860  enum : uint { IS_TEXT_UNICODE_REVERSE_CONTROLS = 0x0040 }                        <
 4861                                                                                   <
 4862  enum : uint { IS_TEXT_UNICODE_SIGNATURE = 0x0008 }                               <
 4863  enum : uint { IS_TEXT_UNICODE_REVERSE_SIGNATURE = 0x0080 }                       <
 4864                                                                                   <
 4865  enum : uint { IS_TEXT_UNICODE_ILLEGAL_CHARS = 0x0100 }                           <
 4866  enum : uint { IS_TEXT_UNICODE_ODD_LENGTH = 0x0200 }                              <
 4867  enum : uint { IS_TEXT_UNICODE_DBCS_LEADBYTE = 0x0400 }                           <
 4868  enum : uint { IS_TEXT_UNICODE_NULL_BYTES = 0x1000 }                              <
 4869                                                                                   <
 4870  enum : uint { IS_TEXT_UNICODE_UNICODE_MASK = 0x000F }                            <
 4871  enum : uint { IS_TEXT_UNICODE_REVERSE_MASK = 0x00F0 }                            <
 4872  enum : uint { IS_TEXT_UNICODE_NOT_UNICODE_MASK = 0x0F00 }                        <
 4873  enum : uint { IS_TEXT_UNICODE_NOT_ASCII_MASK = 0xF000 }                          <
 4874                                                                                   <
 4875  enum : uint { COMPRESSION_FORMAT_NONE = 0x0000 }                                 <
 4876  enum : uint { COMPRESSION_FORMAT_DEFAULT = 0x0001 }                              <
 4877  enum : uint { COMPRESSION_FORMAT_LZNT1 = 0x0002 }                                <
 4878  enum : uint { COMPRESSION_ENGINE_STANDARD = 0x0000 }                             <
 4879  enum : uint { COMPRESSION_ENGINE_MAXIMUM = 0x0100 }                              <
 4880  enum : uint { COMPRESSION_ENGINE_HIBER = 0x0200 }                                <
 4881                                                                                   <
 4882  extern(Windows) export SIZE_T RtlCompareMemory(                                  <
 4883    VOID *Source1,                                                                 <
 4884    VOID *Source2,                                                                 <
 4885    SIZE_T Length);                                                                <
 4886                                                                                   <
 4887  // #if defined(_M_AMD64) || defined(_M_IA64)                                     <
 4888                                                                                   <
 4889  // #...                                                                          <
 4890  // ...                                                                           <
 4891                                                                                   <
 4892  // ...                                                                           <
 4893                                                                                   <
 4894  // #if !defined(_M_AMD64)                                                        <
 4895                                                                                   <
 4896  // ...                                                                           <
 4897                                                                                   <
 4898  // #endif                                                                        <
 4899                                                                                   <
 4900  // ...                                                                           <
 4901                                                                                   <
 4902  // ...                                                                           <
 4903                                                                                   <
 4904  // ...                                                                           <
 4905                                                                                   <
 4906  // #else                                                                         <
 4907                                                                                   <
 4908  bit RtlEqualMemory(void* x, void* y, uint len){ return memcmp(x, y, len) == 0; } <
 4909  void RtlMoveMemory(void* d, void* s, uint len){ memmove(d, s, len); }            <
 4910  void RtlCopyMemory(void* d, void* s, uint len){ memcpy(d, s, len); }             <
 4911  void RtlFillMemory(void* d, uint len, ubyte f){ memset(d, f, len); }             <
 4912  void RtlZeroMemory(void* d, uint len){ memset(d, 0, len); }                      <
 4913                                                                                   <
 4914  // #endif                                                                        <
 4915                                                                                   <
 4916  struct _MESSAGE_RESOURCE_ENTRY {                                                 <
 4917    WORD Length;                                                                   <
 4918    WORD Flags;                                                                    <
 4919    BYTE Text[ 1 ];                                                                <
 4920  }                                                                                <
 4921  alias _MESSAGE_RESOURCE_ENTRY MESSAGE_RESOURCE_ENTRY;                            <
 4922  alias _MESSAGE_RESOURCE_ENTRY* PMESSAGE_RESOURCE_ENTRY;                          <
 4923                                                                                   <
 4924  enum : uint { MESSAGE_RESOURCE_UNICODE = 0x0001 }                                <
 4925                                                                                   <
 4926  struct _MESSAGE_RESOURCE_BLOCK {                                                 <
 4927    DWORD LowId;                                                                   <
 4928    DWORD HighId;                                                                  <
 4929    DWORD OffsetToEntries;                                                         <
 4930  }                                                                                <
 4931  alias _MESSAGE_RESOURCE_BLOCK MESSAGE_RESOURCE_BLOCK;                            <
 4932  alias _MESSAGE_RESOURCE_BLOCK* PMESSAGE_RESOURCE_BLOCK;                          <
 4933                                                                                   <
 4934  struct _MESSAGE_RESOURCE_DATA {                                                  <
 4935    DWORD NumberOfBlocks;                                                          <
 4936    MESSAGE_RESOURCE_BLOCK Blocks[ 1 ];                                            <
 4937  }                                                                                <
 4938  alias _MESSAGE_RESOURCE_DATA MESSAGE_RESOURCE_DATA;                              <
 4939  alias _MESSAGE_RESOURCE_DATA* PMESSAGE_RESOURCE_DATA;                            <
 4940                                                                                   <
 4941  struct _OSVERSIONINFOA {                                                         <
 4942    DWORD dwOSVersionInfoSize;                                                     <
 4943    DWORD dwMajorVersion;                                                          <
 4944    DWORD dwMinorVersion;                                                          <
 4945    DWORD dwBuildNumber;                                                           <
 4946    DWORD dwPlatformId;                                                            <
 4947    CHAR szCSDVersion[ 128 ];                                                      <
 4948  }                                                                                <
 4949  alias _OSVERSIONINFOA OSVERSIONINFOA;                                            <
 4950  alias _OSVERSIONINFOA* POSVERSIONINFOA;                                          <
 4951  alias _OSVERSIONINFOA* LPOSVERSIONINFOA;                                         <
 4952                                                                                   <
 4953  struct _OSVERSIONINFOW {                                                         <
 4954    DWORD dwOSVersionInfoSize;                                                     <
 4955    DWORD dwMajorVersion;                                                          <
 4956    DWORD dwMinorVersion;                                                          <
 4957    DWORD dwBuildNumber;                                                           <
 4958    DWORD dwPlatformId;                                                            <
 4959    WCHAR szCSDVersion[ 128 ];                                                     <
 4960  }                                                                                <
 4961  alias _OSVERSIONINFOW OSVERSIONINFOW;                                            <
 4962  alias _OSVERSIONINFOW* POSVERSIONINFOW;                                          <
 4963  alias _OSVERSIONINFOW* LPOSVERSIONINFOW;                                         <
 4964  alias _OSVERSIONINFOW RTL_OSVERSIONINFOW;                                        <
 4965  alias _OSVERSIONINFOW* PRTL_OSVERSIONINFOW;                                      <
 4966                                                                                   <
 4967  // #ifdef UNICODE                                                                <
 4968  alias OSVERSIONINFOW OSVERSIONINFO;                                              <
 4969  alias POSVERSIONINFOW POSVERSIONINFO;                                            <
 4970  alias LPOSVERSIONINFOW LPOSVERSIONINFO;                                          <
 4971  // #else                                                                         <
 4972  // ...                                                                           <
 4973  // #endif // UNICODE                                                             <
 4974                                                                                   <
 4975  struct _OSVERSIONINFOEXA {                                                       <
 4976    DWORD dwOSVersionInfoSize;                                                     <
 4977    DWORD dwMajorVersion;                                                          <
 4978    DWORD dwMinorVersion;                                                          <
 4979    DWORD dwBuildNumber;                                                           <
 4980    DWORD dwPlatformId;                                                            <
 4981    CHAR szCSDVersion[ 128 ];                                                      <
 4982    WORD wServicePackMajor;                                                        <
 4983    WORD wServicePackMinor;                                                        <
 4984    WORD wSuiteMask;                                                               <
 4985    BYTE wProductType;                                                             <
 4986    BYTE wReserved;                                                                <
 4987  }                                                                                <
 4988  alias _OSVERSIONINFOEXA OSVERSIONINFOEXA;                                        <
 4989  alias _OSVERSIONINFOEXA* POSVERSIONINFOEXA;                                      <
 4990  alias _OSVERSIONINFOEXA* LPOSVERSIONINFOEXA;                                     <
 4991                                                                                   <
 4992  struct _OSVERSIONINFOEXW {                                                       <
 4993    DWORD dwOSVersionInfoSize;                                                     <
 4994    DWORD dwMajorVersion;                                                          <
 4995    DWORD dwMinorVersion;                                                          <
 4996    DWORD dwBuildNumber;                                                           <
 4997    DWORD dwPlatformId;                                                            <
 4998    WCHAR szCSDVersion[ 128 ];                                                     <
 4999    WORD wServicePackMajor;                                                        <
 5000    WORD wServicePackMinor;                                                        <
 5001    WORD wSuiteMask;                                                               <
 5002    BYTE wProductType;                                                             <
 5003    BYTE wReserved;                                                                <
 5004  }                                                                                <
 5005  alias _OSVERSIONINFOEXW OSVERSIONINFOEXW;                                        <
 5006  alias _OSVERSIONINFOEXW* POSVERSIONINFOEXW;                                      <
 5007  alias _OSVERSIONINFOEXW* LPOSVERSIONINFOEXW;                                     <
 5008  alias _OSVERSIONINFOEXW RTL_OSVERSIONINFOEXW;                                    <
 5009  alias _OSVERSIONINFOEXW* PRTL_OSVERSIONINFOEXW;                                  <
 5010                                                                                   <
 5011  // #ifdef UNICODE                                                                <
 5012  alias OSVERSIONINFOEXW OSVERSIONINFOEX;                                          <
 5013  alias POSVERSIONINFOEXW POSVERSIONINFOEX;                                        <
 5014  alias LPOSVERSIONINFOEXW LPOSVERSIONINFOEX;                                      <
 5015  // #else                                                                         <
 5016  // ...                                                                           <
 5017  // #endif // UNICODE                                                             <
 5018                                                                                   <
 5019  enum : uint { VER_EQUAL = 1 }                                                    <
 5020  enum : uint { VER_GREATER = 2 }                                                  <
 5021  enum : uint { VER_GREATER_EQUAL = 3 }                                            <
 5022  enum : uint { VER_LESS = 4 }                                                     <
 5023  enum : uint { VER_LESS_EQUAL = 5 }                                               <
 5024  enum : uint { VER_AND = 6 }                                                      <
 5025  enum : uint { VER_OR = 7 }                                                       <
 5026                                                                                   <
 5027  enum : uint { VER_CONDITION_MASK = 7 }                                           <
 5028  enum : uint { VER_NUM_BITS_PER_CONDITION_MASK = 3 }                              <
 5029                                                                                   <
 5030  enum : uint { VER_MINORVERSION = 0x0000001 }                                     <
 5031  enum : uint { VER_MAJORVERSION = 0x0000002 }                                     <
 5032  enum : uint { VER_BUILDNUMBER = 0x0000004 }                                      <
 5033  enum : uint { VER_PLATFORMID = 0x0000008 }                                       <
 5034  enum : uint { VER_SERVICEPACKMINOR = 0x0000010 }                                 <
 5035  enum : uint { VER_SERVICEPACKMAJOR = 0x0000020 }                                 <
 5036  enum : uint { VER_SUITENAME = 0x0000040 }                                        <
 5037  enum : uint { VER_PRODUCT_TYPE = 0x0000080 }                                     <
 5038                                                                                   <
 5039  enum : uint { VER_NT_WORKSTATION = 0x0000001 }                                   <
 5040  enum : uint { VER_NT_DOMAIN_CONTROLLER = 0x0000002 }                             <
 5041  enum : uint { VER_NT_SERVER = 0x0000003 }                                        <
 5042                                                                                   <
 5043  enum : uint { VER_PLATFORM_WIN32s = 0 }                                          <
 5044  enum : uint { VER_PLATFORM_WIN32_WINDOWS = 1 }                                   <
 5045  enum : uint { VER_PLATFORM_WIN32_NT = 2 }                                        <
 5046                                                                                   <
 5047  // #define VER_SET_CONDITION(_m_,_t_,_c_) ((_m_)=VerSetConditionMask((_m_),(_t_) <
 5048                                                                                   <
 5049  extern(Windows) export ULONGLONG VerSetConditionMask(                            <
 5050    ULONGLONG ConditionMask,                                                       <
 5051    DWORD TypeMask,                                                                <
 5052    BYTE Condition);                                                               <
 5053                                                                                   <
 5054  struct _RTL_CRITICAL_SECTION_DEBUG {                                             <
 5055    WORD Type;                                                                     <
 5056    WORD CreatorBackTraceIndex;                                                    <
 5057    _RTL_CRITICAL_SECTION *CriticalSection;                                        <
 5058    LIST_ENTRY ProcessLocksList;                                                   <
 5059    DWORD EntryCount;                                                              <
 5060    DWORD ContentionCount;                                                         <
 5061    DWORD Spare[ 2 ];                                                              <
 5062  }                                                                                <
 5063  alias _RTL_CRITICAL_SECTION_DEBUG RTL_CRITICAL_SECTION_DEBUG;                    <
 5064  alias _RTL_CRITICAL_SECTION_DEBUG* PRTL_CRITICAL_SECTION_DEBUG;                  <
 5065  alias _RTL_CRITICAL_SECTION_DEBUG RTL_RESOURCE_DEBUG;                            <
 5066  alias _RTL_CRITICAL_SECTION_DEBUG* PRTL_RESOURCE_DEBUG;                          <
 5067                                                                                   <
 5068  enum : uint { RTL_CRITSECT_TYPE = 0 }                                            <
 5069  enum : uint { RTL_RESOURCE_TYPE = 1 }                                            <
 5070                                                                                   <
 5071  struct _RTL_CRITICAL_SECTION {                                                   <
 5072    PRTL_CRITICAL_SECTION_DEBUG DebugInfo;                                         <
 5073                                                                                   <
 5074    LONG LockCount;                                                                <
 5075    LONG RecursionCount;                                                           <
 5076    HANDLE OwningThread;                                                           <
 5077    HANDLE LockSemaphore;                                                          <
 5078    ULONG_PTR SpinCount;                                                           <
 5079  }                                                                                <
 5080  alias _RTL_CRITICAL_SECTION RTL_CRITICAL_SECTION;                                <
 5081  alias _RTL_CRITICAL_SECTION* PRTL_CRITICAL_SECTION;                              <
 5082                                                                                   <
 5083  extern(Windows) alias VOID function( PWSTR DllName, PVOID DllBase, SIZE_T DllSiz <
 5084                                                                                   <
 5085  extern(Windows) alias VOID function( PWSTR DllName, PVOID DllBase, SIZE_T DllSiz <
 5086                                                                                   <
 5087  struct _RTL_VERIFIER_THUNK_DESCRIPTOR {                                          <
 5088                                                                                   <
 5089    PCHAR ThunkName;                                                               <
 5090    PVOID ThunkOldAddress;                                                         <
 5091    PVOID ThunkNewAddress;                                                         <
 5092  }                                                                                <
 5093  alias _RTL_VERIFIER_THUNK_DESCRIPTOR RTL_VERIFIER_THUNK_DESCRIPTOR;              <
 5094  alias _RTL_VERIFIER_THUNK_DESCRIPTOR* PRTL_VERIFIER_THUNK_DESCRIPTOR;            <
 5095                                                                                   <
 5096  struct _RTL_VERIFIER_DLL_DESCRIPTOR {                                            <
 5097                                                                                   <
 5098    PWCHAR DllName;                                                                <
 5099    DWORD DllFlags;                                                                <
 5100    PVOID DllAddress;                                                              <
 5101    PRTL_VERIFIER_THUNK_DESCRIPTOR DllThunks;                                      <
 5102  }                                                                                <
 5103  alias _RTL_VERIFIER_DLL_DESCRIPTOR RTL_VERIFIER_DLL_DESCRIPTOR;                  <
 5104  alias _RTL_VERIFIER_DLL_DESCRIPTOR* PRTL_VERIFIER_DLL_DESCRIPTOR;                <
 5105                                                                                   <
 5106  struct _RTL_VERIFIER_PROVIDER_DESCRIPTOR {                                       <
 5107                                                                                   <
 5108    DWORD Length;                                                                  <
 5109    PRTL_VERIFIER_DLL_DESCRIPTOR ProviderDlls;                                     <
 5110    RTL_VERIFIER_DLL_LOAD_CALLBACK ProviderDllLoadCallback;                        <
 5111    RTL_VERIFIER_DLL_UNLOAD_CALLBACK ProviderDllUnloadCallback;                    <
 5112                                                                                   <
 5113    PWSTR VerifierImage;                                                           <
 5114    DWORD VerifierFlags;                                                           <
 5115    DWORD VerifierDebug;                                                           <
 5116  }                                                                                <
 5117  alias _RTL_VERIFIER_PROVIDER_DESCRIPTOR RTL_VERIFIER_PROVIDER_DESCRIPTOR;        <
 5118  alias _RTL_VERIFIER_PROVIDER_DESCRIPTOR* PRTL_VERIFIER_PROVIDER_DESCRIPTOR;      <
 5119                                                                                   <
 5120  enum : uint { RTL_VRF_FLG_FULL_PAGE_HEAP = 0x0001 }                              <
 5121  enum : uint { RTL_VRF_FLG_LOCK_CHECKS = 0x0002 }                                 <
 5122  enum : uint { RTL_VRF_FLG_HANDLE_CHECKS = 0x0004 }                               <
 5123  enum : uint { RTL_VRF_FLG_STACK_CHECKS = 0x0008 }                                <
 5124  enum : uint { RTL_VRF_FLG_APPCOMPAT_CHECKS = 0x0010 }                            <
 5125                                                                                   <
 5126  enum : uint { APPLICATION_VERIFIER_INTERNAL_ERROR = 0x80000000 }                 <
 5127  enum : uint { APPLICATION_VERIFIER_INTERNAL_WARNING = 0x40000000 }               <
 5128  enum : uint { APPLICATION_VERIFIER_NO_BREAK = 0x20000000 }                       <
 5129  enum : uint { APPLICATION_VERIFIER_RESERVED_BIT_28 = 0x10000000 }                <
 5130                                                                                   <
 5131  enum : uint { APPLICATION_VERIFIER_UNKNOWN_ERROR = 0x0001 }                      <
 5132  enum : uint { APPLICATION_VERIFIER_ACCESS_VIOLATION = 0x0002 }                   <
 5133  enum : uint { APPLICATION_VERIFIER_UNSYNCHRONIZED_ACCESS = 0x0003 }              <
 5134  enum : uint { APPLICATION_VERIFIER_EXTREME_SIZE_REQUEST = 0x0004 }               <
 5135  enum : uint { APPLICATION_VERIFIER_BAD_HEAP_HANDLE = 0x0005 }                    <
 5136  enum : uint { APPLICATION_VERIFIER_SWITCHED_HEAP_HANDLE = 0x0006 }               <
 5137  enum : uint { APPLICATION_VERIFIER_DOUBLE_FREE = 0x0007 }                        <
 5138  enum : uint { APPLICATION_VERIFIER_CORRUPTED_HEAP_BLOCK = 0x0008 }               <
 5139  enum : uint { APPLICATION_VERIFIER_DESTROY_PROCESS_HEAP = 0x0009 }               <
 5140  enum : uint { APPLICATION_VERIFIER_UNEXPECTED_EXCEPTION = 0x000A }               <
 5141  enum : uint { APPLICATION_VERIFIER_STACK_OVERFLOW = 0x000B }                     <
 5142                                                                                   <
 5143  enum : uint { APPLICATION_VERIFIER_TERMINATE_THREAD_CALL = 0x0100 }              <
 5144                                                                                   <
 5145  enum : uint { APPLICATION_VERIFIER_EXIT_THREAD_OWNS_LOCK = 0x0200 }              <
 5146  enum : uint { APPLICATION_VERIFIER_LOCK_IN_UNLOADED_DLL = 0x0201 }               <
 5147  enum : uint { APPLICATION_VERIFIER_LOCK_IN_FREED_HEAP = 0x0202 }                 <
 5148  enum : uint { APPLICATION_VERIFIER_LOCK_DOUBLE_INITIALIZE = 0x0203 }             <
 5149  enum : uint { APPLICATION_VERIFIER_LOCK_IN_FREED_MEMORY = 0x0204 }               <
 5150  enum : uint { APPLICATION_VERIFIER_LOCK_CORRUPTED = 0x0205 }                     <
 5151  enum : uint { APPLICATION_VERIFIER_LOCK_INVALID_OWNER = 0x0206 }                 <
 5152  enum : uint { APPLICATION_VERIFIER_LOCK_INVALID_RECURSION_COUNT = 0x0207 }       <
 5153  enum : uint { APPLICATION_VERIFIER_LOCK_INVALID_LOCK_COUNT = 0x0208 }            <
 5154  enum : uint { APPLICATION_VERIFIER_LOCK_OVER_RELEASED = 0x0209 }                 <
 5155  enum : uint { APPLICATION_VERIFIER_LOCK_NOT_INITIALIZED = 0x0210 }               <
 5156                                                                                   <
 5157  enum : uint { APPLICATION_VERIFIER_INVALID_HANDLE = 0x0300 }                     <
 5158                                                                                   <
 5159  // #define VERIFIER_STOP(Code, Msg, P1, S1, P2, S2, P3, S3, P4, S4) { RtlApplica <
 5160                                                                                   <
 5161  extern(Windows) export VOID RtlApplicationVerifierStop(                          <
 5162    ULONG_PTR Code,                                                                <
 5163    PCHAR Message,                                                                 <
 5164    ULONG_PTR Param1, PCHAR Description1,                                          <
 5165    ULONG_PTR Param2, PCHAR Description2,                                          <
 5166    ULONG_PTR Param3, PCHAR Description3,                                          <
 5167    ULONG_PTR Param4, PCHAR Description4);                                         <
 5168                                                                                   <
 5169  extern(Windows) alias LONG function(  _EXCEPTION_POINTERS *ExceptionInfo ) PVECT <
 5170  enum : uint { SEF_DACL_AUTO_INHERIT = 0x01 }                                     <
 5171  enum : uint { SEF_SACL_AUTO_INHERIT = 0x02 }                                     <
 5172  enum : uint { SEF_DEFAULT_DESCRIPTOR_FOR_OBJECT = 0x04 }                         <
 5173  enum : uint { SEF_AVOID_PRIVILEGE_CHECK = 0x08 }                                 <
 5174  enum : uint { SEF_AVOID_OWNER_CHECK = 0x10 }                                     <
 5175  enum : uint { SEF_DEFAULT_OWNER_FROM_PARENT = 0x20 }                             <
 5176  enum : uint { SEF_DEFAULT_GROUP_FROM_PARENT = 0x40 }                             <
 5177                                                                                   <
 5178  alias int _HEAP_INFORMATION_CLASS;                                               <
 5179  enum {                                                                           <
 5180                                                                                   <
 5181    HeapCompatibilityInformation,                                                  <
 5182                                                                                   <
 5183  }                                                                                <
 5184  alias _HEAP_INFORMATION_CLASS HEAP_INFORMATION_CLASS;                            <
 5185                                                                                   <
 5186  extern(Windows) export DWORD RtlSetHeapInformation(                              <
 5187    PVOID HeapHandle,                                                              <
 5188    HEAP_INFORMATION_CLASS HeapInformationClass,                                   <
 5189    PVOID HeapInformation ,                                                        <
 5190    SIZE_T HeapInformationLength );                                                <
 5191                                                                                   <
 5192  extern(Windows) export DWORD RtlQueryHeapInformation(                            <
 5193    PVOID HeapHandle,                                                              <
 5194    HEAP_INFORMATION_CLASS HeapInformationClass,                                   <
 5195    PVOID HeapInformation ,                                                        <
 5196    SIZE_T HeapInformationLength ,                                                 <
 5197    PSIZE_T ReturnLength );                                                        <
 5198                                                                                   <
 5199  enum : uint { WT_EXECUTEDEFAULT = 0x00000000 }                                   <
 5200  enum : uint { WT_EXECUTEINIOTHREAD = 0x00000001 }                                <
 5201  enum : uint { WT_EXECUTEINUITHREAD = 0x00000002 }                                <
 5202  enum : uint { WT_EXECUTEINWAITTHREAD = 0x00000004 }                              <
 5203  enum : uint { WT_EXECUTEONLYONCE = 0x00000008 }                                  <
 5204  enum : uint { WT_EXECUTEINTIMERTHREAD = 0x00000020 }                             <
 5205  enum : uint { WT_EXECUTELONGFUNCTION = 0x00000010 }                              <
 5206  enum : uint { WT_EXECUTEINPERSISTENTIOTHREAD = 0x00000040 }                      <
 5207  enum : uint { WT_EXECUTEINPERSISTENTTHREAD = 0x00000080 }                        <
 5208  // #define WT_SET_MAX_THREADPOOL_THREADS(Flags, Limit) ((Flags) |= (Limit)<<16)  <
 5209  extern(Windows) alias VOID function(PVOID, BOOLEAN ) WAITORTIMERCALLBACKFUNC;    <
 5210  extern(Windows) alias VOID function(PVOID ) WORKERCALLBACKFUNC;                  <
 5211  extern(Windows) alias VOID function(DWORD , PVOID, PVOID) APC_CALLBACK_FUNCTION; <
 5212  enum : uint { WT_EXECUTEINLONGTHREAD = 0x00000010 }                              <
 5213  enum : uint { WT_EXECUTEDELETEWAIT = 0x00000008 }                                <
 5214                                                                                   <
 5215  alias int _ACTIVATION_CONTEXT_INFO_CLASS;                                        <
 5216  enum {                                                                           <
 5217    ActivationContextBasicInformation = 1,                                         <
 5218    ActivationContextDetailedInformation = 2,                                      <
 5219    AssemblyDetailedInformationInActivationContext = 3,                            <
 5220    FileInformationInAssemblyOfAssemblyInActivationContext = 4,                    <
 5221    MaxActivationContextInfoClass,                                                 <
 5222                                                                                   <
 5223    AssemblyDetailedInformationInActivationContxt = 3,                             <
 5224    FileInformationInAssemblyOfAssemblyInActivationContxt = 4,                     <
 5225  }                                                                                <
 5226  alias _ACTIVATION_CONTEXT_INFO_CLASS ACTIVATION_CONTEXT_INFO_CLASS;              <
 5227                                                                                   <
 5228  alias ACTIVATION_CONTEXT_INFO_CLASS ACTIVATIONCONTEXTINFOCLASS;                  <
 5229                                                                                   <
 5230  struct _ACTIVATION_CONTEXT_QUERY_INDEX {                                         <
 5231    DWORD ulAssemblyIndex;                                                         <
 5232    DWORD ulFileIndexInAssembly;                                                   <
 5233  }                                                                                <
 5234  alias _ACTIVATION_CONTEXT_QUERY_INDEX ACTIVATION_CONTEXT_QUERY_INDEX;            <
 5235  alias _ACTIVATION_CONTEXT_QUERY_INDEX* PACTIVATION_CONTEXT_QUERY_INDEX;          <
 5236                                                                                   <
 5237  alias _ACTIVATION_CONTEXT_QUERY_INDEX* PCACTIVATION_CONTEXT_QUERY_INDEX;         <
 5238                                                                                   <
 5239  enum : uint { ACTIVATION_CONTEXT_PATH_TYPE_NONE = 1 }                            <
 5240  enum : uint { ACTIVATION_CONTEXT_PATH_TYPE_WIN32_FILE = 2 }                      <
 5241  enum : uint { ACTIVATION_CONTEXT_PATH_TYPE_URL = 3 }                             <
 5242  enum : uint { ACTIVATION_CONTEXT_PATH_TYPE_ASSEMBLYREF = 4 }                     <
 5243                                                                                   <
 5244  struct _ASSEMBLY_FILE_DETAILED_INFORMATION {                                     <
 5245    DWORD ulFlags;                                                                 <
 5246    DWORD ulFilenameLength;                                                        <
 5247    DWORD ulPathLength;                                                            <
 5248    PCWSTR lpFileName;                                                             <
 5249    PCWSTR lpFilePath;                                                             <
 5250  }                                                                                <
 5251  alias _ASSEMBLY_FILE_DETAILED_INFORMATION ASSEMBLY_FILE_DETAILED_INFORMATION;    <
 5252  alias _ASSEMBLY_FILE_DETAILED_INFORMATION* PASSEMBLY_FILE_DETAILED_INFORMATION;  <
 5253                                                                                   <
 5254  alias ASSEMBLY_FILE_DETAILED_INFORMATION* PCASSEMBLY_FILE_DETAILED_INFORMATION;  <
 5255                                                                                   <
 5256  alias _ASSEMBLY_FILE_DETAILED_INFORMATION _ASSEMBLY_DLL_REDIRECTION_DETAILED_INF <
 5257  alias ASSEMBLY_FILE_DETAILED_INFORMATION ASSEMBLY_DLL_REDIRECTION_DETAILED_INFOR <
 5258  alias PASSEMBLY_FILE_DETAILED_INFORMATION PASSEMBLY_DLL_REDIRECTION_DETAILED_INF <
 5259  alias PCASSEMBLY_FILE_DETAILED_INFORMATION PCASSEMBLY_DLL_REDIRECTION_DETAILED_I <
 5260                                                                                   <
 5261  struct _ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION {                       <
 5262    DWORD ulFlags;                                                                 <
 5263    DWORD ulEncodedAssemblyIdentityLength;                                         <
 5264    DWORD ulManifestPathType;                                                      <
 5265    DWORD ulManifestPathLength;                                                    <
 5266    LARGE_INTEGER liManifestLastWriteTime;                                         <
 5267    DWORD ulPolicyPathType;                                                        <
 5268    DWORD ulPolicyPathLength;                                                      <
 5269    LARGE_INTEGER liPolicyLastWriteTime;                                           <
 5270    DWORD ulMetadataSatelliteRosterIndex;                                          <
 5271    DWORD ulManifestVersionMajor;                                                  <
 5272    DWORD ulManifestVersionMinor;                                                  <
 5273    DWORD ulPolicyVersionMajor;                                                    <
 5274    DWORD ulPolicyVersionMinor;                                                    <
 5275    DWORD ulAssemblyDirectoryNameLength;                                           <
 5276                                                                                   <
 5277    PCWSTR lpAssemblyEncodedAssemblyIdentity;                                      <
 5278    PCWSTR lpAssemblyManifestPath;                                                 <
 5279    PCWSTR lpAssemblyPolicyPath;                                                   <
 5280    PCWSTR lpAssemblyDirectoryName;                                                <
 5281    DWORD ulFileCount;                                                             <
 5282  }                                                                                <
 5283  alias _ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION ACTIVATION_CONTEXT_ASSEM <
 5284  alias _ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION* PACTIVATION_CONTEXT_ASS <
 5285                                                                                   <
 5286  alias _ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION* PCACTIVATION_CONTEXT_AS <
 5287                                                                                   <
 5288  struct _ACTIVATION_CONTEXT_DETAILED_INFORMATION {                                <
 5289    DWORD dwFlags;                                                                 <
 5290    DWORD ulFormatVersion;                                                         <
 5291    DWORD ulAssemblyCount;                                                         <
 5292    DWORD ulRootManifestPathType;                                                  <
 5293    DWORD ulRootManifestPathChars;                                                 <
 5294    DWORD ulRootConfigurationPathType;                                             <
 5295    DWORD ulRootConfigurationPathChars;                                            <
 5296    DWORD ulAppDirPathType;                                                        <
 5297    DWORD ulAppDirPathChars;                                                       <
 5298    PCWSTR lpRootManifestPath;                                                     <
 5299    PCWSTR lpRootConfigurationPath;                                                <
 5300    PCWSTR lpAppDirPath;                                                           <
 5301  }                                                                                <
 5302  alias _ACTIVATION_CONTEXT_DETAILED_INFORMATION ACTIVATION_CONTEXT_DETAILED_INFOR <
 5303  alias _ACTIVATION_CONTEXT_DETAILED_INFORMATION* PACTIVATION_CONTEXT_DETAILED_INF <
 5304                                                                                   <
 5305  alias _ACTIVATION_CONTEXT_DETAILED_INFORMATION* PCACTIVATION_CONTEXT_DETAILED_IN <
 5306                                                                                   <
 5307  enum : uint { DLL_PROCESS_ATTACH = 1 }                                           <
 5308  enum : uint { DLL_THREAD_ATTACH = 2 }                                            <
 5309  enum : uint { DLL_THREAD_DETACH = 3 }                                            <
 5310  enum : uint { DLL_PROCESS_DETACH = 0 }                                           <
 5311  enum : uint { DLL_PROCESS_VERIFIER = 4 }                                         <
 5312                                                                                   <
 5313  enum : uint { EVENTLOG_SEQUENTIAL_READ = 0x0001 }                                <
 5314  enum : uint { EVENTLOG_SEEK_READ = 0x0002 }                                      <
 5315  enum : uint { EVENTLOG_FORWARDS_READ = 0x0004 }                                  <
 5316  enum : uint { EVENTLOG_BACKWARDS_READ = 0x0008 }                                 <
 5317                                                                                   <
 5318  enum : uint { EVENTLOG_SUCCESS = 0x0000 }                                        <
 5319  enum : uint { EVENTLOG_ERROR_TYPE = 0x0001 }                                     <
 5320  enum : uint { EVENTLOG_WARNING_TYPE = 0x0002 }                                   <
 5321  enum : uint { EVENTLOG_INFORMATION_TYPE = 0x0004 }                               <
 5322  enum : uint { EVENTLOG_AUDIT_SUCCESS = 0x0008 }                                  <
 5323  enum : uint { EVENTLOG_AUDIT_FAILURE = 0x0010 }                                  <
 5324                                                                                   <
 5325  enum : uint { EVENTLOG_START_PAIRED_EVENT = 0x0001 }                             <
 5326  enum : uint { EVENTLOG_END_PAIRED_EVENT = 0x0002 }                               <
 5327  enum : uint { EVENTLOG_END_ALL_PAIRED_EVENTS = 0x0004 }                          <
 5328  enum : uint { EVENTLOG_PAIRED_EVENT_ACTIVE = 0x0008 }                            <
 5329  enum : uint { EVENTLOG_PAIRED_EVENT_INACTIVE = 0x0010 }                          <
 5330                                                                                   <
 5331  struct _EVENTLOGRECORD {                                                         <
 5332    DWORD Length;                                                                  <
 5333    DWORD Reserved;                                                                <
 5334    DWORD RecordNumber;                                                            <
 5335    DWORD TimeGenerated;                                                           <
 5336    DWORD TimeWritten;                                                             <
 5337    DWORD EventID;                                                                 <
 5338    WORD EventType;                                                                <
 5339    WORD NumStrings;                                                               <
 5340    WORD EventCategory;                                                            <
 5341    WORD ReservedFlags;                                                            <
 5342    DWORD ClosingRecordNumber;                                                     <
 5343    DWORD StringOffset;                                                            <
 5344    DWORD UserSidLength;                                                           <
 5345    DWORD UserSidOffset;                                                           <
 5346    DWORD DataLength;                                                              <
 5347    DWORD DataOffset;                                                              <
 5348                                                                                   <
 5349  }                                                                                <
 5350  alias _EVENTLOGRECORD EVENTLOGRECORD;                                            <
 5351  alias _EVENTLOGRECORD* PEVENTLOGRECORD;                                          <
 5352                                                                                   <
 5353  enum : uint { MAXLOGICALLOGNAMESIZE = 256 }                                      <
 5354                                                                                   <
 5355  // #if _MSC_VER >= 1200                                                          <
 5356  // #pragma warning(push)                                                         <
 5357  // #endif                                                                        <
 5358  // #pragma warning(disable : 4200)                                               <
 5359  struct _EVENTSFORLOGFILE {                                                       <
 5360    DWORD ulSize;                                                                  <
 5361    WCHAR szLogicalLogFile[MAXLOGICALLOGNAMESIZE];                                 <
 5362    DWORD ulNumRecords;                                                            <
 5363    EVENTLOGRECORD pEventLogRecords[];                                             <
 5364  }                                                                                <
 5365  alias _EVENTSFORLOGFILE EVENTSFORLOGFILE;                                        <
 5366  alias _EVENTSFORLOGFILE* PEVENTSFORLOGFILE;                                      <
 5367                                                                                   <
 5368  struct _PACKEDEVENTINFO {                                                        <
 5369    DWORD ulSize;                                                                  <
 5370    DWORD ulNumEventsForLogFile;                                                   <
 5371    DWORD ulOffsets[];                                                             <
 5372  }                                                                                <
 5373  alias _PACKEDEVENTINFO PACKEDEVENTINFO;                                          <
 5374  alias _PACKEDEVENTINFO* PPACKEDEVENTINFO;                                        <
 5375                                                                                   <
 5376  // #if _MSC_VER >= 1200                                                          <
 5377  // #pragma warning(pop)                                                          <
 5378  // #else                                                                         <
 5379  // #...                                                                          <
 5380  // #endif                                                                        <
 5381                                                                                   <
 5382  enum : uint { KEY_QUERY_VALUE = 0x0001 }                                         <
 5383  enum : uint { KEY_SET_VALUE = 0x0002 }                                           <
 5384  enum : uint { KEY_CREATE_SUB_KEY = 0x0004 }                                      <
 5385  enum : uint { KEY_ENUMERATE_SUB_KEYS = 0x0008 }                                  <
 5386  enum : uint { KEY_NOTIFY = 0x0010 }                                              <
 5387  enum : uint { KEY_CREATE_LINK = 0x0020 }                                         <
 5388  enum : uint { KEY_WOW64_32KEY = 0x0200 }                                         <
 5389  enum : uint { KEY_WOW64_64KEY = 0x0100 }                                         <
 5390  enum : uint { KEY_WOW64_RES = 0x0300 }                                           <
 5391                                                                                   <
 5392  enum : uint { KEY_READ = (STANDARD_RIGHTS_READ | KEY_QUERY_VALUE | KEY_ENUMERATE <
 5393                                                                                   <
 5394  enum : uint { KEY_WRITE = (STANDARD_RIGHTS_WRITE | KEY_SET_VALUE | KEY_CREATE_SU <
 5395                                                                                   <
 5396  enum : uint { KEY_EXECUTE = KEY_READ & ~SYNCHRONIZE }                            <
 5397                                                                                   <
 5398  enum : uint { KEY_ALL_ACCESS = (STANDARD_RIGHTS_ALL | KEY_QUERY_VALUE | KEY_SET_ <
 5399                                                                                   <
 5400  enum : uint { REG_OPTION_RESERVED = 0x00000000 }                                 <
 5401                                                                                   <
 5402  enum : uint { REG_OPTION_NON_VOLATILE = 0x00000000 }                             <
 5403                                                                                   <
 5404  enum : uint { REG_OPTION_VOLATILE = 0x00000001 }                                 <
 5405                                                                                   <
 5406  enum : uint { REG_OPTION_CREATE_LINK = 0x00000002 }                              <
 5407                                                                                   <
 5408  enum : uint { REG_OPTION_BACKUP_RESTORE = 0x00000004 }                           <
 5409                                                                                   <
 5410  enum : uint { REG_OPTION_OPEN_LINK = 0x00000008 }                                <
 5411                                                                                   <
 5412  enum : uint { REG_LEGAL_OPTION = REG_OPTION_RESERVED | REG_OPTION_NON_VOLATILE | <
 5413                                                                                   <
 5414  enum : uint { REG_CREATED_NEW_KEY = 0x00000001 }                                 <
 5415  enum : uint { REG_OPENED_EXISTING_KEY = 0x00000002 }                             <
 5416                                                                                   <
 5417  enum : uint { REG_STANDARD_FORMAT = 1 }                                          <
 5418  enum : uint { REG_LATEST_FORMAT = 2 }                                            <
 5419  enum : uint { REG_NO_COMPRESSION = 4 }                                           <
 5420                                                                                   <
 5421  enum : uint { REG_WHOLE_HIVE_VOLATILE = 0x00000001 }                             <
 5422  enum : uint { REG_REFRESH_HIVE = 0x00000002 }                                    <
 5423  enum : uint { REG_NO_LAZY_FLUSH = 0x00000004 }                                   <
 5424  enum : uint { REG_FORCE_RESTORE = 0x00000008 }                                   <
 5425                                                                                   <
 5426  enum : uint { REG_NOTIFY_CHANGE_NAME = 0x00000001 }                              <
 5427  enum : uint { REG_NOTIFY_CHANGE_ATTRIBUTES = 0x00000002 }                        <
 5428  enum : uint { REG_NOTIFY_CHANGE_LAST_SET = 0x00000004 }                          <
 5429  enum : uint { REG_NOTIFY_CHANGE_SECURITY = 0x00000008 }                          <
 5430                                                                                   <
 5431  enum : uint { REG_LEGAL_CHANGE_FILTER = REG_NOTIFY_CHANGE_NAME | REG_NOTIFY_CHAN <
 5432                                                                                   <
 5433  enum : uint { REG_NONE = 0 }                                                     <
 5434  enum : uint { REG_SZ = 1 }                                                       <
 5435  enum : uint { REG_EXPAND_SZ = 2 }                                                <
 5436                                                                                   <
 5437  enum : uint { REG_BINARY = 3 }                                                   <
 5438  enum : uint { REG_DWORD = 4 }                                                    <
 5439  enum : uint { REG_DWORD_LITTLE_ENDIAN = 4 }                                      <
 5440  enum : uint { REG_DWORD_BIG_ENDIAN = 5 }                                         <
 5441  enum : uint { REG_LINK = 6 }                                                     <
 5442  enum : uint { REG_MULTI_SZ = 7 }                                                 <
 5443  enum : uint { REG_RESOURCE_LIST = 8 }                                            <
 5444  enum : uint { REG_FULL_RESOURCE_DESCRIPTOR = 9 }                                 <
 5445  enum : uint { REG_RESOURCE_REQUIREMENTS_LIST = 10 }                              <
 5446  enum : uint { REG_QWORD = 11 }                                                   <
 5447  enum : uint { REG_QWORD_LITTLE_ENDIAN = 11 }                                     <
 5448                                                                                   <
 5449  enum : uint { SERVICE_KERNEL_DRIVER = 0x00000001 }                               <
 5450  enum : uint { SERVICE_FILE_SYSTEM_DRIVER = 0x00000002 }                          <
 5451  enum : uint { SERVICE_ADAPTER = 0x00000004 }                                     <
 5452  enum : uint { SERVICE_RECOGNIZER_DRIVER = 0x00000008 }                           <
 5453                                                                                   <
 5454  enum : uint { SERVICE_DRIVER = SERVICE_KERNEL_DRIVER | SERVICE_FILE_SYSTEM_DRIVE <
 5455                                                                                   <
 5456  enum : uint { SERVICE_WIN32_OWN_PROCESS = 0x00000010 }                           <
 5457  enum : uint { SERVICE_WIN32_SHARE_PROCESS = 0x00000020 }                         <
 5458  enum : uint { SERVICE_WIN32 = SERVICE_WIN32_OWN_PROCESS | SERVICE_WIN32_SHARE_PR <
 5459                                                                                   <
 5460  enum : uint { SERVICE_INTERACTIVE_PROCESS = 0x00000100 }                         <
 5461                                                                                   <
 5462  enum : uint { SERVICE_TYPE_ALL = SERVICE_WIN32 | SERVICE_ADAPTER | SERVICE_DRIVE <
 5463                                                                                   <
 5464  enum : uint { SERVICE_BOOT_START = 0x00000000 }                                  <
 5465  enum : uint { SERVICE_SYSTEM_START = 0x00000001 }                                <
 5466  enum : uint { SERVICE_AUTO_START = 0x00000002 }                                  <
 5467  enum : uint { SERVICE_DEMAND_START = 0x00000003 }                                <
 5468  enum : uint { SERVICE_DISABLED = 0x00000004 }                                    <
 5469                                                                                   <
 5470  enum : uint { SERVICE_ERROR_IGNORE = 0x00000000 }                                <
 5471  enum : uint { SERVICE_ERROR_NORMAL = 0x00000001 }                                <
 5472  enum : uint { SERVICE_ERROR_SEVERE = 0x00000002 }                                <
 5473  enum : uint { SERVICE_ERROR_CRITICAL = 0x00000003 }                              <
 5474                                                                                   <
 5475  alias int _CM_SERVICE_NODE_TYPE;                                                 <
 5476  enum {                                                                           <
 5477    DriverType = SERVICE_KERNEL_DRIVER,                                            <
 5478    FileSystemType = SERVICE_FILE_SYSTEM_DRIVER,                                   <
 5479    Win32ServiceOwnProcess = SERVICE_WIN32_OWN_PROCESS,                            <
 5480    Win32ServiceShareProcess = SERVICE_WIN32_SHARE_PROCESS,                        <
 5481    AdapterType = SERVICE_ADAPTER,                                                 <
 5482    RecognizerType = SERVICE_RECOGNIZER_DRIVER,                                    <
 5483  }                                                                                <
 5484  alias _CM_SERVICE_NODE_TYPE SERVICE_NODE_TYPE;                                   <
 5485                                                                                   <
 5486  alias int _CM_SERVICE_LOAD_TYPE;                                                 <
 5487  enum {                                                                           <
 5488    BootLoad = SERVICE_BOOT_START,                                                 <
 5489    SystemLoad = SERVICE_SYSTEM_START,                                             <
 5490    AutoLoad = SERVICE_AUTO_START,                                                 <
 5491    DemandLoad = SERVICE_DEMAND_START,                                             <
 5492    DisableLoad = SERVICE_DISABLED,                                                <
 5493  }                                                                                <
 5494  alias _CM_SERVICE_LOAD_TYPE SERVICE_LOAD_TYPE;                                   <
 5495                                                                                   <
 5496  alias int _CM_ERROR_CONTROL_TYPE;                                                <
 5497  enum {                                                                           <
 5498    IgnoreError = SERVICE_ERROR_IGNORE,                                            <
 5499    NormalError = SERVICE_ERROR_NORMAL,                                            <
 5500    SevereError = SERVICE_ERROR_SEVERE,                                            <
 5501    CriticalError = SERVICE_ERROR_CRITICAL,                                        <
 5502  }                                                                                <
 5503  alias _CM_ERROR_CONTROL_TYPE SERVICE_ERROR_TYPE;                                 <
 5504                                                                                   <
 5505  enum : uint { TAPE_ERASE_SHORT = 0 }                                             <
 5506  enum : uint { TAPE_ERASE_LONG = 1 }                                              <
 5507                                                                                   <
 5508  struct _TAPE_ERASE {                                                             <
 5509    DWORD Type;                                                                    <
 5510    BOOLEAN Immediate;                                                             <
 5511  }                                                                                <
 5512  alias _TAPE_ERASE TAPE_ERASE;                                                    <
 5513  alias _TAPE_ERASE* PTAPE_ERASE;                                                  <
 5514                                                                                   <
 5515  enum : uint { TAPE_LOAD = 0 }                                                    <
 5516  enum : uint { TAPE_UNLOAD = 1 }                                                  <
 5517  enum : uint { TAPE_TENSION = 2 }                                                 <
 5518  enum : uint { TAPE_LOCK = 3 }                                                    <
 5519  enum : uint { TAPE_UNLOCK = 4 }                                                  <
 5520  enum : uint { TAPE_FORMAT = 5 }                                                  <
 5521                                                                                   <
 5522  struct _TAPE_PREPARE {                                                           <
 5523    DWORD Operation;                                                               <
 5524    BOOLEAN Immediate;                                                             <
 5525  }                                                                                <
 5526  alias _TAPE_PREPARE TAPE_PREPARE;                                                <
 5527  alias _TAPE_PREPARE* PTAPE_PREPARE;                                              <
 5528                                                                                   <
 5529  enum : uint { TAPE_SETMARKS = 0 }                                                <
 5530  enum : uint { TAPE_FILEMARKS = 1 }                                               <
 5531  enum : uint { TAPE_SHORT_FILEMARKS = 2 }                                         <
 5532  enum : uint { TAPE_LONG_FILEMARKS = 3 }                                          <
 5533                                                                                   <
 5534  struct _TAPE_WRITE_MARKS {                                                       <
 5535    DWORD Type;                                                                    <
 5536    DWORD Count;                                                                   <
 5537    BOOLEAN Immediate;                                                             <
 5538  }                                                                                <
 5539  alias _TAPE_WRITE_MARKS TAPE_WRITE_MARKS;                                        <
 5540  alias _TAPE_WRITE_MARKS* PTAPE_WRITE_MARKS;                                      <
 5541                                                                                   <
 5542  enum : uint { TAPE_ABSOLUTE_POSITION = 0 }                                       <
 5543  enum : uint { TAPE_LOGICAL_POSITION = 1 }                                        <
 5544  enum : uint { TAPE_PSEUDO_LOGICAL_POSITION = 2 }                                 <
 5545                                                                                   <
 5546  struct _TAPE_GET_POSITION {                                                      <
 5547    DWORD Type;                                                                    <
 5548    DWORD Partition;                                                               <
 5549    LARGE_INTEGER Offset;                                                          <
 5550  }                                                                                <
 5551  alias _TAPE_GET_POSITION TAPE_GET_POSITION;                                      <
 5552  alias _TAPE_GET_POSITION* PTAPE_GET_POSITION;                                    <
 5553                                                                                   <
 5554  enum : uint { TAPE_REWIND = 0 }                                                  <
 5555  enum : uint { TAPE_ABSOLUTE_BLOCK = 1 }                                          <
 5556  enum : uint { TAPE_LOGICAL_BLOCK = 2 }                                           <
 5557  enum : uint { TAPE_PSEUDO_LOGICAL_BLOCK = 3 }                                    <
 5558  enum : uint { TAPE_SPACE_END_OF_DATA = 4 }                                       <
 5559  enum : uint { TAPE_SPACE_RELATIVE_BLOCKS = 5 }                                   <
 5560  enum : uint { TAPE_SPACE_FILEMARKS = 6 }                                         <
 5561  enum : uint { TAPE_SPACE_SEQUENTIAL_FMKS = 7 }                                   <
 5562  enum : uint { TAPE_SPACE_SETMARKS = 8 }                                          <
 5563  enum : uint { TAPE_SPACE_SEQUENTIAL_SMKS = 9 }                                   <
 5564                                                                                   <
 5565  struct _TAPE_SET_POSITION {                                                      <
 5566    DWORD Method;                                                                  <
 5567    DWORD Partition;                                                               <
 5568    LARGE_INTEGER Offset;                                                          <
 5569    BOOLEAN Immediate;                                                             <
 5570  }                                                                                <
 5571  alias _TAPE_SET_POSITION TAPE_SET_POSITION;                                      <
 5572  alias _TAPE_SET_POSITION* PTAPE_SET_POSITION;                                    <
 5573                                                                                   <
 5574  enum : uint { TAPE_DRIVE_FIXED = 0x00000001 }                                    <
 5575  enum : uint { TAPE_DRIVE_SELECT = 0x00000002 }                                   <
 5576  enum : uint { TAPE_DRIVE_INITIATOR = 0x00000004 }                                <
 5577                                                                                   <
 5578  enum : uint { TAPE_DRIVE_ERASE_SHORT = 0x00000010 }                              <
 5579  enum : uint { TAPE_DRIVE_ERASE_LONG = 0x00000020 }                               <
 5580  enum : uint { TAPE_DRIVE_ERASE_BOP_ONLY = 0x00000040 }                           <
 5581  enum : uint { TAPE_DRIVE_ERASE_IMMEDIATE = 0x00000080 }                          <
 5582                                                                                   <
 5583  enum : uint { TAPE_DRIVE_TAPE_CAPACITY = 0x00000100 }                            <
 5584  enum : uint { TAPE_DRIVE_TAPE_REMAINING = 0x00000200 }                           <
 5585  enum : uint { TAPE_DRIVE_FIXED_BLOCK = 0x00000400 }                              <
 5586  enum : uint { TAPE_DRIVE_VARIABLE_BLOCK = 0x00000800 }                           <
 5587                                                                                   <
 5588  enum : uint { TAPE_DRIVE_WRITE_PROTECT = 0x00001000 }                            <
 5589  enum : uint { TAPE_DRIVE_EOT_WZ_SIZE = 0x00002000 }                              <
 5590                                                                                   <
 5591  enum : uint { TAPE_DRIVE_ECC = 0x00010000 }                                      <
 5592  enum : uint { TAPE_DRIVE_COMPRESSION = 0x00020000 }                              <
 5593  enum : uint { TAPE_DRIVE_PADDING = 0x00040000 }                                  <
 5594  enum : uint { TAPE_DRIVE_REPORT_SMKS = 0x00080000 }                              <
 5595                                                                                   <
 5596  enum : uint { TAPE_DRIVE_GET_ABSOLUTE_BLK = 0x00100000 }                         <
 5597  enum : uint { TAPE_DRIVE_GET_LOGICAL_BLK = 0x00200000 }                          <
 5598  enum : uint { TAPE_DRIVE_SET_EOT_WZ_SIZE = 0x00400000 }                          <
 5599                                                                                   <
 5600  enum : uint { TAPE_DRIVE_EJECT_MEDIA = 0x01000000 }                              <
 5601  enum : uint { TAPE_DRIVE_CLEAN_REQUESTS = 0x02000000 }                           <
 5602  enum : uint { TAPE_DRIVE_SET_CMP_BOP_ONLY = 0x04000000 }                         <
 5603                                                                                   <
 5604  enum : uint { TAPE_DRIVE_RESERVED_BIT = 0x80000000 }                             <
 5605                                                                                   <
 5606  enum : uint { TAPE_DRIVE_LOAD_UNLOAD = 0x80000001 }                              <
 5607  enum : uint { TAPE_DRIVE_TENSION = 0x80000002 }                                  <
 5608  enum : uint { TAPE_DRIVE_LOCK_UNLOCK = 0x80000004 }                              <
 5609  enum : uint { TAPE_DRIVE_REWIND_IMMEDIATE = 0x80000008 }                         <
 5610                                                                                   <
 5611  enum : uint { TAPE_DRIVE_SET_BLOCK_SIZE = 0x80000010 }                           <
 5612  enum : uint { TAPE_DRIVE_LOAD_UNLD_IMMED = 0x80000020 }                          <
 5613  enum : uint { TAPE_DRIVE_TENSION_IMMED = 0x80000040 }                            <
 5614  enum : uint { TAPE_DRIVE_LOCK_UNLK_IMMED = 0x80000080 }                          <
 5615                                                                                   <
 5616  enum : uint { TAPE_DRIVE_SET_ECC = 0x80000100 }                                  <
 5617  enum : uint { TAPE_DRIVE_SET_COMPRESSION = 0x80000200 }                          <
 5618  enum : uint { TAPE_DRIVE_SET_PADDING = 0x80000400 }                              <
 5619  enum : uint { TAPE_DRIVE_SET_REPORT_SMKS = 0x80000800 }                          <
 5620                                                                                   <
 5621  enum : uint { TAPE_DRIVE_ABSOLUTE_BLK = 0x80001000 }                             <
 5622  enum : uint { TAPE_DRIVE_ABS_BLK_IMMED = 0x80002000 }                            <
 5623  enum : uint { TAPE_DRIVE_LOGICAL_BLK = 0x80004000 }                              <
 5624  enum : uint { TAPE_DRIVE_LOG_BLK_IMMED = 0x80008000 }                            <
 5625                                                                                   <
 5626  enum : uint { TAPE_DRIVE_END_OF_DATA = 0x80010000 }                              <
 5627  enum : uint { TAPE_DRIVE_RELATIVE_BLKS = 0x80020000 }                            <
 5628  enum : uint { TAPE_DRIVE_FILEMARKS = 0x80040000 }                                <
 5629  enum : uint { TAPE_DRIVE_SEQUENTIAL_FMKS = 0x80080000 }                          <
 5630                                                                                   <
 5631  enum : uint { TAPE_DRIVE_SETMARKS = 0x80100000 }                                 <
 5632  enum : uint { TAPE_DRIVE_SEQUENTIAL_SMKS = 0x80200000 }                          <
 5633  enum : uint { TAPE_DRIVE_REVERSE_POSITION = 0x80400000 }                         <
 5634  enum : uint { TAPE_DRIVE_SPACE_IMMEDIATE = 0x80800000 }                          <
 5635                                                                                   <
 5636  enum : uint { TAPE_DRIVE_WRITE_SETMARKS = 0x81000000 }                           <
 5637  enum : uint { TAPE_DRIVE_WRITE_FILEMARKS = 0x82000000 }                          <
 5638  enum : uint { TAPE_DRIVE_WRITE_SHORT_FMKS = 0x84000000 }                         <
 5639  enum : uint { TAPE_DRIVE_WRITE_LONG_FMKS = 0x88000000 }                          <
 5640                                                                                   <
 5641  enum : uint { TAPE_DRIVE_WRITE_MARK_IMMED = 0x90000000 }                         <
 5642  enum : uint { TAPE_DRIVE_FORMAT = 0xA0000000 }                                   <
 5643  enum : uint { TAPE_DRIVE_FORMAT_IMMEDIATE = 0xC0000000 }                         <
 5644  enum : uint { TAPE_DRIVE_HIGH_FEATURES = 0x80000000 }                            <
 5645                                                                                   <
 5646  struct _TAPE_GET_DRIVE_PARAMETERS {                                              <
 5647    BOOLEAN ECC;                                                                   <
 5648    BOOLEAN Compression;                                                           <
 5649    BOOLEAN DataPadding;                                                           <
 5650    BOOLEAN ReportSetmarks;                                                        <
 5651    DWORD DefaultBlockSize;                                                        <
 5652    DWORD MaximumBlockSize;                                                        <
 5653    DWORD MinimumBlockSize;                                                        <
 5654    DWORD MaximumPartitionCount;                                                   <
 5655    DWORD FeaturesLow;                                                             <
 5656    DWORD FeaturesHigh;                                                            <
 5657    DWORD EOTWarningZoneSize;                                                      <
 5658  }                                                                                <
 5659  alias _TAPE_GET_DRIVE_PARAMETERS TAPE_GET_DRIVE_PARAMETERS;                      <
 5660  alias _TAPE_GET_DRIVE_PARAMETERS* PTAPE_GET_DRIVE_PARAMETERS;                    <
 5661                                                                                   <
 5662  struct _TAPE_SET_DRIVE_PARAMETERS {                                              <
 5663    BOOLEAN ECC;                                                                   <
 5664    BOOLEAN Compression;                                                           <
 5665    BOOLEAN DataPadding;                                                           <
 5666    BOOLEAN ReportSetmarks;                                                        <
 5667    DWORD EOTWarningZoneSize;                                                      <
 5668  }                                                                                <
 5669  alias _TAPE_SET_DRIVE_PARAMETERS TAPE_SET_DRIVE_PARAMETERS;                      <
 5670  alias _TAPE_SET_DRIVE_PARAMETERS* PTAPE_SET_DRIVE_PARAMETERS;                    <
 5671                                                                                   <
 5672  struct _TAPE_GET_MEDIA_PARAMETERS {                                              <
 5673    LARGE_INTEGER Capacity;                                                        <
 5674    LARGE_INTEGER Remaining;                                                       <
 5675    DWORD BlockSize;                                                               <
 5676    DWORD PartitionCount;                                                          <
 5677    BOOLEAN WriteProtected;                                                        <
 5678  }                                                                                <
 5679  alias _TAPE_GET_MEDIA_PARAMETERS TAPE_GET_MEDIA_PARAMETERS;                      <
 5680  alias _TAPE_GET_MEDIA_PARAMETERS* PTAPE_GET_MEDIA_PARAMETERS;                    <
 5681                                                                                   <
 5682  struct _TAPE_SET_MEDIA_PARAMETERS {                                              <
 5683    DWORD BlockSize;                                                               <
 5684  }                                                                                <
 5685  alias _TAPE_SET_MEDIA_PARAMETERS TAPE_SET_MEDIA_PARAMETERS;                      <
 5686  alias _TAPE_SET_MEDIA_PARAMETERS* PTAPE_SET_MEDIA_PARAMETERS;                    <
 5687                                                                                   <
 5688  enum : uint { TAPE_FIXED_PARTITIONS = 0 }                                        <
 5689  enum : uint { TAPE_SELECT_PARTITIONS = 1 }                                       <
 5690  enum : uint { TAPE_INITIATOR_PARTITIONS = 2 }                                    <
 5691                                                                                   <
 5692  struct _TAPE_CREATE_PARTITION {                                                  <
 5693    DWORD Method;                                                                  <
 5694    DWORD Count;                                                                   <
 5695    DWORD Size;                                                                    <
 5696  }                                                                                <
 5697  alias _TAPE_CREATE_PARTITION TAPE_CREATE_PARTITION;                              <
 5698  alias _TAPE_CREATE_PARTITION* PTAPE_CREATE_PARTITION;                            <
 5699                                                                                   <
 5700  enum : uint { TAPE_QUERY_DRIVE_PARAMETERS = 0 }                                  <
 5701  enum : uint { TAPE_QUERY_MEDIA_CAPACITY = 1 }                                    <
 5702  enum : uint { TAPE_CHECK_FOR_DRIVE_PROBLEM = 2 }                                 <
 5703  enum : uint { TAPE_QUERY_IO_ERROR_DATA = 3 }                                     <
 5704  enum : uint { TAPE_QUERY_DEVICE_ERROR_DATA = 4 }                                 <
 5705                                                                                   <
 5706  struct _TAPE_WMI_OPERATIONS {                                                    <
 5707    DWORD Method;                                                                  <
 5708    DWORD DataBufferSize;                                                          <
 5709    PVOID DataBuffer;                                                              <
 5710  }                                                                                <
 5711  alias _TAPE_WMI_OPERATIONS TAPE_WMI_OPERATIONS;                                  <
 5712  alias _TAPE_WMI_OPERATIONS* PTAPE_WMI_OPERATIONS;                                <
 5713                                                                                   <
 5714  alias int _TAPE_DRIVE_PROBLEM_TYPE;                                              <
 5715  enum {                                                                           <
 5716    TapeDriveProblemNone,                                                          <
 5717    TapeDriveReadWriteWarning,                                                     <
 5718    TapeDriveReadWriteError,                                                       <
 5719    TapeDriveReadWarning,                                                          <
 5720    TapeDriveWriteWarning,                                                         <
 5721    TapeDriveReadError,                                                            <
 5722    TapeDriveWriteError,                                                           <
 5723    TapeDriveHardwareError,                                                        <
 5724    TapeDriveUnsupportedMedia,                                                     <
 5725    TapeDriveScsiConnectionError,                                                  <
 5726    TapeDriveTimetoClean,                                                          <
 5727    TapeDriveCleanDriveNow,                                                        <
 5728    TapeDriveMediaLifeExpired,                                                     <
 5729    TapeDriveSnappedTape,                                                          <
 5730  }                                                                                <
 5731  alias _TAPE_DRIVE_PROBLEM_TYPE TAPE_DRIVE_PROBLEM_TYPE;                          <
 5732                                                                                   <
 5733  // #if defined(_M_AMD64) && !defined(__midl)                                     <
 5734                                                                                   <
 5735  // ...                                                                           <
 5736                                                                                   <
 5737  // ...                                                                           <
 5738                                                                                   <
 5739  // ...                                                                           <
 5740                                                                                   <
 5741  // ...                                                                           <
 5742                                                                                   <
 5743  // ...                                                                           <
 5744                                                                                   <
 5745  // ...                                                                           <
 5746                                                                                   <
 5747  // #endif // _M_AMD64 && !defined(__midl)                                        <
 5748                                                                                   <
 5749  // #if (_WIN32_WINNT > 0x0500) || (_WIN32_FUSION >= 0x0100) || ISOLATION_AWARE_E <
 5750  enum : uint { ACTIVATION_CONTEXT_SECTION_ASSEMBLY_INFORMATION = 1 }              <
 5751  enum : uint { ACTIVATION_CONTEXT_SECTION_DLL_REDIRECTION = 2 }                   <
 5752  enum : uint { ACTIVATION_CONTEXT_SECTION_WINDOW_CLASS_REDIRECTION = 3 }          <
 5753  enum : uint { ACTIVATION_CONTEXT_SECTION_COM_SERVER_REDIRECTION = 4 }            <
 5754  enum : uint { ACTIVATION_CONTEXT_SECTION_COM_INTERFACE_REDIRECTION = 5 }         <
 5755  enum : uint { ACTIVATION_CONTEXT_SECTION_COM_TYPE_LIBRARY_REDIRECTION = 6 }      <
 5756  enum : uint { ACTIVATION_CONTEXT_SECTION_COM_PROGID_REDIRECTION = 7 }            <
 5757  enum : uint { ACTIVATION_CONTEXT_SECTION_GLOBAL_OBJECT_RENAME_TABLE = 8 }        <
 5758  // #endif // winnt_only                                                          <
 5759                                                                                   <
 5760  // #ifdef __cplusplus                                                            <
 5761  // }                                                                             <
 5762  // #endif                                                                        <
 5763                                                                                   <
 5764  // #endif /* _WINNT_ */                                                          <
 5765                                                                                   <