Differences From Artifact [59684aebe49706fd]:
- File        
src/win32/winbase.d
- 2011-02-23 12:53:16 - part of checkin [c2b7a98c21] on branch trunk - Initial import (user: kinaba) [annotate]
 
 
To Artifact [5a227ddcf54fb45e]:
- File        
src/win32/winbase.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  *                               winbase.d                               *
                                                                                        >     3  *                                                                       *
                                                                                        >     4  *                       Windows API header module                       *
                                                                                        >     5  *                                                                       *
                                                                                        >     6  *             Translated from MinGW API for MS-Windows 3.10             *
                                                                                        >     7  *                                                                       *
                                                                                        >     8  *                       Placed into public domain                       *
                                                                                        >     9  \***********************************************************************/
    1  module win32.winbase;                                                                 10  module win32.winbase;
                                                                                        >    11  pragma(lib, "kernel32.lib");
    2                                                                                   |    12  
    3  // Translated from Microsoft Platform SDK August 2001 Edition                    <
    4  // by Y.Tomino (demoonlit@inter7.jp)                                             |    13  /**
    5                                                                                   <
                                                                                        >    14  Translation Notes:
    6  import win32.windef;                                                             |    15  The following macros are obsolete, and have no effect.
    7                                                                                   |    16  
    8  // #ifndef _WINBASE_                                                             |    17  LockSegment(w), MakeProcInstance(p, i), UnlockResource(h), UnlockSegment(w)
    9  // #define _WINBASE_                                                             |    18  FreeModule(m), FreeProcInstance(p), GetFreeSpace(w), DefineHandleTable(w)
                                                                                        >    19  SetSwapAreaSize(w), LimitEmsPages(n), Yield()
   10                                                                                   |    20  
   11  // #if _MSC_VER > 1000                                                           <
   12  // #pragma once                                                                  |    21  // The following Win16 functions are obselete in Win32.
   13  // #endif                                                                        <
   14                                                                                   |    22  
                                                                                        >    23   int _hread(HFILE, LPVOID, int);
   15  // #ifdef _MAC                                                                   |    24   int _hwrite(HFILE, LPCSTR, int);
   16  // #...                                                                          |    25   HFILE _lclose(HFILE);
   17  // #endif //_MAC                                                                 |    26   HFILE _lcreat(LPCSTR, int);
   18                                                                                   <
                                                                                        >    27   LONG _llseek(HFILE, LONG, int);
   19  // #if !defined(_ADVAPI32_)                                                      |    28   HFILE _lopen(LPCSTR, int);
   20  // #define WINADVAPI DECLSPEC_IMPORT                                             |    29   UINT _lread(HFILE, LPVOID, UINT);
   21  // #else                                                                         |    30   UINT _lwrite(HFILE, LPCSTR, UINT);
   22  // #...                                                                          |    31   SIZE_T GlobalCompact(DWORD);
   23  // #endif                                                                        |    32   VOID GlobalFix(HGLOBAL);
                                                                                        >    33  * MSDN contradicts itself on GlobalFlags:
                                                                                        >    34  * "This function is provided only for compatibility with 16-bit versions of Wind
                                                                                        >    35  * but also requires Windows 2000 or above
                                                                                        >    36   UINT GlobalFlags(HGLOBAL);
                                                                                        >    37   VOID GlobalUnfix(HGLOBAL);
                                                                                        >    38   BOOL GlobalUnWire(HGLOBAL);
                                                                                        >    39   PVOID GlobalWire(HGLOBAL);
                                                                                        >    40   SIZE_T LocalCompact(UINT);
                                                                                        >    41   UINT LocalFlags(HLOCAL);
                                                                                        >    42   SIZE_T LocalShrink(HLOCAL, UINT);
   24                                                                                   |    43  
   25  // #if !defined(_KERNEL32_)                                                      <
   26  // #define WINBASEAPI DECLSPEC_IMPORT                                            <
   27  // #else                                                                         <
   28  // #...                                                                          <
   29  // #endif                                                                        <
                                                                                        >    44  // These are not required for DMD.
   30                                                                                   |    45  
   31  // #if !defined(_ZAWPROXY_)                                                      <
   32  // #define ZAWPROXYAPI DECLSPEC_IMPORT                                           <
                                                                                        >    46  //FIXME:
                                                                                        >    47  // #ifndef UNDER_CE
                                                                                        >    48          int WinMain(HINSTANCE, HINSTANCE, LPSTR, int);
   33  // #else                                                                         |    49  #else
   34  // #...                                                                          <
                                                                                        >    50          int WinMain(HINSTANCE, HINSTANCE, LPWSTR, int);
   35  // #endif                                                                        |    51  #endif
                                                                                        >    52  int wWinMain(HINSTANCE, HINSTANCE, LPWSTR, int);
   36                                                                                   |    53  
   37  // #ifdef __cplusplus                                                            <
   38  // extern "C" {                                                                  <
   39  // #endif                                                                        <
                                                                                        >    54  */
   40                                                                                   |    55  
   41  // #define DefineHandleTable(w) ((w),TRUE)                                       <
   42  // #define LimitEmsPages(dw)                                                     <
   43  // #define SetSwapAreaSize(w) (w)                                                <
   44  // #define LockSegment(w) GlobalFix((HANDLE)(w))                                 <
   45  // #define UnlockSegment(w) GlobalUnfix((HANDLE)(w))                             <
   46  alias GetTickCount GetCurrentTime;                                               <
   47                                                                                   <
                                                                                        >    56  import win32.windef, win32.winver;
   48  // #define Yield()                                                               |    57  private import win32.basetyps, win32.w32api, win32.winnt;
   49                                                                                   |    58  
   50  HANDLE INVALID_HANDLE_VALUE = cast(HANDLE)-1;                                    |    59  // FIXME:
   51  enum : uint { INVALID_FILE_SIZE = cast(DWORD)0xFFFFFFFF }                        |    60  alias void va_list;
   52  enum : uint { INVALID_SET_FILE_POINTER = cast(DWORD)-1 }                         <
   53  enum : uint { INVALID_FILE_ATTRIBUTES = cast(DWORD)-1 }                          <
   54                                                                                   |    61  
   55  enum : uint { FILE_BEGIN = 0 }                                                   <
   56  enum : uint { FILE_CURRENT = 1 }                                                 <
   57  enum : uint { FILE_END = 2 }                                                     <
   58                                                                                   |    62  
   59  enum : uint { TIME_ZONE_ID_INVALID = cast(DWORD)0xFFFFFFFF }                     <
                                                                                        >    63  /+
                                                                                        >    64  //--------------------------------------
                                                                                        >    65  // These functions are problematic
   60                                                                                   |    66  
   61  enum : uint { WAIT_FAILED = cast(DWORD)0xFFFFFFFF }                              <
   62  alias STATUS_WAIT_0 WAIT_OBJECT_0;                                               <
   63                                                                                   <
   64  alias STATUS_ABANDONED_WAIT_0 WAIT_ABANDONED;                                    <
   65  alias STATUS_ABANDONED_WAIT_0 WAIT_ABANDONED_0;                                  <
   66                                                                                   <
   67  alias STATUS_USER_APC WAIT_IO_COMPLETION;                                        <
   68  alias STATUS_PENDING STILL_ACTIVE;                                               <
   69  alias STATUS_ACCESS_VIOLATION EXCEPTION_ACCESS_VIOLATION;                        <
   70  alias STATUS_DATATYPE_MISALIGNMENT EXCEPTION_DATATYPE_MISALIGNMENT;              <
   71  alias STATUS_BREAKPOINT EXCEPTION_BREAKPOINT;                                    <
   72  alias STATUS_SINGLE_STEP EXCEPTION_SINGLE_STEP;                                  <
   73  alias STATUS_ARRAY_BOUNDS_EXCEEDED EXCEPTION_ARRAY_BOUNDS_EXCEEDED;              <
   74  alias STATUS_FLOAT_DENORMAL_OPERAND EXCEPTION_FLT_DENORMAL_OPERAND;              <
   75  alias STATUS_FLOAT_DIVIDE_BY_ZERO EXCEPTION_FLT_DIVIDE_BY_ZERO;                  <
   76  alias STATUS_FLOAT_INEXACT_RESULT EXCEPTION_FLT_INEXACT_RESULT;                  <
   77  alias STATUS_FLOAT_INVALID_OPERATION EXCEPTION_FLT_INVALID_OPERATION;            <
   78  alias STATUS_FLOAT_OVERFLOW EXCEPTION_FLT_OVERFLOW;                              <
   79  alias STATUS_FLOAT_STACK_CHECK EXCEPTION_FLT_STACK_CHECK;                        <
   80  alias STATUS_FLOAT_UNDERFLOW EXCEPTION_FLT_UNDERFLOW;                            <
   81  alias STATUS_INTEGER_DIVIDE_BY_ZERO EXCEPTION_INT_DIVIDE_BY_ZERO;                <
   82  alias STATUS_INTEGER_OVERFLOW EXCEPTION_INT_OVERFLOW;                            <
   83  alias STATUS_PRIVILEGED_INSTRUCTION EXCEPTION_PRIV_INSTRUCTION;                  <
   84  alias STATUS_IN_PAGE_ERROR EXCEPTION_IN_PAGE_ERROR;                              <
   85  alias STATUS_ILLEGAL_INSTRUCTION EXCEPTION_ILLEGAL_INSTRUCTION;                  <
   86  alias STATUS_NONCONTINUABLE_EXCEPTION EXCEPTION_NONCONTINUABLE_EXCEPTION;        <
   87  alias STATUS_STACK_OVERFLOW EXCEPTION_STACK_OVERFLOW;                            <
   88  alias STATUS_INVALID_DISPOSITION EXCEPTION_INVALID_DISPOSITION;                  <
   89  alias STATUS_GUARD_PAGE_VIOLATION EXCEPTION_GUARD_PAGE;                          <
   90  alias STATUS_INVALID_HANDLE EXCEPTION_INVALID_HANDLE;                            <
   91  alias STATUS_CONTROL_C_EXIT CONTROL_C_EXIT;                                      <
   92  alias RtlMoveMemory MoveMemory;                                                  <
   93  alias RtlCopyMemory CopyMemory;                                                  <
   94  alias RtlFillMemory FillMemory;                                                  <
   95  alias RtlZeroMemory ZeroMemory;                                                  <
   96                                                                                   <
   97  enum : uint { FILE_FLAG_WRITE_THROUGH = 0x80000000 }                             <
   98  enum : uint { FILE_FLAG_OVERLAPPED = 0x40000000 }                                <
   99  enum : uint { FILE_FLAG_NO_BUFFERING = 0x20000000 }                              <
  100  enum : uint { FILE_FLAG_RANDOM_ACCESS = 0x10000000 }                             <
  101  enum : uint { FILE_FLAG_SEQUENTIAL_SCAN = 0x08000000 }                           <
  102  enum : uint { FILE_FLAG_DELETE_ON_CLOSE = 0x04000000 }                           <
  103  enum : uint { FILE_FLAG_BACKUP_SEMANTICS = 0x02000000 }                          <
  104  enum : uint { FILE_FLAG_POSIX_SEMANTICS = 0x01000000 }                           <
  105  enum : uint { FILE_FLAG_OPEN_REPARSE_POINT = 0x00200000 }                        <
  106  enum : uint { FILE_FLAG_OPEN_NO_RECALL = 0x00100000 }                            <
  107  enum : uint { FILE_FLAG_FIRST_PIPE_INSTANCE = 0x00080000 }                       <
  108                                                                                   <
  109  enum : uint { CREATE_NEW = 1 }                                                   <
  110  enum : uint { CREATE_ALWAYS = 2 }                                                <
  111  enum : uint { OPEN_EXISTING = 3 }                                                <
  112  enum : uint { OPEN_ALWAYS = 4 }                                                  <
  113  enum : uint { TRUNCATE_EXISTING = 5 }                                            <
  114                                                                                   <
                                                                                        >    67  version(UseNtoSKernel) {}else {
                                                                                        >    68          /* CAREFUL: These are exported from ntoskrnl.exe and declared in winddk.
                                                                                        >    69             as __fastcall functions, but are  exported from kernel32.dll as __std
  115  // #if(_WIN32_WINNT >= 0x0400)                                                   |    70          static if (_WIN32_WINNT >= 0x0501) {
                                                                                        >    71           VOID InitializeSListHead(PSLIST_HEADER);
  116                                                                                   |    72          }
  117  enum : uint { PROGRESS_CONTINUE = 0 }                                            <
  118  enum : uint { PROGRESS_CANCEL = 1 }                                              <
  119  enum : uint { PROGRESS_STOP = 2 }                                                <
  120  enum : uint { PROGRESS_QUIET = 3 }                                               <
                                                                                        >    73          LONG InterlockedCompareExchange(LPLONG, LONG, LONG);
                                                                                        >    74          // PVOID WINAPI InterlockedCompareExchangePointer(PVOID*, PVOID, PVOID);
                                                                                        >    75          (PVOID)InterlockedCompareExchange((LPLONG)(d)    (PVOID)InterlockedCompa
                                                                                        >    76          LONG InterlockedDecrement(LPLONG);
                                                                                        >    77          LONG InterlockedExchange(LPLONG, LONG);
                                                                                        >    78          // PVOID WINAPI InterlockedExchangePointer(PVOID*, PVOID);
                                                                                        >    79          (PVOID)InterlockedExchange((LPLONG)((PVOID)InterlockedExchange((LPLONG)(
                                                                                        >    80          LONG InterlockedExchangeAdd(LPLONG, LONG);
  121                                                                                   |    81  
  122  enum : uint { CALLBACK_CHUNK_FINISHED = 0x00000000 }                             <
  123  enum : uint { CALLBACK_STREAM_SWITCH = 0x00000001 }                              <
  124                                                                                   <
  125  enum : uint { COPY_FILE_FAIL_IF_EXISTS = 0x00000001 }                            <
  126  enum : uint { COPY_FILE_RESTARTABLE = 0x00000002 }                               <
  127  enum : uint { COPY_FILE_OPEN_SOURCE_FOR_WRITE = 0x00000004 }                     <
  128  enum : uint { COPY_FILE_ALLOW_DECRYPTED_DESTINATION = 0x00000008 }               <
  129  // #endif /* _WIN32_WINNT >= 0x0400 */                                           |    82          static if (_WIN32_WINNT >= 0x0501) {
                                                                                        >    83          PSLIST_ENTRY InterlockedFlushSList(PSLIST_HEADER);
  130                                                                                   |    84          }
                                                                                        >    85          LONG InterlockedIncrement(LPLONG);
  131  // #if (_WIN32_WINNT >= 0x0500)                                                  |    86          static if (_WIN32_WINNT >= 0x0501) {
                                                                                        >    87          PSLIST_ENTRY InterlockedPopEntrySList(PSLIST_HEADER);
                                                                                        >    88          PSLIST_ENTRY InterlockedPushEntrySList(PSLIST_HEADER, PSLIST_ENTRY);
  132                                                                                   |    89          }
  133  enum : uint { REPLACEFILE_WRITE_THROUGH = 0x00000001 }                           <
  134  enum : uint { REPLACEFILE_IGNORE_MERGE_ERRORS = 0x00000002 }                     <
                                                                                        >    90  } // #endif //  __USE_NTOSKRNL__
                                                                                        >    91  //--------------------------------------
                                                                                        >    92  +/
  135                                                                                   |    93  
  136  // #endif // #if (_WIN32_WINNT >= 0x0500)                                        <
                                                                                        >    94  // COMMPROP structure, used by GetCommProperties()
                                                                                        >    95  // -----------------------------------------------
  137                                                                                   |    96  
  138  enum : uint { PIPE_ACCESS_INBOUND = 0x00000001 }                                 <
  139  enum : uint { PIPE_ACCESS_OUTBOUND = 0x00000002 }                                <
  140  enum : uint { PIPE_ACCESS_DUPLEX = 0x00000003 }                                  <
                                                                                        >    97  // Communications provider type
                                                                                        >    98  enum : DWORD {
                                                                                        >    99          PST_UNSPECIFIED,
                                                                                        >   100          PST_RS232,
                                                                                        >   101          PST_PARALLELPORT,
                                                                                        >   102          PST_RS422,
                                                                                        >   103          PST_RS423,
                                                                                        >   104          PST_RS449,
                                                                                        >   105          PST_MODEM,      // =      6
                                                                                        >   106          PST_FAX            = 0x0021,
                                                                                        >   107          PST_SCANNER        = 0x0022,
                                                                                        >   108          PST_NETWORK_BRIDGE = 0x0100,
                                                                                        >   109          PST_LAT            = 0x0101,
                                                                                        >   110          PST_TCPIP_TELNET   = 0x0102,
                                                                                        >   111          PST_X25            = 0x0103
  141                                                                                   |   112  }
  142  enum : uint { PIPE_CLIENT_END = 0x00000000 }                                     <
  143  enum : uint { PIPE_SERVER_END = 0x00000001 }                                     <
  144                                                                                   |   113  
                                                                                        >   114  // Max baud rate
                                                                                        >   115  enum : DWORD {
  145  enum : uint { PIPE_WAIT = 0x00000000 }                                           |   116          BAUD_075    = 0x00000001,
  146  enum : uint { PIPE_NOWAIT = 0x00000001 }                                         |   117          BAUD_110    = 0x00000002,
  147  enum : uint { PIPE_READMODE_BYTE = 0x00000000 }                                  <
  148  enum : uint { PIPE_READMODE_MESSAGE = 0x00000002 }                               <
  149  enum : uint { PIPE_TYPE_BYTE = 0x00000000 }                                      |   118          BAUD_134_5  = 0x00000004,
  150  enum : uint { PIPE_TYPE_MESSAGE = 0x00000004 }                                   |   119          BAUD_150    = 0x00000008,
                                                                                        >   120          BAUD_300    = 0x00000010,
                                                                                        >   121          BAUD_600    = 0x00000020,
                                                                                        >   122          BAUD_1200   = 0x00000040,
                                                                                        >   123          BAUD_1800   = 0x00000080,
                                                                                        >   124          BAUD_2400   = 0x00000100,
                                                                                        >   125          BAUD_4800   = 0x00000200,
                                                                                        >   126          BAUD_7200   = 0x00000400,
                                                                                        >   127          BAUD_9600   = 0x00000800,
                                                                                        >   128          BAUD_14400  = 0x00001000,
                                                                                        >   129          BAUD_19200  = 0x00002000,
                                                                                        >   130          BAUD_38400  = 0x00004000,
                                                                                        >   131          BAUD_56K    = 0x00008000,
                                                                                        >   132          BAUD_128K   = 0x00010000,
                                                                                        >   133          BAUD_115200 = 0x00020000,
                                                                                        >   134          BAUD_57600  = 0x00040000,
                                                                                        >   135          BAUD_USER   = 0x10000000
  151                                                                                   |   136  }
  152  enum : uint { PIPE_UNLIMITED_INSTANCES = 255 }                                   <
  153                                                                                   |   137  
  154  enum : uint { SECURITY_ANONYMOUS =  SecurityAnonymous << 16  }                   <
  155  enum : uint { SECURITY_IDENTIFICATION =  SecurityIdentification << 16  }         <
  156  enum : uint { SECURITY_IMPERSONATION =  SecurityImpersonation << 16  }           <
  157  enum : uint { SECURITY_DELEGATION =  SecurityDelegation << 16  }                 <
  158                                                                                   <
  159  enum : uint { SECURITY_CONTEXT_TRACKING = 0x00040000 }                           <
  160  enum : uint { SECURITY_EFFECTIVE_ONLY = 0x00080000 }                             <
  161                                                                                   <
  162  enum : uint { SECURITY_SQOS_PRESENT = 0x00100000 }                               <
  163  enum : uint { SECURITY_VALID_SQOS_FLAGS = 0x001F0000 }                           <
  164                                                                                   <
  165  struct _OVERLAPPED {                                                             <
  166    ULONG_PTR Internal;                                                            <
  167    ULONG_PTR InternalHigh;                                                        <
  168  union {                                                                          <
  169  struct {                                                                         <
                                                                                        >   138  // Comm capabilities
  170    DWORD Offset;                                                                  |   139  enum : DWORD {
  171    DWORD OffsetHigh;                                                              <
  172  }                                                                                <
  173                                                                                   <
  174    PVOID Pointer;                                                                 <
  175  }                                                                                <
  176                                                                                   <
  177    HANDLE hEvent;                                                                 <
  178  }                                                                                <
  179  alias _OVERLAPPED OVERLAPPED;                                                    <
  180  alias _OVERLAPPED* LPOVERLAPPED;                                                 <
  181                                                                                   <
  182  struct _SECURITY_ATTRIBUTES {                                                    <
  183    DWORD nLength;                                                                 <
  184    LPVOID lpSecurityDescriptor;                                                   <
  185    BOOL bInheritHandle;                                                           <
  186  }                                                                                <
  187  alias _SECURITY_ATTRIBUTES SECURITY_ATTRIBUTES;                                  <
  188  alias _SECURITY_ATTRIBUTES* PSECURITY_ATTRIBUTES;                                <
  189  alias _SECURITY_ATTRIBUTES* LPSECURITY_ATTRIBUTES;                               <
  190                                                                                   <
  191  struct _PROCESS_INFORMATION {                                                    <
  192    HANDLE hProcess;                                                               <
  193    HANDLE hThread;                                                                <
  194    DWORD dwProcessId;                                                             <
  195    DWORD dwThreadId;                                                              <
  196  }                                                                                <
  197  alias _PROCESS_INFORMATION PROCESS_INFORMATION;                                  <
  198  alias _PROCESS_INFORMATION* PPROCESS_INFORMATION;                                <
  199  alias _PROCESS_INFORMATION* LPPROCESS_INFORMATION;                               <
  200                                                                                   <
  201  struct _FILETIME {                                                               <
  202    DWORD dwLowDateTime;                                                           <
  203    DWORD dwHighDateTime;                                                          <
  204  }                                                                                <
  205  alias _FILETIME FILETIME;                                                        <
  206  alias _FILETIME* PFILETIME;                                                      <
  207  alias _FILETIME* LPFILETIME;                                                     <
  208                                                                                   <
  209  struct _SYSTEMTIME {                                                             <
  210    WORD wYear;                                                                    <
  211    WORD wMonth;                                                                   <
  212    WORD wDayOfWeek;                                                               <
  213    WORD wDay;                                                                     <
  214    WORD wHour;                                                                    <
  215    WORD wMinute;                                                                  <
  216    WORD wSecond;                                                                  <
  217    WORD wMilliseconds;                                                            <
  218  }                                                                                <
  219  alias _SYSTEMTIME SYSTEMTIME;                                                    <
  220  alias _SYSTEMTIME* PSYSTEMTIME;                                                  <
  221  alias _SYSTEMTIME* LPSYSTEMTIME;                                                 <
  222                                                                                   <
  223  extern(Windows) alias DWORD function( LPVOID lpThreadParameter ) PTHREAD_START_R <
  224  alias PTHREAD_START_ROUTINE LPTHREAD_START_ROUTINE;                              <
  225                                                                                   <
  226  // #if(_WIN32_WINNT >= 0x0400)                                                   <
  227  extern(Windows) alias VOID function( LPVOID lpFiberParameter ) PFIBER_START_ROUT <
  228  alias PFIBER_START_ROUTINE LPFIBER_START_ROUTINE;                                <
  229  // #endif /* _WIN32_WINNT >= 0x0400 */                                           <
  230                                                                                   <
  231  alias RTL_CRITICAL_SECTION CRITICAL_SECTION;                                     <
  232  alias PRTL_CRITICAL_SECTION PCRITICAL_SECTION;                                   <
  233  alias PRTL_CRITICAL_SECTION LPCRITICAL_SECTION;                                  <
  234                                                                                   <
  235  alias RTL_CRITICAL_SECTION_DEBUG CRITICAL_SECTION_DEBUG;                         <
  236  alias PRTL_CRITICAL_SECTION_DEBUG PCRITICAL_SECTION_DEBUG;                       <
  237  alias PRTL_CRITICAL_SECTION_DEBUG LPCRITICAL_SECTION_DEBUG;                      <
  238                                                                                   <
  239  // #if defined(_X86_)                                                            <
  240  alias PLDT_ENTRY LPLDT_ENTRY;                                                    <
  241  // #else                                                                         <
  242  // ...                                                                           <
  243  // #endif                                                                        <
  244                                                                                   <
  245  alias MUTANT_QUERY_STATE MUTEX_MODIFY_STATE;                                     <
  246  alias MUTANT_ALL_ACCESS MUTEX_ALL_ACCESS;                                        <
  247                                                                                   <
  248  enum : uint { SP_SERIALCOMM = cast(DWORD)0x00000001 }                            <
  249                                                                                   <
  250  enum : uint { PST_UNSPECIFIED = cast(DWORD)0x00000000 }                          <
  251  enum : uint { PST_RS232 = cast(DWORD)0x00000001 }                                <
  252  enum : uint { PST_PARALLELPORT = cast(DWORD)0x00000002 }                         <
  253  enum : uint { PST_RS422 = cast(DWORD)0x00000003 }                                <
  254  enum : uint { PST_RS423 = cast(DWORD)0x00000004 }                                <
  255  enum : uint { PST_RS449 = cast(DWORD)0x00000005 }                                <
  256  enum : uint { PST_MODEM = cast(DWORD)0x00000006 }                                <
  257  enum : uint { PST_FAX = cast(DWORD)0x00000021 }                                  <
  258  enum : uint { PST_SCANNER = cast(DWORD)0x00000022 }                              <
  259  enum : uint { PST_NETWORK_BRIDGE = cast(DWORD)0x00000100 }                       <
  260  enum : uint { PST_LAT = cast(DWORD)0x00000101 }                                  <
  261  enum : uint { PST_TCPIP_TELNET = cast(DWORD)0x00000102 }                         <
  262  enum : uint { PST_X25 = cast(DWORD)0x00000103 }                                  <
  263                                                                                   <
  264  enum : uint { PCF_DTRDSR = cast(DWORD)0x0001 }                                   <
  265  enum : uint { PCF_RTSCTS = cast(DWORD)0x0002 }                                   <
  266  enum : uint { PCF_RLSD = cast(DWORD)0x0004 }                                     <
                                                                                        >   140          PCF_DTRDSR        = 0x0001,
                                                                                        >   141          PCF_RTSCTS        = 0x0002,
                                                                                        >   142          PCF_RLSD          = 0x0004,
  267  enum : uint { PCF_PARITY_CHECK = cast(DWORD)0x0008 }                             |   143          PCF_PARITY_CHECK  = 0x0008,
  268  enum : uint { PCF_XONXOFF = cast(DWORD)0x0010 }                                  <
                                                                                        >   144          PCF_XONXOFF       = 0x0010,
  269  enum : uint { PCF_SETXCHAR = cast(DWORD)0x0020 }                                 |   145          PCF_SETXCHAR      = 0x0020,
  270  enum : uint { PCF_TOTALTIMEOUTS = cast(DWORD)0x0040 }                            |   146          PCF_TOTALTIMEOUTS = 0x0040,
  271  enum : uint { PCF_INTTIMEOUTS = cast(DWORD)0x0080 }                              |   147          PCF_INTTIMEOUTS   = 0x0080,
  272  enum : uint { PCF_SPECIALCHARS = cast(DWORD)0x0100 }                             |   148          PCF_SPECIALCHARS  = 0x0100,
  273  enum : uint { PCF_16BITMODE = cast(DWORD)0x0200 }                                |   149          PCF_16BITMODE     = 0x0200
  274                                                                                   |   150  }
  275  enum : uint { SP_PARITY = cast(DWORD)0x0001 }                                    <
  276  enum : uint { SP_BAUD = cast(DWORD)0x0002 }                                      <
                                                                                        >   151  
                                                                                        >   152  enum  : DWORD {
                                                                                        >   153          SP_PARITY       = 1,
                                                                                        >   154          SP_BAUD         = 2,
  277  enum : uint { SP_DATABITS = cast(DWORD)0x0004 }                                  |   155          SP_DATABITS     = 4,
  278  enum : uint { SP_STOPBITS = cast(DWORD)0x0008 }                                  |   156          SP_STOPBITS     = 8,
  279  enum : uint { SP_HANDSHAKING = cast(DWORD)0x0010 }                               |   157          SP_HANDSHAKING  = 16,
  280  enum : uint { SP_PARITY_CHECK = cast(DWORD)0x0020 }                              |   158          SP_PARITY_CHECK = 32,
  281  enum : uint { SP_RLSD = cast(DWORD)0x0040 }                                      <
                                                                                        >   159          SP_RLSD         = 64
  282                                                                                   |   160  }
  283  enum : uint { BAUD_075 = cast(DWORD)0x00000001 }                                 <
  284  enum : uint { BAUD_110 = cast(DWORD)0x00000002 }                                 <
  285  enum : uint { BAUD_134_5 = cast(DWORD)0x00000004 }                               <
  286  enum : uint { BAUD_150 = cast(DWORD)0x00000008 }                                 <
  287  enum : uint { BAUD_300 = cast(DWORD)0x00000010 }                                 <
  288  enum : uint { BAUD_600 = cast(DWORD)0x00000020 }                                 <
  289  enum : uint { BAUD_1200 = cast(DWORD)0x00000040 }                                <
  290  enum : uint { BAUD_1800 = cast(DWORD)0x00000080 }                                <
  291  enum : uint { BAUD_2400 = cast(DWORD)0x00000100 }                                <
  292  enum : uint { BAUD_4800 = cast(DWORD)0x00000200 }                                <
  293  enum : uint { BAUD_7200 = cast(DWORD)0x00000400 }                                <
  294  enum : uint { BAUD_9600 = cast(DWORD)0x00000800 }                                <
  295  enum : uint { BAUD_14400 = cast(DWORD)0x00001000 }                               <
  296  enum : uint { BAUD_19200 = cast(DWORD)0x00002000 }                               <
  297  enum : uint { BAUD_38400 = cast(DWORD)0x00004000 }                               <
  298  enum : uint { BAUD_56K = cast(DWORD)0x00008000 }                                 <
  299  enum : uint { BAUD_128K = cast(DWORD)0x00010000 }                                <
  300  enum : uint { BAUD_115200 = cast(DWORD)0x00020000 }                              <
  301  enum : uint { BAUD_57600 = cast(DWORD)0x00040000 }                               <
  302  enum : uint { BAUD_USER = cast(DWORD)0x10000000 }                                <
  303                                                                                   |   161  
                                                                                        >   162  enum : DWORD {
  304  enum : uint { DATABITS_5 = cast(WORD)0x0001 }                                    |   163          DATABITS_5   = 1,
  305  enum : uint { DATABITS_6 = cast(WORD)0x0002 }                                    |   164          DATABITS_6   = 2,
  306  enum : uint { DATABITS_7 = cast(WORD)0x0004 }                                    |   165          DATABITS_7   = 4,
  307  enum : uint { DATABITS_8 = cast(WORD)0x0008 }                                    |   166          DATABITS_8   = 8,
  308  enum : uint { DATABITS_16 = cast(WORD)0x0010 }                                   |   167          DATABITS_16  = 16,
  309  enum : uint { DATABITS_16X = cast(WORD)0x0020 }                                  |   168          DATABITS_16X = 32
  310                                                                                   |   169  }
                                                                                        >   170  
                                                                                        >   171  enum : WORD {
  311  enum : uint { STOPBITS_10 = cast(WORD)0x0001 }                                   |   172          STOPBITS_10  = 0x0001,
  312  enum : uint { STOPBITS_15 = cast(WORD)0x0002 }                                   |   173          STOPBITS_15  = 0x0002,
  313  enum : uint { STOPBITS_20 = cast(WORD)0x0004 }                                   |   174          STOPBITS_20  = 0x0004,
  314  enum : uint { PARITY_NONE = cast(WORD)0x0100 }                                   |   175          PARITY_NONE  = 0x0100,
  315  enum : uint { PARITY_ODD = cast(WORD)0x0200 }                                    <
                                                                                        >   176          PARITY_ODD   = 0x0200,
  316  enum : uint { PARITY_EVEN = cast(WORD)0x0400 }                                   |   177          PARITY_EVEN  = 0x0400,
  317  enum : uint { PARITY_MARK = cast(WORD)0x0800 }                                   |   178          PARITY_MARK  = 0x0800,
  318  enum : uint { PARITY_SPACE = cast(WORD)0x1000 }                                  |   179          PARITY_SPACE = 0x1000
  319                                                                                   |   180  }
                                                                                        >   181  
                                                                                        >   182  // used by dwServiceMask
                                                                                        >   183  const SP_SERIALCOMM = 1;
                                                                                        >   184  
  320  struct _COMMPROP {                                                               |   185  struct COMMPROP {
  321    WORD wPacketLength;                                                            |   186          WORD  wPacketLength;
  322    WORD wPacketVersion;                                                           |   187          WORD  wPacketVersion;
  323    DWORD dwServiceMask;                                                           |   188          DWORD dwServiceMask;
  324    DWORD dwReserved1;                                                             |   189          DWORD dwReserved1;
  325    DWORD dwMaxTxQueue;                                                            |   190          DWORD dwMaxTxQueue;
  326    DWORD dwMaxRxQueue;                                                            |   191          DWORD dwMaxRxQueue;
  327    DWORD dwMaxBaud;                                                               |   192          DWORD dwMaxBaud;
  328    DWORD dwProvSubType;                                                           |   193          DWORD dwProvSubType;
  329    DWORD dwProvCapabilities;                                                      |   194          DWORD dwProvCapabilities;
  330    DWORD dwSettableParams;                                                        |   195          DWORD dwSettableParams;
  331    DWORD dwSettableBaud;                                                          |   196          DWORD dwSettableBaud;
  332    WORD wSettableData;                                                            |   197          WORD  wSettableData;
  333    WORD wSettableStopParity;                                                      |   198          WORD  wSettableStopParity;
  334    DWORD dwCurrentTxQueue;                                                        |   199          DWORD dwCurrentTxQueue;
  335    DWORD dwCurrentRxQueue;                                                        |   200          DWORD dwCurrentRxQueue;
  336    DWORD dwProvSpec1;                                                             |   201          DWORD dwProvSpec1;
  337    DWORD dwProvSpec2;                                                             |   202          DWORD dwProvSpec2;
  338    WCHAR wcProvChar[1];                                                           |   203          WCHAR _wcProvChar;
  339  }                                                                                |   204  
  340  alias _COMMPROP COMMPROP;                                                        <
                                                                                        >   205          WCHAR* wcProvChar() { return &_wcProvChar; }
                                                                                        >   206  }
  341  alias _COMMPROP* LPCOMMPROP;                                                     |   207  alias COMMPROP* LPCOMMPROP;
  342                                                                                   |   208  
  343  enum : uint { COMMPROP_INITIALIZED = cast(DWORD)0xE73CF52E }                     <
                                                                                        >   209  // ----------
  344                                                                                   |   210  
  345  struct _COMSTAT {                                                                <
  346  // DWORD fCtsHold : 1;                                                           <
  347  // DWORD fDsrHold : 1;                                                           <
  348  // DWORD fRlsdHold : 1;                                                          <
  349  // DWORD fXoffHold : 1;                                                          <
  350  // DWORD fXoffSent : 1;                                                          <
                                                                                        >   211  // for DEBUG_EVENT
  351  // DWORD fEof : 1;                                                               |   212  enum : DWORD {
  352  // DWORD fTxim : 1;                                                              <
  353  // DWORD fReserved : 25;                                                         <
  354    DWORD cbInQue;                                                                 <
  355    DWORD cbOutQue;                                                                <
                                                                                        >   213          EXCEPTION_DEBUG_EVENT = 1,
                                                                                        >   214          CREATE_THREAD_DEBUG_EVENT,
                                                                                        >   215          CREATE_PROCESS_DEBUG_EVENT,
                                                                                        >   216          EXIT_THREAD_DEBUG_EVENT,
                                                                                        >   217          EXIT_PROCESS_DEBUG_EVENT,
                                                                                        >   218          LOAD_DLL_DEBUG_EVENT,
                                                                                        >   219          UNLOAD_DLL_DEBUG_EVENT,
                                                                                        >   220          OUTPUT_DEBUG_STRING_EVENT,
                                                                                        >   221          RIP_EVENT
  356  }                                                                                |   222  }
  357  alias _COMSTAT COMSTAT;                                                          <
  358  alias _COMSTAT* LPCOMSTAT;                                                       <
  359                                                                                   |   223  
  360  enum : uint { DTR_CONTROL_DISABLE = 0x00 }                                       <
  361  enum : uint { DTR_CONTROL_ENABLE = 0x01 }                                        <
  362  enum : uint { DTR_CONTROL_HANDSHAKE = 0x02 }                                     <
                                                                                        >   224  const HFILE HFILE_ERROR = cast(HFILE) (-1);
  363                                                                                   |   225  
  364  enum : uint { RTS_CONTROL_DISABLE = 0x00 }                                       <
  365  enum : uint { RTS_CONTROL_ENABLE = 0x01 }                                        <
  366  enum : uint { RTS_CONTROL_HANDSHAKE = 0x02 }                                     <
  367  enum : uint { RTS_CONTROL_TOGGLE = 0x03 }                                        <
                                                                                        >   226  // for SetFilePointer()
                                                                                        >   227  enum : DWORD {
                                                                                        >   228          FILE_BEGIN   = 0,
                                                                                        >   229          FILE_CURRENT = 1,
                                                                                        >   230          FILE_END     = 2
  368                                                                                   |   231  }
  369  struct _DCB {                                                                    <
  370    DWORD DCBlength;                                                               <
  371    DWORD BaudRate;                                                                <
  372  // DWORD fBinary: 1;                                                             <
  373  // DWORD fParity: 1;                                                             <
  374  // DWORD fOutxCtsFlow:1;                                                         <
  375  // DWORD fOutxDsrFlow:1;                                                         <
  376  // DWORD fDtrControl:2;                                                          <
  377  // DWORD fDsrSensitivity:1;                                                      <
  378  // DWORD fTXContinueOnXoff: 1;                                                   <
  379  // DWORD fOutX: 1;                                                               <
  380  // DWORD fInX: 1;                                                                <
  381  // DWORD fErrorChar: 1;                                                          <
  382  // DWORD fNull: 1;                                                               <
  383  // DWORD fRtsControl:2;                                                          <
  384  // DWORD fAbortOnError:1;                                                        <
  385  // DWORD fDummy2:17;                                                             <
  386    WORD wReserved;                                                                <
  387    WORD XonLim;                                                                   <
  388    WORD XoffLim;                                                                  <
  389    BYTE ByteSize;                                                                 <
  390    BYTE Parity;                                                                   <
  391    BYTE StopBits;                                                                 <
  392    char XonChar;                                                                  <
  393    char XoffChar;                                                                 <
  394    char ErrorChar;                                                                <
  395    char EofChar;                                                                  <
  396    char EvtChar;                                                                  <
  397    WORD wReserved1;                                                               <
                                                                                        >   232  const DWORD INVALID_SET_FILE_POINTER = -1;
  398  }                                                                                |   233  
  399  alias _DCB DCB;                                                                  <
  400  alias _DCB* LPDCB;                                                               <
  401                                                                                   |   234  
  402  struct _COMMTIMEOUTS {                                                           <
  403    DWORD ReadIntervalTimeout;                                                     <
  404    DWORD ReadTotalTimeoutMultiplier;                                              <
  405    DWORD ReadTotalTimeoutConstant;                                                <
  406    DWORD WriteTotalTimeoutMultiplier;                                             <
  407    DWORD WriteTotalTimeoutConstant;                                               <
                                                                                        >   235  // for OpenFile()
                                                                                        >   236  deprecated enum : UINT {
                                                                                        >   237          OF_READ             = 0,
                                                                                        >   238          OF_WRITE            = 0x0001,
                                                                                        >   239          OF_READWRITE        = 0x0002,
                                                                                        >   240          OF_SHARE_COMPAT     = 0,
                                                                                        >   241          OF_SHARE_EXCLUSIVE  = 0x0010,
                                                                                        >   242          OF_SHARE_DENY_WRITE = 0x0020,
                                                                                        >   243          OF_SHARE_DENY_READ  = 0x0030,
                                                                                        >   244          OF_SHARE_DENY_NONE  = 0x0040,
                                                                                        >   245          OF_PARSE            = 0x0100,
                                                                                        >   246          OF_DELETE           = 0x0200,
                                                                                        >   247          OF_VERIFY           = 0x0400,
                                                                                        >   248          OF_CANCEL           = 0x0800,
                                                                                        >   249          OF_CREATE           = 0x1000,
                                                                                        >   250          OF_PROMPT           = 0x2000,
                                                                                        >   251          OF_EXIST            = 0x4000,
                                                                                        >   252          OF_REOPEN           = 0x8000
  408  }                                                                                |   253  }
  409  alias _COMMTIMEOUTS COMMTIMEOUTS;                                                <
  410  alias _COMMTIMEOUTS* LPCOMMTIMEOUTS;                                             <
  411                                                                                   |   254  
  412  struct _COMMCONFIG {                                                             <
  413    DWORD dwSize;                                                                  |   255  enum : DWORD {
  414    WORD wVersion;                                                                 <
  415    WORD wReserved;                                                                <
  416    DCB dcb;                                                                       <
  417    DWORD dwProviderSubType;                                                       <
  418    DWORD dwProviderOffset;                                                        <
  419    DWORD dwProviderSize;                                                          <
  420    WCHAR wcProviderData[1];                                                       <
                                                                                        >   256          NMPWAIT_NOWAIT           =  1,
                                                                                        >   257          NMPWAIT_WAIT_FOREVER     = -1,
                                                                                        >   258          NMPWAIT_USE_DEFAULT_WAIT =  0
  421  }                                                                                |   259  }
  422  alias _COMMCONFIG COMMCONFIG;                                                    <
  423  alias _COMMCONFIG* LPCOMMCONFIG;                                                 <
  424                                                                                   |   260  
  425  struct _SYSTEM_INFO {                                                            <
  426  union {                                                                          <
                                                                                        >   261  // for ClearCommError()
  427    DWORD dwOemId;                                                                 |   262  const DWORD
  428  struct {                                                                         <
  429    WORD wProcessorArchitecture;                                                   <
  430    WORD wReserved;                                                                <
                                                                                        >   263          CE_RXOVER   = 0x0001,
                                                                                        >   264          CE_OVERRUN  = 0x0002,
                                                                                        >   265          CE_RXPARITY = 0x0004,
                                                                                        >   266          CE_FRAME    = 0x0008,
                                                                                        >   267          CE_BREAK    = 0x0010,
                                                                                        >   268          CE_TXFULL   = 0x0100,
                                                                                        >   269          CE_PTO      = 0x0200,
                                                                                        >   270          CE_IOE      = 0x0400,
                                                                                        >   271          CE_DNS      = 0x0800,
                                                                                        >   272          CE_OOP      = 0x1000,
                                                                                        >   273          CE_MODE     = 0x8000;
  431  }                                                                                |   274  
                                                                                        >   275  // for CopyProgressRoutine callback.
                                                                                        >   276  enum : DWORD {
                                                                                        >   277          PROGRESS_CONTINUE = 0,
                                                                                        >   278          PROGRESS_CANCEL   = 1,
                                                                                        >   279          PROGRESS_STOP     = 2,
                                                                                        >   280          PROGRESS_QUIET    = 3
  432                                                                                   |   281  }
  433  }                                                                                |   282  
  434                                                                                   <
  435    DWORD dwPageSize;                                                              |   283  enum : DWORD {
  436    LPVOID lpMinimumApplicationAddress;                                            <
  437    LPVOID lpMaximumApplicationAddress;                                            <
  438    DWORD_PTR dwActiveProcessorMask;                                               <
  439    DWORD dwNumberOfProcessors;                                                    <
  440    DWORD dwProcessorType;                                                         <
  441    DWORD dwAllocationGranularity;                                                 <
  442    WORD wProcessorLevel;                                                          <
  443    WORD wProcessorRevision;                                                       <
                                                                                        >   284          CALLBACK_CHUNK_FINISHED = 0,
                                                                                        >   285          CALLBACK_STREAM_SWITCH  = 1
  444  }                                                                                |   286  }
  445  alias _SYSTEM_INFO SYSTEM_INFO;                                                  <
  446  alias _SYSTEM_INFO* LPSYSTEM_INFO;                                               <
  447                                                                                   |   287  
  448  alias FreeLibrary FreeModule;                                                    <
  449  // #define MakeProcInstance(lpProc,hInstance) (lpProc)                           <
  450  // #define FreeProcInstance(lpProc) (lpProc)                                     <
                                                                                        >   288  // CopyFileEx()
                                                                                        >   289  enum : DWORD {
                                                                                        >   290          COPY_FILE_FAIL_IF_EXISTS = 1,
                                                                                        >   291          COPY_FILE_RESTARTABLE    = 2
  451                                                                                   |   292  }
  452  enum : uint { GMEM_FIXED = 0x0000 }                                              <
  453  enum : uint { GMEM_MOVEABLE = 0x0002 }                                           <
  454  enum : uint { GMEM_NOCOMPACT = 0x0010 }                                          <
  455  enum : uint { GMEM_NODISCARD = 0x0020 }                                          <
  456  enum : uint { GMEM_ZEROINIT = 0x0040 }                                           <
  457  enum : uint { GMEM_MODIFY = 0x0080 }                                             <
  458  enum : uint { GMEM_DISCARDABLE = 0x0100 }                                        <
  459  enum : uint { GMEM_NOT_BANKED = 0x1000 }                                         <
  460  enum : uint { GMEM_SHARE = 0x2000 }                                              <
  461  enum : uint { GMEM_DDESHARE = 0x2000 }                                           <
  462  enum : uint { GMEM_NOTIFY = 0x4000 }                                             <
  463  alias GMEM_NOT_BANKED GMEM_LOWER;                                                <
  464  enum : uint { GMEM_VALID_FLAGS = 0x7F72 }                                        <
  465  enum : uint { GMEM_INVALID_HANDLE = 0x8000 }                                     <
  466                                                                                   |   293  
  467  enum : uint { GHND = GMEM_MOVEABLE | GMEM_ZEROINIT }                             <
  468  enum : uint { GPTR = GMEM_FIXED | GMEM_ZEROINIT }                                <
                                                                                        >   294  enum : DWORD {
                                                                                        >   295          FILE_MAP_COPY       = 1,
                                                                                        >   296          FILE_MAP_WRITE      = 2,
                                                                                        >   297          FILE_MAP_READ       = 4,
                                                                                        >   298          FILE_MAP_ALL_ACCESS = 0x000F001F
  469                                                                                   |   299  }
  470  // #define GlobalLRUNewest( h ) ((HANDLE)(h))                                    <
  471  // #define GlobalLRUOldest( h ) ((HANDLE)(h))                                    <
  472  // #define GlobalDiscard( h ) GlobalReAlloc( (h), 0, GMEM_MOVEABLE )             <
  473                                                                                   |   300  
  474  enum : uint { GMEM_DISCARDED = 0x4000 }                                          <
  475  enum : uint { GMEM_LOCKCOUNT = 0x00FF }                                          <
  476                                                                                   <
  477  struct _MEMORYSTATUS {                                                           <
  478    DWORD dwLength;                                                                |   301  enum : DWORD {
  479    DWORD dwMemoryLoad;                                                            <
  480    SIZE_T dwTotalPhys;                                                            <
  481    SIZE_T dwAvailPhys;                                                            <
  482    SIZE_T dwTotalPageFile;                                                        <
  483    SIZE_T dwAvailPageFile;                                                        <
  484    SIZE_T dwTotalVirtual;                                                         <
  485    SIZE_T dwAvailVirtual;                                                         <
                                                                                        >   302          MUTEX_ALL_ACCESS       = 0x001f0001,
                                                                                        >   303          MUTEX_MODIFY_STATE     = 0x00000001,
                                                                                        >   304          SEMAPHORE_ALL_ACCESS   = 0x001f0003,
                                                                                        >   305          SEMAPHORE_MODIFY_STATE = 0x00000002,
                                                                                        >   306          EVENT_ALL_ACCESS       = 0x001f0003,
                                                                                        >   307          EVENT_MODIFY_STATE     = 0x00000002
  486  }                                                                                |   308  }
  487  alias _MEMORYSTATUS MEMORYSTATUS;                                                <
  488  alias _MEMORYSTATUS* LPMEMORYSTATUS;                                             <
  489                                                                                   |   309  
  490  enum : uint { LMEM_FIXED = 0x0000 }                                              <
  491  enum : uint { LMEM_MOVEABLE = 0x0002 }                                           <
  492  enum : uint { LMEM_NOCOMPACT = 0x0010 }                                          <
  493  enum : uint { LMEM_NODISCARD = 0x0020 }                                          <
  494  enum : uint { LMEM_ZEROINIT = 0x0040 }                                           <
  495  enum : uint { LMEM_MODIFY = 0x0080 }                                             <
  496  enum : uint { LMEM_DISCARDABLE = 0x0F00 }                                        <
  497  enum : uint { LMEM_VALID_FLAGS = 0x0F72 }                                        <
  498  enum : uint { LMEM_INVALID_HANDLE = 0x8000 }                                     <
                                                                                        >   310  // CreateNamedPipe()
                                                                                        >   311  enum : DWORD {
                                                                                        >   312          PIPE_ACCESS_INBOUND  = 1,
                                                                                        >   313          PIPE_ACCESS_OUTBOUND = 2,
                                                                                        >   314          PIPE_ACCESS_DUPLEX   = 3
  499                                                                                   |   315  }
  500  enum : uint { LHND = LMEM_MOVEABLE | LMEM_ZEROINIT }                             <
  501  enum : uint { LPTR = LMEM_FIXED | LMEM_ZEROINIT }                                <
  502                                                                                   |   316  
  503  enum : uint { NONZEROLHND = LMEM_MOVEABLE }                                      <
  504  enum : uint { NONZEROLPTR = LMEM_FIXED }                                         <
                                                                                        >   317  const DWORD
                                                                                        >   318          PIPE_TYPE_BYTE        = 0,
                                                                                        >   319          PIPE_TYPE_MESSAGE     = 4,
                                                                                        >   320          PIPE_READMODE_BYTE    = 0,
                                                                                        >   321          PIPE_READMODE_MESSAGE = 2,
                                                                                        >   322          PIPE_WAIT             = 0,
                                                                                        >   323          PIPE_NOWAIT           = 1;
  505                                                                                   |   324  
  506  // #define LocalDiscard( h ) LocalReAlloc( (h), 0, LMEM_MOVEABLE )               <
                                                                                        >   325  // GetNamedPipeInfo()
                                                                                        >   326  const DWORD
                                                                                        >   327          PIPE_CLIENT_END  = 0,
                                                                                        >   328          PIPE_SERVER_END  = 1;
  507                                                                                   |   329  
  508  enum : uint { LMEM_DISCARDED = 0x4000 }                                          <
  509  enum : uint { LMEM_LOCKCOUNT = 0x00FF }                                          <
                                                                                        >   330  const DWORD PIPE_UNLIMITED_INSTANCES = 255;
  510                                                                                   |   331  
                                                                                        >   332  // dwCreationFlags for CreateProcess() and CreateProcessAsUser()
                                                                                        >   333  enum : DWORD {
  511  enum : uint { DEBUG_PROCESS = 0x00000001 }                                       |   334          DEBUG_PROCESS               = 0x00000001,
  512  enum : uint { DEBUG_ONLY_THIS_PROCESS = 0x00000002 }                             |   335          DEBUG_ONLY_THIS_PROCESS     = 0x00000002,
  513                                                                                   <
  514  enum : uint { CREATE_SUSPENDED = 0x00000004 }                                    |   336          CREATE_SUSPENDED            = 0x00000004,
  515                                                                                   <
  516  enum : uint { DETACHED_PROCESS = 0x00000008 }                                    |   337          DETACHED_PROCESS            = 0x00000008,
  517                                                                                   <
  518  enum : uint { CREATE_NEW_CONSOLE = 0x00000010 }                                  |   338          CREATE_NEW_CONSOLE          = 0x00000010,
  519                                                                                   <
  520  enum : uint { NORMAL_PRIORITY_CLASS = 0x00000020 }                               |   339          NORMAL_PRIORITY_CLASS       = 0x00000020,
  521  enum : uint { IDLE_PRIORITY_CLASS = 0x00000040 }                                 |   340          IDLE_PRIORITY_CLASS         = 0x00000040,
  522  enum : uint { HIGH_PRIORITY_CLASS = 0x00000080 }                                 |   341          HIGH_PRIORITY_CLASS         = 0x00000080,
  523  enum : uint { REALTIME_PRIORITY_CLASS = 0x00000100 }                             |   342          REALTIME_PRIORITY_CLASS     = 0x00000100,
  524                                                                                   <
  525  enum : uint { CREATE_NEW_PROCESS_GROUP = 0x00000200 }                            |   343          CREATE_NEW_PROCESS_GROUP    = 0x00000200,
  526  enum : uint { CREATE_UNICODE_ENVIRONMENT = 0x00000400 }                          |   344          CREATE_UNICODE_ENVIRONMENT  = 0x00000400,
  527                                                                                   <
  528  enum : uint { CREATE_SEPARATE_WOW_VDM = 0x00000800 }                             |   345          CREATE_SEPARATE_WOW_VDM     = 0x00000800,
  529  enum : uint { CREATE_SHARED_WOW_VDM = 0x00001000 }                               |   346          CREATE_SHARED_WOW_VDM       = 0x00001000,
  530  enum : uint { CREATE_FORCEDOS = 0x00002000 }                                     |   347          CREATE_FORCEDOS             = 0x00002000,
  531                                                                                   <
  532  enum : uint { BELOW_NORMAL_PRIORITY_CLASS = 0x00004000 }                         |   348          BELOW_NORMAL_PRIORITY_CLASS = 0x00004000,
  533  enum : uint { ABOVE_NORMAL_PRIORITY_CLASS = 0x00008000 }                         |   349          ABOVE_NORMAL_PRIORITY_CLASS = 0x00008000,
  534  enum : uint { STACK_SIZE_PARAM_IS_A_RESERVATION = 0x00010000 }                   <
  535                                                                                   <
  536  enum : uint { CREATE_BREAKAWAY_FROM_JOB = 0x01000000 }                           |   350          CREATE_BREAKAWAY_FROM_JOB   = 0x01000000,
  537  enum : uint { CREATE_PRESERVE_CODE_AUTHZ_LEVEL = 0x02000000 }                    <
  538                                                                                   <
                                                                                        >   351          CREATE_WITH_USERPROFILE     = 0x02000000,
  539  enum : uint { CREATE_DEFAULT_ERROR_MODE = 0x04000000 }                           |   352          CREATE_DEFAULT_ERROR_MODE   = 0x04000000,
  540  enum : uint { CREATE_NO_WINDOW = 0x08000000 }                                    |   353          CREATE_NO_WINDOW            = 0x08000000,
  541                                                                                   <
  542  enum : uint { PROFILE_USER = 0x10000000 }                                        <
                                                                                        >   354          PROFILE_USER                = 0x10000000,
  543  enum : uint { PROFILE_KERNEL = 0x20000000 }                                      |   355          PROFILE_KERNEL              = 0x20000000,
  544  enum : uint { PROFILE_SERVER = 0x40000000 }                                      |   356          PROFILE_SERVER              = 0x40000000
  545                                                                                   |   357  }
  546  enum : uint { CREATE_IGNORE_SYSTEM_DEFAULT = 0x80000000 }                        <
  547                                                                                   |   358  
  548  alias THREAD_BASE_PRIORITY_MIN THREAD_PRIORITY_LOWEST;                           <
  549  enum : uint { THREAD_PRIORITY_BELOW_NORMAL = THREAD_PRIORITY_LOWEST+1 }          <
  550  enum : uint { THREAD_PRIORITY_NORMAL = 0 }                                       <
  551  alias THREAD_BASE_PRIORITY_MAX THREAD_PRIORITY_HIGHEST;                          <
  552  enum : uint { THREAD_PRIORITY_ABOVE_NORMAL = THREAD_PRIORITY_HIGHEST-1 }         <
  553  enum : uint { THREAD_PRIORITY_ERROR_RETURN = MAXLONG }                           <
                                                                                        >   359  const DWORD CONSOLE_TEXTMODE_BUFFER = 1;
  554                                                                                   |   360  
  555  alias THREAD_BASE_PRIORITY_LOWRT THREAD_PRIORITY_TIME_CRITICAL;                  <
  556  alias THREAD_BASE_PRIORITY_IDLE THREAD_PRIORITY_IDLE;                            <
  557                                                                                   <
  558  enum : uint { EXCEPTION_DEBUG_EVENT = 1 }                                        <
  559  enum : uint { CREATE_THREAD_DEBUG_EVENT = 2 }                                    <
  560  enum : uint { CREATE_PROCESS_DEBUG_EVENT = 3 }                                   <
  561  enum : uint { EXIT_THREAD_DEBUG_EVENT = 4 }                                      <
  562  enum : uint { EXIT_PROCESS_DEBUG_EVENT = 5 }                                     <
  563  enum : uint { LOAD_DLL_DEBUG_EVENT = 6 }                                         <
  564  enum : uint { UNLOAD_DLL_DEBUG_EVENT = 7 }                                       <
  565  enum : uint { OUTPUT_DEBUG_STRING_EVENT = 8 }                                    <
  566  enum : uint { RIP_EVENT = 9 }                                                    <
  567                                                                                   <
  568  struct _EXCEPTION_DEBUG_INFO {                                                   <
  569    EXCEPTION_RECORD ExceptionRecord;                                              <
                                                                                        >   361  // CreateFile()
  570    DWORD dwFirstChance;                                                           |   362  enum : DWORD {
                                                                                        >   363          CREATE_NEW = 1,
                                                                                        >   364          CREATE_ALWAYS,
                                                                                        >   365          OPEN_EXISTING,
                                                                                        >   366          OPEN_ALWAYS,
                                                                                        >   367          TRUNCATE_EXISTING
  571  }                                                                                |   368  }
  572  alias _EXCEPTION_DEBUG_INFO EXCEPTION_DEBUG_INFO;                                <
  573  alias _EXCEPTION_DEBUG_INFO* LPEXCEPTION_DEBUG_INFO;                             <
  574                                                                                   |   369  
  575  struct _CREATE_THREAD_DEBUG_INFO {                                               <
  576    HANDLE hThread;                                                                <
  577    LPVOID lpThreadLocalBase;                                                      <
  578    LPTHREAD_START_ROUTINE lpStartAddress;                                         <
                                                                                        >   370  // CreateFile()
                                                                                        >   371  const DWORD
                                                                                        >   372          FILE_FLAG_WRITE_THROUGH      = 0x80000000,
                                                                                        >   373          FILE_FLAG_OVERLAPPED         = 0x40000000,
                                                                                        >   374          FILE_FLAG_NO_BUFFERING       = 0x20000000,
                                                                                        >   375          FILE_FLAG_RANDOM_ACCESS      = 0x10000000,
                                                                                        >   376          FILE_FLAG_SEQUENTIAL_SCAN    = 0x08000000,
                                                                                        >   377          FILE_FLAG_DELETE_ON_CLOSE    = 0x04000000,
                                                                                        >   378          FILE_FLAG_BACKUP_SEMANTICS   = 0x02000000,
                                                                                        >   379          FILE_FLAG_POSIX_SEMANTICS    = 0x01000000,
                                                                                        >   380          FILE_FLAG_OPEN_REPARSE_POINT = 0x00200000,
                                                                                        >   381          FILE_FLAG_OPEN_NO_RECALL     = 0x00100000;
  579  }                                                                                |   382  
  580  alias _CREATE_THREAD_DEBUG_INFO CREATE_THREAD_DEBUG_INFO;                        <
  581  alias _CREATE_THREAD_DEBUG_INFO* LPCREATE_THREAD_DEBUG_INFO;                     <
                                                                                        >   383  static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) {
                                                                                        >   384          const DWORD FILE_FLAG_FIRST_PIPE_INSTANCE = 0x00080000;
  582                                                                                   |   385  }
  583  struct _CREATE_PROCESS_DEBUG_INFO {                                              <
  584    HANDLE hFile;                                                                  <
  585    HANDLE hProcess;                                                               <
  586    HANDLE hThread;                                                                <
  587    LPVOID lpBaseOfImage;                                                          <
  588    DWORD dwDebugInfoFileOffset;                                                   <
  589    DWORD nDebugInfoSize;                                                          <
  590    LPVOID lpThreadLocalBase;                                                      <
  591    LPTHREAD_START_ROUTINE lpStartAddress;                                         <
  592    LPVOID lpImageName;                                                            <
  593    WORD fUnicode;                                                                 <
  594  }                                                                                |   386  
  595  alias _CREATE_PROCESS_DEBUG_INFO CREATE_PROCESS_DEBUG_INFO;                      <
  596  alias _CREATE_PROCESS_DEBUG_INFO* LPCREATE_PROCESS_DEBUG_INFO;                   <
  597                                                                                   <
  598  struct _EXIT_THREAD_DEBUG_INFO {                                                 <
                                                                                        >   387  // for CreateFile()
  599    DWORD dwExitCode;                                                              |   388  const DWORD
                                                                                        >   389          SECURITY_ANONYMOUS        = SECURITY_IMPERSONATION_LEVEL.SecurityAnonymo
                                                                                        >   390          SECURITY_IDENTIFICATION   = SECURITY_IMPERSONATION_LEVEL.SecurityIdentif
                                                                                        >   391          SECURITY_IMPERSONATION    = SECURITY_IMPERSONATION_LEVEL.SecurityImperso
                                                                                        >   392          SECURITY_DELEGATION       = SECURITY_IMPERSONATION_LEVEL.SecurityDelegat
                                                                                        >   393          SECURITY_CONTEXT_TRACKING = 0x00040000,
                                                                                        >   394          SECURITY_EFFECTIVE_ONLY   = 0x00080000,
                                                                                        >   395          SECURITY_SQOS_PRESENT     = 0x00100000,
                                                                                        >   396          SECURITY_VALID_SQOS_FLAGS = 0x001F0000;
  600  }                                                                                |   397  
  601  alias _EXIT_THREAD_DEBUG_INFO EXIT_THREAD_DEBUG_INFO;                            <
  602  alias _EXIT_THREAD_DEBUG_INFO* LPEXIT_THREAD_DEBUG_INFO;                         <
  603                                                                                   |   398  
  604  struct _EXIT_PROCESS_DEBUG_INFO {                                                <
  605    DWORD dwExitCode;                                                              <
                                                                                        >   399  // Thread exit code
                                                                                        >   400  const DWORD STILL_ACTIVE = 0x103;
  606  }                                                                                |   401  
  607  alias _EXIT_PROCESS_DEBUG_INFO EXIT_PROCESS_DEBUG_INFO;                          <
  608  alias _EXIT_PROCESS_DEBUG_INFO* LPEXIT_PROCESS_DEBUG_INFO;                       <
                                                                                        >   402  /*      ??? The only documentation of this seems to be about Windows CE and to
                                                                                        >   403   *      state what _doesn't_ support it.
                                                                                        >   404   */
                                                                                        >   405  const DWORD FIND_FIRST_EX_CASE_SENSITIVE = 1;
  609                                                                                   |   406  
  610  struct _LOAD_DLL_DEBUG_INFO {                                                    <
  611    HANDLE hFile;                                                                  <
  612    LPVOID lpBaseOfDll;                                                            <
  613    DWORD dwDebugInfoFileOffset;                                                   <
                                                                                        >   407  // GetBinaryType()
  614    DWORD nDebugInfoSize;                                                          |   408  enum : DWORD {
  615    LPVOID lpImageName;                                                            <
  616    WORD fUnicode;                                                                 <
                                                                                        >   409          SCS_32BIT_BINARY = 0,
                                                                                        >   410          SCS_DOS_BINARY,
                                                                                        >   411          SCS_WOW_BINARY,
                                                                                        >   412          SCS_PIF_BINARY,
                                                                                        >   413          SCS_POSIX_BINARY,
                                                                                        >   414          SCS_OS216_BINARY
  617  }                                                                                |   415  }
  618  alias _LOAD_DLL_DEBUG_INFO LOAD_DLL_DEBUG_INFO;                                  <
  619  alias _LOAD_DLL_DEBUG_INFO* LPLOAD_DLL_DEBUG_INFO;                               <
  620                                                                                   |   416  
  621  struct _UNLOAD_DLL_DEBUG_INFO {                                                  <
  622    LPVOID lpBaseOfDll;                                                            <
                                                                                        >   417  const size_t
                                                                                        >   418          MAX_COMPUTERNAME_LENGTH = 15,
                                                                                        >   419          HW_PROFILE_GUIDLEN      = 39,
                                                                                        >   420          MAX_PROFILE_LEN         = 80;
  623  }                                                                                |   421  
  624  alias _UNLOAD_DLL_DEBUG_INFO UNLOAD_DLL_DEBUG_INFO;                              <
  625  alias _UNLOAD_DLL_DEBUG_INFO* LPUNLOAD_DLL_DEBUG_INFO;                           <
  626                                                                                   <
  627  struct _OUTPUT_DEBUG_STRING_INFO {                                               <
  628    LPSTR lpDebugStringData;                                                       <
  629    WORD fUnicode;                                                                 <
  630    WORD nDebugStringLength;                                                       <
  631  }                                                                                <
  632  alias _OUTPUT_DEBUG_STRING_INFO OUTPUT_DEBUG_STRING_INFO;                        <
  633  alias _OUTPUT_DEBUG_STRING_INFO* LPOUTPUT_DEBUG_STRING_INFO;                     <
  634                                                                                   <
  635  struct _RIP_INFO {                                                               <
                                                                                        >   422  // HW_PROFILE_INFO
  636    DWORD dwError;                                                                 |   423  const DWORD
  637    DWORD dwType;                                                                  <
                                                                                        >   424          DOCKINFO_UNDOCKED      = 1,
                                                                                        >   425          DOCKINFO_DOCKED        = 2,
                                                                                        >   426          DOCKINFO_USER_SUPPLIED = 4,
                                                                                        >   427          DOCKINFO_USER_UNDOCKED = DOCKINFO_USER_SUPPLIED | DOCKINFO_UNDOCKED,
                                                                                        >   428          DOCKINFO_USER_DOCKED   = DOCKINFO_USER_SUPPLIED | DOCKINFO_DOCKED;
  638  }                                                                                |   429  
  639  alias _RIP_INFO RIP_INFO;                                                        <
  640  alias _RIP_INFO* LPRIP_INFO;                                                     <
  641                                                                                   <
  642  struct _DEBUG_EVENT {                                                            <
  643    DWORD dwDebugEventCode;                                                        <
  644    DWORD dwProcessId;                                                             <
  645    DWORD dwThreadId;                                                              <
  646  union {                                                                          <
  647    EXCEPTION_DEBUG_INFO Exception;                                                <
  648    CREATE_THREAD_DEBUG_INFO CreateThread;                                         <
  649    CREATE_PROCESS_DEBUG_INFO CreateProcessInfo;                                   <
  650    EXIT_THREAD_DEBUG_INFO ExitThread;                                             <
  651    EXIT_PROCESS_DEBUG_INFO ExitProcess;                                           <
  652    LOAD_DLL_DEBUG_INFO LoadDll;                                                   <
  653    UNLOAD_DLL_DEBUG_INFO UnloadDll;                                               <
  654    OUTPUT_DEBUG_STRING_INFO DebugString;                                          <
  655    RIP_INFO RipInfo;                                                              <
  656  }                                                                                <
  657                                                                                   <
  658  }                                                                                <
  659  alias _DEBUG_EVENT DEBUG_EVENT;                                                  <
  660  alias _DEBUG_EVENT* LPDEBUG_EVENT;                                               <
  661                                                                                   <
  662  // #if !defined(MIDL_PASS)                                                       <
  663  alias PCONTEXT LPCONTEXT;                                                        <
  664  alias PEXCEPTION_RECORD LPEXCEPTION_RECORD;                                      <
  665  alias PEXCEPTION_POINTERS LPEXCEPTION_POINTERS;                                  <
  666  // #endif                                                                        <
  667                                                                                   <
                                                                                        >   430  // DriveType(), RealDriveType()
                                                                                        >   431  enum : int {
  668  enum : uint { DRIVE_UNKNOWN = 0 }                                                |   432          DRIVE_UNKNOWN = 0,
  669  enum : uint { DRIVE_NO_ROOT_DIR = 1 }                                            |   433          DRIVE_NO_ROOT_DIR,
  670  enum : uint { DRIVE_REMOVABLE = 2 }                                              |   434          DRIVE_REMOVABLE,
  671  enum : uint { DRIVE_FIXED = 3 }                                                  |   435          DRIVE_FIXED,
  672  enum : uint { DRIVE_REMOTE = 4 }                                                 |   436          DRIVE_REMOTE,
  673  enum : uint { DRIVE_CDROM = 5 }                                                  |   437          DRIVE_CDROM,
  674  enum : uint { DRIVE_RAMDISK = 6 }                                                |   438          DRIVE_RAMDISK
  675                                                                                   |   439  }
  676  // #ifndef _MAC                                                                  <
  677  // #define GetFreeSpace(w) (0x100000L)                                           <
  678  // #else                                                                         <
  679  // ...                                                                           <
  680  // #endif                                                                        <
  681                                                                                   |   440  
                                                                                        >   441  // GetFileType()
                                                                                        >   442  enum : DWORD {
  682  enum : uint { FILE_TYPE_UNKNOWN = 0x0000 }                                       |   443          FILE_TYPE_UNKNOWN = 0,
  683  enum : uint { FILE_TYPE_DISK = 0x0001 }                                          |   444          FILE_TYPE_DISK,
  684  enum : uint { FILE_TYPE_CHAR = 0x0002 }                                          |   445          FILE_TYPE_CHAR,
  685  enum : uint { FILE_TYPE_PIPE = 0x0003 }                                          |   446          FILE_TYPE_PIPE,
  686  enum : uint { FILE_TYPE_REMOTE = 0x8000 }                                        |   447          FILE_TYPE_REMOTE = 0x8000
  687                                                                                   |   448  }
                                                                                        >   449  
                                                                                        >   450  // Get/SetHandleInformation()
                                                                                        >   451  const DWORD
                                                                                        >   452          HANDLE_FLAG_INHERIT            = 0x01,
                                                                                        >   453          HANDLE_FLAG_PROTECT_FROM_CLOSE = 0x02;
                                                                                        >   454  
                                                                                        >   455  enum : DWORD {
  688  enum : uint { STD_INPUT_HANDLE = cast(DWORD)-10 }                                |   456          STD_INPUT_HANDLE  = 0xFFFFFFF6,
  689  enum : uint { STD_OUTPUT_HANDLE = cast(DWORD)-11 }                               |   457          STD_OUTPUT_HANDLE = 0xFFFFFFF5,
  690  enum : uint { STD_ERROR_HANDLE = cast(DWORD)-12 }                                |   458          STD_ERROR_HANDLE  = 0xFFFFFFF4
  691                                                                                   |   459  }
  692  enum : uint { NOPARITY = 0 }                                                     <
  693  enum : uint { ODDPARITY = 1 }                                                    <
  694  enum : uint { EVENPARITY = 2 }                                                   <
  695  enum : uint { MARKPARITY = 3 }                                                   <
  696  enum : uint { SPACEPARITY = 4 }                                                  <
  697                                                                                   |   460  
  698  enum : uint { ONESTOPBIT = 0 }                                                   <
  699  enum : uint { ONE5STOPBITS = 1 }                                                 <
  700  enum : uint { TWOSTOPBITS = 2 }                                                  <
                                                                                        >   461  const HANDLE INVALID_HANDLE_VALUE = cast(HANDLE) (-1);
  701                                                                                   |   462  
  702  enum : uint { IGNORE = 0 }                                                       |   463  enum : DWORD {
  703  enum : uint { INFINITE = 0xFFFFFFFF }                                            <
                                                                                        >   464          GET_TAPE_MEDIA_INFORMATION = 0,
                                                                                        >   465          GET_TAPE_DRIVE_INFORMATION = 1
  704                                                                                   |   466  }
  705  enum : uint { CBR_110 = 110 }                                                    <
  706  enum : uint { CBR_300 = 300 }                                                    <
  707  enum : uint { CBR_600 = 600 }                                                    <
  708  enum : uint { CBR_1200 = 1200 }                                                  <
  709  enum : uint { CBR_2400 = 2400 }                                                  <
  710  enum : uint { CBR_4800 = 4800 }                                                  <
  711  enum : uint { CBR_9600 = 9600 }                                                  <
  712  enum : uint { CBR_14400 = 14400 }                                                <
  713  enum : uint { CBR_19200 = 19200 }                                                <
  714  enum : uint { CBR_38400 = 38400 }                                                <
  715  enum : uint { CBR_56000 = 56000 }                                                <
  716  enum : uint { CBR_57600 = 57600 }                                                <
  717  enum : uint { CBR_115200 = 115200 }                                              <
  718  enum : uint { CBR_128000 = 128000 }                                              <
  719  enum : uint { CBR_256000 = 256000 }                                              <
  720                                                                                   |   467  
  721  enum : uint { CE_RXOVER = 0x0001 }                                               <
  722  enum : uint { CE_OVERRUN = 0x0002 }                                              <
  723  enum : uint { CE_RXPARITY = 0x0004 }                                             <
  724  enum : uint { CE_FRAME = 0x0008 }                                                <
  725  enum : uint { CE_BREAK = 0x0010 }                                                <
  726  enum : uint { CE_TXFULL = 0x0100 }                                               <
  727  enum : uint { CE_PTO = 0x0200 }                                                  <
  728  enum : uint { CE_IOE = 0x0400 }                                                  <
  729  enum : uint { CE_DNS = 0x0800 }                                                  <
  730  enum : uint { CE_OOP = 0x1000 }                                                  <
  731  enum : uint { CE_MODE = 0x8000 }                                                 <
                                                                                        >   468  enum : DWORD {
                                                                                        >   469          SET_TAPE_MEDIA_INFORMATION = 0,
                                                                                        >   470          SET_TAPE_DRIVE_INFORMATION = 1
  732                                                                                   |   471  }
  733  enum { IE_BADID = -1 }                                                           <
  734  enum { IE_OPEN = -2 }                                                            <
  735  enum { IE_NOPEN = -3 }                                                           <
  736  enum { IE_MEMORY = -4 }                                                          <
  737  enum { IE_DEFAULT = -5 }                                                         <
  738  enum { IE_HARDWARE = -10 }                                                       <
  739  enum { IE_BYTESIZE = -11 }                                                       <
  740  enum { IE_BAUDRATE = -12 }                                                       <
  741                                                                                   |   472  
  742  enum : uint { EV_RXCHAR = 0x0001 }                                               <
  743  enum : uint { EV_RXFLAG = 0x0002 }                                               <
  744  enum : uint { EV_TXEMPTY = 0x0004 }                                              <
  745  enum : uint { EV_CTS = 0x0008 }                                                  <
  746  enum : uint { EV_DSR = 0x0010 }                                                  <
  747  enum : uint { EV_RLSD = 0x0020 }                                                 <
  748  enum : uint { EV_BREAK = 0x0040 }                                                <
  749  enum : uint { EV_ERR = 0x0080 }                                                  <
  750  enum : uint { EV_RING = 0x0100 }                                                 <
  751  enum : uint { EV_PERR = 0x0200 }                                                 <
  752  enum : uint { EV_RX80FULL = 0x0400 }                                             <
  753  enum : uint { EV_EVENT1 = 0x0800 }                                               <
  754  enum : uint { EV_EVENT2 = 0x1000 }                                               <
                                                                                        >   473  // SetThreadPriority()/GetThreadPriority()
                                                                                        >   474  enum : int {
                                                                                        >   475          THREAD_PRIORITY_IDLE          = -15,
                                                                                        >   476          THREAD_PRIORITY_LOWEST        =  -2,
                                                                                        >   477          THREAD_PRIORITY_BELOW_NORMAL  =  -1,
                                                                                        >   478          THREAD_PRIORITY_NORMAL        =   0,
                                                                                        >   479          THREAD_PRIORITY_ABOVE_NORMAL  =   1,
                                                                                        >   480          THREAD_PRIORITY_HIGHEST       =   2,
                                                                                        >   481          THREAD_PRIORITY_TIME_CRITICAL =  15,
                                                                                        >   482          THREAD_PRIORITY_ERROR_RETURN  = 2147483647
  755                                                                                   |   483  }
  756  enum : uint { SETXOFF = 1 }                                                      <
  757  enum : uint { SETXON = 2 }                                                       <
  758  enum : uint { SETRTS = 3 }                                                       <
  759  enum : uint { CLRRTS = 4 }                                                       <
  760  enum : uint { SETDTR = 5 }                                                       <
  761  enum : uint { CLRDTR = 6 }                                                       <
  762  enum : uint { RESETDEV = 7 }                                                     <
  763  enum : uint { SETBREAK = 8 }                                                     <
  764  enum : uint { CLRBREAK = 9 }                                                     <
  765                                                                                   |   484  
  766  enum : uint { PURGE_TXABORT = 0x0001 }                                           <
  767  enum : uint { PURGE_RXABORT = 0x0002 }                                           <
  768  enum : uint { PURGE_TXCLEAR = 0x0004 }                                           <
  769  enum : uint { PURGE_RXCLEAR = 0x0008 }                                           <
                                                                                        >   485  enum : DWORD {
                                                                                        >   486          TIME_ZONE_ID_UNKNOWN,
                                                                                        >   487          TIME_ZONE_ID_STANDARD,
                                                                                        >   488          TIME_ZONE_ID_DAYLIGHT,
                                                                                        >   489          TIME_ZONE_ID_INVALID = 0xFFFFFFFF
  770                                                                                   |   490  }
  771  enum : uint { LPTx = 0x80 }                                                      <
  772                                                                                   |   491  
  773  enum : uint { MS_CTS_ON = cast(DWORD)0x0010 }                                    <
  774  enum : uint { MS_DSR_ON = cast(DWORD)0x0020 }                                    <
  775  enum : uint { MS_RING_ON = cast(DWORD)0x0040 }                                   <
  776  enum : uint { MS_RLSD_ON = cast(DWORD)0x0080 }                                   <
                                                                                        >   492  const DWORD
                                                                                        >   493          FS_CASE_SENSITIVE         =     1,
                                                                                        >   494          FS_CASE_IS_PRESERVED      =     2,
                                                                                        >   495          FS_UNICODE_STORED_ON_DISK =     4,
                                                                                        >   496          FS_PERSISTENT_ACLS        =     8,
                                                                                        >   497          FS_FILE_COMPRESSION       =    16,
                                                                                        >   498          FS_VOL_IS_COMPRESSED      = 32768;
  777                                                                                   |   499  
  778  enum : uint { S_QUEUEEMPTY = 0 }                                                 <
  779  enum : uint { S_THRESHOLD = 1 }                                                  <
  780  enum : uint { S_ALLTHRESHOLD = 2 }                                               <
                                                                                        >   500  // Flags for GlobalAlloc
                                                                                        >   501  const UINT
                                                                                        >   502          GMEM_FIXED       = 0,
                                                                                        >   503          GMEM_MOVEABLE    = 0x0002,
                                                                                        >   504          GMEM_ZEROINIT    = 0x0040,
                                                                                        >   505          GPTR             = 0x0040,
                                                                                        >   506          GHND             = 0x0042,
                                                                                        >   507          GMEM_MODIFY      = 0x0080,  // used only for GlobalRealloc
                                                                                        >   508          GMEM_VALID_FLAGS = 0x7F72;
  781                                                                                   |   509  
  782  enum : uint { S_NORMAL = 0 }                                                     <
  783  enum : uint { S_LEGATO = 1 }                                                     <
  784  enum : uint { S_STACCATO = 2 }                                                   <
                                                                                        >   510  /+  // Obselete flags (Win16 only)
                                                                                        >   511          GMEM_NOCOMPACT=16;
                                                                                        >   512          GMEM_NODISCARD=32;
                                                                                        >   513          GMEM_DISCARDABLE=256;
                                                                                        >   514          GMEM_NOT_BANKED=4096;
                                                                                        >   515          GMEM_LOWER=4096;
                                                                                        >   516          GMEM_SHARE=8192;
                                                                                        >   517          GMEM_DDESHARE=8192;
  785                                                                                   |   518  
  786  enum : uint { S_PERIOD512 = 0 }                                                  <
  787  enum : uint { S_PERIOD1024 = 1 }                                                 <
  788  enum : uint { S_PERIOD2048 = 2 }                                                 <
  789  enum : uint { S_PERIODVOICE = 3 }                                                <
  790  enum : uint { S_WHITE512 = 4 }                                                   <
  791  enum : uint { S_WHITE1024 = 5 }                                                  <
  792  enum : uint { S_WHITE2048 = 6 }                                                  <
  793  enum : uint { S_WHITEVOICE = 7 }                                                 <
                                                                                        >   519          GMEM_LOCKCOUNT=255;
  794                                                                                   |   520  
  795  enum { S_SERDVNA = -1 }                                                          <
  796  enum { S_SEROFM = -2 }                                                           <
  797  enum { S_SERMACT = -3 }                                                          <
  798  enum { S_SERQFUL = -4 }                                                          <
  799  enum { S_SERBDNT = -5 }                                                          <
  800  enum { S_SERDLN = -6 }                                                           <
  801  enum { S_SERDCC = -7 }                                                           <
  802  enum { S_SERDTP = -8 }                                                           <
  803  enum { S_SERDVL = -9 }                                                           <
  804  enum { S_SERDMD = -10 }                                                          <
  805  enum { S_SERDSH = -11 }                                                          <
  806  enum { S_SERDPT = -12 }                                                          <
  807  enum { S_SERDFQ = -13 }                                                          <
  808  enum { S_SERDDR = -14 }                                                          <
  809  enum { S_SERDSR = -15 }                                                          <
  810  enum { S_SERDST = -16 }                                                          <
                                                                                        >   521  // for GlobalFlags()
                                                                                        >   522          GMEM_DISCARDED      = 16384;
                                                                                        >   523          GMEM_INVALID_HANDLE = 32768;
  811                                                                                   |   524  
  812  enum : uint { NMPWAIT_WAIT_FOREVER = 0xffffffff }                                <
  813  enum : uint { NMPWAIT_NOWAIT = 0x00000001 }                                      <
  814  enum : uint { NMPWAIT_USE_DEFAULT_WAIT = 0x00000000 }                            <
                                                                                        >   525          GMEM_NOTIFY         = 16384;
                                                                                        >   526  +/
  815                                                                                   |   527  
  816  alias FILE_CASE_PRESERVED_NAMES FS_CASE_IS_PRESERVED;                            <
  817  alias FILE_CASE_SENSITIVE_SEARCH FS_CASE_SENSITIVE;                              <
  818  alias FILE_UNICODE_ON_DISK FS_UNICODE_STORED_ON_DISK;                            <
  819  alias FILE_PERSISTENT_ACLS FS_PERSISTENT_ACLS;                                   <
  820  alias FILE_VOLUME_IS_COMPRESSED FS_VOL_IS_COMPRESSED;                            <
  821  alias FILE_FILE_COMPRESSION FS_FILE_COMPRESSION;                                 <
  822  alias FILE_SUPPORTS_ENCRYPTION FS_FILE_ENCRYPTION;                               <
                                                                                        >   528  const UINT
                                                                                        >   529          LMEM_FIXED          = 0,
                                                                                        >   530          LMEM_MOVEABLE       = 0x0002,
                                                                                        >   531          LMEM_NONZEROLPTR    = 0,
                                                                                        >   532          NONZEROLPTR         = 0,
                                                                                        >   533          LMEM_NONZEROLHND    = 0x0002,
                                                                                        >   534          NONZEROLHND         = 0x0002,
                                                                                        >   535          LMEM_DISCARDABLE    = 0x0F00,
                                                                                        >   536          LMEM_NOCOMPACT      = 0x0010,
                                                                                        >   537          LMEM_NODISCARD      = 0x0020,
                                                                                        >   538          LMEM_ZEROINIT       = 0x0040,
                                                                                        >   539          LPTR                = 0x0040,
                                                                                        >   540          LHND                = 0x0042,
                                                                                        >   541          LMEM_MODIFY         = 0x0080,
                                                                                        >   542          LMEM_LOCKCOUNT      = 0x00FF,
                                                                                        >   543          LMEM_DISCARDED      = 0x4000,
                                                                                        >   544          LMEM_INVALID_HANDLE = 0x8000;
  823                                                                                   |   545  
  824  alias SECTION_QUERY FILE_MAP_COPY;                                               <
  825  alias SECTION_MAP_WRITE FILE_MAP_WRITE;                                          <
  826  alias SECTION_MAP_READ FILE_MAP_READ;                                            <
  827  alias SECTION_ALL_ACCESS FILE_MAP_ALL_ACCESS;                                    <
  828                                                                                   |   546  
  829  enum : uint { OF_READ = 0x00000000 }                                             <
  830  enum : uint { OF_WRITE = 0x00000001 }                                            <
  831  enum : uint { OF_READWRITE = 0x00000002 }                                        <
  832  enum : uint { OF_SHARE_COMPAT = 0x00000000 }                                     <
  833  enum : uint { OF_SHARE_EXCLUSIVE = 0x00000010 }                                  <
  834  enum : uint { OF_SHARE_DENY_WRITE = 0x00000020 }                                 <
  835  enum : uint { OF_SHARE_DENY_READ = 0x00000030 }                                  <
  836  enum : uint { OF_SHARE_DENY_NONE = 0x00000040 }                                  <
  837  enum : uint { OF_PARSE = 0x00000100 }                                            <
  838  enum : uint { OF_DELETE = 0x00000200 }                                           <
  839  enum : uint { OF_VERIFY = 0x00000400 }                                           <
  840  enum : uint { OF_CANCEL = 0x00000800 }                                           <
  841  enum : uint { OF_CREATE = 0x00001000 }                                           <
  842  enum : uint { OF_PROMPT = 0x00002000 }                                           <
  843  enum : uint { OF_EXIST = 0x00004000 }                                            <
  844  enum : uint { OF_REOPEN = 0x00008000 }                                           <
  845                                                                                   |   547  
  846  enum : uint { OFS_MAXPATHNAME = 128 }                                            <
  847  struct _OFSTRUCT {                                                               <
  848    BYTE cBytes;                                                                   <
  849    BYTE fFixedDisk;                                                               <
                                                                                        >   548  // used in EXCEPTION_RECORD
  850    WORD nErrCode;                                                                 |   549  enum : DWORD {
  851    WORD Reserved1;                                                                <
  852    WORD Reserved2;                                                                <
  853    CHAR szPathName[OFS_MAXPATHNAME];                                              <
                                                                                        >   550          STATUS_WAIT_0                      = 0,
                                                                                        >   551          STATUS_ABANDONED_WAIT_0            = 0x00000080,
                                                                                        >   552          STATUS_USER_APC                    = 0x000000C0,
                                                                                        >   553          STATUS_TIMEOUT                     = 0x00000102,
                                                                                        >   554          STATUS_PENDING                     = 0x00000103,
  854  }                                                                                |   555  
  855  alias _OFSTRUCT OFSTRUCT;                                                        <
  856  alias _OFSTRUCT* LPOFSTRUCT;                                                     <
  857  alias _OFSTRUCT* POFSTRUCT;                                                      <
                                                                                        >   556          STATUS_SEGMENT_NOTIFICATION        = 0x40000005,
                                                                                        >   557          STATUS_GUARD_PAGE_VIOLATION        = 0x80000001,
                                                                                        >   558          STATUS_DATATYPE_MISALIGNMENT       = 0x80000002,
                                                                                        >   559          STATUS_BREAKPOINT                  = 0x80000003,
                                                                                        >   560          STATUS_SINGLE_STEP                 = 0x80000004,
  858                                                                                   |   561  
  859  // #ifndef NOWINBASEINTERLOCK                                                    <
                                                                                        >   562          STATUS_ACCESS_VIOLATION            = 0xC0000005,
                                                                                        >   563          STATUS_IN_PAGE_ERROR               = 0xC0000006,
                                                                                        >   564          STATUS_INVALID_HANDLE              = 0xC0000008,
  860                                                                                   |   565  
  861  // #ifndef _NTOS_                                                                <
                                                                                        >   566          STATUS_NO_MEMORY                   = 0xC0000017,
                                                                                        >   567          STATUS_ILLEGAL_INSTRUCTION         = 0xC000001D,
                                                                                        >   568          STATUS_NONCONTINUABLE_EXCEPTION    = 0xC0000025,
                                                                                        >   569          STATUS_INVALID_DISPOSITION         = 0xC0000026,
                                                                                        >   570          STATUS_ARRAY_BOUNDS_EXCEEDED       = 0xC000008C,
                                                                                        >   571          STATUS_FLOAT_DENORMAL_OPERAND      = 0xC000008D,
                                                                                        >   572          STATUS_FLOAT_DIVIDE_BY_ZERO        = 0xC000008E,
                                                                                        >   573          STATUS_FLOAT_INEXACT_RESULT        = 0xC000008F,
                                                                                        >   574          STATUS_FLOAT_INVALID_OPERATION     = 0xC0000090,
                                                                                        >   575          STATUS_FLOAT_OVERFLOW              = 0xC0000091,
                                                                                        >   576          STATUS_FLOAT_STACK_CHECK           = 0xC0000092,
                                                                                        >   577          STATUS_FLOAT_UNDERFLOW             = 0xC0000093,
                                                                                        >   578          STATUS_INTEGER_DIVIDE_BY_ZERO      = 0xC0000094,
                                                                                        >   579          STATUS_INTEGER_OVERFLOW            = 0xC0000095,
                                                                                        >   580          STATUS_PRIVILEGED_INSTRUCTION      = 0xC0000096,
                                                                                        >   581          STATUS_STACK_OVERFLOW              = 0xC00000FD,
                                                                                        >   582          STATUS_CONTROL_C_EXIT              = 0xC000013A,
                                                                                        >   583          STATUS_DLL_INIT_FAILED             = 0xC0000142,
                                                                                        >   584          STATUS_DLL_INIT_FAILED_LOGOFF      = 0xC000026B,
  862                                                                                   |   585  
  863  // #if defined(_M_IA64) && !defined(RC_INVOKED)                                  <
                                                                                        >   586          CONTROL_C_EXIT                     = STATUS_CONTROL_C_EXIT,
  864                                                                                   |   587  
  865  // #...                                                                          <
  866  // #...                                                                          <
  867  // #...                                                                          <
  868  // #...                                                                          <
  869  // #...                                                                          <
  870  // #...                                                                          <
  871  // #...                                                                          <
                                                                                        >   588          EXCEPTION_ACCESS_VIOLATION         = STATUS_ACCESS_VIOLATION,
                                                                                        >   589          EXCEPTION_DATATYPE_MISALIGNMENT    = STATUS_DATATYPE_MISALIGNMENT,
                                                                                        >   590          EXCEPTION_BREAKPOINT               = STATUS_BREAKPOINT,
                                                                                        >   591          EXCEPTION_SINGLE_STEP              = STATUS_SINGLE_STEP,
                                                                                        >   592          EXCEPTION_ARRAY_BOUNDS_EXCEEDED    = STATUS_ARRAY_BOUNDS_EXCEEDED,
                                                                                        >   593          EXCEPTION_FLT_DENORMAL_OPERAND     = STATUS_FLOAT_DENORMAL_OPERAND,
                                                                                        >   594          EXCEPTION_FLT_DIVIDE_BY_ZERO       = STATUS_FLOAT_DIVIDE_BY_ZERO,
                                                                                        >   595          EXCEPTION_FLT_INEXACT_RESULT       = STATUS_FLOAT_INEXACT_RESULT,
                                                                                        >   596          EXCEPTION_FLT_INVALID_OPERATION    = STATUS_FLOAT_INVALID_OPERATION,
                                                                                        >   597          EXCEPTION_FLT_OVERFLOW             = STATUS_FLOAT_OVERFLOW,
                                                                                        >   598          EXCEPTION_FLT_STACK_CHECK          = STATUS_FLOAT_STACK_CHECK,
                                                                                        >   599          EXCEPTION_FLT_UNDERFLOW            = STATUS_FLOAT_UNDERFLOW,
                                                                                        >   600          EXCEPTION_INT_DIVIDE_BY_ZERO       = STATUS_INTEGER_DIVIDE_BY_ZERO,
                                                                                        >   601          EXCEPTION_INT_OVERFLOW             = STATUS_INTEGER_OVERFLOW,
                                                                                        >   602          EXCEPTION_PRIV_INSTRUCTION         = STATUS_PRIVILEGED_INSTRUCTION,
                                                                                        >   603          EXCEPTION_IN_PAGE_ERROR            = STATUS_IN_PAGE_ERROR,
                                                                                        >   604          EXCEPTION_ILLEGAL_INSTRUCTION      = STATUS_ILLEGAL_INSTRUCTION,
                                                                                        >   605          EXCEPTION_NONCONTINUABLE_EXCEPTION = STATUS_NONCONTINUABLE_EXCEPTION,
                                                                                        >   606          EXCEPTION_STACK_OVERFLOW           = STATUS_STACK_OVERFLOW,
                                                                                        >   607          EXCEPTION_INVALID_DISPOSITION      = STATUS_INVALID_DISPOSITION,
                                                                                        >   608          EXCEPTION_GUARD_PAGE               = STATUS_GUARD_PAGE_VIOLATION,
                                                                                        >   609          EXCEPTION_INVALID_HANDLE           = STATUS_INVALID_HANDLE
  872                                                                                   |   610  }
  873  // ...                                                                           <
  874                                                                                   |   611  
  875  // ...                                                                           <
                                                                                        >   612  // for PROCESS_HEAP_ENTRY
                                                                                        >   613  const WORD
                                                                                        >   614          PROCESS_HEAP_REGION            =  1,
                                                                                        >   615          PROCESS_HEAP_UNCOMMITTED_RANGE =  2,
                                                                                        >   616          PROCESS_HEAP_ENTRY_BUSY        =  4,
                                                                                        >   617          PROCESS_HEAP_ENTRY_MOVEABLE    = 16,
                                                                                        >   618          PROCESS_HEAP_ENTRY_DDESHARE    = 32;
  876                                                                                   |   619  
  877  // ...                                                                           <
                                                                                        >   620  // for LoadLibraryEx()
                                                                                        >   621  const DWORD
                                                                                        >   622          DONT_RESOLVE_DLL_REFERENCES   = 0x01, // not for WinME and earlier
                                                                                        >   623          LOAD_LIBRARY_AS_DATAFILE      = 0x02,
                                                                                        >   624          LOAD_WITH_ALTERED_SEARCH_PATH = 0x08,
                                                                                        >   625          LOAD_IGNORE_CODE_AUTHZ_LEVEL  = 0x10; // only for XP and later
  878                                                                                   |   626  
  879  // ...                                                                           <
                                                                                        >   627  // for LockFile()
                                                                                        >   628  const DWORD
                                                                                        >   629          LOCKFILE_FAIL_IMMEDIATELY = 1,
                                                                                        >   630          LOCKFILE_EXCLUSIVE_LOCK   = 2;
  880                                                                                   |   631  
  881  // ...                                                                           <
                                                                                        >   632  const MAXIMUM_WAIT_OBJECTS  = 64;
                                                                                        >   633  const MAXIMUM_SUSPEND_COUNT = 0x7F;
  882                                                                                   |   634  
  883  // ...                                                                           <
                                                                                        >   635  const WAIT_OBJECT_0    = 0;
                                                                                        >   636  const WAIT_ABANDONED_0 = 128;
  884                                                                                   |   637  
  885  // ...                                                                           <
                                                                                        >   638  //const WAIT_TIMEOUT=258;  // also in winerror.h
  886                                                                                   |   639  
  887  // #...                                                                          <
  888  // #...                                                                          <
  889  // #...                                                                          <
  890  // #...                                                                          <
  891  // #...                                                                          <
  892  // #...                                                                          <
  893  // #...                                                                          <
                                                                                        >   640  enum : DWORD {
                                                                                        >   641          WAIT_IO_COMPLETION = 0x000000C0,
                                                                                        >   642          WAIT_ABANDONED     = 0x00000080,
                                                                                        >   643          WAIT_FAILED        = 0xFFFFFFFF
  894                                                                                   |   644  }
  895  // #elif defined(_M_AMD64) && !defined(RC_INVOKED)                               <
  896                                                                                   |   645  
  897  // #...                                                                          <
  898  // #...                                                                          <
  899  // #...                                                                          <
  900  // #...                                                                          <
  901  // #...                                                                          <
  902  // #...                                                                          <
  903  // #...                                                                          <
                                                                                        >   646  // PurgeComm()
                                                                                        >   647  const DWORD
                                                                                        >   648          PURGE_TXABORT = 1,
                                                                                        >   649          PURGE_RXABORT = 2,
                                                                                        >   650          PURGE_TXCLEAR = 4,
                                                                                        >   651          PURGE_RXCLEAR = 8;
  904                                                                                   |   652  
  905  // ...                                                                           <
                                                                                        >   653  // ReadEventLog()
                                                                                        >   654  const DWORD
                                                                                        >   655          EVENTLOG_SEQUENTIAL_READ = 1,
                                                                                        >   656          EVENTLOG_SEEK_READ       = 2,
                                                                                        >   657          EVENTLOG_FORWARDS_READ   = 4,
                                                                                        >   658          EVENTLOG_BACKWARDS_READ  = 8;
  906                                                                                   |   659  
  907  // ...                                                                           <
                                                                                        >   660  // ReportEvent()
                                                                                        >   661  enum : WORD {
                                                                                        >   662          EVENTLOG_SUCCESS          = 0,
                                                                                        >   663          EVENTLOG_ERROR_TYPE       = 1,
                                                                                        >   664          EVENTLOG_WARNING_TYPE     = 2,
                                                                                        >   665          EVENTLOG_INFORMATION_TYPE = 4,
                                                                                        >   666          EVENTLOG_AUDIT_SUCCESS    = 8,
                                                                                        >   667          EVENTLOG_AUDIT_FAILURE    = 16
  908                                                                                   |   668  }
  909  // ...                                                                           <
  910                                                                                   |   669  
  911  // ...                                                                           <
                                                                                        >   670  // FormatMessage()
                                                                                        >   671  const DWORD
                                                                                        >   672          FORMAT_MESSAGE_ALLOCATE_BUFFER = 0x0100,
                                                                                        >   673          FORMAT_MESSAGE_IGNORE_INSERTS  = 0x0200,
                                                                                        >   674          FORMAT_MESSAGE_FROM_STRING     = 0x0400,
                                                                                        >   675          FORMAT_MESSAGE_FROM_HMODULE    = 0x0800,
                                                                                        >   676          FORMAT_MESSAGE_FROM_SYSTEM     = 0x1000,
                                                                                        >   677          FORMAT_MESSAGE_ARGUMENT_ARRAY  = 0x2000;
  912                                                                                   |   678  
  913  // ...                                                                           <
                                                                                        >   679  const DWORD FORMAT_MESSAGE_MAX_WIDTH_MASK = 255;
  914                                                                                   |   680  
  915  // ...                                                                           <
                                                                                        >   681  // also in ddk/ntapi.h
                                                                                        >   682  // To restore default error mode, call SetErrorMode(0)
                                                                                        >   683  enum {
                                                                                        >   684          SEM_FAILCRITICALERRORS     = 0x0001,
                                                                                        >   685          SEM_NOGPFAULTERRORBOX      = 0x0002,
                                                                                        >   686          SEM_NOALIGNMENTFAULTEXCEPT = 0x0004,
                                                                                        >   687          SEM_NOOPENFILEERRORBOX     = 0x8000
  916                                                                                   |   688  }
  917  // ...                                                                           <
                                                                                        >   689  // end ntapi.h
  918                                                                                   |   690  
  919  // #...                                                                          <
  920  // #...                                                                          <
  921  // #...                                                                          <
  922  // #...                                                                          <
  923  // #...                                                                          <
  924  // #...                                                                          <
  925  // #...                                                                          <
                                                                                        >   691  enum {
                                                                                        >   692          SLE_ERROR = 1,
                                                                                        >   693          SLE_MINORERROR,
                                                                                        >   694          SLE_WARNING
  926                                                                                   |   695  }
  927  // #else           // X86 interlocked definitions                                <
  928                                                                                   |   696  
  929  extern(Windows) export LONG InterlockedIncrement(                                <
  930    LONG *lpAddend);                                                               <
                                                                                        >   697  const SHUTDOWN_NORETRY = 1;
  931                                                                                   |   698  
  932  extern(Windows) export LONG InterlockedDecrement(                                <
                                                                                        >   699  // Return type for exception filters.
  933    LONG *lpAddend);                                                               |   700  enum : LONG {
                                                                                        >   701          EXCEPTION_EXECUTE_HANDLER    =  1,
                                                                                        >   702          EXCEPTION_CONTINUE_EXECUTION = -1,
                                                                                        >   703          EXCEPTION_CONTINUE_SEARCH    =  0
  934                                                                                   |   704  }
  935  extern(Windows) export LONG InterlockedExchange(                                 <
  936    LONG *Target,                                                                  <
  937    LONG Value);                                                                   <
  938                                                                                   |   705  
  939  void* InterlockedExchangePointer(void** t, void* v){ return cast(void*)Interlock <
                                                                                        >   706  enum  : ATOM {
                                                                                        >   707          MAXINTATOM   = 0xC000,
                                                                                        >   708          INVALID_ATOM = 0
  940                                                                                   |   709  }
  941  extern(Windows) export LONG InterlockedExchangeAdd(                              <
  942    LONG *Addend,                                                                  <
  943    LONG Value);                                                                   <
  944                                                                                   |   710  
  945  extern(Windows) export LONG InterlockedCompareExchange(                          <
  946    LONG *Destination,                                                             <
  947    LONG Exchange,                                                                 <
  948    LONG Comperand);                                                               <
                                                                                        >   711  const IGNORE   = 0;
                                                                                        >   712  const INFINITE = 0xFFFFFFFF;
  949                                                                                   |   713  
  950  // #ifdef __cplusplus                                                            <
                                                                                        >   714  // EscapeCommFunction()
                                                                                        >   715  enum {
                                                                                        >   716          SETXOFF    = 1,
                                                                                        >   717          SETXON,
                                                                                        >   718          SETRTS,
                                                                                        >   719          CLRRTS,
                                                                                        >   720          SETDTR,
                                                                                        >   721          CLRDTR, // = 6
                                                                                        >   722          SETBREAK   = 8,
                                                                                        >   723          CLRBREAK   = 9
  951                                                                                   |   724  }
  952  PVOID __InlineInterlockedCompareExchangePointer(PVOID* Destination, PVOID ExChan <
  953  alias __InlineInterlockedCompareExchangePointer InterlockedCompareExchangePointe <
  954                                                                                   |   725  
                                                                                        >   726  
                                                                                        >   727  // for SetCommMask()
                                                                                        >   728  const DWORD
                                                                                        >   729          EV_RXCHAR   = 0x0001,
                                                                                        >   730          EV_RXFLAG   = 0x0002,
                                                                                        >   731          EV_TXEMPTY  = 0x0004,
                                                                                        >   732          EV_CTS      = 0x0008,
                                                                                        >   733          EV_DSR      = 0x0010,
                                                                                        >   734          EV_RLSD     = 0x0020,
                                                                                        >   735          EV_BREAK    = 0x0040,
                                                                                        >   736          EV_ERR      = 0x0080,
                                                                                        >   737          EV_RING     = 0x0100,
                                                                                        >   738          EV_PERR     = 0x0200,
                                                                                        >   739          EV_RX80FULL = 0x0400,
                                                                                        >   740          EV_EVENT1   = 0x0800,
                                                                                        >   741          EV_EVENT2   = 0x1000;
                                                                                        >   742  
                                                                                        >   743  // GetCommModemStatus()
                                                                                        >   744  const DWORD
                                                                                        >   745          MS_CTS_ON  = 0x0010,
                                                                                        >   746          MS_DSR_ON  = 0x0020,
                                                                                        >   747          MS_RING_ON = 0x0040,
                                                                                        >   748          MS_RLSD_ON = 0x0080;
                                                                                        >   749  
                                                                                        >   750  
  955  // #else                                                                         |   751  // DCB
                                                                                        >   752  enum : BYTE {
                                                                                        >   753          NOPARITY = 0,
                                                                                        >   754          ODDPARITY,
                                                                                        >   755          EVENPARITY,
                                                                                        >   756          MARKPARITY,
                                                                                        >   757          SPACEPARITY
  956                                                                                   |   758  }
  957  // #...                                                                          |   759  // DCB
                                                                                        >   760  enum : BYTE {
                                                                                        >   761          ONESTOPBIT = 0,
                                                                                        >   762          ONE5STOPBITS,
                                                                                        >   763          TWOSTOPBITS
                                                                                        >   764  }
  958  // ...                                                                           |   765  // DCB
                                                                                        >   766  enum : DWORD {
                                                                                        >   767          CBR_110    =    110,
                                                                                        >   768          CBR_300    =    300,
                                                                                        >   769          CBR_600    =    600,
                                                                                        >   770          CBR_1200   =   1200,
                                                                                        >   771          CBR_2400   =   2400,
                                                                                        >   772          CBR_4800   =   4800,
                                                                                        >   773          CBR_9600   =   9600,
                                                                                        >   774          CBR_14400  =  14400,
                                                                                        >   775          CBR_19200  =  19200,
                                                                                        >   776          CBR_38400  =  38400,
                                                                                        >   777          CBR_56000  =  56000,
                                                                                        >   778          CBR_57600  =  57600,
                                                                                        >   779          CBR_115200 = 115200,
                                                                                        >   780          CBR_128000 = 128000,
                                                                                        >   781          CBR_256000 = 256000
  959                                                                                   |   782  }
  960  // #endif /* __cplusplus */                                                      <
                                                                                        >   783  // DCB, 2-bit bitfield
                                                                                        >   784  enum {
                                                                                        >   785          DTR_CONTROL_DISABLE = 0,
                                                                                        >   786          DTR_CONTROL_ENABLE,
                                                                                        >   787          DTR_CONTROL_HANDSHAKE
  961                                                                                   |   788  }
  962  // #endif /* X86 | IA64 */                                                       <
  963                                                                                   |   789  
  964  // #if defined(_SLIST_HEADER_) && !defined(_NTOSP_)                              <
                                                                                        >   790  // DCB, 2-bit bitfield
                                                                                        >   791  enum {
                                                                                        >   792          RTS_CONTROL_DISABLE = 0,
                                                                                        >   793          RTS_CONTROL_ENABLE,
                                                                                        >   794          RTS_CONTROL_HANDSHAKE,
                                                                                        >   795          RTS_CONTROL_TOGGLE,
  965                                                                                   |   796  }
  966  // ...                                                                           <
  967                                                                                   |   797  
  968  // ...                                                                           <
                                                                                        >   798  // WIN32_STREAM_ID
                                                                                        >   799  enum : DWORD {
                                                                                        >   800          BACKUP_INVALID = 0,
                                                                                        >   801          BACKUP_DATA,
                                                                                        >   802          BACKUP_EA_DATA,
                                                                                        >   803          BACKUP_SECURITY_DATA,
                                                                                        >   804          BACKUP_ALTERNATE_DATA,
                                                                                        >   805          BACKUP_LINK,
                                                                                        >   806          BACKUP_PROPERTY_DATA,
                                                                                        >   807          BACKUP_OBJECT_ID,
                                                                                        >   808          BACKUP_REPARSE_DATA,
                                                                                        >   809          BACKUP_SPARSE_BLOCK
  969                                                                                   |   810  }
  970  // ...                                                                           <
  971                                                                                   |   811  
  972  // ...                                                                           <
                                                                                        >   812  // WIN32_STREAM_ID
                                                                                        >   813  enum : DWORD {
                                                                                        >   814          STREAM_NORMAL_ATTRIBUTE    = 0,
                                                                                        >   815          STREAM_MODIFIED_WHEN_READ  = 1,
                                                                                        >   816          STREAM_CONTAINS_SECURITY   = 2,
                                                                                        >   817          STREAM_CONTAINS_PROPERTIES = 4
  973                                                                                   |   818  }
                                                                                        >   819  
                                                                                        >   820  // STARTUPINFO
                                                                                        >   821  const DWORD
                                                                                        >   822          STARTF_USESHOWWINDOW    = 0x0001,
                                                                                        >   823          STARTF_USESIZE          = 0x0002,
                                                                                        >   824          STARTF_USEPOSITION      = 0x0004,
                                                                                        >   825          STARTF_USECOUNTCHARS    = 0x0008,
                                                                                        >   826          STARTF_USEFILLATTRIBUTE = 0x0010,
                                                                                        >   827          STARTF_RUNFULLSCREEN    = 0x0020,
                                                                                        >   828          STARTF_FORCEONFEEDBACK  = 0x0040,
                                                                                        >   829          STARTF_FORCEOFFFEEDBACK = 0x0080,
                                                                                        >   830          STARTF_USESTDHANDLES    = 0x0100,
                                                                                        >   831          STARTF_USEHOTKEY        = 0x0200;
                                                                                        >   832  
  974  // ...                                                                           |   833  // ???
                                                                                        >   834  enum {
                                                                                        >   835          TC_NORMAL  = 0,
                                                                                        >   836          TC_HARDERR = 1,
                                                                                        >   837          TC_GP_TRAP = 2,
                                                                                        >   838          TC_SIGNAL  = 3
  975                                                                                   |   839  }
  976  // #endif /* _SLIST_HEADER_ */                                                   <
  977  // #endif /* _NTOS_ */                                                           <
  978                                                                                   |   840  
  979  // #endif /* NOWINBASEINTERLOCK */                                               <
                                                                                        >   841  /+ These seem to be Windows CE-specific
                                                                                        >   842  enum {
                                                                                        >   843          AC_LINE_OFFLINE      = 0,
                                                                                        >   844          AC_LINE_ONLINE       = 1,
                                                                                        >   845          AC_LINE_BACKUP_POWER = 2,
                                                                                        >   846          AC_LINE_UNKNOWN      = 255
  980                                                                                   |   847  }
  981  extern(Windows) export BOOL FreeResource(                                        <
  982    HGLOBAL hResData);                                                             <
  983                                                                                   |   848  
  984  extern(Windows) export LPVOID LockResource(                                      <
  985    HGLOBAL hResData);                                                             <
                                                                                        >   849  enum {
                                                                                        >   850          BATTERY_FLAG_HIGH          = 1,
                                                                                        >   851          BATTERY_FLAG_LOW           = 2,
                                                                                        >   852          BATTERY_FLAG_CRITICAL      = 4,
                                                                                        >   853          BATTERY_FLAG_CHARGING      = 8,
                                                                                        >   854          BATTERY_FLAG_NO_BATTERY    = 128,
                                                                                        >   855          BATTERY_FLAG_UNKNOWN       = 255,
                                                                                        >   856          BATTERY_PERCENTAGE_UNKNOWN = 255,
                                                                                        >   857          BATTERY_LIFE_UNKNOWN       = 0xFFFFFFFF
  986                                                                                   |   858  }
  987  // #define UnlockResource(hResData) ((hResData), 0)                              <
  988  enum : uint { MAXINTATOM = 0xC000 }                                              <
  989  // #define MAKEINTATOM(i) (LPTSTR)((ULONG_PTR)((WORD)(i)))                       <
  990  enum : ATOM { INVALID_ATOM = 0 }                                                 <
                                                                                        >   859  +/
  991                                                                                   |   860  
  992  // #ifndef _MAC                                                                  <
  993  // ???                                                                               861  // ???
  994  // ???                                                                           |   862  const HINSTANCE_ERROR = 32;
  995  // #else                                                                         <
                                                                                        >   863  
  996  // ...                                                                           |   864  // returned from GetFileSize()
  997  // #endif                                                                        |   865  const DWORD INVALID_FILE_SIZE = 0xFFFFFFFF;
  998  // WinMain                                                                       <
  999                                                                                   |   866  
 1000  extern(Windows) export BOOL FreeLibrary(                                         <
                                                                                        >   867  const DWORD TLS_OUT_OF_INDEXES = 0xFFFFFFFF;
                                                                                        >   868  
 1001    HMODULE hLibModule);                                                           |   869  // GetWriteWatch()
                                                                                        >   870  const DWORD WRITE_WATCH_FLAG_RESET = 1;
 1002                                                                                   |   871  
 1003  extern(Windows) export VOID FreeLibraryAndExitThread(                            <
 1004    HMODULE hLibModule,                                                            |   872  static if (_WIN32_WINNT_ONLY) {
                                                                                        >   873          // for LogonUser()
 1005    DWORD dwExitCode);                                                             |   874          enum : DWORD {
                                                                                        >   875                  LOGON32_LOGON_INTERACTIVE = 2,
                                                                                        >   876                  LOGON32_LOGON_NETWORK     = 3,
                                                                                        >   877                  LOGON32_LOGON_BATCH       = 4,
                                                                                        >   878                  LOGON32_LOGON_SERVICE     = 5,
                                                                                        >   879                  LOGON32_LOGON_UNLOCK      = 7
 1006                                                                                   |   880          }
 1007  extern(Windows) export BOOL DisableThreadLibraryCalls(                           <
 1008    HMODULE hLibModule);                                                           <
 1009                                                                                   |   881  
 1010  extern(Windows) export FARPROC GetProcAddress(                                   <
 1011    HMODULE hModule,                                                               <
 1012    LPCSTR lpProcName);                                                            <
                                                                                        >   882          // for LogonUser()
                                                                                        >   883          enum : DWORD {
                                                                                        >   884                  LOGON32_PROVIDER_DEFAULT,
                                                                                        >   885                  LOGON32_PROVIDER_WINNT35,
                                                                                        >   886                  LOGON32_PROVIDER_WINNT40,
                                                                                        >   887                  LOGON32_PROVIDER_WINNT50
 1013                                                                                   |   888          }
 1014  extern(Windows) export DWORD GetVersion();                                       <
 1015                                                                                   |   889  
 1016  extern(Windows) export HGLOBAL GlobalAlloc(                                      <
 1017    UINT uFlags,                                                                   <
 1018    SIZE_T dwBytes);                                                               <
                                                                                        >   890          // for MoveFileEx()
                                                                                        >   891          const DWORD
                                                                                        >   892                  MOVEFILE_REPLACE_EXISTING   = 1,
                                                                                        >   893                  MOVEFILE_COPY_ALLOWED       = 2,
                                                                                        >   894                  MOVEFILE_DELAY_UNTIL_REBOOT = 4,
                                                                                        >   895                  MOVEFILE_WRITE_THROUGH      = 8;
 1019                                                                                   |   896  
 1020  extern(Windows) export HGLOBAL GlobalReAlloc(                                    <
 1021    HGLOBAL hMem,                                                                  <
 1022    SIZE_T dwBytes,                                                                <
 1023    UINT uFlags);                                                                  <
                                                                                        >   897          // DefineDosDevice()
                                                                                        >   898          const DWORD
                                                                                        >   899                  DDD_RAW_TARGET_PATH       = 1,
                                                                                        >   900                  DDD_REMOVE_DEFINITION     = 2,
                                                                                        >   901                  DDD_EXACT_MATCH_ON_REMOVE = 4;
 1024                                                                                   |   902  
 1025  extern(Windows) export SIZE_T GlobalSize(                                        <
 1026    HGLOBAL hMem);                                                                 <
                                                                                        >   903          static if (_WIN32_WINNT >= 0x500) {
                                                                                        >   904                  enum : DWORD {
                                                                                        >   905                          LOGON32_LOGON_NETWORK_CLEARTEXT = 8,
                                                                                        >   906                          LOGON32_LOGON_NEW_CREDENTIALS   = 9
 1027                                                                                   |   907                  }
 1028  extern(Windows) export UINT GlobalFlags(                                         <
 1029    HGLOBAL hMem);                                                                 <
 1030                                                                                   |   908  
 1031  extern(Windows) export LPVOID GlobalLock(                                        <
 1032    HGLOBAL hMem);                                                                 <
                                                                                        >   909                  // ReplaceFile()
                                                                                        >   910                  const DWORD
                                                                                        >   911                          REPLACEFILE_WRITE_THROUGH       = 1,
                                                                                        >   912                          REPLACEFILE_IGNORE_MERGE_ERRORS = 2;
 1033                                                                                   |   913          }
 1034  extern(Windows) export HGLOBAL GlobalHandle(                                     <
 1035    LPCVOID pMem);                                                                 <
 1036                                                                                   |   914  
 1037  extern(Windows) export BOOL GlobalUnlock(                                        <
 1038    HGLOBAL hMem);                                                                 <
                                                                                        >   915          static if (_WIN32_WINNT >= 0x501) {
                                                                                        >   916                  const DWORD
                                                                                        >   917                          GET_MODULE_HANDLE_EX_FLAG_PIN                = 1,
                                                                                        >   918                          GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT = 2,
                                                                                        >   919                          GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS       = 4;
 1039                                                                                   |   920  
 1040  extern(Windows) export HGLOBAL GlobalFree(                                       <
 1041    HGLOBAL hMem);                                                                 <
                                                                                        >   921                  // for ACTCTX
                                                                                        >   922                  const DWORD
                                                                                        >   923                          ACTCTX_FLAG_PROCESSOR_ARCHITECTURE_VALID = 0x01,
                                                                                        >   924                          ACTCTX_FLAG_LANGID_VALID                 = 0x02,
                                                                                        >   925                          ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID     = 0x04,
                                                                                        >   926                          ACTCTX_FLAG_RESOURCE_NAME_VALID          = 0x08,
                                                                                        >   927                          ACTCTX_FLAG_SET_PROCESS_DEFAULT          = 0x10,
                                                                                        >   928                          ACTCTX_FLAG_APPLICATION_NAME_VALID       = 0x20,
                                                                                        >   929                          ACTCTX_FLAG_HMODULE_VALID                = 0x80;
 1042                                                                                   |   930  
 1043  extern(Windows) export SIZE_T GlobalCompact(                                     <
                                                                                        >   931                  // DeactivateActCtx()
                                                                                        >   932                  const DWORD DEACTIVATE_ACTCTX_FLAG_FORCE_EARLY_DEACTIVATION = 1;
                                                                                        >   933                  // FindActCtxSectionString()
                                                                                        >   934                  const DWORD FIND_ACTCTX_SECTION_KEY_RETURN_HACTCTX          = 1;
                                                                                        >   935                  // QueryActCtxW()
 1044    DWORD dwMinFree);                                                              |   936                  const DWORD
                                                                                        >   937                          QUERY_ACTCTX_FLAG_USE_ACTIVE_ACTCTX             = 0x04,
                                                                                        >   938                          QUERY_ACTCTX_FLAG_ACTCTX_IS_HMODULE             = 0x08,
                                                                                        >   939                          QUERY_ACTCTX_FLAG_ACTCTX_IS_ADDRESS             = 0x10;
 1045                                                                                   |   940  
 1046  extern(Windows) export VOID GlobalFix(                                           <
 1047    HGLOBAL hMem);                                                                 <
                                                                                        >   941                  enum {
                                                                                        >   942                          LOGON_WITH_PROFILE        = 1,
                                                                                        >   943                          LOGON_NETCREDENTIALS_ONLY
 1048                                                                                   |   944                  }
 1049  extern(Windows) export VOID GlobalUnfix(                                         <
 1050    HGLOBAL hMem);                                                                 <
 1051                                                                                   |   945          }
 1052  extern(Windows) export LPVOID GlobalWire(                                        <
 1053    HGLOBAL hMem);                                                                 <
 1054                                                                                   |   946  }
 1055  extern(Windows) export BOOL GlobalUnWire(                                        <
 1056    HGLOBAL hMem);                                                                 <
 1057                                                                                   |   947  
 1058  extern(Windows) export VOID GlobalMemoryStatus(                                  <
 1059    LPMEMORYSTATUS lpBuffer);                                                      <
                                                                                        >   948  // ----
 1060                                                                                   |   949  
 1061  struct _MEMORYSTATUSEX {                                                         |   950  struct FILETIME {
 1062    DWORD dwLength;                                                                |   951          DWORD dwLowDateTime;
 1063    DWORD dwMemoryLoad;                                                            |   952          DWORD dwHighDateTime;
 1064    DWORDLONG ullTotalPhys;                                                        <
 1065    DWORDLONG ullAvailPhys;                                                        <
 1066    DWORDLONG ullTotalPageFile;                                                    <
 1067    DWORDLONG ullAvailPageFile;                                                    <
 1068    DWORDLONG ullTotalVirtual;                                                     <
 1069    DWORDLONG ullAvailVirtual;                                                     <
 1070    DWORDLONG ullAvailExtendedVirtual;                                             <
 1071  }                                                                                |   953  }
 1072  alias _MEMORYSTATUSEX MEMORYSTATUSEX;                                            <
 1073  alias _MEMORYSTATUSEX* LPMEMORYSTATUSEX;                                         <
                                                                                        >   954  alias FILETIME* PFILETIME, LPFILETIME;
 1074                                                                                   |   955  
 1075  extern(Windows) export BOOL GlobalMemoryStatusEx(                                <
 1076    LPMEMORYSTATUSEX lpBuffer);                                                    <
                                                                                        >   956  struct BY_HANDLE_FILE_INFORMATION {
                                                                                        >   957          DWORD    dwFileAttributes;
                                                                                        >   958          FILETIME ftCreationTime;
                                                                                        >   959          FILETIME ftLastAccessTime;
                                                                                        >   960          FILETIME ftLastWriteTime;
                                                                                        >   961          DWORD    dwVolumeSerialNumber;
                                                                                        >   962          DWORD    nFileSizeHigh;
                                                                                        >   963          DWORD    nFileSizeLow;
                                                                                        >   964          DWORD    nNumberOfLinks;
                                                                                        >   965          DWORD    nFileIndexHigh;
                                                                                        >   966          DWORD    nFileIndexLow;
 1077                                                                                   |   967  }
 1078  extern(Windows) export HLOCAL LocalAlloc(                                        <
 1079    UINT uFlags,                                                                   <
 1080    SIZE_T uBytes);                                                                <
                                                                                        >   968  alias BY_HANDLE_FILE_INFORMATION* LPBY_HANDLE_FILE_INFORMATION;
 1081                                                                                   |   969  
 1082  extern(Windows) export HLOCAL LocalReAlloc(                                      <
 1083    HLOCAL hMem,                                                                   <
 1084    SIZE_T uBytes,                                                                 <
 1085    UINT uFlags);                                                                  <
                                                                                        >   970  struct DCB {
                                                                                        >   971          DWORD DCBlength = DCB.sizeof;
                                                                                        >   972          DWORD BaudRate;
                                                                                        >   973  /+
                                                                                        >   974          DWORD fBinary:1;              // Binary Mode (skip EOF check)
                                                                                        >   975          DWORD fParity:1;              // Enable parity checking
                                                                                        >   976          DWORD fOutxCtsFlow:1;         // CTS handshaking on output
                                                                                        >   977          DWORD fOutxDsrFlow:1;         // DSR handshaking on output
                                                                                        >   978          DWORD fDtrControl:2;          // DTR Flow control
                                                                                        >   979          DWORD fDsrSensitivity:1;      // DSR Sensitivity
                                                                                        >   980          DWORD fTXContinueOnXoff:1;    // Continue TX when Xoff sent
                                                                                        >   981          DWORD fOutX:1;                // Enable output X-ON/X-OFF
                                                                                        >   982          DWORD fInX:1;                 // Enable input X-ON/X-OFF
                                                                                        >   983          DWORD fErrorChar:1;           // Enable Err Replacement
                                                                                        >   984          DWORD fNull:1;                // Enable Null stripping
                                                                                        >   985          DWORD fRtsControl:2;          // Rts Flow control
                                                                                        >   986          DWORD fAbortOnError:1;        // Abort all reads and writes on Error
                                                                                        >   987          DWORD fDummy2:17;             // Reserved
                                                                                        >   988  +/
                                                                                        >   989          uint _bf;
                                                                                        >   990          bool fBinary(bool f)           { _bf = (_bf & ~0x0001) | f; return f; }
                                                                                        >   991          bool fParity(bool f)           { _bf = (_bf & ~0x0002) | (f<<1); return 
                                                                                        >   992          bool fOutxCtsFlow(bool f)      { _bf = (_bf & ~0x0004) | (f<<2); return 
                                                                                        >   993          bool fOutxDsrFlow(bool f)      { _bf = (_bf & ~0x0008) | (f<<3); return 
                                                                                        >   994          byte fDtrControl(byte x)       { _bf = (_bf & ~0x0030) | (x<<4); return 
                                                                                        >   995          bool fDsrSensitivity(bool f)   { _bf = (_bf & ~0x0040) | (f<<6); return 
                                                                                        >   996          bool fTXContinueOnXoff(bool f) { _bf = (_bf & ~0x0080) | (f<<7); return 
                                                                                        >   997          bool fOutX(bool f)             { _bf = (_bf & ~0x0100) | (f<<8); return 
                                                                                        >   998          bool fInX(bool f)              { _bf = (_bf & ~0x0200) | (f<<9); return 
                                                                                        >   999          bool fErrorChar(bool f)        { _bf = (_bf & ~0x0400) | (f<<10); return
                                                                                        >  1000          bool fNull(bool f)             { _bf = (_bf & ~0x0800) | (f<<11); return
                                                                                        >  1001          byte fRtsControl(byte x)       { _bf = (_bf & ~0x3000) | (x<<12); return
                                                                                        >  1002          bool fAbortOnError(bool f)     { _bf = (_bf & ~0x4000) | (f<<14); return
 1086                                                                                   |  1003  
 1087  extern(Windows) export LPVOID LocalLock(                                         <
 1088    HLOCAL hMem);                                                                  <
                                                                                        >  1004          bool fBinary()           { return cast(bool) (_bf & 1); }
                                                                                        >  1005          bool fParity()           { return cast(bool) (_bf & 2); }
                                                                                        >  1006          bool fOutxCtsFlow()      { return cast(bool) (_bf & 4); }
                                                                                        >  1007          bool fOutxDsrFlow()      { return cast(bool) (_bf & 8); }
                                                                                        >  1008          byte fDtrControl()       { return cast(byte) ((_bf & (32+16))>>4); }
                                                                                        >  1009          bool fDsrSensitivity()   { return cast(bool) (_bf & 64); }
                                                                                        >  1010          bool fTXContinueOnXoff() { return cast(bool) (_bf & 128); }
                                                                                        >  1011          bool fOutX()             { return cast(bool) (_bf & 256); }
                                                                                        >  1012          bool fInX()              { return cast(bool) (_bf & 512); }
                                                                                        >  1013          bool fErrorChar()        { return cast(bool) (_bf & 1024); }
                                                                                        >  1014          bool fNull()             { return cast(bool) (_bf & 2048); }
                                                                                        >  1015          byte fRtsControl()       { return cast(byte) ((_bf & (4096+8192))>>12); 
                                                                                        >  1016          bool fAbortOnError()     { return cast(bool) (_bf & 16384); }
 1089                                                                                   |  1017  
 1090  extern(Windows) export HLOCAL LocalHandle(                                       <
 1091    LPCVOID pMem);                                                                 <
                                                                                        >  1018          WORD wReserved;
                                                                                        >  1019          WORD XonLim;
                                                                                        >  1020          WORD XoffLim;
                                                                                        >  1021          BYTE ByteSize;
                                                                                        >  1022          BYTE Parity;
                                                                                        >  1023          BYTE StopBits;
                                                                                        >  1024          char XonChar;
                                                                                        >  1025          char XoffChar;
                                                                                        >  1026          char ErrorChar;
                                                                                        >  1027          char EofChar;
                                                                                        >  1028          char EvtChar;
                                                                                        >  1029          WORD wReserved1;
 1092                                                                                   |  1030  }
 1093  extern(Windows) export BOOL LocalUnlock(                                         <
 1094    HLOCAL hMem);                                                                  <
                                                                                        >  1031  alias DCB* LPDCB;
 1095                                                                                   |  1032  
 1096  extern(Windows) export SIZE_T LocalSize(                                         <
 1097    HLOCAL hMem);                                                                  <
                                                                                        >  1033  struct COMMCONFIG {
                                                                                        >  1034          DWORD dwSize = COMMCONFIG.sizeof;
                                                                                        >  1035          WORD  wVersion;
                                                                                        >  1036          WORD  wReserved;
                                                                                        >  1037          DCB   dcb;
                                                                                        >  1038          DWORD dwProviderSubType;
                                                                                        >  1039          DWORD dwProviderOffset;
                                                                                        >  1040          DWORD dwProviderSize;
                                                                                        >  1041          WCHAR _wcProviderData;
 1098                                                                                   |  1042  
 1099  extern(Windows) export UINT LocalFlags(                                          <
 1100    HLOCAL hMem);                                                                  <
                                                                                        >  1043          WCHAR* wcProviderData() { return &_wcProviderData; }
 1101                                                                                   |  1044  }
 1102  extern(Windows) export HLOCAL LocalFree(                                         <
 1103    HLOCAL hMem);                                                                  <
                                                                                        >  1045  alias COMMCONFIG* LPCOMMCONFIG;
 1104                                                                                   |  1046  
 1105  extern(Windows) export SIZE_T LocalShrink(                                       <
 1106    HLOCAL hMem,                                                                   <
 1107    UINT cbNewSize);                                                               <
                                                                                        >  1047  struct COMMTIMEOUTS {
                                                                                        >  1048          DWORD ReadIntervalTimeout;
                                                                                        >  1049          DWORD ReadTotalTimeoutMultiplier;
                                                                                        >  1050          DWORD ReadTotalTimeoutConstant;
                                                                                        >  1051          DWORD WriteTotalTimeoutMultiplier;
                                                                                        >  1052          DWORD WriteTotalTimeoutConstant;
 1108                                                                                   |  1053  }
 1109  extern(Windows) export SIZE_T LocalCompact(                                      <
 1110    UINT uMinFree);                                                                <
                                                                                        >  1054  alias COMMTIMEOUTS* LPCOMMTIMEOUTS;
 1111                                                                                   |  1055  
 1112  extern(Windows) export BOOL FlushInstructionCache(                               <
 1113    HANDLE hProcess,                                                               <
 1114    LPCVOID lpBaseAddress,                                                         <
 1115    SIZE_T dwSize);                                                                <
 1116                                                                                   <
 1117  extern(Windows) export LPVOID VirtualAlloc(                                      <
 1118    LPVOID lpAddress,                                                              <
 1119    SIZE_T dwSize,                                                                 <
                                                                                        >  1056  struct COMSTAT {
                                                                                        >  1057  /+
                                                                                        >  1058          DWORD fCtsHold:1;
                                                                                        >  1059          DWORD fDsrHold:1;
                                                                                        >  1060          DWORD fRlsdHold:1;
                                                                                        >  1061          DWORD fXoffHold:1;
                                                                                        >  1062          DWORD fXoffSent:1;
 1120    DWORD flAllocationType,                                                        |  1063          DWORD fEof:1;
 1121    DWORD flProtect);                                                              |  1064          DWORD fTxim:1;
                                                                                        >  1065          DWORD fReserved:25;
                                                                                        >  1066  +/
                                                                                        >  1067          DWORD _bf;
                                                                                        >  1068      bool fCtsHold(bool f)  { _bf = (_bf & ~1) | f; return f; }
                                                                                        >  1069          bool fDsrHold(bool f)  { _bf = (_bf & ~2) | (f<<1); return f; }
                                                                                        >  1070          bool fRlsdHold(bool f) { _bf = (_bf & ~4) | (f<<2); return f; }
                                                                                        >  1071          bool fXoffHold(bool f) { _bf = (_bf & ~8) | (f<<3); return f; }
                                                                                        >  1072          bool fXoffSent(bool f) { _bf = (_bf & ~16) | (f<<4); return f; }
                                                                                        >  1073          bool fEof(bool f)      { _bf = (_bf & ~32) | (f<<5); return f; }
                                                                                        >  1074          bool fTxim(bool f)     { _bf = (_bf & ~64) | (f<<6); return f; }
 1122                                                                                   |  1075  
 1123  extern(Windows) export BOOL VirtualFree(                                         <
 1124    LPVOID lpAddress,                                                              <
 1125    SIZE_T dwSize,                                                                 <
 1126    DWORD dwFreeType);                                                             <
                                                                                        >  1076      bool fCtsHold()  { return cast(bool) (_bf & 1); }
                                                                                        >  1077          bool fDsrHold()  { return cast(bool) (_bf & 2); }
                                                                                        >  1078          bool fRlsdHold() { return cast(bool) (_bf & 4); }
                                                                                        >  1079          bool fXoffHold() { return cast(bool) (_bf & 8); }
                                                                                        >  1080          bool fXoffSent() { return cast(bool) (_bf & 16); }
                                                                                        >  1081          bool fEof()      { return cast(bool) (_bf & 32); }
                                                                                        >  1082          bool fTxim()     { return cast(bool) (_bf & 64); }
 1127                                                                                   |  1083  
 1128  extern(Windows) export BOOL VirtualProtect(                                      <
 1129    LPVOID lpAddress,                                                              <
 1130    SIZE_T dwSize,                                                                 <
 1131    DWORD flNewProtect,                                                            |  1084          DWORD cbInQue;
 1132    PDWORD lpflOldProtect);                                                        <
                                                                                        >  1085          DWORD cbOutQue;
 1133                                                                                   |  1086  }
 1134  extern(Windows) export SIZE_T VirtualQuery(                                      <
 1135    LPCVOID lpAddress,                                                             <
 1136    PMEMORY_BASIC_INFORMATION lpBuffer,                                            <
 1137    SIZE_T dwLength);                                                              <
                                                                                        >  1087  alias COMSTAT* LPCOMSTAT;
 1138                                                                                   |  1088  
 1139  extern(Windows) export LPVOID VirtualAllocEx(                                    <
                                                                                        >  1089  struct CREATE_PROCESS_DEBUG_INFO {
                                                                                        >  1090          HANDLE hFile;
 1140    HANDLE hProcess,                                                               |  1091          HANDLE hProcess;
                                                                                        >  1092          HANDLE hThread;
                                                                                        >  1093          LPVOID lpBaseOfImage;
                                                                                        >  1094          DWORD  dwDebugInfoFileOffset;
                                                                                        >  1095          DWORD  nDebugInfoSize;
                                                                                        >  1096          LPVOID lpThreadLocalBase;
                                                                                        >  1097          LPTHREAD_START_ROUTINE lpStartAddress;
 1141    LPVOID lpAddress,                                                              |  1098          LPVOID lpImageName;
 1142    SIZE_T dwSize,                                                                 <
 1143    DWORD flAllocationType,                                                        <
 1144    DWORD flProtect);                                                              <
                                                                                        >  1099          WORD   fUnicode;
 1145                                                                                   |  1100  }
 1146  extern(Windows) export UINT GetWriteWatch(                                       <
 1147    DWORD dwFlags,                                                                 <
 1148    PVOID lpBaseAddress,                                                           <
 1149    SIZE_T dwRegionSize,                                                           <
 1150    PVOID *lpAddresses,                                                            <
 1151    PULONG_PTR lpdwCount,                                                          <
 1152    PULONG lpdwGranularity);                                                       <
                                                                                        >  1101  alias CREATE_PROCESS_DEBUG_INFO* LPCREATE_PROCESS_DEBUG_INFO;
 1153                                                                                   |  1102  
 1154  extern(Windows) export UINT ResetWriteWatch(                                     <
                                                                                        >  1103  struct CREATE_THREAD_DEBUG_INFO {
                                                                                        >  1104          HANDLE hThread;
 1155    LPVOID lpBaseAddress,                                                          |  1105          LPVOID lpThreadLocalBase;
 1156    SIZE_T dwRegionSize);                                                          <
                                                                                        >  1106          LPTHREAD_START_ROUTINE lpStartAddress;
 1157                                                                                   |  1107  }
 1158  extern(Windows) export BOOL VirtualFreeEx(                                       <
 1159    HANDLE hProcess,                                                               <
 1160    LPVOID lpAddress,                                                              <
 1161    SIZE_T dwSize,                                                                 <
 1162    DWORD dwFreeType);                                                             <
                                                                                        >  1108  alias CREATE_THREAD_DEBUG_INFO* LPCREATE_THREAD_DEBUG_INFO;
 1163                                                                                   |  1109  
 1164  extern(Windows) export BOOL VirtualProtectEx(                                    <
 1165    HANDLE hProcess,                                                               <
 1166    LPVOID lpAddress,                                                              <
 1167    SIZE_T dwSize,                                                                 <
 1168    DWORD flNewProtect,                                                            <
 1169    PDWORD lpflOldProtect);                                                        <
                                                                                        >  1110  struct EXCEPTION_DEBUG_INFO {
                                                                                        >  1111          EXCEPTION_RECORD ExceptionRecord;
                                                                                        >  1112          DWORD            dwFirstChance;
 1170                                                                                   |  1113  }
 1171  extern(Windows) export SIZE_T VirtualQueryEx(                                    <
 1172    HANDLE hProcess,                                                               <
 1173    LPCVOID lpAddress,                                                             <
 1174    PMEMORY_BASIC_INFORMATION lpBuffer,                                            <
 1175    SIZE_T dwLength);                                                              <
                                                                                        >  1114  alias EXCEPTION_DEBUG_INFO* LPEXCEPTION_DEBUG_INFO;
 1176                                                                                   |  1115  
 1177  extern(Windows) export HANDLE HeapCreate(                                        <
                                                                                        >  1116  struct EXIT_THREAD_DEBUG_INFO {
 1178    DWORD flOptions,                                                               |  1117          DWORD dwExitCode;
 1179    SIZE_T dwInitialSize,                                                          <
 1180    SIZE_T dwMaximumSize);                                                         <
 1181                                                                                   |  1118  }
 1182  extern(Windows) export BOOL HeapDestroy(                                         <
 1183    HANDLE hHeap);                                                                 <
                                                                                        >  1119  alias EXIT_THREAD_DEBUG_INFO* LPEXIT_THREAD_DEBUG_INFO;
 1184                                                                                   |  1120  
 1185  extern(Windows) export LPVOID HeapAlloc(                                         <
 1186    HANDLE hHeap,                                                                  <
                                                                                        >  1121  struct EXIT_PROCESS_DEBUG_INFO {
 1187    DWORD dwFlags,                                                                 |  1122          DWORD dwExitCode;
 1188    SIZE_T dwBytes);                                                               <
 1189                                                                                   |  1123  }
 1190  extern(Windows) export LPVOID HeapReAlloc(                                       <
                                                                                        >  1124  alias EXIT_PROCESS_DEBUG_INFO* LPEXIT_PROCESS_DEBUG_INFO;
                                                                                        >  1125  
                                                                                        >  1126  struct LOAD_DLL_DEBUG_INFO {
 1191    HANDLE hHeap,                                                                  |  1127          HANDLE hFile;
 1192    DWORD dwFlags,                                                                 <
 1193    LPVOID lpMem,                                                                  |  1128          LPVOID lpBaseOfDll;
 1194    SIZE_T dwBytes);                                                               <
                                                                                        >  1129          DWORD  dwDebugInfoFileOffset;
                                                                                        >  1130          DWORD  nDebugInfoSize;
                                                                                        >  1131          LPVOID lpImageName;
                                                                                        >  1132          WORD   fUnicode;
 1195                                                                                   |  1133  }
 1196  extern(Windows) export BOOL HeapFree(                                            <
 1197    HANDLE hHeap,                                                                  <
 1198    DWORD dwFlags,                                                                 <
                                                                                        >  1134  alias LOAD_DLL_DEBUG_INFO* LPLOAD_DLL_DEBUG_INFO;
                                                                                        >  1135  
                                                                                        >  1136  struct UNLOAD_DLL_DEBUG_INFO {
 1199    LPVOID lpMem);                                                                 |  1137          LPVOID lpBaseOfDll;
 1200                                                                                   |  1138  }
 1201  extern(Windows) export SIZE_T HeapSize(                                          <
 1202    HANDLE hHeap,                                                                  <
                                                                                        >  1139  alias UNLOAD_DLL_DEBUG_INFO* LPUNLOAD_DLL_DEBUG_INFO;
                                                                                        >  1140  
                                                                                        >  1141  struct OUTPUT_DEBUG_STRING_INFO {
                                                                                        >  1142          LPSTR lpDebugStringData;
 1203    DWORD dwFlags,                                                                 |  1143          WORD  fUnicode;
 1204    LPCVOID lpMem);                                                                <
                                                                                        >  1144          WORD  nDebugStringLength;
 1205                                                                                   |  1145  }
 1206  extern(Windows) export BOOL HeapValidate(                                        <
 1207    HANDLE hHeap,                                                                  <
                                                                                        >  1146  alias OUTPUT_DEBUG_STRING_INFO* LPOUTPUT_DEBUG_STRING_INFO;
                                                                                        >  1147  
                                                                                        >  1148  struct RIP_INFO {
                                                                                        >  1149          DWORD dwError;
 1208    DWORD dwFlags,                                                                 |  1150          DWORD dwType;
 1209    LPCVOID lpMem);                                                                <
 1210                                                                                   |  1151  }
 1211  extern(Windows) export SIZE_T HeapCompact(                                       <
 1212    HANDLE hHeap,                                                                  <
                                                                                        >  1152  alias RIP_INFO* LPRIP_INFO;
                                                                                        >  1153  
                                                                                        >  1154  struct DEBUG_EVENT {
                                                                                        >  1155          DWORD dwDebugEventCode;
 1213    DWORD dwFlags);                                                                |  1156          DWORD dwProcessId;
                                                                                        >  1157          DWORD dwThreadId;
                                                                                        >  1158          union {
                                                                                        >  1159                  EXCEPTION_DEBUG_INFO      Exception;
                                                                                        >  1160                  CREATE_THREAD_DEBUG_INFO  CreateThread;
                                                                                        >  1161                  CREATE_PROCESS_DEBUG_INFO CreateProcessInfo;
                                                                                        >  1162                  EXIT_THREAD_DEBUG_INFO    ExitThread;
                                                                                        >  1163                  EXIT_PROCESS_DEBUG_INFO   ExitProcess;
                                                                                        >  1164                  LOAD_DLL_DEBUG_INFO       LoadDll;
                                                                                        >  1165                  UNLOAD_DLL_DEBUG_INFO     UnloadDll;
                                                                                        >  1166                  OUTPUT_DEBUG_STRING_INFO  DebugString;
                                                                                        >  1167                  RIP_INFO                  RipInfo;
 1214                                                                                   |  1168          }
 1215  extern(Windows) export HANDLE GetProcessHeap();                                  <
 1216                                                                                   |  1169  }
 1217  extern(Windows) export DWORD GetProcessHeaps(                                    <
 1218    DWORD NumberOfHeaps,                                                           <
 1219    PHANDLE ProcessHeaps);                                                         <
                                                                                        >  1170  alias DEBUG_EVENT* LPDEBUG_EVENT;
 1220                                                                                   |  1171  
 1221  struct _PROCESS_HEAP_ENTRY {                                                     <
 1222    PVOID lpData;                                                                  <
 1223    DWORD cbData;                                                                  <
 1224    BYTE cbOverhead;                                                               <
 1225    BYTE iRegionIndex;                                                             <
 1226    WORD wFlags;                                                                   <
                                                                                        >  1172  struct OVERLAPPED {
                                                                                        >  1173          ULONG_PTR Internal;
                                                                                        >  1174          ULONG_PTR InternalHigh;
 1227  union {                                                                          |  1175          union {
 1228  struct {                                                                         |  1176                  struct {
                                                                                        >  1177                          DWORD     Offset;
                                                                                        >  1178                          DWORD     OffsetHigh;
                                                                                        >  1179                  }
                                                                                        >  1180                  PVOID     Pointer;
                                                                                        >  1181          }
 1229    HANDLE hMem;                                                                   |  1182          HANDLE    hEvent;
 1230    DWORD dwReserved[ 3 ];                                                         <
 1231  }                                                                                |  1183  }
                                                                                        >  1184  alias OVERLAPPED* POVERLAPPED, LPOVERLAPPED;
 1232                                                                                   |  1185  
 1233  struct {                                                                         |  1186  struct STARTUPINFOA {
                                                                                        >  1187          DWORD  cb = STARTUPINFOA.sizeof;
                                                                                        >  1188          LPSTR  lpReserved;
                                                                                        >  1189          LPSTR  lpDesktop;
                                                                                        >  1190          LPSTR  lpTitle;
 1234    DWORD dwCommittedSize;                                                         |  1191          DWORD  dwX;
 1235    DWORD dwUnCommittedSize;                                                       |  1192          DWORD  dwY;
 1236    LPVOID lpFirstBlock;                                                           <
 1237    LPVOID lpLastBlock;                                                            <
                                                                                        >  1193          DWORD  dwXSize;
                                                                                        >  1194          DWORD  dwYSize;
                                                                                        >  1195          DWORD  dwXCountChars;
                                                                                        >  1196          DWORD  dwYCountChars;
                                                                                        >  1197          DWORD  dwFillAttribute;
                                                                                        >  1198          DWORD  dwFlags;
                                                                                        >  1199          WORD   wShowWindow;
                                                                                        >  1200          WORD   cbReserved2;
                                                                                        >  1201          PBYTE  lpReserved2;
                                                                                        >  1202          HANDLE hStdInput;
                                                                                        >  1203          HANDLE hStdOutput;
                                                                                        >  1204          HANDLE hStdError;
 1238  }                                                                                |  1205  }
                                                                                        >  1206  alias STARTUPINFOA* LPSTARTUPINFOA;
 1239                                                                                   |  1207  
                                                                                        >  1208  struct STARTUPINFOW {
                                                                                        >  1209          DWORD  cb = STARTUPINFOW.sizeof;
                                                                                        >  1210          LPWSTR lpReserved;
                                                                                        >  1211          LPWSTR lpDesktop;
                                                                                        >  1212          LPWSTR lpTitle;
                                                                                        >  1213          DWORD  dwX;
                                                                                        >  1214          DWORD  dwY;
                                                                                        >  1215          DWORD  dwXSize;
                                                                                        >  1216          DWORD  dwYSize;
                                                                                        >  1217          DWORD  dwXCountChars;
                                                                                        >  1218          DWORD  dwYCountChars;
                                                                                        >  1219          DWORD  dwFillAttribute;
                                                                                        >  1220          DWORD  dwFlags;
                                                                                        >  1221          WORD   wShowWindow;
                                                                                        >  1222          WORD   cbReserved2;
                                                                                        >  1223          PBYTE  lpReserved2;
                                                                                        >  1224          HANDLE hStdInput;
                                                                                        >  1225          HANDLE hStdOutput;
                                                                                        >  1226          HANDLE hStdError;
 1240  }                                                                                |  1227  }
                                                                                        >  1228  alias STARTUPINFOW* LPSTARTUPINFOW;
 1241                                                                                   |  1229  
                                                                                        >  1230  struct PROCESS_INFORMATION {
                                                                                        >  1231          HANDLE hProcess;
                                                                                        >  1232          HANDLE hThread;
                                                                                        >  1233          DWORD  dwProcessId;
                                                                                        >  1234          DWORD  dwThreadId;
 1242  }                                                                                |  1235  }
 1243  alias _PROCESS_HEAP_ENTRY PROCESS_HEAP_ENTRY;                                    <
 1244  alias _PROCESS_HEAP_ENTRY* LPPROCESS_HEAP_ENTRY;                                 <
 1245  alias _PROCESS_HEAP_ENTRY* PPROCESS_HEAP_ENTRY;                                  <
                                                                                        >  1236  alias PROCESS_INFORMATION* PPROCESS_INFORMATION, LPPROCESS_INFORMATION;
 1246                                                                                   |  1237  
 1247  enum : uint { PROCESS_HEAP_REGION = 0x0001 }                                     <
 1248  enum : uint { PROCESS_HEAP_UNCOMMITTED_RANGE = 0x0002 }                          <
 1249  enum : uint { PROCESS_HEAP_ENTRY_BUSY = 0x0004 }                                 <
 1250  enum : uint { PROCESS_HEAP_ENTRY_MOVEABLE = 0x0010 }                             <
 1251  enum : uint { PROCESS_HEAP_ENTRY_DDESHARE = 0x0020 }                             <
                                                                                        >  1238  struct CRITICAL_SECTION_DEBUG {
                                                                                        >  1239          WORD              Type;
                                                                                        >  1240          WORD              CreatorBackTraceIndex;
                                                                                        >  1241          CRITICAL_SECTION* CriticalSection;
                                                                                        >  1242          LIST_ENTRY        ProcessLocksList;
                                                                                        >  1243          DWORD             EntryCount;
                                                                                        >  1244          DWORD             ContentionCount;
                                                                                        >  1245          DWORD[2]          Spare;
 1252                                                                                   |  1246  }
 1253  extern(Windows) export BOOL HeapLock(                                            <
 1254    HANDLE hHeap);                                                                 <
                                                                                        >  1247  alias CRITICAL_SECTION_DEBUG* PCRITICAL_SECTION_DEBUG;
 1255                                                                                   |  1248  
 1256  extern(Windows) export BOOL HeapUnlock(                                          <
                                                                                        >  1249  struct CRITICAL_SECTION {
                                                                                        >  1250          PCRITICAL_SECTION_DEBUG DebugInfo;
                                                                                        >  1251          LONG   LockCount;
                                                                                        >  1252          LONG   RecursionCount;
 1257    HANDLE hHeap);                                                                 |  1253          HANDLE OwningThread;
                                                                                        >  1254          HANDLE LockSemaphore;
                                                                                        >  1255          DWORD  SpinCount;
 1258                                                                                   |  1256  }
 1259  extern(Windows) export BOOL HeapWalk(                                            <
 1260    HANDLE hHeap,                                                                  <
 1261    LPPROCESS_HEAP_ENTRY lpEntry);                                                 <
                                                                                        >  1257  alias CRITICAL_SECTION* PCRITICAL_SECTION, LPCRITICAL_SECTION;
 1262                                                                                   |  1258  
 1263  extern(Windows) export BOOL HeapSetInformation(                                  <
 1264    PVOID HeapHandle,                                                              <
 1265    HEAP_INFORMATION_CLASS HeapInformationClass,                                   <
 1266    PVOID HeapInformation ,                                                        <
 1267    SIZE_T HeapInformationLength );                                                <
                                                                                        >  1259  struct SYSTEMTIME {
                                                                                        >  1260          WORD wYear;
                                                                                        >  1261          WORD wMonth;
                                                                                        >  1262          WORD wDayOfWeek;
                                                                                        >  1263          WORD wDay;
                                                                                        >  1264          WORD wHour;
                                                                                        >  1265          WORD wMinute;
                                                                                        >  1266          WORD wSecond;
                                                                                        >  1267          WORD wMilliseconds;
 1268                                                                                   |  1268  }
 1269  extern(Windows) export BOOL HeapQueryInformation(                                <
 1270    PVOID HeapHandle,                                                              <
 1271    HEAP_INFORMATION_CLASS HeapInformationClass,                                   <
 1272    PVOID HeapInformation ,                                                        <
 1273    SIZE_T HeapInformationLength ,                                                 <
 1274    PSIZE_T ReturnLength );                                                        <
                                                                                        >  1269  alias SYSTEMTIME* LPSYSTEMTIME;
 1275                                                                                   |  1270  
 1276  enum : uint { SCS_32BIT_BINARY = 0 }                                             <
 1277  enum : uint { SCS_DOS_BINARY = 1 }                                               <
 1278  enum : uint { SCS_WOW_BINARY = 2 }                                               <
 1279  enum : uint { SCS_PIF_BINARY = 3 }                                               <
 1280  enum : uint { SCS_POSIX_BINARY = 4 }                                             <
 1281  enum : uint { SCS_OS216_BINARY = 5 }                                             <
 1282  enum : uint { SCS_64BIT_BINARY = 6 }                                             <
                                                                                        >  1271  static if (_WIN32_WINDOWS >= 0x410) {
                                                                                        >  1272          struct WIN32_FILE_ATTRIBUTE_DATA {
                                                                                        >  1273                  DWORD    dwFileAttributes;
                                                                                        >  1274                  FILETIME ftCreationTime;
                                                                                        >  1275                  FILETIME ftLastAccessTime;
                                                                                        >  1276                  FILETIME ftLastWriteTime;
                                                                                        >  1277                  DWORD    nFileSizeHigh;
                                                                                        >  1278                  DWORD    nFileSizeLow;
 1283                                                                                   |  1279          }
 1284  // #if defined(_WIN64)                                                           <
 1285  // #...                                                                          <
                                                                                        >  1280          alias WIN32_FILE_ATTRIBUTE_DATA* LPWIN32_FILE_ATTRIBUTE_DATA;
                                                                                        >  1281  }
                                                                                        >  1282  
                                                                                        >  1283  struct WIN32_FIND_DATAA {
                                                                                        >  1284          DWORD          dwFileAttributes;
                                                                                        >  1285          FILETIME       ftCreationTime;
                                                                                        >  1286          FILETIME       ftLastAccessTime;
                                                                                        >  1287          FILETIME       ftLastWriteTime;
                                                                                        >  1288          DWORD          nFileSizeHigh;
                                                                                        >  1289          DWORD          nFileSizeLow;
                                                                                        >  1290  // #ifdef _WIN32_WCE
                                                                                        >  1291  //      DWORD dwOID;
 1286  // #else                                                                            1292  // #else
 1287  alias SCS_32BIT_BINARY SCS_THIS_PLATFORM_BINARY;                                 |  1293          DWORD          dwReserved0;
                                                                                        >  1294          DWORD          dwReserved1;
                                                                                        >  1295  // #endif
                                                                                        >  1296          CHAR[MAX_PATH] cFileName;
                                                                                        >  1297  // #ifndef _WIN32_WCE
                                                                                        >  1298          CHAR[14]       cAlternateFileName;
 1288  // #endif                                                                           1299  // #endif
 1289                                                                                   |  1300  }
 1290  extern(Windows) export BOOL GetBinaryTypeA(                                      |  1301  alias WIN32_FIND_DATAA* PWIN32_FIND_DATAA, LPWIN32_FIND_DATAA;
 1291    LPCSTR lpApplicationName,                                                      <
 1292    LPDWORD lpBinaryType);                                                         <
 1293  extern(Windows) export BOOL GetBinaryTypeW(                                      <
 1294    LPCWSTR lpApplicationName,                                                     <
 1295    LPDWORD lpBinaryType);                                                         <
 1296  // #ifdef UNICODE                                                                <
 1297  alias GetBinaryTypeW GetBinaryType;                                              <
 1298  // #else                                                                         <
 1299  // #...                                                                          <
 1300  // #endif // !UNICODE                                                            <
 1301                                                                                   |  1302  
 1302  extern(Windows) export DWORD GetShortPathNameA(                                  <
 1303    LPCSTR lpszLongPath,                                                           <
 1304    LPSTR lpszShortPath,                                                           <
 1305    DWORD cchBuffer);                                                              <
 1306  extern(Windows) export DWORD GetShortPathNameW(                                  <
 1307    LPCWSTR lpszLongPath,                                                          <
 1308    LPWSTR lpszShortPath,                                                          <
 1309    DWORD cchBuffer);                                                              <
                                                                                        >  1303  struct WIN32_FIND_DATAW {
                                                                                        >  1304          DWORD           dwFileAttributes;
                                                                                        >  1305          FILETIME        ftCreationTime;
                                                                                        >  1306          FILETIME        ftLastAccessTime;
                                                                                        >  1307          FILETIME        ftLastWriteTime;
                                                                                        >  1308          DWORD           nFileSizeHigh;
                                                                                        >  1309          DWORD           nFileSizeLow;
 1310  // #ifdef UNICODE                                                                |  1310  // #ifdef _WIN32_WCE
 1311  alias GetShortPathNameW GetShortPathName;                                        <
 1312  // #else                                                                         <
 1313  // #...                                                                          <
 1314  // #endif // !UNICODE                                                            <
 1315                                                                                   <
 1316  extern(Windows) export DWORD GetLongPathNameA(                                   <
 1317    LPCSTR lpszShortPath,                                                          <
 1318    LPSTR lpszLongPath,                                                            <
 1319    DWORD cchBuffer);                                                              <
 1320  extern(Windows) export DWORD GetLongPathNameW(                                   <
 1321    LPCWSTR lpszShortPath,                                                         <
 1322    LPWSTR lpszLongPath,                                                           <
 1323    DWORD cchBuffer);                                                              <
 1324  // #ifdef UNICODE                                                                <
 1325  alias GetLongPathNameW GetLongPathName;                                          <
 1326  // #else                                                                         <
 1327  // #...                                                                          <
 1328  // #endif // !UNICODE                                                            <
 1329                                                                                   <
 1330  extern(Windows) export BOOL GetProcessAffinityMask(                              <
 1331    HANDLE hProcess,                                                               <
 1332    PDWORD_PTR lpProcessAffinityMask,                                              <
 1333    PDWORD_PTR lpSystemAffinityMask);                                              <
 1334                                                                                   <
 1335  extern(Windows) export BOOL SetProcessAffinityMask(                              <
 1336    HANDLE hProcess,                                                               <
 1337    DWORD_PTR dwProcessAffinityMask);                                              <
 1338                                                                                   <
 1339  extern(Windows) export BOOL GetProcessTimes(                                     <
 1340    HANDLE hProcess,                                                               <
 1341    LPFILETIME lpCreationTime,                                                     <
 1342    LPFILETIME lpExitTime,                                                         <
 1343    LPFILETIME lpKernelTime,                                                       <
 1344    LPFILETIME lpUserTime);                                                        <
 1345                                                                                   <
 1346  extern(Windows) export BOOL GetProcessIoCounters(                                <
 1347    HANDLE hProcess,                                                               <
 1348    PIO_COUNTERS lpIoCounters);                                                    <
 1349                                                                                   <
 1350  extern(Windows) export BOOL GetProcessWorkingSetSize(                            <
 1351    HANDLE hProcess,                                                               <
 1352    PSIZE_T lpMinimumWorkingSetSize,                                               <
 1353    PSIZE_T lpMaximumWorkingSetSize);                                              <
 1354                                                                                   <
 1355  extern(Windows) export BOOL SetProcessWorkingSetSize(                            <
 1356    HANDLE hProcess,                                                               <
 1357    SIZE_T dwMinimumWorkingSetSize,                                                <
 1358    SIZE_T dwMaximumWorkingSetSize);                                               <
 1359                                                                                   <
 1360  extern(Windows) export HANDLE OpenProcess(                                       <
 1361    DWORD dwDesiredAccess,                                                         <
 1362    BOOL bInheritHandle,                                                           <
 1363    DWORD dwProcessId);                                                            |  1311  //      DWORD dwOID;
 1364                                                                                   <
 1365  extern(Windows) export HANDLE GetCurrentProcess();                               <
 1366                                                                                   <
 1367  extern(Windows) export DWORD GetCurrentProcessId();                              <
 1368                                                                                   <
 1369  extern(Windows) export VOID ExitProcess(                                         <
 1370    UINT uExitCode);                                                               <
 1371                                                                                   <
 1372  extern(Windows) export BOOL TerminateProcess(                                    <
 1373    HANDLE hProcess,                                                               <
 1374    UINT uExitCode);                                                               <
 1375                                                                                   <
 1376  extern(Windows) export BOOL GetExitCodeProcess(                                  <
 1377    HANDLE hProcess,                                                               <
 1378    LPDWORD lpExitCode);                                                           <
 1379                                                                                   <
 1380  extern(Windows) export VOID FatalExit(                                           <
 1381    int ExitCode);                                                                 <
 1382                                                                                   <
 1383  extern(Windows) export LPSTR GetEnvironmentStrings();                            <
 1384                                                                                   <
 1385  extern(Windows) export LPWSTR GetEnvironmentStringsW();                          <
 1386                                                                                   <
 1387  // #ifdef UNICODE                                                                <
 1388  alias GetEnvironmentStringsW GetEnvironmentStrings;                              <
 1389  // #else                                                                            1312  // #else
 1390  // #...                                                                          |  1313          DWORD           dwReserved0;
                                                                                        >  1314          DWORD           dwReserved1;
 1391  // #endif // !UNICODE                                                            |  1315  // #endif
 1392                                                                                   <
 1393  extern(Windows) export BOOL FreeEnvironmentStringsA(                             |  1316          WCHAR[MAX_PATH] cFileName;
 1394    LPSTR);                                                                        <
                                                                                        >  1317  // #ifndef _WIN32_WCE
 1395  extern(Windows) export BOOL FreeEnvironmentStringsW(                             |  1318          WCHAR[14]       cAlternateFileName;
 1396    LPWSTR);                                                                       <
 1397  // #ifdef UNICODE                                                                <
 1398  alias FreeEnvironmentStringsW FreeEnvironmentStrings;                            <
 1399  // #else                                                                         <
 1400  // #...                                                                          <
 1401  // #endif // !UNICODE                                                            <
 1402                                                                                   <
 1403  extern(Windows) export VOID RaiseException(                                      <
 1404    DWORD dwExceptionCode,                                                         <
 1405    DWORD dwExceptionFlags,                                                        <
 1406    DWORD nNumberOfArguments,                                                      <
 1407    ULONG_PTR *lpArguments);                                                       <
 1408                                                                                   <
 1409  extern(Windows) export LONG UnhandledExceptionFilter(                            <
 1410    _EXCEPTION_POINTERS *ExceptionInfo);                                           <
 1411                                                                                   <
 1412  extern(Windows) alias LONG function(  _EXCEPTION_POINTERS *ExceptionInfo ) PTOP_ <
 1413  alias PTOP_LEVEL_EXCEPTION_FILTER LPTOP_LEVEL_EXCEPTION_FILTER;                  <
 1414                                                                                   <
 1415  extern(Windows) export LPTOP_LEVEL_EXCEPTION_FILTER SetUnhandledExceptionFilter( <
 1416    LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter);                       <
 1417                                                                                   <
 1418  // #if(_WIN32_WINNT >= 0x0400)                                                   <
 1419                                                                                   <
 1420  extern(Windows) export LPVOID CreateFiber(                                       <
 1421    SIZE_T dwStackSize,                                                            <
 1422    LPFIBER_START_ROUTINE lpStartAddress,                                          <
 1423    LPVOID lpParameter);                                                           <
 1424                                                                                   <
 1425  extern(Windows) export LPVOID CreateFiberEx(                                     <
 1426    SIZE_T dwStackCommitSize,                                                      <
 1427    SIZE_T dwStackReserveSize,                                                     <
 1428    DWORD dwFlags,                                                                 <
 1429    LPFIBER_START_ROUTINE lpStartAddress,                                          <
 1430    LPVOID lpParameter);                                                           <
 1431                                                                                   <
 1432  extern(Windows) export VOID DeleteFiber(                                         <
 1433    LPVOID lpFiber);                                                               <
 1434                                                                                   <
 1435  extern(Windows) export LPVOID ConvertThreadToFiber(                              <
 1436    LPVOID lpParameter);                                                           <
 1437                                                                                   <
 1438  extern(Windows) export BOOL ConvertFiberToThread();                              <
 1439                                                                                   <
 1440  extern(Windows) export VOID SwitchToFiber(                                       <
 1441    LPVOID lpFiber);                                                               <
 1442                                                                                   <
 1443  extern(Windows) export BOOL SwitchToThread();                                    <
 1444  // #endif /* _WIN32_WINNT >= 0x0400 */                                           <
 1445                                                                                   <
 1446  extern(Windows) export HANDLE CreateThread(                                      <
 1447    LPSECURITY_ATTRIBUTES lpThreadAttributes,                                      <
 1448    SIZE_T dwStackSize,                                                            <
 1449    LPTHREAD_START_ROUTINE lpStartAddress,                                         <
 1450    LPVOID lpParameter,                                                            <
 1451    DWORD dwCreationFlags,                                                         <
 1452    LPDWORD lpThreadId);                                                           <
 1453                                                                                   <
 1454  extern(Windows) export HANDLE CreateRemoteThread(                                <
 1455    HANDLE hProcess,                                                               <
 1456    LPSECURITY_ATTRIBUTES lpThreadAttributes,                                      <
 1457    SIZE_T dwStackSize,                                                            <
 1458    LPTHREAD_START_ROUTINE lpStartAddress,                                         <
 1459    LPVOID lpParameter,                                                            <
 1460    DWORD dwCreationFlags,                                                         <
 1461    LPDWORD lpThreadId);                                                           <
 1462                                                                                   <
 1463  extern(Windows) export HANDLE GetCurrentThread();                                <
 1464                                                                                   <
 1465  extern(Windows) export DWORD GetCurrentThreadId();                               <
 1466                                                                                   <
 1467  extern(Windows) export DWORD_PTR SetThreadAffinityMask(                          <
 1468    HANDLE hThread,                                                                <
 1469    DWORD_PTR dwThreadAffinityMask);                                               <
 1470                                                                                   <
 1471  // #if(_WIN32_WINNT >= 0x0400)                                                   <
 1472  extern(Windows) export DWORD SetThreadIdealProcessor(                            <
 1473    HANDLE hThread,                                                                <
 1474    DWORD dwIdealProcessor);                                                       <
 1475  // #endif /* _WIN32_WINNT >= 0x0400 */                                           <
 1476                                                                                   <
 1477  extern(Windows) export BOOL SetProcessPriorityBoost(                             <
 1478    HANDLE hProcess,                                                               <
 1479    BOOL bDisablePriorityBoost);                                                   <
 1480                                                                                   <
 1481  extern(Windows) export BOOL GetProcessPriorityBoost(                             <
 1482    HANDLE hProcess,                                                               <
 1483    PBOOL pDisablePriorityBoost);                                                  <
 1484                                                                                   <
 1485  extern(Windows) export BOOL RequestWakeupLatency(                                <
 1486    LATENCY_TIME latency);                                                         <
 1487                                                                                   <
 1488  extern(Windows) export BOOL IsSystemResumeAutomatic();                           <
 1489                                                                                   <
 1490  extern(Windows) export HANDLE OpenThread(                                        <
 1491    DWORD dwDesiredAccess,                                                         <
 1492    BOOL bInheritHandle,                                                           <
 1493    DWORD dwThreadId);                                                             <
 1494                                                                                   <
 1495  extern(Windows) export BOOL SetThreadPriority(                                   <
 1496    HANDLE hThread,                                                                <
 1497    int nPriority);                                                                <
 1498                                                                                   <
 1499  extern(Windows) export BOOL SetThreadPriorityBoost(                              <
 1500    HANDLE hThread,                                                                <
 1501    BOOL bDisablePriorityBoost);                                                   <
 1502                                                                                   <
 1503  extern(Windows) export BOOL GetThreadPriorityBoost(                              <
 1504    HANDLE hThread,                                                                <
 1505    PBOOL pDisablePriorityBoost);                                                  <
 1506                                                                                   <
 1507  extern(Windows) export int GetThreadPriority(                                    <
 1508    HANDLE hThread);                                                               <
 1509                                                                                   <
 1510  extern(Windows) export BOOL GetThreadTimes(                                      <
 1511    HANDLE hThread,                                                                <
 1512    LPFILETIME lpCreationTime,                                                     <
 1513    LPFILETIME lpExitTime,                                                         <
 1514    LPFILETIME lpKernelTime,                                                       <
 1515    LPFILETIME lpUserTime);                                                        <
 1516                                                                                   <
 1517  extern(Windows) export VOID ExitThread(                                          <
 1518    DWORD dwExitCode);                                                             <
 1519                                                                                   <
 1520  extern(Windows) export BOOL TerminateThread(                                     <
 1521    HANDLE hThread,                                                                <
 1522    DWORD dwExitCode);                                                             <
 1523                                                                                   <
 1524  extern(Windows) export BOOL GetExitCodeThread(                                   <
 1525    HANDLE hThread,                                                                <
 1526    LPDWORD lpExitCode);                                                           <
 1527                                                                                   <
 1528  extern(Windows) export BOOL GetThreadSelectorEntry(                              <
 1529    HANDLE hThread,                                                                <
 1530    DWORD dwSelector,                                                              <
 1531    LPLDT_ENTRY lpSelectorEntry);                                                  <
 1532                                                                                   <
 1533  extern(Windows) export EXECUTION_STATE SetThreadExecutionState(                  <
 1534    EXECUTION_STATE esFlags);                                                      <
 1535                                                                                   <
 1536  extern(Windows) export DWORD GetLastError();                                     <
 1537                                                                                   <
 1538  extern(Windows) export VOID SetLastError(                                        <
 1539    DWORD dwErrCode);                                                              <
 1540                                                                                   <
 1541  // #if !defined(RC_INVOKED) // RC warns because "WINBASE_DECLARE_RESTORE_LAST_ER <
 1542                                                                                   <
 1543  // #if defined(WINBASE_DECLARE_RESTORE_LAST_ERROR)                               <
 1544                                                                                   <
 1545  // ...                                                                           <
 1546                                                                                   <
 1547  // ...                                                                           <
 1548  // #...                                                                          <
 1549  // #...                                                                          <
 1550  // #...                                                                          <
 1551                                                                                   <
 1552  // #endif                                                                           1319  // #endif
 1553  // #endif                                                                        <
 1554                                                                                   |  1320  }
 1555  bit HasOverlappedIoCompleted(LPOVERLAPPED lpOverlapped){ return (*lpOverlapped). <
                                                                                        >  1321  alias WIN32_FIND_DATAW* PWIN32_FIND_DATAW, LPWIN32_FIND_DATAW;
 1556                                                                                   |  1322  
                                                                                        >  1323  static if (_WIN32_WINNT_ONLY) {
 1557  extern(Windows) export BOOL GetOverlappedResult(                                 |  1324          struct WIN32_STREAM_ID {
 1558    HANDLE hFile,                                                                  |  1325                  DWORD         dwStreamId;
 1559    LPOVERLAPPED lpOverlapped,                                                     |  1326                  DWORD         dwStreamAttributes;
 1560    LPDWORD lpNumberOfBytesTransferred,                                            |  1327                  LARGE_INTEGER Size;
 1561    BOOL bWait);                                                                   |  1328                  DWORD         dwStreamNameSize;
                                                                                        >  1329                  WCHAR         _cStreamName;
 1562                                                                                   |  1330  
 1563  extern(Windows) export HANDLE CreateIoCompletionPort(                            <
 1564    HANDLE FileHandle,                                                             |  1331                  WCHAR* cStreamName() { return &_cStreamName; }
 1565    HANDLE ExistingCompletionPort,                                                 <
                                                                                        >  1332          }
 1566    ULONG_PTR CompletionKey,                                                       |  1333          alias WIN32_STREAM_ID* LPWIN32_STREAM_ID;
 1567    DWORD NumberOfConcurrentThreads);                                              <
 1568                                                                                   |  1334  
                                                                                        >  1335          enum FINDEX_INFO_LEVELS {
 1569  extern(Windows) export BOOL GetQueuedCompletionStatus(                           |  1336                  FindExInfoStandard,
 1570    HANDLE CompletionPort,                                                         |  1337                  FindExInfoMaxInfoLevel
 1571    LPDWORD lpNumberOfBytesTransferred,                                            <
 1572    PULONG_PTR lpCompletionKey,                                                    <
                                                                                        >  1338          }
                                                                                        >  1339  
 1573    LPOVERLAPPED *lpOverlapped,                                                    |  1340          enum FINDEX_SEARCH_OPS {
 1574    DWORD dwMilliseconds);                                                         |  1341                  FindExSearchNameMatch,
                                                                                        >  1342                  FindExSearchLimitToDirectories,
                                                                                        >  1343                  FindExSearchLimitToDevices,
                                                                                        >  1344                  FindExSearchMaxSearchOp
 1575                                                                                   |  1345          }
 1576  extern(Windows) export BOOL PostQueuedCompletionStatus(                          <
 1577    HANDLE CompletionPort,                                                         <
 1578    DWORD dwNumberOfBytesTransferred,                                              <
 1579    ULONG_PTR dwCompletionKey,                                                     <
                                                                                        >  1346  
 1580    LPOVERLAPPED lpOverlapped);                                                    |  1347          enum ACL_INFORMATION_CLASS {
                                                                                        >  1348                  AclRevisionInformation = 1,
                                                                                        >  1349                  AclSizeInformation
 1581                                                                                   |  1350          }
 1582  enum : uint { SEM_FAILCRITICALERRORS = 0x0001 }                                  <
 1583  enum : uint { SEM_NOGPFAULTERRORBOX = 0x0002 }                                   <
 1584  enum : uint { SEM_NOALIGNMENTFAULTEXCEPT = 0x0004 }                              <
 1585  enum : uint { SEM_NOOPENFILEERRORBOX = 0x8000 }                                  <
 1586                                                                                   |  1351  
                                                                                        >  1352          struct HW_PROFILE_INFOA {
                                                                                        >  1353                  DWORD dwDockInfo;
 1587  extern(Windows) export UINT SetErrorMode(                                        |  1354                  CHAR[HW_PROFILE_GUIDLEN] szHwProfileGuid;
 1588    UINT uMode);                                                                   |  1355                  CHAR[MAX_PROFILE_LEN]    szHwProfileName;
 1589                                                                                   |  1356          }
 1590  extern(Windows) export BOOL ReadProcessMemory(                                   |  1357          alias HW_PROFILE_INFOA* LPHW_PROFILE_INFOA;
 1591    HANDLE hProcess,                                                               <
 1592    LPCVOID lpBaseAddress,                                                         <
 1593    LPVOID lpBuffer,                                                               <
 1594    SIZE_T nSize,                                                                  <
 1595    SIZE_T * lpNumberOfBytesRead);                                                 <
 1596                                                                                   |  1358  
 1597  extern(Windows) export BOOL WriteProcessMemory(                                  <
 1598    HANDLE hProcess,                                                               <
 1599    LPVOID lpBaseAddress,                                                          <
 1600    LPCVOID lpBuffer,                                                              <
 1601    SIZE_T nSize,                                                                  <
 1602    SIZE_T * lpNumberOfBytesWritten);                                              <
                                                                                        >  1359          struct HW_PROFILE_INFOW {
                                                                                        >  1360                  DWORD dwDockInfo;
                                                                                        >  1361                  WCHAR[HW_PROFILE_GUIDLEN] szHwProfileGuid;
                                                                                        >  1362                  WCHAR[MAX_PROFILE_LEN]    szHwProfileName;
 1603                                                                                   |  1363          }
 1604  // #if !defined(MIDL_PASS)                                                       <
 1605  extern(Windows) export BOOL GetThreadContext(                                    <
 1606    HANDLE hThread,                                                                <
 1607    LPCONTEXT lpContext);                                                          <
                                                                                        >  1364          alias HW_PROFILE_INFOW* LPHW_PROFILE_INFOW;
 1608                                                                                   |  1365  }
 1609  extern(Windows) export BOOL SetThreadContext(                                    <
 1610    HANDLE hThread,                                                                <
 1611    CONTEXT *lpContext);                                                           <
 1612  // #endif                                                                        <
 1613                                                                                   |  1366  
 1614  extern(Windows) export DWORD SuspendThread(                                      <
 1615    HANDLE hThread);                                                               <
                                                                                        >  1367  /*      ??? MSDN documents this only for Windows CE/Mobile, but it's used by
                                                                                        >  1368   *      GetFileAttributesEx, which is in desktop Windows.
                                                                                        >  1369   */
                                                                                        >  1370  enum GET_FILEEX_INFO_LEVELS {
                                                                                        >  1371          GetFileExInfoStandard,
                                                                                        >  1372          GetFileExMaxInfoLevel
 1616                                                                                   |  1373  }
 1617  extern(Windows) export DWORD ResumeThread(                                       <
 1618    HANDLE hThread);                                                               <
 1619                                                                                   |  1374  
 1620  // #if(_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400)                      <
                                                                                        >  1375  struct SYSTEM_INFO {
                                                                                        >  1376          union {
                                                                                        >  1377                  DWORD dwOemId;
                                                                                        >  1378                  struct {
                                                                                        >  1379                          WORD wProcessorArchitecture;
                                                                                        >  1380                          WORD wReserved;
 1621                                                                                   |  1381                  }
 1622  // ...                                                                           <
 1623                                                                                   |  1382          }
                                                                                        >  1383          DWORD dwPageSize;
                                                                                        >  1384          PVOID lpMinimumApplicationAddress;
                                                                                        >  1385          PVOID lpMaximumApplicationAddress;
                                                                                        >  1386          DWORD dwActiveProcessorMask;
                                                                                        >  1387          DWORD dwNumberOfProcessors;
                                                                                        >  1388          DWORD dwProcessorType;
                                                                                        >  1389          DWORD dwAllocationGranularity;
                                                                                        >  1390          WORD  wProcessorLevel;
 1624  // ...                                                                           |  1391          WORD  wProcessorRevision;
 1625                                                                                   |  1392  }
 1626  // #endif /* _WIN32_WINNT >= 0x0400 || _WIN32_WINDOWS > 0x0400 */                |  1393  alias SYSTEM_INFO* LPSYSTEM_INFO;
 1627                                                                                   |  1394  
 1628  // #if (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400)                     |  1395  static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) {
 1629  extern(Windows) export BOOL IsDebuggerPresent();                                 |  1396          struct SYSTEM_POWER_STATUS {
 1630  // #endif                                                                        |  1397                  BYTE ACLineStatus;
                                                                                        >  1398                  BYTE BatteryFlag;
                                                                                        >  1399                  BYTE BatteryLifePercent;
                                                                                        >  1400                  BYTE Reserved1;
                                                                                        >  1401                  DWORD BatteryLifeTime;
                                                                                        >  1402                  DWORD BatteryFullLifeTime;
 1631                                                                                   |  1403          }
 1632  extern(Windows) export VOID DebugBreak();                                        <
                                                                                        >  1404          alias SYSTEM_POWER_STATUS* LPSYSTEM_POWER_STATUS;
 1633                                                                                   |  1405  }
 1634  extern(Windows) export BOOL WaitForDebugEvent(                                   <
 1635    LPDEBUG_EVENT lpDebugEvent,                                                    <
 1636    DWORD dwMilliseconds);                                                         <
 1637                                                                                   |  1406  
 1638  extern(Windows) export BOOL ContinueDebugEvent(                                  <
                                                                                        >  1407  struct TIME_ZONE_INFORMATION {
                                                                                        >  1408          LONG       Bias;
                                                                                        >  1409          WCHAR[32]  StandardName;
                                                                                        >  1410          SYSTEMTIME StandardDate;
                                                                                        >  1411          LONG       StandardBias;
                                                                                        >  1412          WCHAR[32]  DaylightName;
                                                                                        >  1413          SYSTEMTIME DaylightDate;
                                                                                        >  1414          LONG       DaylightBias;
                                                                                        >  1415  }
                                                                                        >  1416  alias TIME_ZONE_INFORMATION* LPTIME_ZONE_INFORMATION;
                                                                                        >  1417  
                                                                                        >  1418  // MSDN documents this, possibly erroneously, as Win2000+.
                                                                                        >  1419  struct MEMORYSTATUS {
 1639    DWORD dwProcessId,                                                             |  1420          DWORD dwLength;
                                                                                        >  1421          DWORD dwMemoryLoad;
 1640    DWORD dwThreadId,                                                              |  1422          DWORD dwTotalPhys;
 1641    DWORD dwContinueStatus);                                                       |  1423          DWORD dwAvailPhys;
                                                                                        >  1424          DWORD dwTotalPageFile;
                                                                                        >  1425          DWORD dwAvailPageFile;
                                                                                        >  1426          DWORD dwTotalVirtual;
                                                                                        >  1427          DWORD dwAvailVirtual;
 1642                                                                                   |  1428  }
 1643  extern(Windows) export BOOL DebugActiveProcess(                                  <
 1644    DWORD dwProcessId);                                                            <
                                                                                        >  1429  alias MEMORYSTATUS* LPMEMORYSTATUS;
 1645                                                                                   |  1430  
 1646  extern(Windows) export BOOL DebugActiveProcessStop(                              <
 1647    DWORD dwProcessId);                                                            <
                                                                                        >  1431  static if (_WIN32_WINNT >= 0x500) {
                                                                                        >  1432          struct MEMORYSTATUSEX {
                                                                                        >  1433                  DWORD     dwLength;
                                                                                        >  1434                  DWORD     dwMemoryLoad;
                                                                                        >  1435                  DWORDLONG ullTotalPhys;
                                                                                        >  1436                  DWORDLONG ullAvailPhys;
                                                                                        >  1437                  DWORDLONG ullTotalPageFile;
                                                                                        >  1438                  DWORDLONG ullAvailPageFile;
                                                                                        >  1439                  DWORDLONG ullTotalVirtual;
                                                                                        >  1440                  DWORDLONG ullAvailVirtual;
                                                                                        >  1441                  DWORDLONG ullAvailExtendedVirtual;
 1648                                                                                   |  1442          }
 1649  extern(Windows) export BOOL DebugSetProcessKillOnExit(                           <
 1650    BOOL KillOnExit);                                                              <
                                                                                        >  1443          alias MEMORYSTATUSEX* LPMEMORYSTATUSEX;
 1651                                                                                   |  1444  }
 1652  extern(Windows) export BOOL DebugBreakProcess(                                   <
 1653    HANDLE Process);                                                               <
 1654                                                                                   |  1445  
 1655  extern(Windows) export VOID InitializeCriticalSection(                           <
 1656    LPCRITICAL_SECTION lpCriticalSection);                                         <
                                                                                        >  1446  struct LDT_ENTRY {
                                                                                        >  1447          WORD LimitLow;
                                                                                        >  1448          WORD BaseLow;
                                                                                        >  1449          struct {
                                                                                        >  1450                  BYTE BaseMid;
                                                                                        >  1451                  BYTE Flags1;
                                                                                        >  1452                  BYTE Flags2;
                                                                                        >  1453                  BYTE BaseHi;
 1657                                                                                   |  1454  
 1658  extern(Windows) export VOID EnterCriticalSection(                                <
 1659    LPCRITICAL_SECTION lpCriticalSection);                                         <
                                                                                        >  1455                  byte Type(byte f)        { Flags1 = cast(BYTE) ((Flags1 & 0xE0) 
                                                                                        >  1456                  byte Dpl(byte f)         { Flags1 = cast(BYTE) ((Flags1 & 0x9F) 
                                                                                        >  1457                  bool Pres(bool f)        { Flags1 = cast(BYTE) ((Flags1 & 0x7F) 
 1660                                                                                   |  1458  
 1661  extern(Windows) export VOID LeaveCriticalSection(                                <
 1662    LPCRITICAL_SECTION lpCriticalSection);                                         <
                                                                                        >  1459                  byte LimitHi(byte f)     { Flags2 = cast(BYTE) ((Flags2 & 0xF0) 
                                                                                        >  1460                  bool Sys(bool f)         { Flags2 = cast(BYTE) ((Flags2 & 0xEF) 
                                                                                        >  1461                  // Next bit is reserved
                                                                                        >  1462                  bool Default_Big(bool f) { Flags2 = cast(BYTE) ((Flags2 & 0xBF) 
                                                                                        >  1463                  bool Granularity(bool f) { Flags2 = cast(BYTE) ((Flags2 & 0x7F) 
 1663                                                                                   |  1464  
 1664  // #if (_WIN32_WINNT >= 0x0403)                                                  <
 1665  extern(Windows) export BOOL InitializeCriticalSectionAndSpinCount(               <
 1666    LPCRITICAL_SECTION lpCriticalSection,                                          <
 1667    DWORD dwSpinCount);                                                            <
                                                                                        >  1465                  byte Type()        { return cast(byte) (Flags1 & 0x1F); }
                                                                                        >  1466                  byte Dpl()         { return cast(byte) ((Flags1 & 0x60)>>5); }
                                                                                        >  1467                  bool Pres()        { return cast(bool) (Flags1 & 0x80); }
 1668                                                                                   |  1468  
 1669  extern(Windows) export DWORD SetCriticalSectionSpinCount(                        <
 1670    LPCRITICAL_SECTION lpCriticalSection,                                          <
                                                                                        >  1469                  byte LimitHi()     { return cast(byte) (Flags2 & 0x0F); }
                                                                                        >  1470                  bool Sys()         { return cast(bool) (Flags2 & 0x10); }
                                                                                        >  1471                  bool Default_Big() { return cast(bool) (Flags2 & 0x40); }
                                                                                        >  1472                  bool Granularity() { return cast(bool) (Flags2 & 0x80); }
                                                                                        >  1473          }
                                                                                        >  1474  /+
                                                                                        >  1475          union  HighWord {
                                                                                        >  1476                  struct Bytes {
                                                                                        >  1477                          BYTE BaseMid;
                                                                                        >  1478                          BYTE Flags1;
                                                                                        >  1479                          BYTE Flags2;
                                                                                        >  1480                          BYTE BaseHi;
                                                                                        >  1481                  }
                                                                                        >  1482          struct Bits {
                                                                                        >  1483                  DWORD BaseMid:8;
                                                                                        >  1484                  DWORD Type:5;
 1671    DWORD dwSpinCount);                                                            |  1485                  DWORD Dpl:2;
 1672  // #endif                                                                        <
                                                                                        >  1486                  DWORD Pres:1;
                                                                                        >  1487                  DWORD LimitHi:4;
                                                                                        >  1488                  DWORD Sys:1;
                                                                                        >  1489                  DWORD Reserved_0:1;
                                                                                        >  1490                  DWORD Default_Big:1;
                                                                                        >  1491                  DWORD Granularity:1;
                                                                                        >  1492                  DWORD BaseHi:8;
 1673                                                                                   |  1493          }
 1674  // #if(_WIN32_WINNT >= 0x0400)                                                   <
 1675  extern(Windows) export BOOL TryEnterCriticalSection(                             <
 1676    LPCRITICAL_SECTION lpCriticalSection);                                         <
 1677  // #endif /* _WIN32_WINNT >= 0x0400 */                                           <
 1678                                                                                   |  1494          }
 1679  extern(Windows) export VOID DeleteCriticalSection(                               <
 1680    LPCRITICAL_SECTION lpCriticalSection);                                         <
                                                                                        >  1495  +/
 1681                                                                                   |  1496  }
 1682  extern(Windows) export BOOL SetEvent(                                            <
 1683    HANDLE hEvent);                                                                <
                                                                                        >  1497  alias LDT_ENTRY* PLDT_ENTRY, LPLDT_ENTRY;
 1684                                                                                   |  1498  
 1685  extern(Windows) export BOOL ResetEvent(                                          <
                                                                                        >  1499  /*      As with the other memory management functions and structures, MSDN's
                                                                                        >  1500   *      Windows version info shall be taken with a cup of salt.
                                                                                        >  1501   */
                                                                                        >  1502  struct PROCESS_HEAP_ENTRY {
                                                                                        >  1503          PVOID lpData;
                                                                                        >  1504          DWORD cbData;
                                                                                        >  1505          BYTE  cbOverhead;
                                                                                        >  1506          BYTE  iRegionIndex;
                                                                                        >  1507          WORD  wFlags;
                                                                                        >  1508          union {
                                                                                        >  1509                  struct Block {
 1686    HANDLE hEvent);                                                                |  1510                          HANDLE   hMem;
                                                                                        >  1511                          DWORD[3] dwReserved;
 1687                                                                                   |  1512                  }
 1688  extern(Windows) export BOOL PulseEvent(                                          <
 1689    HANDLE hEvent);                                                                <
                                                                                        >  1513                  struct Region {
                                                                                        >  1514                          DWORD    dwCommittedSize;
                                                                                        >  1515                          DWORD    dwUnCommittedSize;
                                                                                        >  1516                          LPVOID   lpFirstBlock;
                                                                                        >  1517                          LPVOID   lpLastBlock;
 1690                                                                                   |  1518                  }
 1691  extern(Windows) export BOOL ReleaseSemaphore(                                    <
 1692    HANDLE hSemaphore,                                                             <
 1693    LONG lReleaseCount,                                                            <
 1694    LPLONG lpPreviousCount);                                                       <
 1695                                                                                   |  1519          }
 1696  extern(Windows) export BOOL ReleaseMutex(                                        <
 1697    HANDLE hMutex);                                                                <
 1698                                                                                   |  1520  }
 1699  extern(Windows) export DWORD WaitForSingleObject(                                <
 1700    HANDLE hHandle,                                                                <
 1701    DWORD dwMilliseconds);                                                         <
                                                                                        >  1521  alias PROCESS_HEAP_ENTRY* LPPROCESS_HEAP_ENTRY;
 1702                                                                                   |  1522  
 1703  extern(Windows) export DWORD WaitForMultipleObjects(                             <
 1704    DWORD nCount,                                                                  <
 1705    HANDLE *lpHandles,                                                             <
 1706    BOOL bWaitAll,                                                                 <
 1707    DWORD dwMilliseconds);                                                         <
                                                                                        >  1523  struct OFSTRUCT {
                                                                                        >  1524          BYTE      cBytes = OFSTRUCT.sizeof;
                                                                                        >  1525          BYTE      fFixedDisk;
                                                                                        >  1526          WORD      nErrCode;
                                                                                        >  1527          WORD      Reserved1;
                                                                                        >  1528          WORD      Reserved2;
                                                                                        >  1529          CHAR[128] szPathName; // const OFS_MAXPATHNAME = 128;
 1708                                                                                   |  1530  }
 1709  extern(Windows) export VOID Sleep(                                               <
                                                                                        >  1531  alias OFSTRUCT* LPOFSTRUCT, POFSTRUCT;
                                                                                        >  1532  
                                                                                        >  1533  /*      ??? MSDN documents this only for Windows CE, but it's used by
                                                                                        >  1534   *      ImageGetCertificateData, which is in desktop Windows.
                                                                                        >  1535   */
                                                                                        >  1536  struct WIN_CERTIFICATE {
 1710    DWORD dwMilliseconds);                                                         |  1537          DWORD dwLength;
                                                                                        >  1538          WORD  wRevision;
                                                                                        >  1539          WORD  wCertificateType;
                                                                                        >  1540          BYTE  _bCertificate;
 1711                                                                                   |  1541  
 1712  extern(Windows) export HGLOBAL LoadResource(                                     <
                                                                                        >  1542          BYTE* bCertificate() { return &_bCertificate; }
                                                                                        >  1543  }
                                                                                        >  1544  alias WIN_CERTIFICATE* LPWIN_CERTIFICATE;
                                                                                        >  1545  
                                                                                        >  1546  static if (_WIN32_WINNT >= 0x500) {
                                                                                        >  1547          enum COMPUTER_NAME_FORMAT {
                                                                                        >  1548                  ComputerNameNetBIOS,
                                                                                        >  1549                  ComputerNameDnsHostname,
                                                                                        >  1550                  ComputerNameDnsDomain,
                                                                                        >  1551                  ComputerNameDnsFullyQualified,
                                                                                        >  1552                  ComputerNamePhysicalNetBIOS,
                                                                                        >  1553                  ComputerNamePhysicalDnsHostname,
                                                                                        >  1554                  ComputerNamePhysicalDnsDomain,
                                                                                        >  1555                  ComputerNamePhysicalDnsFullyQualified,
                                                                                        >  1556                  ComputerNameMax
                                                                                        >  1557          }
                                                                                        >  1558  }
                                                                                        >  1559  
                                                                                        >  1560  static if (_WIN32_WINNT >= 0x501) {
                                                                                        >  1561          struct ACTCTXA {
                                                                                        >  1562                  ULONG cbSize = this.sizeof;
                                                                                        >  1563                  DWORD dwFlags;
                                                                                        >  1564                  LPCSTR lpSource;
                                                                                        >  1565                  USHORT wProcessorArchitecture;
                                                                                        >  1566                  LANGID wLangId;
                                                                                        >  1567                  LPCSTR lpAssemblyDirectory;
                                                                                        >  1568                  LPCSTR lpResourceName;
                                                                                        >  1569                  LPCSTR lpApplicationName;
 1713    HMODULE hModule,                                                               |  1570                  HMODULE hModule;
 1714    HRSRC hResInfo);                                                               <
 1715                                                                                   |  1571          }
 1716  extern(Windows) export DWORD SizeofResource(                                     <
                                                                                        >  1572          alias ACTCTXA*       PACTCTXA;
                                                                                        >  1573          alias CPtr!(ACTCTXA) PCACTCTXA;
                                                                                        >  1574  
                                                                                        >  1575          struct ACTCTXW {
                                                                                        >  1576                  ULONG cbSize = this.sizeof;
                                                                                        >  1577                  DWORD dwFlags;
                                                                                        >  1578                  LPCWSTR lpSource;
                                                                                        >  1579                  USHORT wProcessorArchitecture;
                                                                                        >  1580                  LANGID wLangId;
                                                                                        >  1581                  LPCWSTR lpAssemblyDirectory;
                                                                                        >  1582                  LPCWSTR lpResourceName;
                                                                                        >  1583                  LPCWSTR lpApplicationName;
 1717    HMODULE hModule,                                                               |  1584                  HMODULE hModule;
 1718    HRSRC hResInfo);                                                               <
 1719                                                                                   |  1585          }
 1720  extern(Windows) export ATOM GlobalDeleteAtom(                                    <
 1721    ATOM nAtom);                                                                   <
                                                                                        >  1586          alias ACTCTXW*       PACTCTXW;
                                                                                        >  1587          alias CPtr!(ACTCTXW) PCACTCTXW;
 1722                                                                                   |  1588  
 1723  extern(Windows) export BOOL InitAtomTable(                                       <
 1724    DWORD nSize);                                                                  <
                                                                                        >  1589          struct ACTCTX_SECTION_KEYED_DATA {
                                                                                        >  1590                  ULONG cbSize = this.sizeof;
                                                                                        >  1591                  ULONG ulDataFormatVersion;
                                                                                        >  1592                  PVOID lpData;
                                                                                        >  1593                  ULONG ulLength;
                                                                                        >  1594                  PVOID lpSectionGlobalData;
                                                                                        >  1595                  ULONG ulSectionGlobalDataLength;
                                                                                        >  1596                  PVOID lpSectionBase;
                                                                                        >  1597                  ULONG ulSectionTotalLength;
                                                                                        >  1598                  HANDLE hActCtx;
                                                                                        >  1599                  HANDLE ulAssemblyRosterIndex;
 1725                                                                                   |  1600          }
 1726  extern(Windows) export ATOM DeleteAtom(                                          <
 1727    ATOM nAtom);                                                                   <
                                                                                        >  1601          alias ACTCTX_SECTION_KEYED_DATA*       PACTCTX_SECTION_KEYED_DATA;
                                                                                        >  1602          alias CPtr!(ACTCTX_SECTION_KEYED_DATA) PCACTCTX_SECTION_KEYED_DATA;
 1728                                                                                   |  1603  
 1729  extern(Windows) export UINT SetHandleCount(                                      <
 1730    UINT uNumber);                                                                 <
                                                                                        >  1604          enum MEMORY_RESOURCE_NOTIFICATION_TYPE {
                                                                                        >  1605                  LowMemoryResourceNotification,
                                                                                        >  1606                  HighMemoryResourceNotification
 1731                                                                                   |  1607          }
 1732  extern(Windows) export DWORD GetLogicalDrives();                                 <
 1733                                                                                   |  1608  
                                                                                        >  1609  } // (_WIN32_WINNT >= 0x0501)
                                                                                        >  1610  
                                                                                        >  1611  static if (WINVER >= 0x410) {
                                                                                        >  1612          /*      apparently used only by SetThreadExecutionState (Win2000+)
                                                                                        >  1613           *      and DDK functions (version compatibility not established)
                                                                                        >  1614           */
                                                                                        >  1615          alias DWORD EXECUTION_STATE;
                                                                                        >  1616  }
                                                                                        >  1617  
                                                                                        >  1618  // Callbacks
 1734  extern(Windows) export BOOL LockFile(                                            |  1619  extern (Windows) {
 1735    HANDLE hFile,                                                                  <
 1736    DWORD dwFileOffsetLow,                                                         <
 1737    DWORD dwFileOffsetHigh,                                                        <
 1738    DWORD nNumberOfBytesToLockLow,                                                 <
 1739    DWORD nNumberOfBytesToLockHigh);                                               <
                                                                                        >  1620          alias DWORD function(LPVOID) LPTHREAD_START_ROUTINE;
                                                                                        >  1621          alias DWORD function(LARGE_INTEGER, LARGE_INTEGER, LARGE_INTEGER, LARGE_
                                                                                        >  1622                  DWORD, DWORD, HANDLE, HANDLE, LPVOID)  LPPROGRESS_ROUTINE;
                                                                                        >  1623          alias void function(PVOID) LPFIBER_START_ROUTINE;
 1740                                                                                   |  1624  
 1741  extern(Windows) export BOOL UnlockFile(                                          <
 1742    HANDLE hFile,                                                                  <
 1743    DWORD dwFileOffsetLow,                                                         <
 1744    DWORD dwFileOffsetHigh,                                                        <
 1745    DWORD nNumberOfBytesToUnlockLow,                                               <
 1746    DWORD nNumberOfBytesToUnlockHigh);                                             <
                                                                                        >  1625          alias BOOL function(HMODULE, LPCSTR, LPCSTR, WORD, LONG) ENUMRESLANGPROC
                                                                                        >  1626          alias BOOL function(HMODULE, LPCWSTR, LPCWSTR, WORD, LONG) ENUMRESLANGPR
                                                                                        >  1627          alias BOOL function(HMODULE, LPCSTR, LPSTR, LONG) ENUMRESNAMEPROCA;
                                                                                        >  1628          alias BOOL function(HMODULE, LPCWSTR, LPWSTR, LONG) ENUMRESNAMEPROCW;
                                                                                        >  1629          alias BOOL function(HMODULE, LPSTR, LONG) ENUMRESTYPEPROCA;
                                                                                        >  1630          alias BOOL function(HMODULE, LPWSTR, LONG) ENUMRESTYPEPROCW;
                                                                                        >  1631          alias void function(DWORD, DWORD, LPOVERLAPPED) LPOVERLAPPED_COMPLETION_
                                                                                        >  1632          alias LONG function(LPEXCEPTION_POINTERS) PTOP_LEVEL_EXCEPTION_FILTER;
                                                                                        >  1633          alias PTOP_LEVEL_EXCEPTION_FILTER LPTOP_LEVEL_EXCEPTION_FILTER;
 1747                                                                                   |  1634  
 1748  extern(Windows) export BOOL LockFileEx(                                          <
 1749    HANDLE hFile,                                                                  <
 1750    DWORD dwFlags,                                                                 <
 1751    DWORD dwReserved,                                                              <
 1752    DWORD nNumberOfBytesToLockLow,                                                 <
 1753    DWORD nNumberOfBytesToLockHigh,                                                <
 1754    LPOVERLAPPED lpOverlapped);                                                    <
                                                                                        >  1635          alias void function(ULONG_PTR) PAPCFUNC;
                                                                                        >  1636          alias void function(PVOID, DWORD, DWORD) PTIMERAPCROUTINE;
 1755                                                                                   |  1637  
 1756  enum : uint { LOCKFILE_FAIL_IMMEDIATELY = 0x00000001 }                           <
 1757  enum : uint { LOCKFILE_EXCLUSIVE_LOCK = 0x00000002 }                             <
                                                                                        >  1638          static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) {
                                                                                        >  1639                  alias void function(PVOID, BOOLEAN) WAITORTIMERCALLBACK;
 1758                                                                                   |  1640          }
 1759  extern(Windows) export BOOL UnlockFileEx(                                        <
 1760    HANDLE hFile,                                                                  <
 1761    DWORD dwReserved,                                                              <
 1762    DWORD nNumberOfBytesToUnlockLow,                                               <
 1763    DWORD nNumberOfBytesToUnlockHigh,                                              <
 1764    LPOVERLAPPED lpOverlapped);                                                    <
 1765                                                                                   |  1641  }
 1766  struct _BY_HANDLE_FILE_INFORMATION {                                             <
 1767    DWORD dwFileAttributes;                                                        <
 1768    FILETIME ftCreationTime;                                                       <
 1769    FILETIME ftLastAccessTime;                                                     <
 1770    FILETIME ftLastWriteTime;                                                      <
 1771    DWORD dwVolumeSerialNumber;                                                    <
 1772    DWORD nFileSizeHigh;                                                           <
 1773    DWORD nFileSizeLow;                                                            <
 1774    DWORD nNumberOfLinks;                                                          <
 1775    DWORD nFileIndexHigh;                                                          <
 1776    DWORD nFileIndexLow;                                                           <
                                                                                        >  1642  
                                                                                        >  1643  LPTSTR MAKEINTATOM(short i) {
                                                                                        >  1644          return cast(LPTSTR) i;
 1777  }                                                                                   1645  }
 1778  alias _BY_HANDLE_FILE_INFORMATION BY_HANDLE_FILE_INFORMATION;                    <
 1779  alias _BY_HANDLE_FILE_INFORMATION* PBY_HANDLE_FILE_INFORMATION;                  <
 1780  alias _BY_HANDLE_FILE_INFORMATION* LPBY_HANDLE_FILE_INFORMATION;                 <
 1781                                                                                   |  1646  
                                                                                        >  1647  extern (Windows) {
                                                                                        >  1648          ATOM AddAtomA(LPCSTR);
                                                                                        >  1649          ATOM AddAtomW(LPCWSTR);
 1782  extern(Windows) export BOOL GetFileInformationByHandle(                          |  1650          BOOL AreFileApisANSI();
 1783    HANDLE hFile,                                                                  |  1651          BOOL Beep(DWORD, DWORD);
 1784    LPBY_HANDLE_FILE_INFORMATION lpFileInformation);                               |  1652          HANDLE BeginUpdateResourceA(LPCSTR, BOOL);
 1785                                                                                   <
                                                                                        >  1653          HANDLE BeginUpdateResourceW(LPCWSTR, BOOL);
 1786  extern(Windows) export DWORD GetFileType(                                        |  1654          BOOL BuildCommDCBA(LPCSTR, LPDCB);
 1787    HANDLE hFile);                                                                 |  1655          BOOL BuildCommDCBW(LPCWSTR, LPDCB);
 1788                                                                                   <
                                                                                        >  1656          BOOL BuildCommDCBAndTimeoutsA(LPCSTR, LPDCB, LPCOMMTIMEOUTS);
 1789  extern(Windows) export DWORD GetFileSize(                                        |  1657          BOOL BuildCommDCBAndTimeoutsW(LPCWSTR, LPDCB, LPCOMMTIMEOUTS);
 1790    HANDLE hFile,                                                                  |  1658          BOOL CallNamedPipeA(LPCSTR, PVOID, DWORD, PVOID, DWORD, PDWORD, DWORD);
 1791    LPDWORD lpFileSizeHigh);                                                       |  1659          BOOL CallNamedPipeW(LPCWSTR, PVOID, DWORD, PVOID, DWORD, PDWORD, DWORD);
 1792                                                                                   <
                                                                                        >  1660          BOOL CancelDeviceWakeupRequest(HANDLE);
 1793  extern(Windows) export BOOL GetFileSizeEx(                                       |  1661          BOOL CheckTokenMembership(HANDLE, PSID, PBOOL);
 1794    HANDLE hFile,                                                                  |  1662          BOOL ClearCommBreak(HANDLE);
 1795    PLARGE_INTEGER lpFileSize);                                                    |  1663          BOOL ClearCommError(HANDLE, PDWORD, LPCOMSTAT);
                                                                                        >  1664          BOOL CloseHandle(HANDLE);
                                                                                        >  1665          BOOL CommConfigDialogA(LPCSTR, HWND, LPCOMMCONFIG);
                                                                                        >  1666          BOOL CommConfigDialogW(LPCWSTR, HWND, LPCOMMCONFIG);
                                                                                        >  1667          LONG CompareFileTime(CPtr!(FILETIME), CPtr!(FILETIME));
                                                                                        >  1668          BOOL ContinueDebugEvent(DWORD, DWORD, DWORD);
                                                                                        >  1669          BOOL CopyFileA(LPCSTR, LPCSTR, BOOL);
                                                                                        >  1670          BOOL CopyFileW(LPCWSTR, LPCWSTR, BOOL);
                                                                                        >  1671          BOOL CopyFileExA(LPCSTR, LPCSTR, LPPROGRESS_ROUTINE, LPVOID, LPBOOL, DWO
                                                                                        >  1672          BOOL CopyFileExW(LPCWSTR, LPCWSTR, LPPROGRESS_ROUTINE, LPVOID, LPBOOL, D
 1796                                                                                   |  1673  
 1797  extern(Windows) export HANDLE GetStdHandle(                                      <
 1798    DWORD nStdHandle);                                                             <
                                                                                        >  1674          /+ FIXME
                                                                                        >  1675          alias memmove RtlMoveMemory;
                                                                                        >  1676          alias memcpy RtlCopyMemory;
 1799                                                                                   |  1677  
 1800  extern(Windows) export BOOL SetStdHandle(                                        <
 1801    DWORD nStdHandle,                                                              <
 1802    HANDLE hHandle);                                                               <
                                                                                        >  1678          void RtlFillMemory(PVOID dest, SIZE_T len, BYTE fill) {
                                                                                        >  1679                  memset(dest, fill, len);
 1803                                                                                   |  1680          }
 1804  extern(Windows) export BOOL WriteFile(                                           <
 1805    HANDLE hFile,                                                                  <
 1806    LPCVOID lpBuffer,                                                              <
 1807    DWORD nNumberOfBytesToWrite,                                                   <
 1808    LPDWORD lpNumberOfBytesWritten,                                                <
 1809    LPOVERLAPPED lpOverlapped);                                                    <
 1810                                                                                   |  1681  
 1811  extern(Windows) export BOOL ReadFile(                                            <
 1812    HANDLE hFile,                                                                  <
 1813    LPVOID lpBuffer,                                                               <
 1814    DWORD nNumberOfBytesToRead,                                                    |  1682          void RtlZeroMemory(PVOID dest, SIZE_T len) {
 1815    LPDWORD lpNumberOfBytesRead,                                                   |  1683                  RtlFillMemory(dest, len , 0);
 1816    LPOVERLAPPED lpOverlapped);                                                    <
 1817                                                                                   |  1684          }
 1818  extern(Windows) export BOOL FlushFileBuffers(                                    <
 1819    HANDLE hFile);                                                                 <
 1820                                                                                   |  1685  
                                                                                        >  1686          alias RtlMoveMemory MoveMemory;
                                                                                        >  1687          alias RtlCopyMemory CopyMemory;
                                                                                        >  1688          alias RtlFillMemory FillMemory;
 1821  extern(Windows) export BOOL DeviceIoControl(                                     |  1689          alias RtlZeroMemory ZeroMemory;
 1822    HANDLE hDevice,                                                                <
                                                                                        >  1690          +/
 1823    DWORD dwIoControlCode,                                                         |  1691          BOOL CreateDirectoryA(LPCSTR, LPSECURITY_ATTRIBUTES);
 1824    LPVOID lpInBuffer,                                                             |  1692          BOOL CreateDirectoryW(LPCWSTR, LPSECURITY_ATTRIBUTES);
 1825    DWORD nInBufferSize,                                                           |  1693          BOOL CreateDirectoryExA(LPCSTR, LPCSTR, LPSECURITY_ATTRIBUTES);
 1826    LPVOID lpOutBuffer,                                                            |  1694          BOOL CreateDirectoryExW(LPCWSTR, LPCWSTR, LPSECURITY_ATTRIBUTES);
 1827    DWORD nOutBufferSize,                                                          |  1695          HANDLE CreateEventA(LPSECURITY_ATTRIBUTES, BOOL, BOOL, LPCSTR);
 1828    LPDWORD lpBytesReturned,                                                       |  1696          HANDLE CreateEventW(LPSECURITY_ATTRIBUTES, BOOL, BOOL, LPCWSTR);
 1829    LPOVERLAPPED lpOverlapped);                                                    |  1697          HANDLE CreateFileA(LPCSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, D
 1830                                                                                   <
                                                                                        >  1698          HANDLE CreateFileW(LPCWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, 
 1831  extern(Windows) export BOOL RequestDeviceWakeup(                                 |  1699          HANDLE CreateIoCompletionPort(HANDLE, HANDLE, ULONG_PTR, DWORD);
 1832    HANDLE hDevice);                                                               |  1700          HANDLE CreateMailslotA(LPCSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES);
 1833                                                                                   <
                                                                                        >  1701          HANDLE CreateMailslotW(LPCWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES);
 1834  extern(Windows) export BOOL CancelDeviceWakeupRequest(                           |  1702          HANDLE CreateMutexA(LPSECURITY_ATTRIBUTES, BOOL, LPCSTR);
 1835    HANDLE hDevice);                                                               |  1703          HANDLE CreateMutexW(LPSECURITY_ATTRIBUTES, BOOL, LPCWSTR);
 1836                                                                                   <
                                                                                        >  1704          BOOL CreatePipe(PHANDLE, PHANDLE, LPSECURITY_ATTRIBUTES, DWORD);
 1837  extern(Windows) export BOOL GetDevicePowerState(                                 |  1705          BOOL CreateProcessA(LPCSTR, LPSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATT
 1838    HANDLE hDevice,                                                                |  1706          BOOL CreateProcessW(LPCWSTR, LPWSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_A
 1839    BOOL *pfOn);                                                                   |  1707          HANDLE CreateSemaphoreA(LPSECURITY_ATTRIBUTES, LONG, LONG, LPCSTR);
 1840                                                                                   <
                                                                                        >  1708          HANDLE CreateSemaphoreW(LPSECURITY_ATTRIBUTES, LONG, LONG, LPCWSTR);
 1841  extern(Windows) export BOOL SetMessageWaitingIndicator(                          |  1709          HANDLE CreateThread(LPSECURITY_ATTRIBUTES, DWORD, LPTHREAD_START_ROUTINE
 1842    HANDLE hMsgIndicator,                                                          |  1710          BOOL DebugActiveProcess(DWORD);
 1843    ULONG ulMsgCount);                                                             |  1711          void DebugBreak();
 1844                                                                                   <
                                                                                        >  1712          ATOM DeleteAtom(ATOM);
 1845  extern(Windows) export BOOL SetEndOfFile(                                        |  1713          void DeleteCriticalSection(PCRITICAL_SECTION);
 1846    HANDLE hFile);                                                                 |  1714          BOOL DeleteFileA(LPCSTR);
 1847                                                                                   <
                                                                                        >  1715          BOOL DeleteFileW(LPCWSTR);
 1848  extern(Windows) export DWORD SetFilePointer(                                     |  1716          BOOL DisableThreadLibraryCalls(HMODULE);
 1849    HANDLE hFile,                                                                  |  1717          BOOL DosDateTimeToFileTime(WORD, WORD, LPFILETIME);
 1850    LONG lDistanceToMove,                                                          |  1718          BOOL DuplicateHandle(HANDLE, HANDLE, HANDLE, PHANDLE, DWORD, BOOL, DWORD
 1851    PLONG lpDistanceToMoveHigh,                                                    |  1719          BOOL EndUpdateResourceA(HANDLE, BOOL);
 1852    DWORD dwMoveMethod);                                                           |  1720          BOOL EndUpdateResourceW(HANDLE, BOOL);
 1853                                                                                   <
                                                                                        >  1721          void EnterCriticalSection(LPCRITICAL_SECTION);
 1854  extern(Windows) export BOOL SetFilePointerEx(                                    |  1722          BOOL EnumResourceLanguagesA(HMODULE, LPCSTR, LPCSTR, ENUMRESLANGPROC, LO
 1855    HANDLE hFile,                                                                  |  1723          BOOL EnumResourceLanguagesW(HMODULE, LPCWSTR, LPCWSTR, ENUMRESLANGPROC, 
 1856    LARGE_INTEGER liDistanceToMove,                                                |  1724          BOOL EnumResourceNamesA(HMODULE, LPCSTR, ENUMRESNAMEPROC, LONG_PTR);
 1857    PLARGE_INTEGER lpNewFilePointer,                                               |  1725          BOOL EnumResourceNamesW(HMODULE, LPCWSTR, ENUMRESNAMEPROC, LONG_PTR);
 1858    DWORD dwMoveMethod);                                                           |  1726          BOOL EnumResourceTypesA(HMODULE, ENUMRESTYPEPROC, LONG_PTR);
 1859                                                                                   <
                                                                                        >  1727          BOOL EnumResourceTypesW(HMODULE, ENUMRESTYPEPROC, LONG_PTR);
 1860  extern(Windows) export BOOL FindClose(                                           |  1728          BOOL EscapeCommFunction(HANDLE, DWORD);
 1861    HANDLE hFindFile);                                                             |  1729          void ExitProcess(UINT); // Never returns
 1862                                                                                   <
                                                                                        >  1730          void ExitThread(DWORD); // Never returns
 1863  extern(Windows) export BOOL GetFileTime(                                         |  1731          DWORD ExpandEnvironmentStringsA(LPCSTR, LPSTR, DWORD);
 1864    HANDLE hFile,                                                                  |  1732          DWORD ExpandEnvironmentStringsW(LPCWSTR, LPWSTR, DWORD);
 1865    LPFILETIME lpCreationTime,                                                     |  1733          void FatalAppExitA(UINT, LPCSTR);
 1866    LPFILETIME lpLastAccessTime,                                                   |  1734          void FatalAppExitW(UINT, LPCWSTR);
 1867    LPFILETIME lpLastWriteTime);                                                   |  1735          void FatalExit(int);
 1868                                                                                   <
                                                                                        >  1736          BOOL FileTimeToDosDateTime(CPtr!(FILETIME) , LPWORD, LPWORD);
 1869  extern(Windows) export BOOL SetFileTime(                                         |  1737          BOOL FileTimeToLocalFileTime(CPtr!(FILETIME) , LPFILETIME);
 1870    HANDLE hFile,                                                                  |  1738          BOOL FileTimeToSystemTime(CPtr!(FILETIME) , LPSYSTEMTIME);
 1871    FILETIME *lpCreationTime,                                                      |  1739          ATOM FindAtomA(LPCSTR);
 1872    FILETIME *lpLastAccessTime,                                                    |  1740          ATOM FindAtomW(LPCWSTR);
 1873    FILETIME *lpLastWriteTime);                                                    |  1741          BOOL FindClose(HANDLE);
 1874                                                                                   <
                                                                                        >  1742          BOOL FindCloseChangeNotification(HANDLE);
 1875  extern(Windows) export BOOL SetFileValidData(                                    |  1743          HANDLE FindFirstChangeNotificationA(LPCSTR, BOOL, DWORD);
 1876    HANDLE hFile,                                                                  |  1744          HANDLE FindFirstChangeNotificationW(LPCWSTR, BOOL, DWORD);
 1877    LONGLONG ValidDataLength);                                                     |  1745          HANDLE FindFirstFileA(LPCSTR, LPWIN32_FIND_DATAA);
 1878                                                                                   <
                                                                                        >  1746          HANDLE FindFirstFileW(LPCWSTR, LPWIN32_FIND_DATAW);
 1879  extern(Windows) export BOOL SetFileShortNameA(                                   |  1747          BOOL FindNextChangeNotification(HANDLE);
 1880    HANDLE hFile,                                                                  |  1748          BOOL FindNextFileA(HANDLE, LPWIN32_FIND_DATAA);
 1881    LPCSTR lpShortName);                                                           |  1749          BOOL FindNextFileW(HANDLE, LPWIN32_FIND_DATAW);
 1882  extern(Windows) export BOOL SetFileShortNameW(                                   |  1750          HRSRC FindResourceA(HMODULE, LPCSTR, LPCSTR);
 1883    HANDLE hFile,                                                                  |  1751          HRSRC FindResourceW(HINSTANCE, LPCWSTR, LPCWSTR);
 1884    LPCWSTR lpShortName);                                                          |  1752          HRSRC FindResourceExA(HINSTANCE, LPCSTR, LPCSTR, WORD);
 1885  // #ifdef UNICODE                                                                |  1753          HRSRC FindResourceExW(HINSTANCE, LPCWSTR, LPCWSTR, WORD);
 1886  alias SetFileShortNameW SetFileShortName;                                        |  1754          BOOL FlushFileBuffers(HANDLE);
 1887  // #else                                                                         |  1755          BOOL FlushInstructionCache(HANDLE, PCVOID, DWORD);
 1888  // #...                                                                          |  1756          DWORD FormatMessageA(DWORD, PCVOID, DWORD, DWORD, LPSTR, DWORD, va_list*
 1889  // #endif // !UNICODE                                                            |  1757          DWORD FormatMessageW(DWORD, PCVOID, DWORD, DWORD, LPWSTR, DWORD, va_list
 1890                                                                                   <
                                                                                        >  1758          BOOL FreeEnvironmentStringsA(LPSTR);
 1891  extern(Windows) export BOOL CloseHandle(                                         |  1759          BOOL FreeEnvironmentStringsW(LPWSTR);
 1892    HANDLE hObject);                                                               |  1760          BOOL FreeLibrary(HMODULE);
 1893                                                                                   <
                                                                                        >  1761          void FreeLibraryAndExitThread(HMODULE, DWORD); // never returns
 1894  extern(Windows) export BOOL DuplicateHandle(                                     |  1762          BOOL FreeResource(HGLOBAL);
 1895    HANDLE hSourceProcessHandle,                                                   |  1763          UINT GetAtomNameA(ATOM, LPSTR, int);
 1896    HANDLE hSourceHandle,                                                          |  1764          UINT GetAtomNameW(ATOM, LPWSTR, int);
 1897    HANDLE hTargetProcessHandle,                                                   |  1765          LPSTR GetCommandLineA();
 1898    LPHANDLE lpTargetHandle,                                                       |  1766          LPWSTR GetCommandLineW();
 1899    DWORD dwDesiredAccess,                                                         |  1767          BOOL GetCommConfig(HANDLE, LPCOMMCONFIG, PDWORD);
 1900    BOOL bInheritHandle,                                                           |  1768          BOOL GetCommMask(HANDLE, PDWORD);
 1901    DWORD dwOptions);                                                              |  1769          BOOL GetCommModemStatus(HANDLE, PDWORD);
 1902                                                                                   <
                                                                                        >  1770          BOOL GetCommProperties(HANDLE, LPCOMMPROP);
 1903  extern(Windows) export BOOL GetHandleInformation(                                |  1771          BOOL GetCommState(HANDLE, LPDCB);
 1904    HANDLE hObject,                                                                |  1772          BOOL GetCommTimeouts(HANDLE, LPCOMMTIMEOUTS);
 1905    LPDWORD lpdwFlags);                                                            |  1773          BOOL GetComputerNameA(LPSTR, PDWORD);
 1906                                                                                   <
                                                                                        >  1774          BOOL GetComputerNameW(LPWSTR, PDWORD);
 1907  extern(Windows) export BOOL SetHandleInformation(                                |  1775          DWORD GetCurrentDirectoryA(DWORD, LPSTR);
 1908    HANDLE hObject,                                                                |  1776          DWORD GetCurrentDirectoryW(DWORD, LPWSTR);
 1909    DWORD dwMask,                                                                  |  1777          HANDLE GetCurrentProcess();
 1910    DWORD dwFlags);                                                                |  1778          DWORD GetCurrentProcessId();
 1911                                                                                   <
                                                                                        >  1779          HANDLE GetCurrentThread();
 1912  enum : uint { HANDLE_FLAG_INHERIT = 0x00000001 }                                 |  1780  /* In MinGW:
 1913  enum : uint { HANDLE_FLAG_PROTECT_FROM_CLOSE = 0x00000002 }                      |  1781  #ifdef _WIN32_WCE
 1914                                                                                   <
                                                                                        >  1782  extern DWORD GetCurrentThreadId(void);
 1915  enum : uint { HINSTANCE_ERROR = 32 }                                             |  1783  #else
 1916                                                                                   <
                                                                                        >  1784  WINBASEAPI DWORD WINAPI GetCurrentThreadId(void);
 1917  extern(Windows) export DWORD LoadModule(                                         |  1785  #endif
 1918    LPCSTR lpModuleName,                                                           <
                                                                                        >  1786  */
 1919    LPVOID lpParameterBlock);                                                      |  1787          DWORD GetCurrentThreadId();
 1920                                                                                   |  1788  
 1921  extern(Windows) export UINT WinExec(                                             |  1789          alias GetTickCount GetCurrentTime;
 1922    LPCSTR lpCmdLine,                                                              <
 1923    UINT uCmdShow);                                                                <
 1924                                                                                   |  1790  
                                                                                        >  1791          BOOL GetDefaultCommConfigA(LPCSTR, LPCOMMCONFIG, PDWORD);
                                                                                        >  1792          BOOL GetDefaultCommConfigW(LPCWSTR, LPCOMMCONFIG, PDWORD);
 1925  extern(Windows) export BOOL ClearCommBreak(                                      |  1793          BOOL GetDiskFreeSpaceA(LPCSTR, PDWORD, PDWORD, PDWORD, PDWORD);
 1926    HANDLE hFile);                                                                 |  1794          BOOL GetDiskFreeSpaceW(LPCWSTR, PDWORD, PDWORD, PDWORD, PDWORD);
 1927                                                                                   <
                                                                                        >  1795          BOOL GetDiskFreeSpaceExA(LPCSTR, PULARGE_INTEGER, PULARGE_INTEGER, PULAR
 1928  extern(Windows) export BOOL ClearCommError(                                      |  1796          BOOL GetDiskFreeSpaceExW(LPCWSTR, PULARGE_INTEGER, PULARGE_INTEGER, PULA
 1929    HANDLE hFile,                                                                  |  1797          UINT GetDriveTypeA(LPCSTR);
 1930    LPDWORD lpErrors,                                                              |  1798          UINT GetDriveTypeW(LPCWSTR);
 1931    LPCOMSTAT lpStat);                                                             |  1799          LPSTR GetEnvironmentStrings(); // ???
 1932                                                                                   <
                                                                                        >  1800          LPSTR GetEnvironmentStringsA();
 1933  extern(Windows) export BOOL SetupComm(                                           |  1801          LPWSTR GetEnvironmentStringsW();
 1934    HANDLE hFile,                                                                  |  1802          DWORD GetEnvironmentVariableA(LPCSTR, LPSTR, DWORD);
 1935    DWORD dwInQueue,                                                               |  1803          DWORD GetEnvironmentVariableW(LPCWSTR, LPWSTR, DWORD);
 1936    DWORD dwOutQueue);                                                             |  1804          BOOL GetExitCodeProcess(HANDLE, PDWORD);
 1937                                                                                   <
                                                                                        >  1805          BOOL GetExitCodeThread(HANDLE, PDWORD);
 1938  extern(Windows) export BOOL EscapeCommFunction(                                  |  1806          DWORD GetFileAttributesA(LPCSTR);
 1939    HANDLE hFile,                                                                  |  1807          DWORD GetFileAttributesW(LPCWSTR);
 1940    DWORD dwFunc);                                                                 |  1808          BOOL GetFileInformationByHandle(HANDLE, LPBY_HANDLE_FILE_INFORMATION);
 1941                                                                                   <
                                                                                        >  1809          DWORD GetFileSize(HANDLE, PDWORD);
 1942  extern(Windows) export BOOL GetCommConfig(                                       |  1810          BOOL GetFileTime(HANDLE, LPFILETIME, LPFILETIME, LPFILETIME);
 1943    HANDLE hCommDev,                                                               |  1811          DWORD GetFileType(HANDLE);
 1944    LPCOMMCONFIG lpCC,                                                             |  1812          DWORD GetFullPathNameA(LPCSTR, DWORD, LPSTR, LPSTR*);
 1945    LPDWORD lpdwSize);                                                             |  1813          DWORD GetFullPathNameW(LPCWSTR, DWORD, LPWSTR, LPWSTR*);
 1946                                                                                   <
                                                                                        >  1814          DWORD GetLastError();
 1947  extern(Windows) export BOOL GetCommMask(                                         |  1815          void GetLocalTime(LPSYSTEMTIME);
 1948    HANDLE hFile,                                                                  |  1816          DWORD GetLogicalDrives();
 1949    LPDWORD lpEvtMask);                                                            |  1817          DWORD GetLogicalDriveStringsA(DWORD, LPSTR);
 1950                                                                                   <
                                                                                        >  1818          DWORD GetLogicalDriveStringsW(DWORD, LPWSTR);
 1951  extern(Windows) export BOOL GetCommProperties(                                   |  1819          BOOL GetMailslotInfo(HANDLE, PDWORD, PDWORD, PDWORD, PDWORD);
 1952    HANDLE hFile,                                                                  |  1820          DWORD GetModuleFileNameA(HINSTANCE, LPSTR, DWORD);
 1953    LPCOMMPROP lpCommProp);                                                        |  1821          DWORD GetModuleFileNameW(HINSTANCE, LPWSTR, DWORD);
 1954                                                                                   <
                                                                                        >  1822          HMODULE GetModuleHandleA(LPCSTR);
 1955  extern(Windows) export BOOL GetCommModemStatus(                                  |  1823          HMODULE GetModuleHandleW(LPCWSTR);
                                                                                        >  1824          BOOL GetNamedPipeHandleStateA(HANDLE, PDWORD, PDWORD, PDWORD, PDWORD, LP
                                                                                        >  1825          BOOL GetNamedPipeHandleStateW(HANDLE, PDWORD, PDWORD, PDWORD, PDWORD, LP
                                                                                        >  1826          BOOL GetNamedPipeInfo(HANDLE, PDWORD, PDWORD, PDWORD, PDWORD);
                                                                                        >  1827          BOOL GetOverlappedResult(HANDLE, LPOVERLAPPED, PDWORD, BOOL);
                                                                                        >  1828          DWORD GetPriorityClass(HANDLE);
                                                                                        >  1829          UINT GetPrivateProfileIntA(LPCSTR, LPCSTR, INT, LPCSTR);
                                                                                        >  1830          UINT GetPrivateProfileIntW(LPCWSTR, LPCWSTR, INT, LPCWSTR);
                                                                                        >  1831          DWORD GetPrivateProfileSectionA(LPCSTR, LPSTR, DWORD, LPCSTR);
                                                                                        >  1832          DWORD GetPrivateProfileSectionW(LPCWSTR, LPWSTR, DWORD, LPCWSTR);
                                                                                        >  1833          DWORD GetPrivateProfileSectionNamesA(LPSTR, DWORD, LPCSTR);
                                                                                        >  1834          DWORD GetPrivateProfileSectionNamesW(LPWSTR, DWORD, LPCWSTR);
                                                                                        >  1835          DWORD GetPrivateProfileStringA(LPCSTR, LPCSTR, LPCSTR, LPSTR, DWORD, LPC
                                                                                        >  1836          DWORD GetPrivateProfileStringW(LPCWSTR, LPCWSTR, LPCWSTR, LPWSTR, DWORD,
                                                                                        >  1837          BOOL GetPrivateProfileStructA(LPCSTR, LPCSTR, LPVOID, UINT, LPCSTR);
                                                                                        >  1838          BOOL GetPrivateProfileStructW(LPCWSTR, LPCWSTR, LPVOID, UINT, LPCWSTR);
                                                                                        >  1839          FARPROC GetProcAddress(HINSTANCE, LPCSTR);
                                                                                        >  1840          BOOL GetProcessAffinityMask(HANDLE, PDWORD, PDWORD);
                                                                                        >  1841          DWORD GetProcessVersion(DWORD);
                                                                                        >  1842          UINT GetProfileIntA(LPCSTR, LPCSTR, INT);
                                                                                        >  1843          UINT GetProfileIntW(LPCWSTR, LPCWSTR, INT);
                                                                                        >  1844          DWORD GetProfileSectionA(LPCSTR, LPSTR, DWORD);
                                                                                        >  1845          DWORD GetProfileSectionW(LPCWSTR, LPWSTR, DWORD);
                                                                                        >  1846          DWORD GetProfileStringA(LPCSTR, LPCSTR, LPCSTR, LPSTR, DWORD);
                                                                                        >  1847          DWORD GetProfileStringW(LPCWSTR, LPCWSTR, LPCWSTR, LPWSTR, DWORD);
                                                                                        >  1848          DWORD GetShortPathNameA(LPCSTR, LPSTR, DWORD);
                                                                                        >  1849          DWORD GetShortPathNameW(LPCWSTR, LPWSTR, DWORD);
                                                                                        >  1850          VOID GetStartupInfoA(LPSTARTUPINFOA);
                                                                                        >  1851          VOID GetStartupInfoW(LPSTARTUPINFOW);
 1956    HANDLE hFile,                                                                  |  1852          HANDLE GetStdHandle(DWORD);
 1957    LPDWORD lpModemStat);                                                          <
                                                                                        >  1853          UINT GetSystemDirectoryA(LPSTR, UINT);
                                                                                        >  1854          UINT GetSystemDirectoryW(LPWSTR, UINT);
                                                                                        >  1855          VOID GetSystemInfo(LPSYSTEM_INFO);
                                                                                        >  1856          VOID GetSystemTime(LPSYSTEMTIME);
                                                                                        >  1857          BOOL GetSystemTimeAdjustment(PDWORD, PDWORD, PBOOL);
                                                                                        >  1858          void GetSystemTimeAsFileTime(LPFILETIME);
                                                                                        >  1859          UINT GetTempFileNameA(LPCSTR, LPCSTR, UINT, LPSTR);
                                                                                        >  1860          UINT GetTempFileNameW(LPCWSTR, LPCWSTR, UINT, LPWSTR);
                                                                                        >  1861          DWORD GetTempPathA(DWORD, LPSTR);
                                                                                        >  1862          DWORD GetTempPathW(DWORD, LPWSTR);
                                                                                        >  1863          BOOL GetThreadContext(HANDLE, LPCONTEXT);
                                                                                        >  1864          int GetThreadPriority(HANDLE);
                                                                                        >  1865          BOOL GetThreadSelectorEntry(HANDLE, DWORD, LPLDT_ENTRY);
                                                                                        >  1866          DWORD GetTickCount();
                                                                                        >  1867          DWORD GetTimeZoneInformation(LPTIME_ZONE_INFORMATION);
                                                                                        >  1868          BOOL GetUserNameA (LPSTR, PDWORD);
                                                                                        >  1869          BOOL GetUserNameW(LPWSTR, PDWORD);
                                                                                        >  1870          DWORD GetVersion();
                                                                                        >  1871          BOOL GetVersionExA(LPOSVERSIONINFOA);
                                                                                        >  1872          BOOL GetVersionExW(LPOSVERSIONINFOW);
                                                                                        >  1873          BOOL GetVolumeInformationA(LPCSTR, LPSTR, DWORD, PDWORD, PDWORD, PDWORD,
                                                                                        >  1874          BOOL GetVolumeInformationW(LPCWSTR, LPWSTR, DWORD, PDWORD, PDWORD, PDWOR
                                                                                        >  1875          UINT GetWindowsDirectoryA(LPSTR, UINT);
                                                                                        >  1876          UINT GetWindowsDirectoryW(LPWSTR, UINT);
                                                                                        >  1877          DWORD GetWindowThreadProcessId(HWND, PDWORD);
                                                                                        >  1878          ATOM GlobalAddAtomA(LPCSTR);
                                                                                        >  1879          ATOM GlobalAddAtomW(LPCWSTR);
                                                                                        >  1880          ATOM GlobalDeleteAtom(ATOM);
                                                                                        >  1881          ATOM GlobalFindAtomA(LPCSTR);
                                                                                        >  1882          ATOM GlobalFindAtomW(LPCWSTR);
                                                                                        >  1883          UINT GlobalGetAtomNameA(ATOM, LPSTR, int);
                                                                                        >  1884          UINT GlobalGetAtomNameW(ATOM, LPWSTR, int);
 1958                                                                                   |  1885  
 1959  extern(Windows) export BOOL GetCommState(                                        <
 1960    HANDLE hFile,                                                                  <
 1961    LPDCB lpDCB);                                                                  <
                                                                                        >  1886          bool HasOverlappedIoCompleted(LPOVERLAPPED lpOverlapped) {
                                                                                        >  1887                  return lpOverlapped.Internal != STATUS_PENDING;
 1962                                                                                   |  1888          }
 1963  extern(Windows) export BOOL GetCommTimeouts(                                     <
 1964    HANDLE hFile,                                                                  <
 1965    LPCOMMTIMEOUTS lpCommTimeouts);                                                <
 1966                                                                                   |  1889  
 1967  extern(Windows) export BOOL PurgeComm(                                           <
 1968    HANDLE hFile,                                                                  <
 1969    DWORD dwFlags);                                                                <
                                                                                        >  1890          BOOL InitAtomTable(DWORD);
                                                                                        >  1891          VOID InitializeCriticalSection(LPCRITICAL_SECTION);
                                                                                        >  1892          /*      ??? The next two are allegedly obsolete and "supported only for
                                                                                        >  1893           *      backward compatibility with the 16-bit Windows API".  Yet the
                                                                                        >  1894           *      replacements IsBadReadPtr and IsBadWritePtr are apparently Win20
                                                                                        >  1895           *      only.  Where's the mistake?
                                                                                        >  1896           */
                                                                                        >  1897          BOOL IsBadHugeReadPtr(PCVOID, UINT);
                                                                                        >  1898          BOOL IsBadHugeWritePtr(PVOID, UINT);
                                                                                        >  1899          BOOL IsBadReadPtr(PCVOID, UINT);
                                                                                        >  1900          BOOL IsBadStringPtrA(LPCSTR, UINT);
                                                                                        >  1901          BOOL IsBadStringPtrW(LPCWSTR, UINT);
                                                                                        >  1902          BOOL IsBadWritePtr(PVOID, UINT);
                                                                                        >  1903          void LeaveCriticalSection(LPCRITICAL_SECTION);
                                                                                        >  1904          HINSTANCE LoadLibraryA(LPCSTR);
                                                                                        >  1905          HINSTANCE LoadLibraryW(LPCWSTR);
                                                                                        >  1906          HINSTANCE LoadLibraryExA(LPCSTR, HANDLE, DWORD);
                                                                                        >  1907          HINSTANCE LoadLibraryExW(LPCWSTR, HANDLE, DWORD);
                                                                                        >  1908          DWORD LoadModule(LPCSTR, PVOID);
                                                                                        >  1909          HGLOBAL LoadResource(HINSTANCE, HRSRC);
                                                                                        >  1910          BOOL LocalFileTimeToFileTime(CPtr!(FILETIME) , LPFILETIME);
                                                                                        >  1911          BOOL LockFile(HANDLE, DWORD, DWORD, DWORD, DWORD);
                                                                                        >  1912          PVOID LockResource(HGLOBAL);
 1970                                                                                   |  1913  
 1971  extern(Windows) export BOOL SetCommBreak(                                        <
 1972    HANDLE hFile);                                                                 <
                                                                                        >  1914          LPSTR lstrcatA(LPSTR, LPCSTR);
                                                                                        >  1915          LPWSTR lstrcatW(LPWSTR, LPCWSTR);
                                                                                        >  1916          int lstrcmpA(LPCSTR, LPCSTR);
                                                                                        >  1917          int lstrcmpiA(LPCSTR, LPCSTR);
                                                                                        >  1918          int lstrcmpiW(LPCWSTR, LPCWSTR);
                                                                                        >  1919          int lstrcmpW(LPCWSTR, LPCWSTR);
                                                                                        >  1920          LPSTR lstrcpyA(LPSTR, LPCSTR);
                                                                                        >  1921          LPSTR lstrcpynA(LPSTR, LPCSTR, int);
                                                                                        >  1922          LPWSTR lstrcpynW(LPWSTR, LPCWSTR, int);
                                                                                        >  1923          LPWSTR lstrcpyW(LPWSTR, LPCWSTR);
                                                                                        >  1924          int lstrlenA(LPCSTR);
                                                                                        >  1925          int lstrlenW(LPCWSTR);
 1973                                                                                   |  1926  
                                                                                        >  1927          BOOL MoveFileA(LPCSTR, LPCSTR);
                                                                                        >  1928          BOOL MoveFileW(LPCWSTR, LPCWSTR);
                                                                                        >  1929          int MulDiv(int, int, int);
                                                                                        >  1930          HANDLE OpenEventA(DWORD, BOOL, LPCSTR);
                                                                                        >  1931          HANDLE OpenEventW(DWORD, BOOL, LPCWSTR);
                                                                                        >  1932          deprecated HFILE OpenFile(LPCSTR, LPOFSTRUCT, UINT);
                                                                                        >  1933          HANDLE OpenMutexA(DWORD, BOOL, LPCSTR);
                                                                                        >  1934          HANDLE OpenMutexW(DWORD, BOOL, LPCWSTR);
                                                                                        >  1935          HANDLE OpenProcess(DWORD, BOOL, DWORD);
                                                                                        >  1936          HANDLE OpenSemaphoreA(DWORD, BOOL, LPCSTR);
                                                                                        >  1937          HANDLE OpenSemaphoreW(DWORD, BOOL, LPCWSTR);
                                                                                        >  1938          void OutputDebugStringA(LPCSTR);
                                                                                        >  1939          void OutputDebugStringW(LPCWSTR);
                                                                                        >  1940          BOOL PeekNamedPipe(HANDLE, PVOID, DWORD, PDWORD, PDWORD, PDWORD);
                                                                                        >  1941          BOOL PulseEvent(HANDLE);
                                                                                        >  1942          BOOL PurgeComm(HANDLE, DWORD);
                                                                                        >  1943          BOOL QueryPerformanceCounter(PLARGE_INTEGER);
                                                                                        >  1944          BOOL QueryPerformanceFrequency(PLARGE_INTEGER);
                                                                                        >  1945          DWORD QueueUserAPC(PAPCFUNC, HANDLE, ULONG_PTR);
                                                                                        >  1946          void RaiseException(DWORD, DWORD, DWORD, CPtr!(DWORD));
                                                                                        >  1947          BOOL ReadFile(HANDLE, PVOID, DWORD, PDWORD, LPOVERLAPPED);
                                                                                        >  1948          BOOL ReadFileEx(HANDLE, PVOID, DWORD, LPOVERLAPPED, LPOVERLAPPED_COMPLET
                                                                                        >  1949          BOOL ReadProcessMemory(HANDLE, PCVOID, PVOID, DWORD, PDWORD);
                                                                                        >  1950          BOOL ReleaseMutex(HANDLE);
                                                                                        >  1951          BOOL ReleaseSemaphore(HANDLE, LONG, LPLONG);
                                                                                        >  1952          BOOL RemoveDirectoryA(LPCSTR);
                                                                                        >  1953          BOOL RemoveDirectoryW(LPCWSTR);
                                                                                        >  1954  /* In MinGW:
                                                                                        >  1955  #ifdef _WIN32_WCE
                                                                                        >  1956  extern BOOL ResetEvent(HANDLE);
                                                                                        >  1957  #else
                                                                                        >  1958  WINBASEAPI BOOL WINAPI ResetEvent(HANDLE);
                                                                                        >  1959  #endif
                                                                                        >  1960  */
                                                                                        >  1961          BOOL ResetEvent(HANDLE);
                                                                                        >  1962          DWORD ResumeThread(HANDLE);
                                                                                        >  1963          DWORD SearchPathA(LPCSTR, LPCSTR, LPCSTR, DWORD, LPSTR, LPSTR*);
                                                                                        >  1964          DWORD SearchPathW(LPCWSTR, LPCWSTR, LPCWSTR, DWORD, LPWSTR, LPWSTR*);
 1974  extern(Windows) export BOOL SetCommConfig(                                       |  1965          BOOL SetCommBreak(HANDLE);
 1975    HANDLE hCommDev,                                                               <
 1976    LPCOMMCONFIG lpCC,                                                             |  1966          BOOL SetCommConfig(HANDLE, LPCOMMCONFIG, DWORD);
 1977    DWORD dwSize);                                                                 <
 1978                                                                                   <
 1979  extern(Windows) export BOOL SetCommMask(                                         |  1967          BOOL SetCommMask(HANDLE, DWORD);
 1980    HANDLE hFile,                                                                  <
 1981    DWORD dwEvtMask);                                                              <
 1982                                                                                   <
 1983  extern(Windows) export BOOL SetCommState(                                        |  1968          BOOL SetCommState(HANDLE, LPDCB);
 1984    HANDLE hFile,                                                                  <
 1985    LPDCB lpDCB);                                                                  <
 1986                                                                                   <
 1987  extern(Windows) export BOOL SetCommTimeouts(                                     |  1969          BOOL SetCommTimeouts(HANDLE, LPCOMMTIMEOUTS);
                                                                                        >  1970          BOOL SetComputerNameA(LPCSTR);
                                                                                        >  1971          BOOL SetComputerNameW(LPCWSTR);
                                                                                        >  1972          BOOL SetCurrentDirectoryA(LPCSTR);
                                                                                        >  1973          BOOL SetCurrentDirectoryW(LPCWSTR);
                                                                                        >  1974          BOOL SetDefaultCommConfigA(LPCSTR, LPCOMMCONFIG, DWORD);
                                                                                        >  1975          BOOL SetDefaultCommConfigW(LPCWSTR, LPCOMMCONFIG, DWORD);
                                                                                        >  1976          BOOL SetEndOfFile(HANDLE);
                                                                                        >  1977          BOOL SetEnvironmentVariableA(LPCSTR, LPCSTR);
                                                                                        >  1978          BOOL SetEnvironmentVariableW(LPCWSTR, LPCWSTR);
                                                                                        >  1979          UINT SetErrorMode(UINT);
                                                                                        >  1980  /* In MinGW:
                                                                                        >  1981  #ifdef _WIN32_WCE
                                                                                        >  1982  extern BOOL SetEvent(HANDLE);
                                                                                        >  1983  #else
                                                                                        >  1984  WINBASEAPI BOOL WINAPI SetEvent(HANDLE);
                                                                                        >  1985  #endif
                                                                                        >  1986  */
 1988    HANDLE hFile,                                                                  |  1987          BOOL SetEvent(HANDLE);
 1989    LPCOMMTIMEOUTS lpCommTimeouts);                                                <
                                                                                        >  1988          VOID SetFileApisToANSI();
                                                                                        >  1989          VOID SetFileApisToOEM();
                                                                                        >  1990          BOOL SetFileAttributesA(LPCSTR, DWORD);
                                                                                        >  1991          BOOL SetFileAttributesW(LPCWSTR, DWORD);
                                                                                        >  1992          DWORD SetFilePointer(HANDLE, LONG, PLONG, DWORD);
                                                                                        >  1993          BOOL SetFileTime(HANDLE, CPtr!(FILETIME), CPtr!(FILETIME), CPtr!(FILETIM
                                                                                        >  1994          deprecated UINT SetHandleCount(UINT);
                                                                                        >  1995          void SetLastError(DWORD);
                                                                                        >  1996          void SetLastErrorEx(DWORD, DWORD);
                                                                                        >  1997          BOOL SetLocalTime(CPtr!(SYSTEMTIME));
                                                                                        >  1998          BOOL SetMailslotInfo(HANDLE, DWORD);
                                                                                        >  1999          BOOL SetNamedPipeHandleState(HANDLE, PDWORD, PDWORD, PDWORD);
                                                                                        >  2000          BOOL SetPriorityClass(HANDLE, DWORD);
                                                                                        >  2001          BOOL SetStdHandle(DWORD, HANDLE);
                                                                                        >  2002          BOOL SetSystemTime(CPtr!(SYSTEMTIME));
                                                                                        >  2003          DWORD SetThreadAffinityMask(HANDLE, DWORD);
                                                                                        >  2004          BOOL SetThreadContext(HANDLE, CPtr!(CONTEXT));
                                                                                        >  2005          BOOL SetThreadPriority(HANDLE, int);
                                                                                        >  2006          BOOL SetTimeZoneInformation(CPtr!(TIME_ZONE_INFORMATION));
                                                                                        >  2007          LPTOP_LEVEL_EXCEPTION_FILTER SetUnhandledExceptionFilter(LPTOP_LEVEL_EXC
                                                                                        >  2008          BOOL SetupComm(HANDLE, DWORD, DWORD);
                                                                                        >  2009          BOOL SetVolumeLabelA(LPCSTR, LPCSTR);
                                                                                        >  2010          BOOL SetVolumeLabelW(LPCWSTR, LPCWSTR);
 1990                                                                                   |  2011  
                                                                                        >  2012          DWORD SizeofResource(HINSTANCE, HRSRC);
                                                                                        >  2013          void Sleep(DWORD);
                                                                                        >  2014          DWORD SleepEx(DWORD, BOOL);
                                                                                        >  2015          DWORD SuspendThread(HANDLE);
                                                                                        >  2016          BOOL SystemTimeToFileTime(CPtr!(SYSTEMTIME), LPFILETIME);
                                                                                        >  2017          BOOL TerminateProcess(HANDLE, UINT);
                                                                                        >  2018          BOOL TerminateThread(HANDLE, DWORD);
                                                                                        >  2019          DWORD TlsAlloc();
                                                                                        >  2020          BOOL TlsFree(DWORD);
                                                                                        >  2021          PVOID TlsGetValue(DWORD);
                                                                                        >  2022          BOOL TlsSetValue(DWORD, PVOID);
                                                                                        >  2023          BOOL TransactNamedPipe(HANDLE, PVOID, DWORD, PVOID, DWORD, PDWORD, LPOVE
 1991  extern(Windows) export BOOL TransmitCommChar(                                    |  2024          BOOL TransmitCommChar(HANDLE, char);
 1992    HANDLE hFile,                                                                  <
 1993    char cChar);                                                                   <
                                                                                        >  2025          LONG UnhandledExceptionFilter(LPEXCEPTION_POINTERS);
                                                                                        >  2026          BOOL UnlockFile(HANDLE, DWORD, DWORD, DWORD, DWORD);
                                                                                        >  2027          BOOL WaitCommEvent(HANDLE, PDWORD, LPOVERLAPPED);
                                                                                        >  2028          BOOL WaitForDebugEvent(LPDEBUG_EVENT, DWORD);
                                                                                        >  2029          DWORD WaitForMultipleObjects(DWORD, CPtr!(HANDLE), BOOL, DWORD);
                                                                                        >  2030          DWORD WaitForMultipleObjectsEx(DWORD, CPtr!(HANDLE), BOOL, DWORD, BOOL);
                                                                                        >  2031          DWORD WaitForSingleObject(HANDLE, DWORD);
                                                                                        >  2032          DWORD WaitForSingleObjectEx(HANDLE, DWORD, BOOL);
                                                                                        >  2033          BOOL WaitNamedPipeA(LPCSTR, DWORD);
                                                                                        >  2034          BOOL WaitNamedPipeW(LPCWSTR, DWORD);
                                                                                        >  2035          // undocumented on MSDN
                                                                                        >  2036          BOOL WinLoadTrustProvider(GUID*);
                                                                                        >  2037          BOOL WriteFile(HANDLE, PCVOID, DWORD, PDWORD, LPOVERLAPPED);
                                                                                        >  2038          BOOL WriteFileEx(HANDLE, PCVOID, DWORD, LPOVERLAPPED, LPOVERLAPPED_COMPL
                                                                                        >  2039          BOOL WritePrivateProfileSectionA(LPCSTR, LPCSTR, LPCSTR);
                                                                                        >  2040          BOOL WritePrivateProfileSectionW(LPCWSTR, LPCWSTR, LPCWSTR);
                                                                                        >  2041          BOOL WritePrivateProfileStringA(LPCSTR, LPCSTR, LPCSTR, LPCSTR);
                                                                                        >  2042          BOOL WritePrivateProfileStringW(LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR);
                                                                                        >  2043          BOOL WritePrivateProfileStructA(LPCSTR, LPCSTR, LPVOID, UINT, LPCSTR);
                                                                                        >  2044          BOOL WritePrivateProfileStructW(LPCWSTR, LPCWSTR, LPVOID, UINT, LPCWSTR)
                                                                                        >  2045          BOOL WriteProcessMemory(HANDLE, LPVOID, LPCVOID, SIZE_T, SIZE_T*);
                                                                                        >  2046          BOOL WriteProfileSectionA(LPCSTR, LPCSTR);
                                                                                        >  2047          BOOL WriteProfileSectionW(LPCWSTR, LPCWSTR);
                                                                                        >  2048          BOOL WriteProfileStringA(LPCSTR, LPCSTR, LPCSTR);
                                                                                        >  2049          BOOL WriteProfileStringW(LPCWSTR, LPCWSTR, LPCWSTR);
 1994                                                                                   |  2050  
 1995  extern(Windows) export BOOL WaitCommEvent(                                       <
                                                                                        >  2051          /*      Memory allocation functions.
                                                                                        >  2052           *      MSDN documents these erroneously as Win2000+; thus it is uncerta
                                                                                        >  2053           *      version compatibility they really have.
                                                                                        >  2054           */
                                                                                        >  2055          HGLOBAL GlobalAlloc(UINT, DWORD);
                                                                                        >  2056          HGLOBAL GlobalDiscard(HGLOBAL);
                                                                                        >  2057          HGLOBAL GlobalFree(HGLOBAL);
                                                                                        >  2058          HGLOBAL GlobalHandle(PCVOID);
                                                                                        >  2059          LPVOID GlobalLock(HGLOBAL);
                                                                                        >  2060          VOID GlobalMemoryStatus(LPMEMORYSTATUS);
                                                                                        >  2061          HGLOBAL GlobalReAlloc(HGLOBAL, DWORD, UINT);
                                                                                        >  2062          DWORD GlobalSize(HGLOBAL);
                                                                                        >  2063          BOOL GlobalUnlock(HGLOBAL);
                                                                                        >  2064          PVOID HeapAlloc(HANDLE, DWORD, DWORD);
                                                                                        >  2065          SIZE_T HeapCompact(HANDLE, DWORD);
                                                                                        >  2066          HANDLE HeapCreate(DWORD, DWORD, DWORD);
                                                                                        >  2067          BOOL HeapDestroy(HANDLE);
                                                                                        >  2068          BOOL HeapFree(HANDLE, DWORD, PVOID);
 1996    HANDLE hFile,                                                                  |  2069          BOOL HeapLock(HANDLE);
 1997    LPDWORD lpEvtMask,                                                             <
 1998    LPOVERLAPPED lpOverlapped);                                                    <
                                                                                        >  2070          PVOID HeapReAlloc(HANDLE, DWORD, PVOID, DWORD);
                                                                                        >  2071          DWORD HeapSize(HANDLE, DWORD, PCVOID);
                                                                                        >  2072          BOOL HeapUnlock(HANDLE);
                                                                                        >  2073          BOOL HeapValidate(HANDLE, DWORD, PCVOID);
                                                                                        >  2074          BOOL HeapWalk(HANDLE, LPPROCESS_HEAP_ENTRY);
                                                                                        >  2075          HLOCAL LocalAlloc(UINT, SIZE_T);
                                                                                        >  2076          HLOCAL LocalDiscard(HLOCAL);
                                                                                        >  2077          HLOCAL LocalFree(HLOCAL);
                                                                                        >  2078          HLOCAL LocalHandle(LPCVOID);
                                                                                        >  2079          PVOID LocalLock(HLOCAL);
                                                                                        >  2080          HLOCAL LocalReAlloc(HLOCAL, SIZE_T, UINT);
                                                                                        >  2081          UINT LocalSize(HLOCAL);
                                                                                        >  2082          BOOL LocalUnlock(HLOCAL);
                                                                                        >  2083          PVOID VirtualAlloc(PVOID, DWORD, DWORD, DWORD);
                                                                                        >  2084          PVOID VirtualAllocEx(HANDLE, PVOID, DWORD, DWORD, DWORD);
                                                                                        >  2085          BOOL VirtualFree(PVOID, DWORD, DWORD);
                                                                                        >  2086          BOOL VirtualFreeEx(HANDLE, PVOID, DWORD, DWORD);
                                                                                        >  2087          BOOL VirtualLock(PVOID, DWORD);
                                                                                        >  2088          BOOL VirtualProtect(PVOID, DWORD, DWORD, PDWORD);
                                                                                        >  2089          BOOL VirtualProtectEx(HANDLE, PVOID, DWORD, DWORD, PDWORD);
                                                                                        >  2090          DWORD VirtualQuery(LPCVOID, PMEMORY_BASIC_INFORMATION, DWORD);
                                                                                        >  2091          DWORD VirtualQueryEx(HANDLE, LPCVOID, PMEMORY_BASIC_INFORMATION, DWORD);
                                                                                        >  2092          BOOL VirtualUnlock(PVOID, DWORD);
 1999                                                                                   |  2093  
 2000  extern(Windows) export DWORD SetTapePosition(                                    <
 2001    HANDLE hDevice,                                                                <
 2002    DWORD dwPositionMethod,                                                        <
 2003    DWORD dwPartition,                                                             <
 2004    DWORD dwOffsetLow,                                                             <
 2005    DWORD dwOffsetHigh,                                                            <
 2006    BOOL bImmediate);                                                              <
                                                                                        >  2094          static if (_WIN32_WINDOWS >= 0x600) {
                                                                                        >  2095                  BOOL CancelIoEx(HANDLE, LPOVERLAPPED);
 2007                                                                                   |  2096          }
 2008  extern(Windows) export DWORD GetTapePosition(                                    <
 2009    HANDLE hDevice,                                                                <
 2010    DWORD dwPositionType,                                                          <
 2011    LPDWORD lpdwPartition,                                                         <
 2012    LPDWORD lpdwOffsetLow,                                                         <
 2013    LPDWORD lpdwOffsetHigh);                                                       <
 2014                                                                                   |  2097  
 2015  extern(Windows) export DWORD PrepareTape(                                        <
 2016    HANDLE hDevice,                                                                <
 2017    DWORD dwOperation,                                                             <
 2018    BOOL bImmediate);                                                              <
                                                                                        >  2098          static if (_WIN32_WINDOWS >= 0x410) {
                                                                                        >  2099                  BOOL CancelIo(HANDLE);
                                                                                        >  2100                  BOOL CancelWaitableTimer(HANDLE);
                                                                                        >  2101                  PVOID ConvertThreadToFiber(PVOID);
                                                                                        >  2102                  LPVOID CreateFiber(SIZE_T, LPFIBER_START_ROUTINE, LPVOID);
                                                                                        >  2103                  HANDLE CreateWaitableTimerA(LPSECURITY_ATTRIBUTES, BOOL, LPCSTR)
                                                                                        >  2104                  HANDLE CreateWaitableTimerW(LPSECURITY_ATTRIBUTES, BOOL, LPCWSTR
                                                                                        >  2105                  void DeleteFiber(PVOID);
                                                                                        >  2106                  BOOL GetFileAttributesExA(LPCSTR, GET_FILEEX_INFO_LEVELS, PVOID)
                                                                                        >  2107                  BOOL GetFileAttributesExW(LPCWSTR, GET_FILEEX_INFO_LEVELS, PVOID
                                                                                        >  2108                  DWORD GetLongPathNameA(LPCSTR, LPSTR, DWORD);
                                                                                        >  2109                  DWORD GetLongPathNameW(LPCWSTR, LPWSTR, DWORD);
                                                                                        >  2110                  BOOL InitializeCriticalSectionAndSpinCount(LPCRITICAL_SECTION, D
                                                                                        >  2111                  BOOL IsDebuggerPresent();
                                                                                        >  2112                  HANDLE OpenWaitableTimerA(DWORD, BOOL, LPCSTR);
                                                                                        >  2113                  HANDLE OpenWaitableTimerW(DWORD, BOOL, LPCWSTR);
                                                                                        >  2114                  DWORD QueryDosDeviceA(LPCSTR, LPSTR, DWORD);
                                                                                        >  2115                  DWORD QueryDosDeviceW(LPCWSTR, LPWSTR, DWORD);
                                                                                        >  2116                  BOOL SetWaitableTimer(HANDLE, CPtr!(LARGE_INTEGER), LONG, PTIMER
                                                                                        >  2117                  void SwitchToFiber(PVOID);
 2019                                                                                   |  2118          }
 2020  extern(Windows) export DWORD EraseTape(                                          <
 2021    HANDLE hDevice,                                                                <
 2022    DWORD dwEraseType,                                                             <
 2023    BOOL bImmediate);                                                              <
 2024                                                                                   |  2119  
 2025  extern(Windows) export DWORD CreateTapePartition(                                <
 2026    HANDLE hDevice,                                                                <
 2027    DWORD dwPartitionMethod,                                                       <
 2028    DWORD dwCount,                                                                 <
 2029    DWORD dwSize);                                                                 <
                                                                                        >  2120          static if (WINVER >= 0x500) {
                                                                                        >  2121                  HANDLE OpenThread(DWORD, BOOL, DWORD);
 2030                                                                                   |  2122          }
 2031  extern(Windows) export DWORD WriteTapemark(                                      <
 2032    HANDLE hDevice,                                                                <
 2033    DWORD dwTapemarkType,                                                          <
 2034    DWORD dwTapemarkCount,                                                         <
 2035    BOOL bImmediate);                                                              <
 2036                                                                                   |  2123  
                                                                                        >  2124          static if (_WIN32_WINNT_ONLY) {
                                                                                        >  2125                  BOOL AccessCheck(PSECURITY_DESCRIPTOR, HANDLE, DWORD, PGENERIC_M
                                                                                        >  2126                  BOOL AccessCheckAndAuditAlarmA(LPCSTR, LPVOID, LPSTR, LPSTR, PSE
                                                                                        >  2127                  BOOL AccessCheckAndAuditAlarmW(LPCWSTR, LPVOID, LPWSTR, LPWSTR, 
                                                                                        >  2128                  BOOL AddAccessAllowedAce(PACL, DWORD, DWORD, PSID);
                                                                                        >  2129                  BOOL AddAccessDeniedAce(PACL, DWORD, DWORD, PSID);
                                                                                        >  2130                  BOOL AddAce(PACL, DWORD, DWORD, PVOID, DWORD);
                                                                                        >  2131                  BOOL AddAuditAccessAce(PACL, DWORD, DWORD, PSID, BOOL, BOOL);
                                                                                        >  2132                  BOOL AdjustTokenGroups(HANDLE, BOOL, PTOKEN_GROUPS, DWORD, PTOKE
                                                                                        >  2133                  BOOL AdjustTokenPrivileges(HANDLE, BOOL, PTOKEN_PRIVILEGES, DWOR
                                                                                        >  2134                  BOOL AllocateAndInitializeSid(PSID_IDENTIFIER_AUTHORITY, BYTE, D
                                                                                        >  2135                  BOOL AllocateLocallyUniqueId(PLUID);
                                                                                        >  2136                  BOOL AreAllAccessesGranted(DWORD, DWORD);
                                                                                        >  2137                  BOOL AreAnyAccessesGranted(DWORD, DWORD);
                                                                                        >  2138                  BOOL BackupEventLogA(HANDLE, LPCSTR);
                                                                                        >  2139                  BOOL BackupEventLogW(HANDLE, LPCWSTR);
                                                                                        >  2140                  BOOL BackupRead(HANDLE, LPBYTE, DWORD, LPDWORD, BOOL, BOOL, LPVO
                                                                                        >  2141                  BOOL BackupSeek(HANDLE, DWORD, DWORD, LPDWORD, LPDWORD, LPVOID*)
                                                                                        >  2142                  BOOL BackupWrite(HANDLE, LPBYTE, DWORD, LPDWORD, BOOL, BOOL, LPV
                                                                                        >  2143                  BOOL ClearEventLogA(HANDLE, LPCSTR);
                                                                                        >  2144                  BOOL ClearEventLogW(HANDLE, LPCWSTR);
                                                                                        >  2145                  BOOL CloseEventLog(HANDLE);
                                                                                        >  2146                  BOOL ConnectNamedPipe(HANDLE, LPOVERLAPPED);
                                                                                        >  2147                  BOOL CopySid(DWORD, PSID, PSID);
                                                                                        >  2148                  HANDLE CreateNamedPipeA(LPCSTR, DWORD, DWORD, DWORD, DWORD, DWOR
                                                                                        >  2149                  HANDLE CreateNamedPipeW(LPCWSTR, DWORD, DWORD, DWORD, DWORD, DWO
                                                                                        >  2150                  BOOL CreatePrivateObjectSecurity(PSECURITY_DESCRIPTOR, PSECURITY
                                                                                        >  2151                  BOOL CreateProcessAsUserA(HANDLE, LPCSTR, LPSTR, LPSECURITY_ATTR
                                                                                        >  2152                  BOOL CreateProcessAsUserW(HANDLE, LPCWSTR, LPWSTR, LPSECURITY_AT
                                                                                        >  2153                  HANDLE CreateRemoteThread(HANDLE, LPSECURITY_ATTRIBUTES, DWORD, 
                                                                                        >  2154                  DWORD CreateTapePartition(HANDLE, DWORD, DWORD, DWORD);
                                                                                        >  2155                  BOOL DefineDosDeviceA(DWORD, LPCSTR, LPCSTR);
                                                                                        >  2156                  BOOL DefineDosDeviceW(DWORD, LPCWSTR, LPCWSTR);
                                                                                        >  2157                  BOOL DeleteAce(PACL, DWORD);
                                                                                        >  2158                  BOOL DeregisterEventSource(HANDLE);
                                                                                        >  2159                  BOOL DestroyPrivateObjectSecurity(PSECURITY_DESCRIPTOR*);
                                                                                        >  2160                  BOOL DeviceIoControl(HANDLE, DWORD, PVOID, DWORD, PVOID, DWORD, 
                                                                                        >  2161                  BOOL DisconnectNamedPipe(HANDLE);
                                                                                        >  2162                  BOOL DuplicateToken(HANDLE, SECURITY_IMPERSONATION_LEVEL, PHANDL
                                                                                        >  2163                  BOOL DuplicateTokenEx(HANDLE, DWORD, LPSECURITY_ATTRIBUTES, SECU
                                                                                        >  2164                  BOOL EqualPrefixSid(PSID, PSID);
                                                                                        >  2165                  BOOL EqualSid(PSID, PSID);
                                                                                        >  2166                  DWORD EraseTape(HANDLE, DWORD, BOOL);
                                                                                        >  2167                  HANDLE FindFirstFileExA(LPCSTR, FINDEX_INFO_LEVELS, PVOID, FINDE
                                                                                        >  2168                  HANDLE FindFirstFileExW(LPCWSTR, FINDEX_INFO_LEVELS, PVOID, FIND
                                                                                        >  2169                  BOOL FindFirstFreeAce(PACL, PVOID*);
                                                                                        >  2170                  PVOID FreeSid(PSID);
                                                                                        >  2171                  BOOL GetAce(PACL, DWORD, LPVOID*);
                                                                                        >  2172                  BOOL GetAclInformation(PACL, PVOID, DWORD, ACL_INFORMATION_CLASS
                                                                                        >  2173                  BOOL GetBinaryTypeA(LPCSTR, PDWORD);
                                                                                        >  2174                  BOOL GetBinaryTypeW(LPCWSTR, PDWORD);
                                                                                        >  2175                  DWORD GetCompressedFileSizeA(LPCSTR, PDWORD);
                                                                                        >  2176                  DWORD GetCompressedFileSizeW(LPCWSTR, PDWORD);
                                                                                        >  2177                  BOOL GetCurrentHwProfileA(LPHW_PROFILE_INFOA);
                                                                                        >  2178                  BOOL GetCurrentHwProfileW(LPHW_PROFILE_INFOW);
                                                                                        >  2179                  BOOL GetFileSecurityA(LPCSTR, SECURITY_INFORMATION, PSECURITY_DE
                                                                                        >  2180                  BOOL GetFileSecurityW(LPCWSTR, SECURITY_INFORMATION, PSECURITY_D
                                                                                        >  2181                  BOOL GetHandleInformation(HANDLE, PDWORD);
                                                                                        >  2182                  BOOL GetKernelObjectSecurity(HANDLE, SECURITY_INFORMATION, PSECU
                                                                                        >  2183                  DWORD GetLengthSid(PSID);
                                                                                        >  2184                  BOOL GetNumberOfEventLogRecords(HANDLE, PDWORD);
                                                                                        >  2185                  BOOL GetOldestEventLogRecord(HANDLE, PDWORD);
                                                                                        >  2186                  BOOL GetPrivateObjectSecurity(PSECURITY_DESCRIPTOR, SECURITY_INF
                                                                                        >  2187                  BOOL GetProcessPriorityBoost(HANDLE, PBOOL);
                                                                                        >  2188                  BOOL GetProcessShutdownParameters(PDWORD, PDWORD);
                                                                                        >  2189                  BOOL GetProcessTimes(HANDLE, LPFILETIME, LPFILETIME, LPFILETIME,
                                                                                        >  2190                  HWINSTA GetProcessWindowStation();
                                                                                        >  2191                  BOOL GetProcessWorkingSetSize(HANDLE, PSIZE_T, PSIZE_T);
                                                                                        >  2192                  BOOL GetQueuedCompletionStatus(HANDLE, PDWORD, PULONG_PTR, LPOVE
                                                                                        >  2193                  BOOL GetSecurityDescriptorControl(PSECURITY_DESCRIPTOR, PSECURIT
                                                                                        >  2194                  BOOL GetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR, LPBOOL, PAC
                                                                                        >  2195                  BOOL GetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR, PSID*, LPB
                                                                                        >  2196                  DWORD GetSecurityDescriptorLength(PSECURITY_DESCRIPTOR);
                                                                                        >  2197                  BOOL GetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR, PSID*, LPB
                                                                                        >  2198                  BOOL GetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR, LPBOOL, PAC
                                                                                        >  2199                  PSID_IDENTIFIER_AUTHORITY GetSidIdentifierAuthority(PSID);
                                                                                        >  2200                  DWORD GetSidLengthRequired(UCHAR);
                                                                                        >  2201                  PDWORD GetSidSubAuthority(PSID, DWORD);
                                                                                        >  2202                  PUCHAR GetSidSubAuthorityCount(PSID);
                                                                                        >  2203                  DWORD GetTapeParameters(HANDLE, DWORD, PDWORD, PVOID);
                                                                                        >  2204                  DWORD GetTapePosition(HANDLE, DWORD, PDWORD, PDWORD, PDWORD);
 2037  extern(Windows) export DWORD GetTapeStatus(                                      |  2205                  DWORD GetTapeStatus(HANDLE);
 2038    HANDLE hDevice);                                                               <
 2039                                                                                   <
                                                                                        >  2206                  BOOL GetThreadPriorityBoost(HANDLE, PBOOL);
                                                                                        >  2207                  BOOL GetThreadTimes(HANDLE, LPFILETIME, LPFILETIME, LPFILETIME, 
                                                                                        >  2208                  BOOL GetTokenInformation(HANDLE, TOKEN_INFORMATION_CLASS, PVOID,
                                                                                        >  2209                  BOOL ImpersonateLoggedOnUser(HANDLE);
                                                                                        >  2210                  BOOL ImpersonateNamedPipeClient(HANDLE);
                                                                                        >  2211                  BOOL ImpersonateSelf(SECURITY_IMPERSONATION_LEVEL);
                                                                                        >  2212                  BOOL InitializeAcl(PACL, DWORD, DWORD);
                                                                                        >  2213                  DWORD SetCriticalSectionSpinCount(LPCRITICAL_SECTION, DWORD);
                                                                                        >  2214                  BOOL InitializeSecurityDescriptor(PSECURITY_DESCRIPTOR, DWORD);
                                                                                        >  2215                  BOOL InitializeSid(PSID, PSID_IDENTIFIER_AUTHORITY, BYTE);
                                                                                        >  2216                  BOOL IsProcessorFeaturePresent(DWORD);
                                                                                        >  2217                  BOOL IsTextUnicode(PCVOID, int, LPINT);
                                                                                        >  2218                  BOOL IsValidAcl(PACL);
                                                                                        >  2219                  BOOL IsValidSecurityDescriptor(PSECURITY_DESCRIPTOR);
                                                                                        >  2220                  BOOL IsValidSid(PSID);
                                                                                        >  2221                  BOOL LockFileEx(HANDLE, DWORD, DWORD, DWORD, DWORD, LPOVERLAPPED
                                                                                        >  2222                  BOOL LogonUserA(LPSTR, LPSTR, LPSTR, DWORD, DWORD, PHANDLE);
                                                                                        >  2223                  BOOL LogonUserW(LPWSTR, LPWSTR, LPWSTR, DWORD, DWORD, PHANDLE);
                                                                                        >  2224                  BOOL LookupAccountNameA(LPCSTR, LPCSTR, PSID, PDWORD, LPSTR, PDW
                                                                                        >  2225                  BOOL LookupAccountNameW(LPCWSTR, LPCWSTR, PSID, PDWORD, LPWSTR, 
                                                                                        >  2226                  BOOL LookupAccountSidA(LPCSTR, PSID, LPSTR, PDWORD, LPSTR, PDWOR
                                                                                        >  2227                  BOOL LookupAccountSidW(LPCWSTR, PSID, LPWSTR, PDWORD, LPWSTR, PD
                                                                                        >  2228                  BOOL LookupPrivilegeDisplayNameA(LPCSTR, LPCSTR, LPSTR, PDWORD, 
                                                                                        >  2229                  BOOL LookupPrivilegeDisplayNameW(LPCWSTR, LPCWSTR, LPWSTR, PDWOR
                                                                                        >  2230                  BOOL LookupPrivilegeNameA(LPCSTR, PLUID, LPSTR, PDWORD);
                                                                                        >  2231                  BOOL LookupPrivilegeNameW(LPCWSTR, PLUID, LPWSTR, PDWORD);
                                                                                        >  2232                  BOOL LookupPrivilegeValueA(LPCSTR, LPCSTR, PLUID);
                                                                                        >  2233                  BOOL LookupPrivilegeValueW(LPCWSTR, LPCWSTR, PLUID);
                                                                                        >  2234                  BOOL MakeAbsoluteSD(PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR, 
                                                                                        >  2235                  BOOL MakeSelfRelativeSD(PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPT
                                                                                        >  2236                  VOID MapGenericMask(PDWORD, PGENERIC_MAPPING);
                                                                                        >  2237                  BOOL MoveFileExA(LPCSTR, LPCSTR, DWORD);
                                                                                        >  2238                  BOOL MoveFileExW(LPCWSTR, LPCWSTR, DWORD);
                                                                                        >  2239                  BOOL NotifyChangeEventLog(HANDLE, HANDLE);
                                                                                        >  2240                  BOOL ObjectCloseAuditAlarmA(LPCSTR, PVOID, BOOL);
                                                                                        >  2241                  BOOL ObjectCloseAuditAlarmW(LPCWSTR, PVOID, BOOL);
                                                                                        >  2242                  BOOL ObjectDeleteAuditAlarmA(LPCSTR, PVOID, BOOL);
                                                                                        >  2243                  BOOL ObjectDeleteAuditAlarmW(LPCWSTR, PVOID, BOOL);
                                                                                        >  2244                  BOOL ObjectOpenAuditAlarmA(LPCSTR, PVOID, LPSTR, LPSTR, PSECURIT
                                                                                        >  2245                  BOOL ObjectOpenAuditAlarmW(LPCWSTR, PVOID, LPWSTR, LPWSTR, PSECU
                                                                                        >  2246                  BOOL ObjectPrivilegeAuditAlarmA(LPCSTR, PVOID, HANDLE, DWORD, PP
                                                                                        >  2247                  BOOL ObjectPrivilegeAuditAlarmW(LPCWSTR, PVOID, HANDLE, DWORD, P
                                                                                        >  2248                  HANDLE OpenBackupEventLogA(LPCSTR, LPCSTR);
                                                                                        >  2249                  HANDLE OpenBackupEventLogW(LPCWSTR, LPCWSTR);
                                                                                        >  2250                  HANDLE OpenEventLogA(LPCSTR, LPCSTR);
                                                                                        >  2251                  HANDLE OpenEventLogW(LPCWSTR, LPCWSTR);
                                                                                        >  2252                  BOOL OpenProcessToken(HANDLE, DWORD, PHANDLE);
                                                                                        >  2253                  BOOL OpenThreadToken(HANDLE, DWORD, BOOL, PHANDLE);
                                                                                        >  2254                  BOOL PostQueuedCompletionStatus(HANDLE, DWORD, ULONG_PTR, LPOVER
                                                                                        >  2255                  DWORD PrepareTape(HANDLE, DWORD, BOOL);
                                                                                        >  2256                  BOOL PrivilegeCheck(HANDLE, PPRIVILEGE_SET, PBOOL);
                                                                                        >  2257                  BOOL PrivilegedServiceAuditAlarmA(LPCSTR, LPCSTR, HANDLE, PPRIVI
                                                                                        >  2258                  BOOL PrivilegedServiceAuditAlarmW(LPCWSTR, LPCWSTR, HANDLE, PPRI
                                                                                        >  2259                  BOOL ReadDirectoryChangesW(HANDLE, PVOID, DWORD, BOOL, DWORD, PD
                                                                                        >  2260                  BOOL ReadEventLogA(HANDLE, DWORD, DWORD, PVOID, DWORD, DWORD*, D
                                                                                        >  2261                  BOOL ReadEventLogW(HANDLE, DWORD, DWORD, PVOID, DWORD, DWORD*, D
                                                                                        >  2262                  BOOL ReadFileScatter(HANDLE, FILE_SEGMENT_ELEMENT*, DWORD, LPDWO
                                                                                        >  2263                  HANDLE RegisterEventSourceA (LPCSTR, LPCSTR);
                                                                                        >  2264                  HANDLE RegisterEventSourceW(LPCWSTR, LPCWSTR);
                                                                                        >  2265                  BOOL ReportEventA(HANDLE, WORD, WORD, DWORD, PSID, WORD, DWORD, 
                                                                                        >  2266                  BOOL ReportEventW(HANDLE, WORD, WORD, DWORD, PSID, WORD, DWORD, 
                                                                                        >  2267                  BOOL RevertToSelf();
                                                                                        >  2268                  BOOL SetAclInformation(PACL, PVOID, DWORD, ACL_INFORMATION_CLASS
                                                                                        >  2269                  BOOL SetFileSecurityA(LPCSTR, SECURITY_INFORMATION, PSECURITY_DE
                                                                                        >  2270                  BOOL SetFileSecurityW(LPCWSTR, SECURITY_INFORMATION, PSECURITY_D
                                                                                        >  2271                  BOOL SetHandleInformation(HANDLE, DWORD, DWORD);
                                                                                        >  2272                  BOOL SetKernelObjectSecurity(HANDLE, SECURITY_INFORMATION, PSECU
                                                                                        >  2273                  BOOL SetPrivateObjectSecurity(SECURITY_INFORMATION, PSECURITY_DE
                                                                                        >  2274                  BOOL SetProcessAffinityMask(HANDLE, DWORD);
                                                                                        >  2275                  BOOL SetProcessPriorityBoost(HANDLE, BOOL);
                                                                                        >  2276                  BOOL SetProcessShutdownParameters(DWORD, DWORD);
                                                                                        >  2277                  BOOL SetProcessWorkingSetSize(HANDLE, SIZE_T, SIZE_T);
                                                                                        >  2278                  BOOL SetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR, BOOL, PACL,
                                                                                        >  2279                  BOOL SetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR, PSID, BOOL
                                                                                        >  2280                  BOOL SetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR, PSID, BOOL
                                                                                        >  2281                  BOOL SetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR, BOOL, PACL,
                                                                                        >  2282                  BOOL SetSystemTimeAdjustment(DWORD, BOOL);
 2040  extern(Windows) export DWORD GetTapeParameters(                                  |  2283                  DWORD SetTapeParameters(HANDLE, DWORD, PVOID);
 2041    HANDLE hDevice,                                                                <
 2042    DWORD dwOperation,                                                             <
 2043    LPDWORD lpdwSize,                                                              <
 2044    LPVOID lpTapeInformation);                                                     <
                                                                                        >  2284                  DWORD SetTapePosition(HANDLE, DWORD, DWORD, DWORD, DWORD, BOOL);
                                                                                        >  2285                  BOOL SetThreadPriorityBoost(HANDLE, BOOL);
                                                                                        >  2286                  BOOL SetThreadToken(PHANDLE, HANDLE);
                                                                                        >  2287                  BOOL SetTokenInformation(HANDLE, TOKEN_INFORMATION_CLASS, PVOID,
                                                                                        >  2288                  DWORD SignalObjectAndWait(HANDLE, HANDLE, DWORD, BOOL);
                                                                                        >  2289                  BOOL SwitchToThread();
                                                                                        >  2290                  BOOL SystemTimeToTzSpecificLocalTime(LPTIME_ZONE_INFORMATION, LP
                                                                                        >  2291                  BOOL TryEnterCriticalSection(LPCRITICAL_SECTION);
                                                                                        >  2292                  BOOL UnlockFileEx(HANDLE, DWORD, DWORD, DWORD, LPOVERLAPPED);
                                                                                        >  2293                  BOOL UpdateResourceA(HANDLE, LPCSTR, LPCSTR, WORD, PVOID, DWORD)
                                                                                        >  2294                  BOOL UpdateResourceW(HANDLE, LPCWSTR, LPCWSTR, WORD, PVOID, DWOR
                                                                                        >  2295                  BOOL WriteFileGather(HANDLE, FILE_SEGMENT_ELEMENT*, DWORD, LPDWO
                                                                                        >  2296                  DWORD WriteTapemark(HANDLE, DWORD, DWORD, BOOL);
 2045                                                                                   |  2297  
 2046  enum : uint { GET_TAPE_MEDIA_INFORMATION = 0 }                                   <
 2047  enum : uint { GET_TAPE_DRIVE_INFORMATION = 1 }                                   <
 2048                                                                                   <
 2049  extern(Windows) export DWORD SetTapeParameters(                                  <
                                                                                        >  2298                  static if (_WIN32_WINNT >= 0x500) {
                                                                                        >  2299                          BOOL AddAccessAllowedAceEx(PACL, DWORD, DWORD, DWORD, PS
                                                                                        >  2300                          BOOL AddAccessDeniedAceEx(PACL, DWORD, DWORD, DWORD, PSI
                                                                                        >  2301                          PVOID AddVectoredExceptionHandler(ULONG, PVECTORED_EXCEP
                                                                                        >  2302                          BOOL AllocateUserPhysicalPages(HANDLE, PULONG_PTR, PULON
                                                                                        >  2303                          BOOL AssignProcessToJobObject(HANDLE, HANDLE);
                                                                                        >  2304                          BOOL ChangeTimerQueueTimer(HANDLE,HANDLE,ULONG,ULONG);
                                                                                        >  2305                          LPVOID CreateFiberEx(SIZE_T, SIZE_T, DWORD, LPFIBER_STAR
                                                                                        >  2306                          HANDLE CreateFileMappingA(HANDLE, LPSECURITY_ATTRIBUTES,
                                                                                        >  2307                          HANDLE CreateFileMappingW(HANDLE, LPSECURITY_ATTRIBUTES,
                                                                                        >  2308                          BOOL CreateHardLinkA(LPCSTR, LPCSTR, LPSECURITY_ATTRIBUT
                                                                                        >  2309                          BOOL CreateHardLinkW(LPCWSTR, LPCWSTR, LPSECURITY_ATTRIB
                                                                                        >  2310                          HANDLE CreateJobObjectA(LPSECURITY_ATTRIBUTES, LPCSTR);
                                                                                        >  2311                          HANDLE CreateJobObjectW(LPSECURITY_ATTRIBUTES, LPCWSTR);
                                                                                        >  2312                          BOOL CreateProcessWithLogonW(LPCWSTR, LPCWSTR, LPCWSTR, 
                                                                                        >  2313                          HANDLE CreateTimerQueue();
                                                                                        >  2314                          BOOL CreateTimerQueueTimer(PHANDLE, HANDLE, WAITORTIMERC
                                                                                        >  2315                          BOOL DeleteTimerQueue(HANDLE);
                                                                                        >  2316                          BOOL DeleteTimerQueueEx(HANDLE, HANDLE);
                                                                                        >  2317                          BOOL DeleteTimerQueueTimer(HANDLE, HANDLE, HANDLE);
                                                                                        >  2318                          BOOL DeleteVolumeMountPointA(LPCSTR);
                                                                                        >  2319                          BOOL DeleteVolumeMountPointW(LPCWSTR);
                                                                                        >  2320                          BOOL DnsHostnameToComputerNameA(LPCSTR, LPSTR, LPDWORD);
                                                                                        >  2321                          BOOL DnsHostnameToComputerNameW(LPCWSTR, LPWSTR, LPDWORD
                                                                                        >  2322                          BOOL EncryptFileA(LPCSTR);
                                                                                        >  2323                          BOOL EncryptFileW(LPCWSTR);
                                                                                        >  2324                          BOOL FileEncryptionStatusA(LPCSTR, LPDWORD);
                                                                                        >  2325                          BOOL FileEncryptionStatusW(LPCWSTR, LPDWORD);
                                                                                        >  2326                          HANDLE FindFirstVolumeA(LPCSTR, DWORD);
                                                                                        >  2327                          HANDLE FindFirstVolumeMountPointA(LPSTR, LPSTR, DWORD);
                                                                                        >  2328                          HANDLE FindFirstVolumeMountPointW(LPWSTR, LPWSTR, DWORD)
                                                                                        >  2329                          HANDLE FindFirstVolumeW(LPCWSTR, DWORD);
                                                                                        >  2330                          BOOL FindNextVolumeA(HANDLE, LPCSTR, DWORD);
                                                                                        >  2331                          BOOL FindNextVolumeW(HANDLE, LPWSTR, DWORD);
                                                                                        >  2332                          BOOL FindNextVolumeMountPointA(HANDLE, LPSTR, DWORD);
                                                                                        >  2333                          BOOL FindNextVolumeMountPointW(HANDLE, LPWSTR, DWORD);
                                                                                        >  2334                          BOOL FindVolumeClose(HANDLE);
                                                                                        >  2335                          BOOL FindVolumeMountPointClose(HANDLE);
                                                                                        >  2336                          BOOL FlushViewOfFile(PCVOID, DWORD);
                                                                                        >  2337                          BOOL FreeUserPhysicalPages(HANDLE, PULONG_PTR, PULONG_PT
                                                                                        >  2338                          BOOL GetComputerNameExA(COMPUTER_NAME_FORMAT, LPSTR, LPD
                                                                                        >  2339                          BOOL GetComputerNameExW(COMPUTER_NAME_FORMAT, LPWSTR, LP
                                                                                        >  2340                          BOOL GetFileSizeEx(HANDLE, PLARGE_INTEGER);
                                                                                        >  2341                          BOOL GetModuleHandleExA(DWORD, LPCSTR, HMODULE*);
                                                                                        >  2342                          BOOL GetModuleHandleExW(DWORD, LPCWSTR, HMODULE*);
 2050    HANDLE hDevice,                                                                |  2343                          HANDLE GetProcessHeap();
 2051    DWORD dwOperation,                                                             <
 2052    LPVOID lpTapeInformation);                                                     <
                                                                                        >  2344                          DWORD GetProcessHeaps(DWORD, PHANDLE);
                                                                                        >  2345                          BOOL GetProcessIoCounters(HANDLE, PIO_COUNTERS);
                                                                                        >  2346                          BOOL GetSystemPowerStatus(LPSYSTEM_POWER_STATUS);
                                                                                        >  2347                          UINT GetSystemWindowsDirectoryA(LPSTR, UINT);
                                                                                        >  2348                          UINT GetSystemWindowsDirectoryW(LPWSTR, UINT);
                                                                                        >  2349                          BOOL GetVolumeNameForVolumeMountPointA(LPCSTR, LPSTR, DW
                                                                                        >  2350                          BOOL GetVolumeNameForVolumeMountPointW(LPCWSTR, LPWSTR, 
                                                                                        >  2351                          BOOL GetVolumePathNameA(LPCSTR, LPSTR, DWORD);
                                                                                        >  2352                          BOOL GetVolumePathNameW(LPCWSTR, LPWSTR, DWORD);
                                                                                        >  2353                          BOOL GlobalMemoryStatusEx(LPMEMORYSTATUSEX);
                                                                                        >  2354                          BOOL IsBadCodePtr(FARPROC);
                                                                                        >  2355                          BOOL IsSystemResumeAutomatic();
                                                                                        >  2356                          BOOL MapUserPhysicalPages(PVOID, ULONG_PTR, PULONG_PTR);
                                                                                        >  2357                          BOOL MapUserPhysicalPagesScatter(PVOID*, ULONG_PTR, PULO
                                                                                        >  2358                          PVOID MapViewOfFile(HANDLE, DWORD, DWORD, DWORD, DWORD);
                                                                                        >  2359                          PVOID MapViewOfFileEx(HANDLE, DWORD, DWORD, DWORD, DWORD
                                                                                        >  2360                          HANDLE OpenFileMappingA(DWORD, BOOL, LPCSTR);
                                                                                        >  2361                          HANDLE OpenFileMappingW(DWORD, BOOL, LPCWSTR);
                                                                                        >  2362                          BOOL ProcessIdToSessionId(DWORD, DWORD*);
                                                                                        >  2363                          BOOL QueryInformationJobObject(HANDLE, JOBOBJECTINFOCLAS
                                                                                        >  2364                          ULONG RemoveVectoredExceptionHandler(PVOID);
                                                                                        >  2365                          BOOL ReplaceFileA(LPCSTR, LPCSTR, LPCSTR, DWORD, LPVOID,
                                                                                        >  2366                          BOOL ReplaceFileW(LPCWSTR, LPCWSTR, LPCWSTR, DWORD, LPVO
                                                                                        >  2367                          BOOL SetComputerNameExA(COMPUTER_NAME_FORMAT, LPCSTR);
                                                                                        >  2368                          BOOL SetComputerNameExW(COMPUTER_NAME_FORMAT, LPCWSTR);
                                                                                        >  2369                          BOOL SetFilePointerEx(HANDLE, LARGE_INTEGER, PLARGE_INTE
                                                                                        >  2370                          BOOL SetInformationJobObject(HANDLE, JOBOBJECTINFOCLASS,
                                                                                        >  2371                          BOOL SetSecurityDescriptorControl(PSECURITY_DESCRIPTOR, 
                                                                                        >  2372                          BOOL SetSystemPowerState(BOOL, BOOL);
                                                                                        >  2373                          EXECUTION_STATE SetThreadExecutionState(EXECUTION_STATE)
                                                                                        >  2374                          DWORD SetThreadIdealProcessor(HANDLE, DWORD);
                                                                                        >  2375                          BOOL SetVolumeMountPointA(LPCSTR, LPCSTR);
                                                                                        >  2376                          BOOL SetVolumeMountPointW(LPCWSTR, LPCWSTR);
                                                                                        >  2377                          BOOL TerminateJobObject(HANDLE, UINT);
                                                                                        >  2378                          BOOL UnmapViewOfFile(PVOID);
                                                                                        >  2379                          BOOL UnregisterWait(HANDLE);
                                                                                        >  2380                          BOOL UnregisterWaitEx(HANDLE, HANDLE);
                                                                                        >  2381                          BOOL VerifyVersionInfoA(LPOSVERSIONINFOEXA, DWORD, DWORD
                                                                                        >  2382                          BOOL VerifyVersionInfoW(LPOSVERSIONINFOEXW, DWORD, DWORD
 2053                                                                                   |  2383                  }
 2054  enum : uint { SET_TAPE_MEDIA_INFORMATION = 0 }                                   <
 2055  enum : uint { SET_TAPE_DRIVE_INFORMATION = 1 }                                   <
 2056                                                                                   |  2384  
 2057  extern(Windows) export BOOL Beep(                                                <
 2058    DWORD dwFreq,                                                                  <
 2059    DWORD dwDuration);                                                             <
                                                                                        >  2385                  static if (_WIN32_WINNT >= 0x501) {
                                                                                        >  2386                          BOOL ActivateActCtx(HANDLE, ULONG_PTR*);
                                                                                        >  2387                          void AddRefActCtx(HANDLE);
                                                                                        >  2388                          BOOL CheckNameLegalDOS8Dot3A(LPCSTR, LPSTR, DWORD, PBOOL
                                                                                        >  2389                          BOOL CheckNameLegalDOS8Dot3W(LPCWSTR, LPSTR, DWORD, PBOO
                                                                                        >  2390                          BOOL CheckRemoteDebuggerPresent(HANDLE, PBOOL);
                                                                                        >  2391                          BOOL ConvertFiberToThread();
                                                                                        >  2392                          HANDLE CreateActCtxA(PCACTCTXA);
                                                                                        >  2393                          HANDLE CreateActCtxW(PCACTCTXW);
                                                                                        >  2394                          HANDLE CreateMemoryResourceNotification(MEMORY_RESOURCE_
                                                                                        >  2395                          BOOL DeactivateActCtx(DWORD, ULONG_PTR);
                                                                                        >  2396                          BOOL DebugActiveProcessStop(DWORD);
                                                                                        >  2397                          BOOL DebugBreakProcess(HANDLE);
                                                                                        >  2398                          BOOL DebugSetProcessKillOnExit(BOOL);
                                                                                        >  2399                          BOOL FindActCtxSectionGuid(DWORD, CPtr!(GUID), ULONG, CP
                                                                                        >  2400                            PACTCTX_SECTION_KEYED_DATA);
                                                                                        >  2401                          BOOL FindActCtxSectionStringA(DWORD, CPtr!(GUID), ULONG,
                                                                                        >  2402                            PACTCTX_SECTION_KEYED_DATA);
                                                                                        >  2403                          BOOL FindActCtxSectionStringW(DWORD, CPtr!(GUID), ULONG,
                                                                                        >  2404                            PACTCTX_SECTION_KEYED_DATA);
                                                                                        >  2405                          BOOL GetCurrentActCtx(HANDLE*);
                                                                                        >  2406                          VOID GetNativeSystemInfo(LPSYSTEM_INFO);
                                                                                        >  2407                          BOOL GetProcessHandleCount(HANDLE, PDWORD);
                                                                                        >  2408                          BOOL GetSystemRegistryQuota(PDWORD, PDWORD);
                                                                                        >  2409                          BOOL GetSystemTimes(LPFILETIME, LPFILETIME, LPFILETIME);
                                                                                        >  2410                          UINT GetSystemWow64DirectoryA(LPSTR, UINT);
                                                                                        >  2411                          UINT GetSystemWow64DirectoryW(LPWSTR, UINT);
                                                                                        >  2412                          BOOL GetThreadIOPendingFlag(HANDLE, PBOOL);
                                                                                        >  2413                          BOOL GetVolumePathNamesForVolumeNameA(LPCSTR, LPSTR, DWO
                                                                                        >  2414                          BOOL GetVolumePathNamesForVolumeNameW(LPCWSTR, LPWSTR, D
                                                                                        >  2415                          UINT GetWriteWatch(DWORD, PVOID, SIZE_T, PVOID*, PULONG_
                                                                                        >  2416                          BOOL HeapQueryInformation(HANDLE, HEAP_INFORMATION_CLASS
                                                                                        >  2417                          BOOL HeapSetInformation(HANDLE, HEAP_INFORMATION_CLASS, 
                                                                                        >  2418                          BOOL IsProcessInJob(HANDLE, HANDLE, PBOOL);
                                                                                        >  2419                          BOOL IsWow64Process(HANDLE, PBOOL);
                                                                                        >  2420                          BOOL QueryActCtxW(DWORD, HANDLE, PVOID, ULONG, PVOID, SI
                                                                                        >  2421                          BOOL QueryMemoryResourceNotification(HANDLE, PBOOL);
                                                                                        >  2422                          void ReleaseActCtx(HANDLE);
                                                                                        >  2423                          UINT ResetWriteWatch(LPVOID, SIZE_T);
                                                                                        >  2424                          BOOL SetFileShortNameA(HANDLE, LPCSTR);
                                                                                        >  2425                          BOOL SetFileShortNameW(HANDLE, LPCWSTR);
                                                                                        >  2426                          BOOL SetFileValidData(HANDLE, LONGLONG);
                                                                                        >  2427                          BOOL ZombifyActCtx(HANDLE);
 2060                                                                                   |  2428                  }
 2061  extern(Windows) export int MulDiv(                                               <
 2062    int nNumber,                                                                   <
 2063    int nNumerator,                                                                <
 2064    int nDenominator);                                                             <
 2065                                                                                   |  2429  
 2066  extern(Windows) export VOID GetSystemTime(                                       <
 2067    LPSYSTEMTIME lpSystemTime);                                                    <
                                                                                        >  2430                  static if (_WIN32_WINNT >= 0x502) {
                                                                                        >  2431                          DWORD GetFirmwareEnvironmentVariableA(LPCSTR, LPCSTR, PV
                                                                                        >  2432                          DWORD GetFirmwareEnvironmentVariableW(LPCWSTR, LPCWSTR, 
                                                                                        >  2433                          DWORD GetDllDirectoryA(DWORD, LPSTR);
                                                                                        >  2434                          DWORD GetDllDirectoryW(DWORD, LPWSTR);
                                                                                        >  2435                          DWORD GetProcessId(HANDLE);
                                                                                        >  2436                          HANDLE ReOpenFile(HANDLE, DWORD, DWORD, DWORD);
                                                                                        >  2437                          BOOL SetDllDirectoryA(LPCSTR);
                                                                                        >  2438                          BOOL SetDllDirectoryW(LPCWSTR);
                                                                                        >  2439                          BOOL SetFirmwareEnvironmentVariableA(LPCSTR, LPCSTR, PVO
                                                                                        >  2440                          BOOL SetFirmwareEnvironmentVariableW(LPCWSTR, LPCWSTR, P
 2068                                                                                   |  2441                  }
 2069  extern(Windows) export VOID GetSystemTimeAsFileTime(                             <
 2070    LPFILETIME lpSystemTimeAsFileTime);                                            <
 2071                                                                                   |  2442          }
 2072  extern(Windows) export BOOL SetSystemTime(                                       <
 2073    SYSTEMTIME *lpSystemTime);                                                     <
 2074                                                                                   |  2443  
 2075  extern(Windows) export VOID GetLocalTime(                                        <
 2076    LPSYSTEMTIME lpSystemTime);                                                    <
 2077                                                                                   <
 2078  extern(Windows) export BOOL SetLocalTime(                                        <
 2079    SYSTEMTIME *lpSystemTime);                                                     <
 2080                                                                                   <
 2081  extern(Windows) export VOID GetSystemInfo(                                       <
 2082    LPSYSTEM_INFO lpSystemInfo);                                                   <
 2083                                                                                   <
                                                                                        >  2444          // ???
 2084  // #if _WIN32_WINNT >= 0x0501                                                    |  2445          static if (_WIN32_WINNT >= 0x510) {
 2085  extern(Windows) export VOID GetNativeSystemInfo(                                 <
 2086    LPSYSTEM_INFO lpSystemInfo);                                                   <
 2087  // #endif                                                                        <
                                                                                        >  2446                  VOID RestoreLastError(DWORD);
 2088                                                                                   |  2447          }
 2089  extern(Windows) export BOOL IsProcessorFeaturePresent(                           <
 2090    DWORD ProcessorFeature);                                                       <
 2091                                                                                   <
 2092  struct _TIME_ZONE_INFORMATION {                                                  <
 2093    LONG Bias;                                                                     <
 2094    WCHAR StandardName[ 32 ];                                                      <
 2095    SYSTEMTIME StandardDate;                                                       <
 2096    LONG StandardBias;                                                             <
 2097    WCHAR DaylightName[ 32 ];                                                      <
 2098    SYSTEMTIME DaylightDate;                                                       <
 2099    LONG DaylightBias;                                                             <
 2100  }                                                                                   2448  }
 2101  alias _TIME_ZONE_INFORMATION TIME_ZONE_INFORMATION;                              <
 2102  alias _TIME_ZONE_INFORMATION* PTIME_ZONE_INFORMATION;                            <
                                                                                        >  2449  
                                                                                        >  2450  
 2103  alias _TIME_ZONE_INFORMATION* LPTIME_ZONE_INFORMATION;                           |  2451  version (Unicode) {
                                                                                        >  2452          alias STARTUPINFOW STARTUPINFO;
                                                                                        >  2453          alias WIN32_FIND_DATAW WIN32_FIND_DATA;
                                                                                        >  2454          alias ENUMRESLANGPROCW ENUMRESLANGPROC;
                                                                                        >  2455          alias ENUMRESNAMEPROCW ENUMRESNAMEPROC;
                                                                                        >  2456          alias ENUMRESTYPEPROCW ENUMRESTYPEPROC;
                                                                                        >  2457          alias AddAtomW AddAtom;
                                                                                        >  2458          alias BeginUpdateResourceW BeginUpdateResource;
                                                                                        >  2459          alias BuildCommDCBW BuildCommDCB;
                                                                                        >  2460          alias BuildCommDCBAndTimeoutsW BuildCommDCBAndTimeouts;
                                                                                        >  2461          alias CallNamedPipeW CallNamedPipe;
                                                                                        >  2462          alias CommConfigDialogW CommConfigDialog;
                                                                                        >  2463          alias CopyFileW CopyFile;
                                                                                        >  2464          alias CopyFileExW CopyFileEx;
                                                                                        >  2465          alias CreateDirectoryW CreateDirectory;
                                                                                        >  2466          alias CreateDirectoryExW CreateDirectoryEx;
                                                                                        >  2467          alias CreateEventW CreateEvent;
                                                                                        >  2468          alias CreateFileW CreateFile;
                                                                                        >  2469          alias CreateMailslotW CreateMailslot;
                                                                                        >  2470          alias CreateMutexW CreateMutex;
                                                                                        >  2471          alias CreateProcessW CreateProcess;
                                                                                        >  2472          alias CreateSemaphoreW CreateSemaphore;
                                                                                        >  2473          alias DeleteFileW DeleteFile;
                                                                                        >  2474          alias EndUpdateResourceW EndUpdateResource;
                                                                                        >  2475          alias EnumResourceLanguagesW EnumResourceLanguages;
                                                                                        >  2476          alias EnumResourceNamesW EnumResourceNames;
                                                                                        >  2477          alias EnumResourceTypesW EnumResourceTypes;
                                                                                        >  2478          alias ExpandEnvironmentStringsW ExpandEnvironmentStrings;
                                                                                        >  2479          alias FatalAppExitW FatalAppExit;
                                                                                        >  2480          alias FindAtomW FindAtom;
                                                                                        >  2481          alias FindFirstChangeNotificationW FindFirstChangeNotification;
                                                                                        >  2482          alias FindFirstFileW FindFirstFile;
                                                                                        >  2483          alias FindNextFileW FindNextFile;
                                                                                        >  2484          alias FindResourceW FindResource;
                                                                                        >  2485          alias FindResourceExW FindResourceEx;
                                                                                        >  2486          alias FormatMessageW FormatMessage;
                                                                                        >  2487          alias FreeEnvironmentStringsW FreeEnvironmentStrings;
                                                                                        >  2488          alias GetAtomNameW GetAtomName;
                                                                                        >  2489          alias GetCommandLineW GetCommandLine;
                                                                                        >  2490          alias GetComputerNameW GetComputerName;
                                                                                        >  2491          alias GetCurrentDirectoryW GetCurrentDirectory;
                                                                                        >  2492          alias GetDefaultCommConfigW GetDefaultCommConfig;
                                                                                        >  2493          alias GetDiskFreeSpaceW GetDiskFreeSpace;
                                                                                        >  2494          alias GetDiskFreeSpaceExW GetDiskFreeSpaceEx;
                                                                                        >  2495          alias GetDriveTypeW GetDriveType;
                                                                                        >  2496          alias GetEnvironmentStringsW GetEnvironmentStrings;
                                                                                        >  2497          alias GetEnvironmentVariableW GetEnvironmentVariable;
                                                                                        >  2498          alias GetFileAttributesW GetFileAttributes;
                                                                                        >  2499          alias GetFullPathNameW GetFullPathName;
                                                                                        >  2500          alias GetLogicalDriveStringsW GetLogicalDriveStrings;
                                                                                        >  2501          alias GetModuleFileNameW GetModuleFileName;
                                                                                        >  2502          alias GetModuleHandleW GetModuleHandle;
                                                                                        >  2503          alias GetNamedPipeHandleStateW GetNamedPipeHandleState;
                                                                                        >  2504          alias GetPrivateProfileIntW GetPrivateProfileInt;
                                                                                        >  2505          alias GetPrivateProfileSectionW GetPrivateProfileSection;
                                                                                        >  2506          alias GetPrivateProfileSectionNamesW GetPrivateProfileSectionNames;
                                                                                        >  2507          alias GetPrivateProfileStringW GetPrivateProfileString;
                                                                                        >  2508          alias GetPrivateProfileStructW GetPrivateProfileStruct;
                                                                                        >  2509          alias GetProfileIntW GetProfileInt;
                                                                                        >  2510          alias GetProfileSectionW GetProfileSection;
                                                                                        >  2511          alias GetProfileStringW GetProfileString;
                                                                                        >  2512          alias GetShortPathNameW GetShortPathName;
                                                                                        >  2513          alias GetStartupInfoW GetStartupInfo;
                                                                                        >  2514          alias GetSystemDirectoryW GetSystemDirectory;
                                                                                        >  2515          alias GetTempFileNameW GetTempFileName;
                                                                                        >  2516          alias GetTempPathW GetTempPath;
                                                                                        >  2517          alias GetUserNameW GetUserName;
                                                                                        >  2518          alias GetVersionExW GetVersionEx;
                                                                                        >  2519          alias GetVolumeInformationW GetVolumeInformation;
                                                                                        >  2520          alias GetWindowsDirectoryW GetWindowsDirectory;
                                                                                        >  2521          alias GlobalAddAtomW GlobalAddAtom;
                                                                                        >  2522          alias GlobalFindAtomW GlobalFindAtom;
                                                                                        >  2523          alias GlobalGetAtomNameW GlobalGetAtomName;
                                                                                        >  2524          alias IsBadStringPtrW IsBadStringPtr;
                                                                                        >  2525          alias LoadLibraryW LoadLibrary;
                                                                                        >  2526          alias LoadLibraryExW LoadLibraryEx;
                                                                                        >  2527          alias lstrcatW lstrcat;
                                                                                        >  2528          alias lstrcmpW lstrcmp;
                                                                                        >  2529          alias lstrcmpiW lstrcmpi;
                                                                                        >  2530          alias lstrcpyW lstrcpy;
                                                                                        >  2531          alias lstrcpynW lstrcpyn;
                                                                                        >  2532          alias lstrlenW lstrlen;
                                                                                        >  2533          alias MoveFileW MoveFile;
                                                                                        >  2534          alias OpenEventW OpenEvent;
                                                                                        >  2535          alias OpenMutexW OpenMutex;
                                                                                        >  2536          alias OpenSemaphoreW OpenSemaphore;
                                                                                        >  2537          alias OutputDebugStringW OutputDebugString;
                                                                                        >  2538          alias RemoveDirectoryW RemoveDirectory;
                                                                                        >  2539          alias SearchPathW SearchPath;
                                                                                        >  2540          alias SetComputerNameW SetComputerName;
                                                                                        >  2541          alias SetCurrentDirectoryW SetCurrentDirectory;
                                                                                        >  2542          alias SetDefaultCommConfigW SetDefaultCommConfig;
                                                                                        >  2543          alias SetEnvironmentVariableW SetEnvironmentVariable;
                                                                                        >  2544          alias SetFileAttributesW SetFileAttributes;
                                                                                        >  2545          alias SetVolumeLabelW SetVolumeLabel;
                                                                                        >  2546          alias WaitNamedPipeW WaitNamedPipe;
                                                                                        >  2547          alias WritePrivateProfileSectionW WritePrivateProfileSection;
                                                                                        >  2548          alias WritePrivateProfileStringW WritePrivateProfileString;
                                                                                        >  2549          alias WritePrivateProfileStructW WritePrivateProfileStruct;
                                                                                        >  2550          alias WriteProfileSectionW WriteProfileSection;
                                                                                        >  2551          alias WriteProfileStringW WriteProfileString;
                                                                                        >  2552  
                                                                                        >  2553          static if (_WIN32_WINDOWS >= 0x410) {
                                                                                        >  2554                  alias CreateWaitableTimerW CreateWaitableTimer;
                                                                                        >  2555                  alias GetFileAttributesExW GetFileAttributesEx;
                                                                                        >  2556                  alias GetLongPathNameW GetLongPathName;
                                                                                        >  2557                  alias QueryDosDeviceW QueryDosDevice;
                                                                                        >  2558          }
                                                                                        >  2559  
                                                                                        >  2560          static if (_WIN32_WINNT_ONLY) {
                                                                                        >  2561                  alias HW_PROFILE_INFOW HW_PROFILE_INFO;
                                                                                        >  2562                  alias AccessCheckAndAuditAlarmW AccessCheckAndAuditAlarm;
                                                                                        >  2563                  alias BackupEventLogW BackupEventLog;
                                                                                        >  2564                  alias ClearEventLogW ClearEventLog;
                                                                                        >  2565                  alias CreateNamedPipeW CreateNamedPipe;
                                                                                        >  2566                  alias CreateProcessAsUserW CreateProcessAsUser;
                                                                                        >  2567                  alias DefineDosDeviceW DefineDosDevice;
                                                                                        >  2568                  alias FindFirstFileExW FindFirstFileEx;
                                                                                        >  2569                  alias GetBinaryTypeW GetBinaryType;
                                                                                        >  2570                  alias GetCompressedFileSizeW GetCompressedFileSize;
                                                                                        >  2571                  alias GetFileSecurityW GetFileSecurity;
                                                                                        >  2572                  alias LogonUserW LogonUser;
                                                                                        >  2573                  alias LookupAccountNameW LookupAccountName;
                                                                                        >  2574                  alias LookupAccountSidW LookupAccountSid;
                                                                                        >  2575                  alias LookupPrivilegeDisplayNameW LookupPrivilegeDisplayName;
                                                                                        >  2576                  alias LookupPrivilegeNameW LookupPrivilegeName;
                                                                                        >  2577                  alias LookupPrivilegeValueW LookupPrivilegeValue;
                                                                                        >  2578                  alias MoveFileExW MoveFileEx;
                                                                                        >  2579                  alias ObjectCloseAuditAlarmW ObjectCloseAuditAlarm;
                                                                                        >  2580                  alias ObjectDeleteAuditAlarmW ObjectDeleteAuditAlarm;
                                                                                        >  2581                  alias ObjectOpenAuditAlarmW ObjectOpenAuditAlarm;
                                                                                        >  2582                  alias ObjectPrivilegeAuditAlarmW ObjectPrivilegeAuditAlarm;
                                                                                        >  2583                  alias OpenBackupEventLogW OpenBackupEventLog;
                                                                                        >  2584                  alias OpenEventLogW OpenEventLog;
                                                                                        >  2585                  alias PrivilegedServiceAuditAlarmW PrivilegedServiceAuditAlarm;
                                                                                        >  2586                  alias ReadEventLogW ReadEventLog;
                                                                                        >  2587                  alias RegisterEventSourceW RegisterEventSource;
                                                                                        >  2588                  alias ReportEventW ReportEvent;
                                                                                        >  2589                  alias SetFileSecurityW SetFileSecurity;
                                                                                        >  2590                  alias UpdateResourceW UpdateResource;
 2104                                                                                      2591  
 2105  extern(Windows) export BOOL SystemTimeToTzSpecificLocalTime(                     |  2592                  static if (_WIN32_WINNT >= 0x500) {
 2106    LPTIME_ZONE_INFORMATION lpTimeZoneInformation,                                 |  2593                          alias CreateFileMappingW CreateFileMapping;
 2107    LPSYSTEMTIME lpUniversalTime,                                                  |  2594                          alias CreateHardLinkW CreateHardLink;
 2108    LPSYSTEMTIME lpLocalTime);                                                     |  2595                          alias CreateJobObjectW CreateJobObject;
                                                                                        >  2596                          alias DeleteVolumeMountPointW DeleteVolumeMountPoint;
                                                                                        >  2597                          alias DnsHostnameToComputerNameW DnsHostnameToComputerNa
                                                                                        >  2598                          alias EncryptFileW EncryptFile;
                                                                                        >  2599                          alias FileEncryptionStatusW FileEncryptionStatus;
                                                                                        >  2600                          alias FindFirstVolumeW FindFirstVolume;
                                                                                        >  2601                          alias FindFirstVolumeMountPointW FindFirstVolumeMountPoi
                                                                                        >  2602                          alias FindNextVolumeW FindNextVolume;
                                                                                        >  2603                          alias FindNextVolumeMountPointW FindNextVolumeMountPoint
                                                                                        >  2604                          alias GetModuleHandleExW GetModuleHandleEx;
                                                                                        >  2605                          alias GetSystemWindowsDirectoryW GetSystemWindowsDirecto
                                                                                        >  2606                          alias GetVolumeNameForVolumeMountPointW GetVolumeNameFor
                                                                                        >  2607                          alias GetVolumePathNameW GetVolumePathName;
                                                                                        >  2608                          alias OpenFileMappingW OpenFileMapping;
                                                                                        >  2609                          alias ReplaceFileW ReplaceFile;
                                                                                        >  2610                          alias SetVolumeMountPointW SetVolumeMountPoint;
                                                                                        >  2611                          alias VerifyVersionInfoW VerifyVersionInfo;
                                                                                        >  2612                  }
 2109                                                                                      2613  
 2110  extern(Windows) export BOOL TzSpecificLocalTimeToSystemTime(                     |  2614                  static if (_WIN32_WINNT >= 0x501) {
 2111    LPTIME_ZONE_INFORMATION lpTimeZoneInformation,                                 |  2615                          alias ACTCTXW ACTCTX;
 2112    LPSYSTEMTIME lpLocalTime,                                                      |  2616                          alias CheckNameLegalDOS8Dot3W CheckNameLegalDOS8Dot3;
 2113    LPSYSTEMTIME lpUniversalTime);                                                 |  2617                          alias CreateActCtxW CreateActCtx;
                                                                                        >  2618                          alias FindActCtxSectionStringW FindActCtxSectionString;
                                                                                        >  2619                          alias GetSystemWow64DirectoryW GetSystemWow64Directory;
                                                                                        >  2620                          alias GetVolumePathNamesForVolumeNameW GetVolumePathName
                                                                                        >  2621                          alias SetFileShortNameW SetFileShortName;
 2114                                                                                   |  2622                  }
 2115  extern(Windows) export DWORD GetTimeZoneInformation(                             <
 2116    LPTIME_ZONE_INFORMATION lpTimeZoneInformation);                                <
 2117                                                                                      2623  
 2118  extern(Windows) export BOOL SetTimeZoneInformation(                              |  2624                  static if (_WIN32_WINNT >= 0x502) {
 2119    TIME_ZONE_INFORMATION *lpTimeZoneInformation);                                 |  2625                          alias SetFirmwareEnvironmentVariableW SetFirmwareEnviron
                                                                                        >  2626                          alias SetDllDirectoryW SetDllDirectory;
                                                                                        >  2627                          alias GetDllDirectoryW GetDllDirectory;
                                                                                        >  2628                  }
                                                                                        >  2629          }
 2120                                                                                      2630  
 2121  extern(Windows) export BOOL SystemTimeToFileTime(                                |  2631  } else {
 2122    SYSTEMTIME *lpSystemTime,                                                      |  2632          alias STARTUPINFOA STARTUPINFO;
 2123    LPFILETIME lpFileTime);                                                        |  2633          alias WIN32_FIND_DATAA WIN32_FIND_DATA;
 2124                                                                                   <
                                                                                        >  2634          alias ENUMRESLANGPROCW ENUMRESLANGPROC;
 2125  extern(Windows) export BOOL FileTimeToLocalFileTime(                             |  2635          alias ENUMRESNAMEPROCW ENUMRESNAMEPROC;
 2126    FILETIME *lpFileTime,                                                          |  2636          alias ENUMRESTYPEPROCW ENUMRESTYPEPROC;
 2127    LPFILETIME lpLocalFileTime);                                                   |  2637          alias AddAtomA AddAtom;
                                                                                        >  2638          alias BeginUpdateResourceA BeginUpdateResource;
                                                                                        >  2639          alias BuildCommDCBA BuildCommDCB;
                                                                                        >  2640          alias BuildCommDCBAndTimeoutsA BuildCommDCBAndTimeouts;
                                                                                        >  2641          alias CallNamedPipeA CallNamedPipe;
                                                                                        >  2642          alias CommConfigDialogA CommConfigDialog;
                                                                                        >  2643          alias CopyFileA CopyFile;
                                                                                        >  2644          alias CopyFileExA CopyFileEx;
                                                                                        >  2645          alias CreateDirectoryA CreateDirectory;
                                                                                        >  2646          alias CreateDirectoryExA CreateDirectoryEx;
                                                                                        >  2647          alias CreateEventA CreateEvent;
                                                                                        >  2648          alias CreateFileA CreateFile;
                                                                                        >  2649          alias CreateMailslotA CreateMailslot;
                                                                                        >  2650          alias CreateMutexA CreateMutex;
                                                                                        >  2651          alias CreateProcessA CreateProcess;
                                                                                        >  2652          alias CreateSemaphoreA CreateSemaphore;
                                                                                        >  2653          alias DeleteFileA DeleteFile;
                                                                                        >  2654          alias EndUpdateResourceA EndUpdateResource;
                                                                                        >  2655          alias EnumResourceLanguagesA EnumResourceLanguages;
                                                                                        >  2656          alias EnumResourceNamesA EnumResourceNames;
                                                                                        >  2657          alias EnumResourceTypesA EnumResourceTypes;
                                                                                        >  2658          alias ExpandEnvironmentStringsA ExpandEnvironmentStrings;
                                                                                        >  2659          alias FatalAppExitA FatalAppExit;
                                                                                        >  2660          alias FindAtomA FindAtom;
                                                                                        >  2661          alias FindFirstChangeNotificationA FindFirstChangeNotification;
                                                                                        >  2662          alias FindFirstFileA FindFirstFile;
                                                                                        >  2663          alias FindNextFileA FindNextFile;
                                                                                        >  2664          alias FindResourceA FindResource;
                                                                                        >  2665          alias FindResourceExA FindResourceEx;
                                                                                        >  2666          alias FormatMessageA FormatMessage;
                                                                                        >  2667          alias FreeEnvironmentStringsA FreeEnvironmentStrings;
                                                                                        >  2668          alias GetAtomNameA GetAtomName;
                                                                                        >  2669          alias GetCommandLineA GetCommandLine;
                                                                                        >  2670          alias GetComputerNameA GetComputerName;
                                                                                        >  2671          alias GetCurrentDirectoryA GetCurrentDirectory;
                                                                                        >  2672          alias GetDefaultCommConfigA GetDefaultCommConfig;
                                                                                        >  2673          alias GetDiskFreeSpaceA GetDiskFreeSpace;
                                                                                        >  2674          alias GetDiskFreeSpaceExA GetDiskFreeSpaceEx;
                                                                                        >  2675          alias GetDriveTypeA GetDriveType;
                                                                                        >  2676          alias GetEnvironmentVariableA GetEnvironmentVariable;
                                                                                        >  2677          alias GetFileAttributesA GetFileAttributes;
                                                                                        >  2678          alias GetFullPathNameA GetFullPathName;
                                                                                        >  2679          alias GetLogicalDriveStringsA GetLogicalDriveStrings;
                                                                                        >  2680          alias GetNamedPipeHandleStateA GetNamedPipeHandleState;
                                                                                        >  2681          alias GetModuleHandleA GetModuleHandle;
                                                                                        >  2682          alias GetModuleFileNameA GetModuleFileName;
                                                                                        >  2683          alias GetPrivateProfileIntA GetPrivateProfileInt;
                                                                                        >  2684          alias GetPrivateProfileSectionA GetPrivateProfileSection;
                                                                                        >  2685          alias GetPrivateProfileSectionNamesA GetPrivateProfileSectionNames;
                                                                                        >  2686          alias GetPrivateProfileStringA GetPrivateProfileString;
                                                                                        >  2687          alias GetPrivateProfileStructA GetPrivateProfileStruct;
                                                                                        >  2688          alias GetProfileIntA GetProfileInt;
                                                                                        >  2689          alias GetProfileSectionA GetProfileSection;
                                                                                        >  2690          alias GetProfileStringA GetProfileString;
                                                                                        >  2691          alias GetShortPathNameA GetShortPathName;
                                                                                        >  2692          alias GetStartupInfoA GetStartupInfo;
                                                                                        >  2693          alias GetSystemDirectoryA GetSystemDirectory;
                                                                                        >  2694          alias GetTempFileNameA GetTempFileName;
                                                                                        >  2695          alias GetTempPathA GetTempPath;
                                                                                        >  2696          alias GetUserNameA GetUserName;
                                                                                        >  2697          alias GetVersionExA GetVersionEx;
                                                                                        >  2698          alias GetVolumeInformationA GetVolumeInformation;
                                                                                        >  2699          alias GetWindowsDirectoryA GetWindowsDirectory;
                                                                                        >  2700          alias GlobalAddAtomA GlobalAddAtom;
                                                                                        >  2701          alias GlobalFindAtomA GlobalFindAtom;
                                                                                        >  2702          alias GlobalGetAtomNameA GlobalGetAtomName;
                                                                                        >  2703          alias IsBadStringPtrA IsBadStringPtr;
                                                                                        >  2704          alias LoadLibraryA LoadLibrary;
                                                                                        >  2705          alias LoadLibraryExA LoadLibraryEx;
                                                                                        >  2706          alias lstrcatA lstrcat;
                                                                                        >  2707          alias lstrcmpA lstrcmp;
                                                                                        >  2708          alias lstrcmpiA lstrcmpi;
                                                                                        >  2709          alias lstrcpyA lstrcpy;
                                                                                        >  2710          alias lstrcpynA lstrcpyn;
                                                                                        >  2711          alias lstrlenA lstrlen;
                                                                                        >  2712          alias MoveFileA MoveFile;
                                                                                        >  2713          alias OpenEventA OpenEvent;
                                                                                        >  2714          alias OpenMutexA OpenMutex;
                                                                                        >  2715          alias OpenSemaphoreA OpenSemaphore;
                                                                                        >  2716          alias OutputDebugStringA OutputDebugString;
                                                                                        >  2717          alias RemoveDirectoryA RemoveDirectory;
                                                                                        >  2718          alias SearchPathA SearchPath;
                                                                                        >  2719          alias SetComputerNameA SetComputerName;
                                                                                        >  2720          alias SetCurrentDirectoryA SetCurrentDirectory;
                                                                                        >  2721          alias SetDefaultCommConfigA SetDefaultCommConfig;
                                                                                        >  2722          alias SetEnvironmentVariableA SetEnvironmentVariable;
                                                                                        >  2723          alias SetFileAttributesA SetFileAttributes;
                                                                                        >  2724          alias SetVolumeLabelA SetVolumeLabel;
                                                                                        >  2725          alias WaitNamedPipeA WaitNamedPipe;
                                                                                        >  2726          alias WritePrivateProfileSectionA WritePrivateProfileSection;
                                                                                        >  2727          alias WritePrivateProfileStringA WritePrivateProfileString;
                                                                                        >  2728          alias WritePrivateProfileStructA WritePrivateProfileStruct;
                                                                                        >  2729          alias WriteProfileSectionA WriteProfileSection;
                                                                                        >  2730          alias WriteProfileStringA WriteProfileString;
 2128                                                                                      2731  
 2129  extern(Windows) export BOOL LocalFileTimeToFileTime(                             |  2732          static if (_WIN32_WINDOWS >= 0x410) {
 2130    FILETIME *lpLocalFileTime,                                                     |  2733                  alias CreateWaitableTimerA CreateWaitableTimer;
 2131    LPFILETIME lpFileTime);                                                        |  2734                  alias GetFileAttributesExA GetFileAttributesEx;
 2132                                                                                   <
                                                                                        >  2735                  alias GetLongPathNameA GetLongPathName;
 2133  extern(Windows) export BOOL FileTimeToSystemTime(                                |  2736                  alias QueryDosDeviceA QueryDosDevice;
 2134    FILETIME *lpFileTime,                                                          <
 2135    LPSYSTEMTIME lpSystemTime);                                                    <
 2136                                                                                   |  2737          }
 2137  extern(Windows) export LONG CompareFileTime(                                     <
 2138    FILETIME *lpFileTime1,                                                         <
 2139    FILETIME *lpFileTime2);                                                        <
 2140                                                                                   <
 2141  extern(Windows) export BOOL FileTimeToDosDateTime(                               <
 2142    FILETIME *lpFileTime,                                                          <
 2143    LPWORD lpFatDate,                                                              <
 2144    LPWORD lpFatTime);                                                             <
 2145                                                                                   <
 2146  extern(Windows) export BOOL DosDateTimeToFileTime(                               <
 2147    WORD wFatDate,                                                                 <
 2148    WORD wFatTime,                                                                 <
 2149    LPFILETIME lpFileTime);                                                        <
 2150                                                                                      2738  
 2151  extern(Windows) export DWORD GetTickCount();                                     |  2739          static if (_WIN32_WINNT_ONLY) {
 2152                                                                                   <
                                                                                        >  2740                  alias HW_PROFILE_INFOA HW_PROFILE_INFO;
 2153  extern(Windows) export BOOL SetSystemTimeAdjustment(                             |  2741                  alias AccessCheckAndAuditAlarmA AccessCheckAndAuditAlarm;
 2154    DWORD dwTimeAdjustment,                                                        |  2742                  alias BackupEventLogA BackupEventLog;
 2155    BOOL bTimeAdjustmentDisabled);                                                 |  2743                  alias ClearEventLogA ClearEventLog;
 2156                                                                                   <
                                                                                        >  2744                  alias CreateNamedPipeA CreateNamedPipe;
 2157  extern(Windows) export BOOL GetSystemTimeAdjustment(                             |  2745                  alias CreateProcessAsUserA CreateProcessAsUser;
 2158    PDWORD lpTimeAdjustment,                                                       |  2746                  alias DefineDosDeviceA DefineDosDevice;
 2159    PDWORD lpTimeIncrement,                                                        |  2747                  alias FindFirstFileExA FindFirstFileEx;
 2160    PBOOL lpTimeAdjustmentDisabled);                                               |  2748                  alias GetBinaryTypeA GetBinaryType;
 2161                                                                                   <
                                                                                        >  2749                  alias GetCompressedFileSizeA GetCompressedFileSize;
 2162  // #if !defined(MIDL_PASS)                                                       |  2750                  alias GetFileSecurityA GetFileSecurity;
 2163  extern(Windows) export DWORD FormatMessageA(                                     |  2751                  alias LogonUserA LogonUser;
 2164    DWORD dwFlags,                                                                 |  2752                  alias LookupAccountNameA LookupAccountName;
 2165    LPCVOID lpSource,                                                              |  2753                  alias LookupAccountSidA LookupAccountSid;
 2166    DWORD dwMessageId,                                                             |  2754                  alias LookupPrivilegeDisplayNameA LookupPrivilegeDisplayName;
 2167    DWORD dwLanguageId,                                                            |  2755                  alias LookupPrivilegeNameA LookupPrivilegeName;
 2168    LPSTR lpBuffer,                                                                |  2756                  alias LookupPrivilegeValueA LookupPrivilegeValue;
 2169    DWORD nSize,                                                                   |  2757                  alias MoveFileExA MoveFileEx;
 2170    va_list *Arguments);                                                           |  2758                  alias ObjectCloseAuditAlarmA ObjectCloseAuditAlarm;
 2171  extern(Windows) export DWORD FormatMessageW(                                     |  2759                  alias ObjectDeleteAuditAlarmA ObjectDeleteAuditAlarm;
 2172    DWORD dwFlags,                                                                 |  2760                  alias ObjectOpenAuditAlarmA ObjectOpenAuditAlarm;
 2173    LPCVOID lpSource,                                                              |  2761                  alias ObjectPrivilegeAuditAlarmA ObjectPrivilegeAuditAlarm;
 2174    DWORD dwMessageId,                                                             |  2762                  alias OpenBackupEventLogA OpenBackupEventLog;
 2175    DWORD dwLanguageId,                                                            |  2763                  alias OpenEventLogA OpenEventLog;
 2176    LPWSTR lpBuffer,                                                               |  2764                  alias PrivilegedServiceAuditAlarmA PrivilegedServiceAuditAlarm;
 2177    DWORD nSize,                                                                   |  2765                  alias ReadEventLogA ReadEventLog;
 2178    va_list *Arguments);                                                           |  2766                  alias RegisterEventSourceA RegisterEventSource;
 2179  // #ifdef UNICODE                                                                |  2767                  alias ReportEventA ReportEvent;
 2180  alias FormatMessageW FormatMessage;                                              |  2768                  alias SetFileSecurityA SetFileSecurity;
 2181  // #else                                                                         |  2769                  alias UpdateResourceA UpdateResource;
 2182  // #...                                                                          <
 2183  // #endif // !UNICODE                                                            <
 2184  // #endif                                                                        <
 2185                                                                                   <
 2186  enum : uint { FORMAT_MESSAGE_ALLOCATE_BUFFER = 0x00000100 }                      <
 2187  enum : uint { FORMAT_MESSAGE_IGNORE_INSERTS = 0x00000200 }                       <
 2188  enum : uint { FORMAT_MESSAGE_FROM_STRING = 0x00000400 }                          <
 2189  enum : uint { FORMAT_MESSAGE_FROM_HMODULE = 0x00000800 }                         <
 2190  enum : uint { FORMAT_MESSAGE_FROM_SYSTEM = 0x00001000 }                          <
 2191  enum : uint { FORMAT_MESSAGE_ARGUMENT_ARRAY = 0x00002000 }                       <
 2192  enum : uint { FORMAT_MESSAGE_MAX_WIDTH_MASK = 0x000000FF }                       <
 2193                                                                                   <
 2194  extern(Windows) export BOOL CreatePipe(                                          <
 2195    PHANDLE hReadPipe,                                                             <
 2196    PHANDLE hWritePipe,                                                            <
 2197    LPSECURITY_ATTRIBUTES lpPipeAttributes,                                        <
 2198    DWORD nSize);                                                                  <
 2199                                                                                      2770  
 2200  extern(Windows) export BOOL ConnectNamedPipe(                                    |  2771                  static if (_WIN32_WINNT >= 0x500) {
 2201    HANDLE hNamedPipe,                                                             |  2772                          alias CreateFileMappingA CreateFileMapping;
 2202    LPOVERLAPPED lpOverlapped);                                                    |  2773                          alias CreateHardLinkA CreateHardLink;
 2203                                                                                   <
                                                                                        >  2774                          alias CreateJobObjectA CreateJobObject;
 2204  extern(Windows) export BOOL DisconnectNamedPipe(                                 |  2775                          alias DeleteVolumeMountPointA DeleteVolumeMountPoint;
 2205    HANDLE hNamedPipe);                                                            |  2776                          alias DnsHostnameToComputerNameA DnsHostnameToComputerNa
 2206                                                                                   <
                                                                                        >  2777                          alias EncryptFileA EncryptFile;
 2207  extern(Windows) export BOOL SetNamedPipeHandleState(                             |  2778                          alias FileEncryptionStatusA FileEncryptionStatus;
 2208    HANDLE hNamedPipe,                                                             |  2779                          alias FindFirstVolumeA FindFirstVolume;
 2209    LPDWORD lpMode,                                                                |  2780                          alias FindFirstVolumeMountPointA FindFirstVolumeMountPoi
 2210    LPDWORD lpMaxCollectionCount,                                                  |  2781                          alias FindNextVolumeA FindNextVolume;
 2211    LPDWORD lpCollectDataTimeout);                                                 |  2782                          alias FindNextVolumeMountPointA FindNextVolumeMountPoint
 2212                                                                                   <
                                                                                        >  2783                          alias GetModuleHandleExA GetModuleHandleEx;
 2213  extern(Windows) export BOOL GetNamedPipeInfo(                                    |  2784                          alias GetSystemWindowsDirectoryA GetSystemWindowsDirecto
 2214    HANDLE hNamedPipe,                                                             |  2785                          alias GetVolumeNameForVolumeMountPointA GetVolumeNameFor
 2215    LPDWORD lpFlags,                                                               |  2786                          alias GetVolumePathNameA GetVolumePathName;
 2216    LPDWORD lpOutBufferSize,                                                       |  2787                          alias OpenFileMappingA OpenFileMapping;
 2217    LPDWORD lpInBufferSize,                                                        |  2788                          alias ReplaceFileA ReplaceFile;
 2218    LPDWORD lpMaxInstances);                                                       |  2789                          alias SetVolumeMountPointA SetVolumeMountPoint;
                                                                                        >  2790                          alias VerifyVersionInfoA VerifyVersionInfo;
 2219                                                                                   |  2791                  }
 2220  extern(Windows) export BOOL PeekNamedPipe(                                       <
 2221    HANDLE hNamedPipe,                                                             <
 2222    LPVOID lpBuffer,                                                               <
 2223    DWORD nBufferSize,                                                             <
 2224    LPDWORD lpBytesRead,                                                           <
 2225    LPDWORD lpTotalBytesAvail,                                                     <
 2226    LPDWORD lpBytesLeftThisMessage);                                               <
 2227                                                                                   <
 2228  extern(Windows) export BOOL TransactNamedPipe(                                   <
 2229    HANDLE hNamedPipe,                                                             <
 2230    LPVOID lpInBuffer,                                                             <
 2231    DWORD nInBufferSize,                                                           <
 2232    LPVOID lpOutBuffer,                                                            <
 2233    DWORD nOutBufferSize,                                                          <
 2234    LPDWORD lpBytesRead,                                                           <
 2235    LPOVERLAPPED lpOverlapped);                                                    <
 2236                                                                                   <
 2237  extern(Windows) export HANDLE CreateMailslotA(                                   <
 2238    LPCSTR lpName,                                                                 <
 2239    DWORD nMaxMessageSize,                                                         <
 2240    DWORD lReadTimeout,                                                            <
 2241    LPSECURITY_ATTRIBUTES lpSecurityAttributes);                                   <
 2242  extern(Windows) export HANDLE CreateMailslotW(                                   <
 2243    LPCWSTR lpName,                                                                <
 2244    DWORD nMaxMessageSize,                                                         <
 2245    DWORD lReadTimeout,                                                            <
 2246    LPSECURITY_ATTRIBUTES lpSecurityAttributes);                                   <
 2247  // #ifdef UNICODE                                                                <
 2248  alias CreateMailslotW CreateMailslot;                                            <
 2249  // #else                                                                         <
 2250  // #...                                                                          <
 2251  // #endif // !UNICODE                                                            <
 2252                                                                                   <
 2253  extern(Windows) export BOOL GetMailslotInfo(                                     <
 2254    HANDLE hMailslot,                                                              <
 2255    LPDWORD lpMaxMessageSize,                                                      <
 2256    LPDWORD lpNextSize,                                                            <
 2257    LPDWORD lpMessageCount,                                                        <
 2258    LPDWORD lpReadTimeout);                                                        <
 2259                                                                                      2792  
 2260  extern(Windows) export BOOL SetMailslotInfo(                                     |  2793                  static if (_WIN32_WINNT >= 0x501) {
 2261    HANDLE hMailslot,                                                              |  2794                          alias ACTCTXA ACTCTX;
 2262    DWORD lReadTimeout);                                                           |  2795                          alias CheckNameLegalDOS8Dot3A CheckNameLegalDOS8Dot3;
 2263                                                                                   <
                                                                                        >  2796                          alias CreateActCtxA CreateActCtx;
 2264  extern(Windows) export LPVOID MapViewOfFile(                                     |  2797                          alias FindActCtxSectionStringA FindActCtxSectionString;
 2265    HANDLE hFileMappingObject,                                                     |  2798                          alias GetSystemWow64DirectoryA GetSystemWow64Directory;
 2266    DWORD dwDesiredAccess,                                                         |  2799                          alias GetVolumePathNamesForVolumeNameA GetVolumePathName
 2267    DWORD dwFileOffsetHigh,                                                        |  2800                          alias SetFileShortNameA SetFileShortName;
 2268    DWORD dwFileOffsetLow,                                                         <
 2269    SIZE_T dwNumberOfBytesToMap);                                                  <
 2270                                                                                   |  2801                  }
 2271  extern(Windows) export BOOL FlushViewOfFile(                                     <
 2272    LPCVOID lpBaseAddress,                                                         <
 2273    SIZE_T dwNumberOfBytesToFlush);                                                <
 2274                                                                                   <
 2275  extern(Windows) export BOOL UnmapViewOfFile(                                     <
 2276    LPCVOID lpBaseAddress);                                                        <
 2277                                                                                   <
 2278  extern(Windows) export BOOL EncryptFileA(                                        <
 2279    LPCSTR lpFileName);                                                            <
 2280  extern(Windows) export BOOL EncryptFileW(                                        <
 2281    LPCWSTR lpFileName);                                                           <
 2282  // #ifdef UNICODE                                                                <
 2283  alias EncryptFileW EncryptFile;                                                  <
 2284  // #else                                                                         <
 2285  // #...                                                                          <
 2286  // #endif // !UNICODE                                                            <
 2287                                                                                   <
 2288  extern(Windows) export BOOL DecryptFileA(                                        <
 2289    LPCSTR lpFileName,                                                             <
 2290    DWORD dwReserved);                                                             <
 2291  extern(Windows) export BOOL DecryptFileW(                                        <
 2292    LPCWSTR lpFileName,                                                            <
 2293    DWORD dwReserved);                                                             <
 2294  // #ifdef UNICODE                                                                <
 2295  alias DecryptFileW DecryptFile;                                                  <
 2296  // #else                                                                         <
 2297  // #...                                                                          <
 2298  // #endif // !UNICODE                                                            <
 2299                                                                                   <
 2300  enum : uint { FILE_ENCRYPTABLE = 0 }                                             <
 2301  enum : uint { FILE_IS_ENCRYPTED = 1 }                                            <
 2302  enum : uint { FILE_SYSTEM_ATTR = 2 }                                             <
 2303  enum : uint { FILE_ROOT_DIR = 3 }                                                <
 2304  enum : uint { FILE_SYSTEM_DIR = 4 }                                              <
 2305  enum : uint { FILE_UNKNOWN = 5 }                                                 <
 2306  enum : uint { FILE_SYSTEM_NOT_SUPPORT = 6 }                                      <
 2307  enum : uint { FILE_USER_DISALLOWED = 7 }                                         <
 2308  enum : uint { FILE_READ_ONLY = 8 }                                               <
 2309  enum : uint { FILE_DIR_DISALLOWED = 9 }                                          <
 2310                                                                                   <
 2311  extern(Windows) export BOOL FileEncryptionStatusA(                               <
 2312    LPCSTR lpFileName,                                                             <
 2313    LPDWORD lpStatus);                                                             <
 2314  extern(Windows) export BOOL FileEncryptionStatusW(                               <
 2315    LPCWSTR lpFileName,                                                            <
 2316    LPDWORD lpStatus);                                                             <
 2317  // #ifdef UNICODE                                                                <
 2318  alias FileEncryptionStatusW FileEncryptionStatus;                                <
 2319  // #else                                                                         <
 2320  // #...                                                                          <
 2321  // #endif // !UNICODE                                                            <
 2322                                                                                   <
 2323  enum : uint { EFS_USE_RECOVERY_KEYS = 0x1 }                                      <
 2324                                                                                   <
 2325  extern(Windows) alias DWORD function( PBYTE pbData, PVOID pvCallbackContext, ULO <
 2326                                                                                   <
 2327  extern(Windows) alias DWORD function( PBYTE pbData, PVOID pvCallbackContext, PUL <
 2328                                                                                   <
 2329  enum : uint { CREATE_FOR_IMPORT = 1 }                                            <
 2330  enum : uint { CREATE_FOR_DIR = 2 }                                               <
 2331  enum : uint { OVERWRITE_HIDDEN = 4 }                                             <
 2332                                                                                   <
 2333  extern(Windows) export DWORD OpenEncryptedFileRawA(                              <
 2334    LPCSTR lpFileName,                                                             <
 2335    ULONG ulFlags,                                                                 <
 2336    PVOID * pvContext);                                                            <
 2337  extern(Windows) export DWORD OpenEncryptedFileRawW(                              <
 2338    LPCWSTR lpFileName,                                                            <
 2339    ULONG ulFlags,                                                                 <
 2340    PVOID * pvContext);                                                            <
 2341  // #ifdef UNICODE                                                                <
 2342  alias OpenEncryptedFileRawW OpenEncryptedFileRaw;                                <
 2343  // #else                                                                         <
 2344  // #...                                                                          <
 2345  // #endif // !UNICODE                                                            <
 2346                                                                                   <
 2347  extern(Windows) export DWORD ReadEncryptedFileRaw(                               <
 2348    PFE_EXPORT_FUNC pfExportCallback,                                              <
 2349    PVOID pvCallbackContext,                                                       <
 2350    PVOID pvContext);                                                              <
 2351                                                                                   <
 2352  extern(Windows) export DWORD WriteEncryptedFileRaw(                              <
 2353    PFE_IMPORT_FUNC pfImportCallback,                                              <
 2354    PVOID pvCallbackContext,                                                       <
 2355    PVOID pvContext);                                                              <
 2356                                                                                   <
 2357  extern(Windows) export VOID CloseEncryptedFileRaw(                               <
 2358    PVOID pvContext);                                                              <
 2359                                                                                      2802  
 2360  extern(Windows) export int lstrcmpA(                                             <
 2361    LPCSTR lpString1,                                                              <
 2362    LPCSTR lpString2);                                                             <
 2363  extern(Windows) export int lstrcmpW(                                             <
 2364    LPCWSTR lpString1,                                                             <
 2365    LPCWSTR lpString2);                                                            <
 2366  // #ifdef UNICODE                                                                <
 2367  alias lstrcmpW lstrcmp;                                                          <
 2368  // #else                                                                         <
 2369  // #...                                                                          <
 2370  // #endif // !UNICODE                                                            <
 2371                                                                                   <
 2372  extern(Windows) export int lstrcmpiA(                                            <
 2373    LPCSTR lpString1,                                                              <
 2374    LPCSTR lpString2);                                                             <
 2375  extern(Windows) export int lstrcmpiW(                                            <
 2376    LPCWSTR lpString1,                                                             <
 2377    LPCWSTR lpString2);                                                            <
 2378  // #ifdef UNICODE                                                                <
 2379  alias lstrcmpiW lstrcmpi;                                                        <
 2380  // #else                                                                         <
 2381  // #...                                                                          <
 2382  // #endif // !UNICODE                                                            <
 2383                                                                                   <
 2384  extern(Windows) export LPSTR lstrcpynA(                                          <
 2385    LPSTR lpString1,                                                               <
 2386    LPCSTR lpString2,                                                              <
 2387    int iMaxLength);                                                               <
 2388  extern(Windows) export LPWSTR lstrcpynW(                                         <
 2389    LPWSTR lpString1,                                                              <
 2390    LPCWSTR lpString2,                                                             <
 2391    int iMaxLength);                                                               <
 2392  // #ifdef UNICODE                                                                <
 2393  alias lstrcpynW lstrcpyn;                                                        <
 2394  // #else                                                                         <
 2395  // #...                                                                          <
 2396  // #endif // !UNICODE                                                            <
 2397                                                                                   <
 2398  extern(Windows) export LPSTR lstrcpyA(                                           <
 2399    LPSTR lpString1,                                                               <
 2400    LPCSTR lpString2);                                                             <
 2401  extern(Windows) export LPWSTR lstrcpyW(                                          <
 2402    LPWSTR lpString1,                                                              <
 2403    LPCWSTR lpString2);                                                            <
 2404  // #ifdef UNICODE                                                                <
 2405  alias lstrcpyW lstrcpy;                                                          <
 2406  // #else                                                                         <
 2407  // #...                                                                          <
 2408  // #endif // !UNICODE                                                            <
 2409                                                                                   <
 2410  extern(Windows) export LPSTR lstrcatA(                                           <
 2411    LPSTR lpString1,                                                               <
 2412    LPCSTR lpString2);                                                             <
 2413  extern(Windows) export LPWSTR lstrcatW(                                          <
 2414    LPWSTR lpString1,                                                              <
 2415    LPCWSTR lpString2);                                                            <
 2416  // #ifdef UNICODE                                                                <
 2417  alias lstrcatW lstrcat;                                                          <
 2418  // #else                                                                         <
 2419  // #...                                                                          <
 2420  // #endif // !UNICODE                                                            <
 2421                                                                                   <
 2422  extern(Windows) export int lstrlenA(                                             <
 2423    LPCSTR lpString);                                                              <
 2424  extern(Windows) export int lstrlenW(                                             <
 2425    LPCWSTR lpString);                                                             <
 2426  // #ifdef UNICODE                                                                <
 2427  alias lstrlenW lstrlen;                                                          <
 2428  // #else                                                                         <
 2429  // #...                                                                          <
 2430  // #endif // !UNICODE                                                            <
 2431                                                                                   <
 2432  extern(Windows) export HFILE OpenFile(                                           <
 2433    LPCSTR lpFileName,                                                             <
 2434    LPOFSTRUCT lpReOpenBuff,                                                       <
 2435    UINT uStyle);                                                                  <
 2436                                                                                   <
 2437  extern(Windows) export HFILE _lopen(                                             <
 2438    LPCSTR lpPathName,                                                             <
 2439    int iReadWrite);                                                               <
 2440                                                                                   <
 2441  extern(Windows) export HFILE _lcreat(                                            <
 2442    LPCSTR lpPathName,                                                             <
 2443    int iAttribute);                                                               <
 2444                                                                                   <
 2445  extern(Windows) export UINT _lread(                                              <
 2446    HFILE hFile,                                                                   <
 2447    LPVOID lpBuffer,                                                               <
 2448    UINT uBytes);                                                                  <
 2449                                                                                   <
 2450  extern(Windows) export UINT _lwrite(                                             <
 2451    HFILE hFile,                                                                   <
 2452    LPCSTR lpBuffer,                                                               <
 2453    UINT uBytes);                                                                  <
 2454                                                                                   <
 2455  extern(Windows) export int _hread(                                               <
 2456    HFILE hFile,                                                                   <
 2457    LPVOID lpBuffer,                                                               <
 2458    int lBytes);                                                                   <
 2459                                                                                   <
 2460  extern(Windows) export int _hwrite(                                              <
 2461    HFILE hFile,                                                                   <
 2462    LPCSTR lpBuffer,                                                               <
 2463    int lBytes);                                                                   <
 2464                                                                                   <
 2465  extern(Windows) export HFILE _lclose(                                            <
 2466    HFILE hFile);                                                                  <
 2467                                                                                   <
 2468  extern(Windows) export LONG _llseek(                                             <
 2469    HFILE hFile,                                                                   <
 2470    LONG lOffset,                                                                  <
 2471    int iOrigin);                                                                  <
 2472                                                                                   <
 2473  extern(Windows) export BOOL IsTextUnicode(                                       <
 2474    VOID* lpBuffer,                                                                <
 2475    int cb,                                                                        <
 2476    LPINT lpi);                                                                    <
 2477                                                                                   <
 2478  extern(Windows) export DWORD TlsAlloc();                                         <
 2479                                                                                   <
 2480  enum : uint { TLS_OUT_OF_INDEXES = cast(DWORD)0xFFFFFFFF }                       <
 2481                                                                                   <
 2482  extern(Windows) export LPVOID TlsGetValue(                                       <
 2483    DWORD dwTlsIndex);                                                             <
 2484                                                                                   <
 2485  extern(Windows) export BOOL TlsSetValue(                                         <
 2486    DWORD dwTlsIndex,                                                              <
 2487    LPVOID lpTlsValue);                                                            <
 2488                                                                                   <
 2489  extern(Windows) export BOOL TlsFree(                                             <
 2490    DWORD dwTlsIndex);                                                             <
 2491                                                                                   <
 2492  extern(Windows) alias VOID function( DWORD dwErrorCode, DWORD dwNumberOfBytesTra <
 2493                                                                                   <
 2494  extern(Windows) export DWORD SleepEx(                                            <
 2495    DWORD dwMilliseconds,                                                          <
 2496    BOOL bAlertable);                                                              <
 2497                                                                                   <
 2498  extern(Windows) export DWORD WaitForSingleObjectEx(                              <
 2499    HANDLE hHandle,                                                                <
 2500    DWORD dwMilliseconds,                                                          <
 2501    BOOL bAlertable);                                                              <
 2502                                                                                   <
 2503  extern(Windows) export DWORD WaitForMultipleObjectsEx(                           <
 2504    DWORD nCount,                                                                  <
 2505    HANDLE *lpHandles,                                                             <
 2506    BOOL bWaitAll,                                                                 <
 2507    DWORD dwMilliseconds,                                                          <
 2508    BOOL bAlertable);                                                              <
 2509                                                                                   <
 2510  // #if(_WIN32_WINNT >= 0x0400)                                                   |  2803                  static if (_WIN32_WINNT >= 0x502) {
 2511  extern(Windows) export DWORD SignalObjectAndWait(                                <
 2512    HANDLE hObjectToSignal,                                                        <
 2513    HANDLE hObjectToWaitOn,                                                        <
 2514    DWORD dwMilliseconds,                                                          <
 2515    BOOL bAlertable);                                                              <
 2516  // #endif /* _WIN32_WINNT >= 0x0400 */                                           <
                                                                                        >  2804                          alias GetDllDirectoryA GetDllDirectory;
                                                                                        >  2805                          alias SetDllDirectoryA SetDllDirectory;
                                                                                        >  2806                          alias SetFirmwareEnvironmentVariableA SetFirmwareEnviron
 2517                                                                                   |  2807                  }
 2518  extern(Windows) export BOOL ReadFileEx(                                          <
 2519    HANDLE hFile,                                                                  <
 2520    LPVOID lpBuffer,                                                               <
 2521    DWORD nNumberOfBytesToRead,                                                    <
 2522    LPOVERLAPPED lpOverlapped,                                                     <
 2523    LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);                          <
 2524                                                                                   |  2808          }
 2525  extern(Windows) export BOOL WriteFileEx(                                         <
 2526    HANDLE hFile,                                                                  <
 2527    LPCVOID lpBuffer,                                                              <
 2528    DWORD nNumberOfBytesToWrite,                                                   <
 2529    LPOVERLAPPED lpOverlapped,                                                     <
 2530    LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);                          <
 2531                                                                                   <
 2532  extern(Windows) export BOOL BackupRead(                                          <
 2533    HANDLE hFile,                                                                  <
 2534    LPBYTE lpBuffer,                                                               <
 2535    DWORD nNumberOfBytesToRead,                                                    <
 2536    LPDWORD lpNumberOfBytesRead,                                                   <
 2537    BOOL bAbort,                                                                   <
 2538    BOOL bProcessSecurity,                                                         <
 2539    LPVOID *lpContext);                                                            <
 2540                                                                                   <
 2541  extern(Windows) export BOOL BackupSeek(                                          <
 2542    HANDLE hFile,                                                                  <
 2543    DWORD dwLowBytesToSeek,                                                        <
 2544    DWORD dwHighBytesToSeek,                                                       <
 2545    LPDWORD lpdwLowByteSeeked,                                                     <
 2546    LPDWORD lpdwHighByteSeeked,                                                    <
 2547    LPVOID *lpContext);                                                            <
 2548                                                                                   <
 2549  extern(Windows) export BOOL BackupWrite(                                         <
 2550    HANDLE hFile,                                                                  <
 2551    LPBYTE lpBuffer,                                                               <
 2552    DWORD nNumberOfBytesToWrite,                                                   <
 2553    LPDWORD lpNumberOfBytesWritten,                                                <
 2554    BOOL bAbort,                                                                   <
 2555    BOOL bProcessSecurity,                                                         <
 2556    LPVOID *lpContext);                                                            <
 2557                                                                                   <
 2558  struct _WIN32_STREAM_ID {                                                        <
 2559    DWORD dwStreamId ;                                                             <
 2560    DWORD dwStreamAttributes ;                                                     <
 2561    LARGE_INTEGER Size ;                                                           <
 2562    DWORD dwStreamNameSize ;                                                       <
 2563    WCHAR cStreamName[ ANYSIZE_ARRAY ] ;                                           <
 2564  }                                                                                   2809  }
 2565  alias _WIN32_STREAM_ID WIN32_STREAM_ID;                                          <
 2566  alias _WIN32_STREAM_ID* LPWIN32_STREAM_ID;                                       <
 2567                                                                                      2810  
 2568  enum : uint { BACKUP_INVALID = 0x00000000 }                                      |  2811  alias STARTUPINFO* LPSTARTUPINFO;
 2569  enum : uint { BACKUP_DATA = 0x00000001 }                                         |  2812  alias WIN32_FIND_DATA* LPWIN32_FIND_DATA;
 2570  enum : uint { BACKUP_EA_DATA = 0x00000002 }                                      <
 2571  enum : uint { BACKUP_SECURITY_DATA = 0x00000003 }                                <
 2572  enum : uint { BACKUP_ALTERNATE_DATA = 0x00000004 }                               <
 2573  enum : uint { BACKUP_LINK = 0x00000005 }                                         <
 2574  enum : uint { BACKUP_PROPERTY_DATA = 0x00000006 }                                <
 2575  enum : uint { BACKUP_OBJECT_ID = 0x00000007 }                                    <
 2576  enum : uint { BACKUP_REPARSE_DATA = 0x00000008 }                                 <
 2577  enum : uint { BACKUP_SPARSE_BLOCK = 0x00000009 }                                 <
 2578                                                                                   <
 2579  enum : uint { STREAM_NORMAL_ATTRIBUTE = 0x00000000 }                             <
 2580  enum : uint { STREAM_MODIFIED_WHEN_READ = 0x00000001 }                           <
 2581  enum : uint { STREAM_CONTAINS_SECURITY = 0x00000002 }                            <
 2582  enum : uint { STREAM_CONTAINS_PROPERTIES = 0x00000004 }                          <
 2583  enum : uint { STREAM_SPARSE_ATTRIBUTE = 0x00000008 }                             <
 2584                                                                                   <
 2585  extern(Windows) export BOOL ReadFileScatter(                                     <
 2586    HANDLE hFile,                                                                  <
 2587    FILE_SEGMENT_ELEMENT aSegmentArray[],                                          <
 2588    DWORD nNumberOfBytesToRead,                                                    <
 2589    LPDWORD lpReserved,                                                            <
 2590    LPOVERLAPPED lpOverlapped);                                                    <
 2591                                                                                   <
 2592  extern(Windows) export BOOL WriteFileGather(                                     <
 2593    HANDLE hFile,                                                                  <
 2594    FILE_SEGMENT_ELEMENT aSegmentArray[],                                          <
 2595    DWORD nNumberOfBytesToWrite,                                                   <
 2596    LPDWORD lpReserved,                                                            <
 2597    LPOVERLAPPED lpOverlapped);                                                    <
 2598                                                                                   <
 2599  enum : uint { STARTF_USESHOWWINDOW = 0x00000001 }                                <
 2600  enum : uint { STARTF_USESIZE = 0x00000002 }                                      <
 2601  enum : uint { STARTF_USEPOSITION = 0x00000004 }                                  <
 2602  enum : uint { STARTF_USECOUNTCHARS = 0x00000008 }                                <
 2603  enum : uint { STARTF_USEFILLATTRIBUTE = 0x00000010 }                             <
 2604  enum : uint { STARTF_RUNFULLSCREEN = 0x00000020 }                                <
 2605  enum : uint { STARTF_FORCEONFEEDBACK = 0x00000040 }                              <
 2606  enum : uint { STARTF_FORCEOFFFEEDBACK = 0x00000080 }                             <
 2607  enum : uint { STARTF_USESTDHANDLES = 0x00000100 }                                <
 2608                                                                                   <
 2609  // #if(WINVER >= 0x0400)                                                         <
 2610                                                                                      2813  
 2611  enum : uint { STARTF_USEHOTKEY = 0x00000200 }                                    <
 2612  // #endif /* WINVER >= 0x0400 */                                                 <
 2613                                                                                   <
 2614  struct _STARTUPINFOA {                                                           <
 2615    DWORD cb;                                                                      <
 2616    LPSTR lpReserved;                                                              <
 2617    LPSTR lpDesktop;                                                               <
 2618    LPSTR lpTitle;                                                                 <
 2619    DWORD dwX;                                                                     <
 2620    DWORD dwY;                                                                     <
 2621    DWORD dwXSize;                                                                 <
 2622    DWORD dwYSize;                                                                 <
 2623    DWORD dwXCountChars;                                                           <
 2624    DWORD dwYCountChars;                                                           <
 2625    DWORD dwFillAttribute;                                                         <
 2626    DWORD dwFlags;                                                                 <
 2627    WORD wShowWindow;                                                              <
 2628    WORD cbReserved2;                                                              <
 2629    LPBYTE lpReserved2;                                                            <
 2630    HANDLE hStdInput;                                                              <
 2631    HANDLE hStdOutput;                                                             <
 2632    HANDLE hStdError;                                                              <
 2633  }                                                                                <
 2634  alias _STARTUPINFOA STARTUPINFOA;                                                <
 2635  alias _STARTUPINFOA* LPSTARTUPINFOA;                                             <
 2636                                                                                   <
 2637  struct _STARTUPINFOW {                                                           <
 2638    DWORD cb;                                                                      <
 2639    LPWSTR lpReserved;                                                             <
 2640    LPWSTR lpDesktop;                                                              <
 2641    LPWSTR lpTitle;                                                                <
 2642    DWORD dwX;                                                                     <
 2643    DWORD dwY;                                                                     <
 2644    DWORD dwXSize;                                                                 <
 2645    DWORD dwYSize;                                                                 <
 2646    DWORD dwXCountChars;                                                           <
 2647    DWORD dwYCountChars;                                                           <
 2648    DWORD dwFillAttribute;                                                         <
 2649    DWORD dwFlags;                                                                 <
 2650    WORD wShowWindow;                                                              <
 2651    WORD cbReserved2;                                                              <
 2652    LPBYTE lpReserved2;                                                            <
 2653    HANDLE hStdInput;                                                              <
 2654    HANDLE hStdOutput;                                                             <
 2655    HANDLE hStdError;                                                              <
 2656  }                                                                                <
 2657  alias _STARTUPINFOW STARTUPINFOW;                                                <
 2658  alias _STARTUPINFOW* LPSTARTUPINFOW;                                             <
 2659                                                                                   <
 2660  // #ifdef UNICODE                                                                <
 2661  alias STARTUPINFOW STARTUPINFO;                                                  <
 2662  alias LPSTARTUPINFOW LPSTARTUPINFO;                                              <
 2663  // #else                                                                         <
 2664  // ...                                                                           <
 2665  // #endif // UNICODE                                                             <
 2666                                                                                   <
 2667  enum : uint { SHUTDOWN_NORETRY = 0x00000001 }                                    <
 2668                                                                                   <
 2669  struct _WIN32_FIND_DATAA {                                                       <
 2670    DWORD dwFileAttributes;                                                        <
 2671    FILETIME ftCreationTime;                                                       <
 2672    FILETIME ftLastAccessTime;                                                     <
 2673    FILETIME ftLastWriteTime;                                                      <
 2674    DWORD nFileSizeHigh;                                                           <
 2675    DWORD nFileSizeLow;                                                            <
 2676    DWORD dwReserved0;                                                             <
 2677    DWORD dwReserved1;                                                             <
 2678    CHAR cFileName[ MAX_PATH ];                                                    <
 2679    CHAR cAlternateFileName[ 14 ];                                                 <
 2680  // #ifdef _MAC                                                                   <
 2681  // ...                                                                           <
 2682  // #endif                                                                        <
 2683  }                                                                                <
 2684  alias _WIN32_FIND_DATAA WIN32_FIND_DATAA;                                        <
 2685  alias _WIN32_FIND_DATAA* PWIN32_FIND_DATAA;                                      <
 2686  alias _WIN32_FIND_DATAA* LPWIN32_FIND_DATAA;                                     <
 2687                                                                                   <
 2688  struct _WIN32_FIND_DATAW {                                                       <
 2689    DWORD dwFileAttributes;                                                        <
 2690    FILETIME ftCreationTime;                                                       <
 2691    FILETIME ftLastAccessTime;                                                     <
 2692    FILETIME ftLastWriteTime;                                                      <
 2693    DWORD nFileSizeHigh;                                                           <
 2694    DWORD nFileSizeLow;                                                            <
 2695    DWORD dwReserved0;                                                             <
 2696    DWORD dwReserved1;                                                             <
 2697    WCHAR cFileName[ MAX_PATH ];                                                   <
 2698    WCHAR cAlternateFileName[ 14 ];                                                <
 2699  // #ifdef _MAC                                                                   <
 2700  // ...                                                                           <
 2701  // #endif                                                                        <
 2702  }                                                                                <
 2703  alias _WIN32_FIND_DATAW WIN32_FIND_DATAW;                                        <
 2704  alias _WIN32_FIND_DATAW* PWIN32_FIND_DATAW;                                      <
 2705  alias _WIN32_FIND_DATAW* LPWIN32_FIND_DATAW;                                     <
 2706                                                                                   <
 2707  // #ifdef UNICODE                                                                <
 2708  alias WIN32_FIND_DATAW WIN32_FIND_DATA;                                          <
 2709  alias PWIN32_FIND_DATAW PWIN32_FIND_DATA;                                        <
 2710  alias LPWIN32_FIND_DATAW LPWIN32_FIND_DATA;                                      <
 2711  // #else                                                                         <
 2712  // ...                                                                           <
 2713  // #endif // UNICODE                                                             <
 2714                                                                                   <
 2715  struct _WIN32_FILE_ATTRIBUTE_DATA {                                              <
 2716    DWORD dwFileAttributes;                                                        <
 2717    FILETIME ftCreationTime;                                                       <
 2718    FILETIME ftLastAccessTime;                                                     <
 2719    FILETIME ftLastWriteTime;                                                      <
 2720    DWORD nFileSizeHigh;                                                           <
 2721    DWORD nFileSizeLow;                                                            <
 2722  }                                                                                <
 2723  alias _WIN32_FILE_ATTRIBUTE_DATA WIN32_FILE_ATTRIBUTE_DATA;                      <
 2724  alias _WIN32_FILE_ATTRIBUTE_DATA* LPWIN32_FILE_ATTRIBUTE_DATA;                   <
 2725                                                                                   <
 2726  extern(Windows) export HANDLE CreateMutexA(                                      <
 2727    LPSECURITY_ATTRIBUTES lpMutexAttributes,                                       <
 2728    BOOL bInitialOwner,                                                            <
 2729    LPCSTR lpName);                                                                <
 2730  extern(Windows) export HANDLE CreateMutexW(                                      <
 2731    LPSECURITY_ATTRIBUTES lpMutexAttributes,                                       <
 2732    BOOL bInitialOwner,                                                            <
 2733    LPCWSTR lpName);                                                               <
 2734  // #ifdef UNICODE                                                                <
 2735  alias CreateMutexW CreateMutex;                                                  <
 2736  // #else                                                                         <
 2737  // #...                                                                          <
 2738  // #endif // !UNICODE                                                            <
 2739                                                                                   <
 2740  extern(Windows) export HANDLE OpenMutexA(                                        <
 2741    DWORD dwDesiredAccess,                                                         <
 2742    BOOL bInheritHandle,                                                           <
 2743    LPCSTR lpName);                                                                <
 2744  extern(Windows) export HANDLE OpenMutexW(                                        <
 2745    DWORD dwDesiredAccess,                                                         <
 2746    BOOL bInheritHandle,                                                           <
 2747    LPCWSTR lpName);                                                               <
 2748  // #ifdef UNICODE                                                                <
 2749  alias OpenMutexW OpenMutex;                                                      <
 2750  // #else                                                                         <
 2751  // #...                                                                          <
 2752  // #endif // !UNICODE                                                            <
 2753                                                                                   <
 2754  extern(Windows) export HANDLE CreateEventA(                                      <
 2755    LPSECURITY_ATTRIBUTES lpEventAttributes,                                       <
 2756    BOOL bManualReset,                                                             <
 2757    BOOL bInitialState,                                                            <
 2758    LPCSTR lpName);                                                                <
 2759  extern(Windows) export HANDLE CreateEventW(                                      <
 2760    LPSECURITY_ATTRIBUTES lpEventAttributes,                                       <
 2761    BOOL bManualReset,                                                             <
 2762    BOOL bInitialState,                                                            <
 2763    LPCWSTR lpName);                                                               <
 2764  // #ifdef UNICODE                                                                <
 2765  alias CreateEventW CreateEvent;                                                  <
 2766  // #else                                                                         <
 2767  // #...                                                                          <
 2768  // #endif // !UNICODE                                                            <
 2769                                                                                   <
 2770  extern(Windows) export HANDLE OpenEventA(                                        <
 2771    DWORD dwDesiredAccess,                                                         <
 2772    BOOL bInheritHandle,                                                           <
 2773    LPCSTR lpName);                                                                <
 2774  extern(Windows) export HANDLE OpenEventW(                                        <
 2775    DWORD dwDesiredAccess,                                                         <
 2776    BOOL bInheritHandle,                                                           <
 2777    LPCWSTR lpName);                                                               <
 2778  // #ifdef UNICODE                                                                <
 2779  alias OpenEventW OpenEvent;                                                      <
 2780  // #else                                                                         <
 2781  // #...                                                                          <
 2782  // #endif // !UNICODE                                                            <
 2783                                                                                   <
 2784  extern(Windows) export HANDLE CreateSemaphoreA(                                  <
 2785    LPSECURITY_ATTRIBUTES lpSemaphoreAttributes,                                   <
 2786    LONG lInitialCount,                                                            <
 2787    LONG lMaximumCount,                                                            <
 2788    LPCSTR lpName);                                                                <
 2789  extern(Windows) export HANDLE CreateSemaphoreW(                                  <
 2790    LPSECURITY_ATTRIBUTES lpSemaphoreAttributes,                                   <
 2791    LONG lInitialCount,                                                            <
 2792    LONG lMaximumCount,                                                            <
 2793    LPCWSTR lpName);                                                               <
 2794  // #ifdef UNICODE                                                                <
 2795  alias CreateSemaphoreW CreateSemaphore;                                          <
 2796  // #else                                                                         <
 2797  // #...                                                                          <
 2798  // #endif // !UNICODE                                                            <
 2799                                                                                   <
 2800  extern(Windows) export HANDLE OpenSemaphoreA(                                    <
 2801    DWORD dwDesiredAccess,                                                         <
 2802    BOOL bInheritHandle,                                                           <
 2803    LPCSTR lpName);                                                                <
 2804  extern(Windows) export HANDLE OpenSemaphoreW(                                    <
 2805    DWORD dwDesiredAccess,                                                         <
 2806    BOOL bInheritHandle,                                                           <
 2807    LPCWSTR lpName);                                                               <
 2808  // #ifdef UNICODE                                                                <
 2809  alias OpenSemaphoreW OpenSemaphore;                                              <
 2810  // #else                                                                         <
 2811  // #...                                                                          <
 2812  // #endif // !UNICODE                                                            <
 2813                                                                                   <
 2814  // #if (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400)                     |  2814  static if (_WIN32_WINNT_ONLY) {
 2815  extern(Windows) alias VOID function( LPVOID lpArgToCompletionRoutine, DWORD dwTi <
                                                                                        >  2815          alias HW_PROFILE_INFO* LPHW_PROFILE_INFO;
 2816                                                                                      2816  
 2817  extern(Windows) export HANDLE CreateWaitableTimerA(                              <
 2818    LPSECURITY_ATTRIBUTES lpTimerAttributes,                                       <
 2819    BOOL bManualReset,                                                             <
 2820    LPCSTR lpTimerName);                                                           <
 2821  extern(Windows) export HANDLE CreateWaitableTimerW(                              <
 2822    LPSECURITY_ATTRIBUTES lpTimerAttributes,                                       <
 2823    BOOL bManualReset,                                                             <
 2824    LPCWSTR lpTimerName);                                                          <
 2825  // #ifdef UNICODE                                                                <
 2826  alias CreateWaitableTimerW CreateWaitableTimer;                                  <
 2827  // #else                                                                         <
 2828  // #...                                                                          <
 2829  // #endif // !UNICODE                                                            <
 2830                                                                                   <
 2831  extern(Windows) export HANDLE OpenWaitableTimerA(                                <
 2832    DWORD dwDesiredAccess,                                                         <
 2833    BOOL bInheritHandle,                                                           <
 2834    LPCSTR lpTimerName);                                                           <
 2835  extern(Windows) export HANDLE OpenWaitableTimerW(                                <
 2836    DWORD dwDesiredAccess,                                                         <
 2837    BOOL bInheritHandle,                                                           <
 2838    LPCWSTR lpTimerName);                                                          <
 2839  // #ifdef UNICODE                                                                <
 2840  alias OpenWaitableTimerW OpenWaitableTimer;                                      <
 2841  // #else                                                                         <
 2842  // #...                                                                          <
 2843  // #endif // !UNICODE                                                            <
 2844                                                                                   <
 2845  extern(Windows) export BOOL SetWaitableTimer(                                    <
 2846    HANDLE hTimer,                                                                 <
 2847    LARGE_INTEGER *lpDueTime,                                                      <
 2848    LONG lPeriod,                                                                  <
 2849    PTIMERAPCROUTINE pfnCompletionRoutine,                                         <
 2850    LPVOID lpArgToCompletionRoutine,                                               <
 2851    BOOL fResume);                                                                 <
 2852                                                                                   <
 2853  extern(Windows) export BOOL CancelWaitableTimer(                                 <
 2854    HANDLE hTimer);                                                                <
 2855  // #endif /* (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400) */            <
 2856                                                                                   <
 2857  extern(Windows) export HANDLE CreateFileMappingA(                                <
 2858    HANDLE hFile,                                                                  <
 2859    LPSECURITY_ATTRIBUTES lpFileMappingAttributes,                                 <
 2860    DWORD flProtect,                                                               <
 2861    DWORD dwMaximumSizeHigh,                                                       <
 2862    DWORD dwMaximumSizeLow,                                                        <
 2863    LPCSTR lpName);                                                                <
 2864  extern(Windows) export HANDLE CreateFileMappingW(                                <
 2865    HANDLE hFile,                                                                  <
 2866    LPSECURITY_ATTRIBUTES lpFileMappingAttributes,                                 <
 2867    DWORD flProtect,                                                               <
 2868    DWORD dwMaximumSizeHigh,                                                       <
 2869    DWORD dwMaximumSizeLow,                                                        <
 2870    LPCWSTR lpName);                                                               <
 2871  // #ifdef UNICODE                                                                <
 2872  alias CreateFileMappingW CreateFileMapping;                                      <
 2873  // #else                                                                         <
 2874  // #...                                                                          <
 2875  // #endif // !UNICODE                                                            <
 2876                                                                                   <
 2877  extern(Windows) export HANDLE OpenFileMappingA(                                  <
 2878    DWORD dwDesiredAccess,                                                         <
 2879    BOOL bInheritHandle,                                                           <
 2880    LPCSTR lpName);                                                                <
 2881  extern(Windows) export HANDLE OpenFileMappingW(                                  <
 2882    DWORD dwDesiredAccess,                                                         <
 2883    BOOL bInheritHandle,                                                           <
 2884    LPCWSTR lpName);                                                               <
 2885  // #ifdef UNICODE                                                                <
 2886  alias OpenFileMappingW OpenFileMapping;                                          <
 2887  // #else                                                                         <
 2888  // #...                                                                          <
 2889  // #endif // !UNICODE                                                            <
 2890                                                                                   <
 2891  extern(Windows) export DWORD GetLogicalDriveStringsA(                            <
 2892    DWORD nBufferLength,                                                           <
 2893    LPSTR lpBuffer);                                                               <
 2894  extern(Windows) export DWORD GetLogicalDriveStringsW(                            <
 2895    DWORD nBufferLength,                                                           <
 2896    LPWSTR lpBuffer);                                                              <
 2897  // #ifdef UNICODE                                                                <
 2898  alias GetLogicalDriveStringsW GetLogicalDriveStrings;                            <
 2899  // #else                                                                         <
 2900  // #...                                                                          <
 2901  // #endif // !UNICODE                                                            <
 2902                                                                                   <
 2903  // #if _WIN32_WINNT >= 0x0501                                                    <
 2904                                                                                   <
 2905  alias int _MEMORY_RESOURCE_NOTIFICATION_TYPE;                                    <
 2906  enum {                                                                           <
 2907    LowMemoryResourceNotification,                                                 <
 2908    HighMemoryResourceNotification,                                                <
 2909  }                                                                                <
 2910  alias _MEMORY_RESOURCE_NOTIFICATION_TYPE MEMORY_RESOURCE_NOTIFICATION_TYPE;      <
 2911                                                                                   <
 2912  extern(Windows) export HANDLE CreateMemoryResourceNotification(                  <
 2913    MEMORY_RESOURCE_NOTIFICATION_TYPE NotificationType);                           <
 2914                                                                                   <
 2915  extern(Windows) export BOOL QueryMemoryResourceNotification(                     <
 2916    HANDLE ResourceNotificationHandle,                                             <
 2917    PBOOL ResourceState);                                                          <
 2918                                                                                   <
 2919  // #endif // _WIN32_WINNT >= 0x0501                                              <
 2920                                                                                   <
 2921  extern(Windows) export HMODULE LoadLibraryA(                                     <
 2922    LPCSTR lpLibFileName);                                                         <
 2923  extern(Windows) export HMODULE LoadLibraryW(                                     <
 2924    LPCWSTR lpLibFileName);                                                        <
 2925  // #ifdef UNICODE                                                                <
 2926  alias LoadLibraryW LoadLibrary;                                                  <
 2927  // #else                                                                         <
 2928  // #...                                                                          <
 2929  // #endif // !UNICODE                                                            <
 2930                                                                                   <
 2931  extern(Windows) export HMODULE LoadLibraryExA(                                   <
 2932    LPCSTR lpLibFileName,                                                          <
 2933    HANDLE hFile,                                                                  <
 2934    DWORD dwFlags);                                                                <
 2935  extern(Windows) export HMODULE LoadLibraryExW(                                   <
 2936    LPCWSTR lpLibFileName,                                                         <
 2937    HANDLE hFile,                                                                  <
 2938    DWORD dwFlags);                                                                <
 2939  // #ifdef UNICODE                                                                <
 2940  alias LoadLibraryExW LoadLibraryEx;                                              <
 2941  // #else                                                                         <
 2942  // #...                                                                          <
 2943  // #endif // !UNICODE                                                            <
 2944                                                                                   <
 2945  enum : uint { DONT_RESOLVE_DLL_REFERENCES = 0x00000001 }                         <
 2946  enum : uint { LOAD_LIBRARY_AS_DATAFILE = 0x00000002 }                            <
 2947  enum : uint { LOAD_WITH_ALTERED_SEARCH_PATH = 0x00000008 }                       <
 2948  enum : uint { LOAD_IGNORE_CODE_AUTHZ_LEVEL = 0x00000010 }                        <
 2949                                                                                   <
 2950  extern(Windows) export DWORD GetModuleFileNameA(                                 <
 2951    HMODULE hModule,                                                               <
 2952    LPSTR lpFilename,                                                              <
 2953    DWORD nSize);                                                                  <
 2954  extern(Windows) export DWORD GetModuleFileNameW(                                 <
 2955    HMODULE hModule,                                                               <
 2956    LPWSTR lpFilename,                                                             <
 2957    DWORD nSize);                                                                  <
 2958  // #ifdef UNICODE                                                                <
 2959  alias GetModuleFileNameW GetModuleFileName;                                      <
 2960  // #else                                                                         <
 2961  // #...                                                                          <
 2962  // #endif // !UNICODE                                                            <
 2963                                                                                   <
 2964  extern(Windows) export HMODULE GetModuleHandleA(                                 <
 2965    LPCSTR lpModuleName);                                                          <
 2966  extern(Windows) export HMODULE GetModuleHandleW(                                 <
 2967    LPCWSTR lpModuleName);                                                         <
 2968  // #ifdef UNICODE                                                                <
 2969  alias GetModuleHandleW GetModuleHandle;                                          <
 2970  // #else                                                                         <
 2971  // #...                                                                          <
 2972  // #endif // !UNICODE                                                            <
 2973                                                                                   <
 2974  // #if !defined(RC_INVOKED)                                                      <
 2975  // #if _WIN32_WINNT > 0x0500 || defined(WINBASE_DECLARE_GET_MODULE_HANDLE_EX) || <
 2976                                                                                   <
 2977  enum : uint { GET_MODULE_HANDLE_EX_FLAG_PIN = 0x00000001 }                       <
 2978  enum : uint { GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT = 0x00000002 }        <
 2979  enum : uint { GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS = 0x00000004 }              <
 2980                                                                                   <
 2981  extern(Windows) alias BOOL function(  DWORD dwFlags,  LPCSTR lpModuleName,  HMOD <
 2982  extern(Windows) alias BOOL function(  DWORD dwFlags,  LPCWSTR lpModuleName,  HMO <
 2983  // #ifdef UNICODE                                                                <
 2984  alias PGET_MODULE_HANDLE_EXW PGET_MODULE_HANDLE_EX;                              <
 2985  // #else                                                                         <
 2986  // #...                                                                          <
 2987  // #endif // !UNICODE                                                            <
 2988                                                                                   <
 2989  extern(Windows) export BOOL GetModuleHandleExA(                                  <
 2990    DWORD dwFlags,                                                                 <
 2991    LPCSTR lpModuleName,                                                           <
 2992    HMODULE* phModule);                                                            <
 2993  extern(Windows) export BOOL GetModuleHandleExW(                                  <
 2994    DWORD dwFlags,                                                                 <
 2995    LPCWSTR lpModuleName,                                                          <
 2996    HMODULE* phModule);                                                            <
 2997  // #ifdef UNICODE                                                                <
 2998  alias GetModuleHandleExW GetModuleHandleEx;                                      <
 2999  // #else                                                                         <
 3000  // #...                                                                          <
 3001  // #endif // !UNICODE                                                            <
 3002                                                                                   <
 3003  // #endif                                                                        <
 3004  // #endif                                                                        <
 3005                                                                                   <
 3006  extern(Windows) export BOOL CreateProcessA(                                      <
 3007    LPCSTR lpApplicationName,                                                      <
 3008    LPSTR lpCommandLine,                                                           <
 3009    LPSECURITY_ATTRIBUTES lpProcessAttributes,                                     <
 3010    LPSECURITY_ATTRIBUTES lpThreadAttributes,                                      <
 3011    BOOL bInheritHandles,                                                          <
 3012    DWORD dwCreationFlags,                                                         <
 3013    LPVOID lpEnvironment,                                                          <
 3014    LPCSTR lpCurrentDirectory,                                                     <
 3015    LPSTARTUPINFOA lpStartupInfo,                                                  <
 3016    LPPROCESS_INFORMATION lpProcessInformation);                                   <
 3017  extern(Windows) export BOOL CreateProcessW(                                      <
 3018    LPCWSTR lpApplicationName,                                                     <
 3019    LPWSTR lpCommandLine,                                                          <
 3020    LPSECURITY_ATTRIBUTES lpProcessAttributes,                                     <
 3021    LPSECURITY_ATTRIBUTES lpThreadAttributes,                                      <
 3022    BOOL bInheritHandles,                                                          <
 3023    DWORD dwCreationFlags,                                                         <
 3024    LPVOID lpEnvironment,                                                          <
 3025    LPCWSTR lpCurrentDirectory,                                                    <
 3026    LPSTARTUPINFOW lpStartupInfo,                                                  <
 3027    LPPROCESS_INFORMATION lpProcessInformation);                                   <
 3028  // #ifdef UNICODE                                                                <
 3029  alias CreateProcessW CreateProcess;                                              <
 3030  // #else                                                                         <
 3031  // #...                                                                          <
 3032  // #endif // !UNICODE                                                            <
 3033                                                                                   <
 3034  extern(Windows) export BOOL SetProcessShutdownParameters(                        <
 3035    DWORD dwLevel,                                                                 <
 3036    DWORD dwFlags);                                                                <
 3037                                                                                   <
 3038  extern(Windows) export BOOL GetProcessShutdownParameters(                        <
 3039    LPDWORD lpdwLevel,                                                             <
 3040    LPDWORD lpdwFlags);                                                            <
 3041                                                                                   <
 3042  extern(Windows) export DWORD GetProcessVersion(                                  <
 3043    DWORD ProcessId);                                                              <
 3044                                                                                   <
 3045  extern(Windows) export VOID FatalAppExitA(                                       <
 3046    UINT uAction,                                                                  <
 3047    LPCSTR lpMessageText);                                                         <
 3048  extern(Windows) export VOID FatalAppExitW(                                       <
 3049    UINT uAction,                                                                  <
 3050    LPCWSTR lpMessageText);                                                        <
 3051  // #ifdef UNICODE                                                                <
 3052  alias FatalAppExitW FatalAppExit;                                                <
 3053  // #else                                                                         <
 3054  // #...                                                                          <
 3055  // #endif // !UNICODE                                                            <
 3056                                                                                   <
 3057  extern(Windows) export VOID GetStartupInfoA(                                     <
 3058    LPSTARTUPINFOA lpStartupInfo);                                                 <
 3059  extern(Windows) export VOID GetStartupInfoW(                                     <
 3060    LPSTARTUPINFOW lpStartupInfo);                                                 <
 3061  // #ifdef UNICODE                                                                <
 3062  alias GetStartupInfoW GetStartupInfo;                                            <
 3063  // #else                                                                         <
 3064  // #...                                                                          <
 3065  // #endif // !UNICODE                                                            <
 3066                                                                                   <
 3067  extern(Windows) export LPSTR GetCommandLineA();                                  <
 3068  extern(Windows) export LPWSTR GetCommandLineW();                                 <
 3069  // #ifdef UNICODE                                                                <
 3070  alias GetCommandLineW GetCommandLine;                                            <
 3071  // #else                                                                         <
 3072  // #...                                                                          <
 3073  // #endif // !UNICODE                                                            <
 3074                                                                                   <
 3075  extern(Windows) export DWORD GetEnvironmentVariableA(                            <
 3076    LPCSTR lpName,                                                                 <
 3077    LPSTR lpBuffer,                                                                <
 3078    DWORD nSize);                                                                  <
 3079  extern(Windows) export DWORD GetEnvironmentVariableW(                            <
 3080    LPCWSTR lpName,                                                                <
 3081    LPWSTR lpBuffer,                                                               <
 3082    DWORD nSize);                                                                  <
 3083  // #ifdef UNICODE                                                                <
 3084  alias GetEnvironmentVariableW GetEnvironmentVariable;                            <
 3085  // #else                                                                         <
 3086  // #...                                                                          <
 3087  // #endif // !UNICODE                                                            <
 3088                                                                                   <
 3089  extern(Windows) export BOOL SetEnvironmentVariableA(                             <
 3090    LPCSTR lpName,                                                                 <
 3091    LPCSTR lpValue);                                                               <
 3092  extern(Windows) export BOOL SetEnvironmentVariableW(                             <
 3093    LPCWSTR lpName,                                                                <
 3094    LPCWSTR lpValue);                                                              <
 3095  // #ifdef UNICODE                                                                <
 3096  alias SetEnvironmentVariableW SetEnvironmentVariable;                            <
 3097  // #else                                                                         <
 3098  // #...                                                                          <
 3099  // #endif // !UNICODE                                                            <
 3100                                                                                   <
 3101  extern(Windows) export DWORD ExpandEnvironmentStringsA(                          <
 3102    LPCSTR lpSrc,                                                                  <
 3103    LPSTR lpDst,                                                                   <
 3104    DWORD nSize);                                                                  <
 3105  extern(Windows) export DWORD ExpandEnvironmentStringsW(                          <
 3106    LPCWSTR lpSrc,                                                                 <
 3107    LPWSTR lpDst,                                                                  <
 3108    DWORD nSize);                                                                  <
 3109  // #ifdef UNICODE                                                                <
 3110  alias ExpandEnvironmentStringsW ExpandEnvironmentStrings;                        <
 3111  // #else                                                                         <
 3112  // #...                                                                          <
 3113  // #endif // !UNICODE                                                            <
 3114                                                                                   <
 3115  extern(Windows) export DWORD GetFirmwareEnvironmentVariableA(                    <
 3116    LPCSTR lpName,                                                                 <
 3117    LPCSTR lpGuid,                                                                 <
 3118    PVOID pBuffer,                                                                 <
 3119    DWORD nSize);                                                                  <
 3120  extern(Windows) export DWORD GetFirmwareEnvironmentVariableW(                    <
 3121    LPCWSTR lpName,                                                                <
 3122    LPCWSTR lpGuid,                                                                <
 3123    PVOID pBuffer,                                                                 <
 3124    DWORD nSize);                                                                  <
 3125  // #ifdef UNICODE                                                                <
 3126  alias GetFirmwareEnvironmentVariableW GetFirmwareEnvironmentVariable;            <
 3127  // #else                                                                         <
 3128  // #...                                                                          <
 3129  // #endif // !UNICODE                                                            <
 3130                                                                                   <
 3131  extern(Windows) export BOOL SetFirmwareEnvironmentVariableA(                     <
 3132    LPCSTR lpName,                                                                 <
 3133    LPCSTR lpGuid,                                                                 <
 3134    PVOID pValue,                                                                  <
 3135    DWORD nSize);                                                                  <
 3136  extern(Windows) export BOOL SetFirmwareEnvironmentVariableW(                     <
 3137    LPCWSTR lpName,                                                                <
 3138    LPCWSTR lpGuid,                                                                <
 3139    PVOID pValue,                                                                  <
 3140    DWORD nSize);                                                                  <
 3141  // #ifdef UNICODE                                                                <
 3142  alias SetFirmwareEnvironmentVariableW SetFirmwareEnvironmentVariable;            <
 3143  // #else                                                                         <
 3144  // #...                                                                          <
 3145  // #endif // !UNICODE                                                            <
 3146                                                                                   <
 3147  extern(Windows) export VOID OutputDebugStringA(                                  <
 3148    LPCSTR lpOutputString);                                                        <
 3149  extern(Windows) export VOID OutputDebugStringW(                                  <
 3150    LPCWSTR lpOutputString);                                                       <
 3151  // #ifdef UNICODE                                                                <
 3152  alias OutputDebugStringW OutputDebugString;                                      <
 3153  // #else                                                                         <
 3154  // #...                                                                          <
 3155  // #endif // !UNICODE                                                            <
 3156                                                                                   <
 3157  extern(Windows) export HRSRC FindResourceA(                                      <
 3158    HMODULE hModule,                                                               <
 3159    LPCSTR lpName,                                                                 <
 3160    LPCSTR lpType);                                                                <
 3161  extern(Windows) export HRSRC FindResourceW(                                      <
 3162    HMODULE hModule,                                                               <
 3163    LPCWSTR lpName,                                                                <
 3164    LPCWSTR lpType);                                                               <
 3165  // #ifdef UNICODE                                                                <
 3166  alias FindResourceW FindResource;                                                <
 3167  // #else                                                                         <
 3168  // #...                                                                          <
 3169  // #endif // !UNICODE                                                            <
 3170                                                                                   <
 3171  extern(Windows) export HRSRC FindResourceExA(                                    <
 3172    HMODULE hModule,                                                               <
 3173    LPCSTR lpType,                                                                 <
 3174    LPCSTR lpName,                                                                 <
 3175    WORD wLanguage);                                                               <
 3176  extern(Windows) export HRSRC FindResourceExW(                                    <
 3177    HMODULE hModule,                                                               <
 3178    LPCWSTR lpType,                                                                <
 3179    LPCWSTR lpName,                                                                <
 3180    WORD wLanguage);                                                               <
 3181  // #ifdef UNICODE                                                                <
 3182  alias FindResourceExW FindResourceEx;                                            <
 3183  // #else                                                                         <
 3184  // #...                                                                          <
 3185  // #endif // !UNICODE                                                            <
 3186                                                                                   <
 3187  // #ifdef STRICT                                                                 <
 3188  extern(Windows) alias BOOL function(HMODULE hModule, LPSTR lpType, LONG_PTR lPar <
 3189  extern(Windows) alias BOOL function(HMODULE hModule, LPWSTR lpType, LONG_PTR lPa <
 3190  // #ifdef UNICODE                                                                <
 3191  alias ENUMRESTYPEPROCW ENUMRESTYPEPROC;                                          <
 3192  // #else                                                                         <
 3193  // #...                                                                          <
 3194  // #endif // !UNICODE                                                            <
 3195  extern(Windows) alias BOOL function(HMODULE hModule, LPCSTR lpType, LPSTR lpName <
 3196  extern(Windows) alias BOOL function(HMODULE hModule, LPCWSTR lpType, LPWSTR lpNa <
 3197  // #ifdef UNICODE                                                                <
 3198  alias ENUMRESNAMEPROCW ENUMRESNAMEPROC;                                          <
 3199  // #else                                                                         <
 3200  // #...                                                                          <
 3201  // #endif // !UNICODE                                                            <
 3202  extern(Windows) alias BOOL function(HMODULE hModule, LPCSTR lpType, LPCSTR lpNam <
 3203  extern(Windows) alias BOOL function(HMODULE hModule, LPCWSTR lpType, LPCWSTR lpN <
 3204  // #ifdef UNICODE                                                                <
 3205  alias ENUMRESLANGPROCW ENUMRESLANGPROC;                                          <
 3206  // #else                                                                         <
 3207  // #...                                                                          <
 3208  // #endif // !UNICODE                                                            <
 3209  // #else                                                                         <
 3210  // ...                                                                           <
 3211  // #ifdef UNICODE                                                                <
 3212  // ...                                                                           <
 3213  // #else                                                                         <
 3214  // ...                                                                           <
 3215  // #endif // UNICODE                                                             <
 3216  // ...                                                                           <
 3217  // #ifdef UNICODE                                                                <
 3218  // ...                                                                           <
 3219  // #else                                                                         <
 3220  // ...                                                                           <
 3221  // #endif // UNICODE                                                             <
 3222  // ...                                                                           <
 3223  // #ifdef UNICODE                                                                <
 3224  // ...                                                                           <
 3225  // #else                                                                         <
 3226  // ...                                                                           <
 3227  // #endif // UNICODE                                                             <
 3228  // #endif                                                                        <
 3229                                                                                   <
 3230  extern(Windows) export BOOL EnumResourceTypesA(                                  <
 3231    HMODULE hModule,                                                               <
 3232    ENUMRESTYPEPROCA lpEnumFunc,                                                   <
 3233    LONG_PTR lParam);                                                              <
 3234  extern(Windows) export BOOL EnumResourceTypesW(                                  <
 3235    HMODULE hModule,                                                               <
 3236    ENUMRESTYPEPROCW lpEnumFunc,                                                   <
 3237    LONG_PTR lParam);                                                              <
 3238  // #ifdef UNICODE                                                                <
 3239  alias EnumResourceTypesW EnumResourceTypes;                                      <
 3240  // #else                                                                         <
 3241  // #...                                                                          <
 3242  // #endif // !UNICODE                                                            <
 3243                                                                                   <
 3244  extern(Windows) export BOOL EnumResourceNamesA(                                  <
 3245    HMODULE hModule,                                                               <
 3246    LPCSTR lpType,                                                                 <
 3247    ENUMRESNAMEPROCA lpEnumFunc,                                                   <
 3248    LONG_PTR lParam);                                                              <
 3249  extern(Windows) export BOOL EnumResourceNamesW(                                  <
 3250    HMODULE hModule,                                                               <
 3251    LPCWSTR lpType,                                                                <
 3252    ENUMRESNAMEPROCW lpEnumFunc,                                                   <
 3253    LONG_PTR lParam);                                                              <
 3254  // #ifdef UNICODE                                                                <
 3255  alias EnumResourceNamesW EnumResourceNames;                                      <
 3256  // #else                                                                         <
 3257  // #...                                                                          <
 3258  // #endif // !UNICODE                                                            <
 3259                                                                                   <
 3260  extern(Windows) export BOOL EnumResourceLanguagesA(                              <
 3261    HMODULE hModule,                                                               <
 3262    LPCSTR lpType,                                                                 <
 3263    LPCSTR lpName,                                                                 <
 3264    ENUMRESLANGPROCA lpEnumFunc,                                                   <
 3265    LONG_PTR lParam);                                                              <
 3266  extern(Windows) export BOOL EnumResourceLanguagesW(                              <
 3267    HMODULE hModule,                                                               <
 3268    LPCWSTR lpType,                                                                <
 3269    LPCWSTR lpName,                                                                <
 3270    ENUMRESLANGPROCW lpEnumFunc,                                                   <
 3271    LONG_PTR lParam);                                                              <
 3272  // #ifdef UNICODE                                                                <
 3273  alias EnumResourceLanguagesW EnumResourceLanguages;                              <
 3274  // #else                                                                         <
 3275  // #...                                                                          <
 3276  // #endif // !UNICODE                                                            <
 3277                                                                                   <
 3278  extern(Windows) export HANDLE BeginUpdateResourceA(                              <
 3279    LPCSTR pFileName,                                                              <
 3280    BOOL bDeleteExistingResources);                                                <
 3281  extern(Windows) export HANDLE BeginUpdateResourceW(                              <
 3282    LPCWSTR pFileName,                                                             <
 3283    BOOL bDeleteExistingResources);                                                <
 3284  // #ifdef UNICODE                                                                <
 3285  alias BeginUpdateResourceW BeginUpdateResource;                                  <
 3286  // #else                                                                         <
 3287  // #...                                                                          <
 3288  // #endif // !UNICODE                                                            <
 3289                                                                                   <
 3290  extern(Windows) export BOOL UpdateResourceA(                                     <
 3291    HANDLE hUpdate,                                                                <
 3292    LPCSTR lpType,                                                                 <
 3293    LPCSTR lpName,                                                                 <
 3294    WORD wLanguage,                                                                <
 3295    LPVOID lpData,                                                                 <
 3296    DWORD cbData);                                                                 <
 3297  extern(Windows) export BOOL UpdateResourceW(                                     <
 3298    HANDLE hUpdate,                                                                <
 3299    LPCWSTR lpType,                                                                <
 3300    LPCWSTR lpName,                                                                <
 3301    WORD wLanguage,                                                                <
 3302    LPVOID lpData,                                                                 <
 3303    DWORD cbData);                                                                 <
 3304  // #ifdef UNICODE                                                                <
 3305  alias UpdateResourceW UpdateResource;                                            <
 3306  // #else                                                                         <
 3307  // #...                                                                          <
 3308  // #endif // !UNICODE                                                            <
 3309                                                                                   <
 3310  extern(Windows) export BOOL EndUpdateResourceA(                                  <
 3311    HANDLE hUpdate,                                                                <
 3312    BOOL fDiscard);                                                                <
 3313  extern(Windows) export BOOL EndUpdateResourceW(                                  <
 3314    HANDLE hUpdate,                                                                <
 3315    BOOL fDiscard);                                                                <
 3316  // #ifdef UNICODE                                                                <
 3317  alias EndUpdateResourceW EndUpdateResource;                                      <
 3318  // #else                                                                         <
 3319  // #...                                                                          <
 3320  // #endif // !UNICODE                                                            <
 3321                                                                                   <
 3322  extern(Windows) export ATOM GlobalAddAtomA(                                      <
 3323    LPCSTR lpString);                                                              <
 3324  extern(Windows) export ATOM GlobalAddAtomW(                                      <
 3325    LPCWSTR lpString);                                                             <
 3326  // #ifdef UNICODE                                                                <
 3327  alias GlobalAddAtomW GlobalAddAtom;                                              <
 3328  // #else                                                                         <
 3329  // #...                                                                          <
 3330  // #endif // !UNICODE                                                            <
 3331                                                                                   <
 3332  extern(Windows) export ATOM GlobalFindAtomA(                                     <
 3333    LPCSTR lpString);                                                              <
 3334  extern(Windows) export ATOM GlobalFindAtomW(                                     <
 3335    LPCWSTR lpString);                                                             <
 3336  // #ifdef UNICODE                                                                <
 3337  alias GlobalFindAtomW GlobalFindAtom;                                            <
 3338  // #else                                                                         <
 3339  // #...                                                                          <
 3340  // #endif // !UNICODE                                                            <
 3341                                                                                   <
 3342  extern(Windows) export UINT GlobalGetAtomNameA(                                  <
 3343    ATOM nAtom,                                                                    <
 3344    LPSTR lpBuffer,                                                                <
 3345    int nSize);                                                                    <
 3346  extern(Windows) export UINT GlobalGetAtomNameW(                                  <
 3347    ATOM nAtom,                                                                    <
 3348    LPWSTR lpBuffer,                                                               <
 3349    int nSize);                                                                    <
 3350  // #ifdef UNICODE                                                                <
 3351  alias GlobalGetAtomNameW GlobalGetAtomName;                                      <
 3352  // #else                                                                         <
 3353  // #...                                                                          <
 3354  // #endif // !UNICODE                                                            <
 3355                                                                                   <
 3356  extern(Windows) export ATOM AddAtomA(                                            <
 3357    LPCSTR lpString);                                                              <
 3358  extern(Windows) export ATOM AddAtomW(                                            <
 3359    LPCWSTR lpString);                                                             <
 3360  // #ifdef UNICODE                                                                <
 3361  alias AddAtomW AddAtom;                                                          <
 3362  // #else                                                                         <
 3363  // #...                                                                          <
 3364  // #endif // !UNICODE                                                            <
 3365                                                                                   <
 3366  extern(Windows) export ATOM FindAtomA(                                           <
 3367    LPCSTR lpString);                                                              <
 3368  extern(Windows) export ATOM FindAtomW(                                           <
 3369    LPCWSTR lpString);                                                             <
 3370  // #ifdef UNICODE                                                                <
 3371  alias FindAtomW FindAtom;                                                        <
 3372  // #else                                                                         <
 3373  // #...                                                                          <
 3374  // #endif // !UNICODE                                                            <
 3375                                                                                   <
 3376  extern(Windows) export UINT GetAtomNameA(                                        <
 3377    ATOM nAtom,                                                                    <
 3378    LPSTR lpBuffer,                                                                <
 3379    int nSize);                                                                    <
 3380  extern(Windows) export UINT GetAtomNameW(                                        <
 3381    ATOM nAtom,                                                                    <
 3382    LPWSTR lpBuffer,                                                               <
 3383    int nSize);                                                                    <
 3384  // #ifdef UNICODE                                                                <
 3385  alias GetAtomNameW GetAtomName;                                                  <
 3386  // #else                                                                         <
 3387  // #...                                                                          <
 3388  // #endif // !UNICODE                                                            <
 3389                                                                                   <
 3390  extern(Windows) export UINT GetProfileIntA(                                      <
 3391    LPCSTR lpAppName,                                                              <
 3392    LPCSTR lpKeyName,                                                              <
 3393    INT nDefault);                                                                 <
 3394  extern(Windows) export UINT GetProfileIntW(                                      <
 3395    LPCWSTR lpAppName,                                                             <
 3396    LPCWSTR lpKeyName,                                                             <
 3397    INT nDefault);                                                                 <
 3398  // #ifdef UNICODE                                                                <
 3399  alias GetProfileIntW GetProfileInt;                                              <
 3400  // #else                                                                         <
 3401  // #...                                                                          <
 3402  // #endif // !UNICODE                                                            <
 3403                                                                                   <
 3404  extern(Windows) export DWORD GetProfileStringA(                                  <
 3405    LPCSTR lpAppName,                                                              <
 3406    LPCSTR lpKeyName,                                                              <
 3407    LPCSTR lpDefault,                                                              <
 3408    LPSTR lpReturnedString,                                                        <
 3409    DWORD nSize);                                                                  <
 3410  extern(Windows) export DWORD GetProfileStringW(                                  <
 3411    LPCWSTR lpAppName,                                                             <
 3412    LPCWSTR lpKeyName,                                                             <
 3413    LPCWSTR lpDefault,                                                             <
 3414    LPWSTR lpReturnedString,                                                       <
 3415    DWORD nSize);                                                                  <
 3416  // #ifdef UNICODE                                                                <
 3417  alias GetProfileStringW GetProfileString;                                        <
 3418  // #else                                                                         <
 3419  // #...                                                                          <
 3420  // #endif // !UNICODE                                                            <
 3421                                                                                   <
 3422  extern(Windows) export BOOL WriteProfileStringA(                                 <
 3423    LPCSTR lpAppName,                                                              <
 3424    LPCSTR lpKeyName,                                                              <
 3425    LPCSTR lpString);                                                              <
 3426  extern(Windows) export BOOL WriteProfileStringW(                                 <
 3427    LPCWSTR lpAppName,                                                             <
 3428    LPCWSTR lpKeyName,                                                             <
 3429    LPCWSTR lpString);                                                             <
 3430  // #ifdef UNICODE                                                                <
 3431  alias WriteProfileStringW WriteProfileString;                                    <
 3432  // #else                                                                         <
 3433  // #...                                                                          <
 3434  // #endif // !UNICODE                                                            <
 3435                                                                                   <
 3436  extern(Windows) export DWORD GetProfileSectionA(                                 <
 3437    LPCSTR lpAppName,                                                              <
 3438    LPSTR lpReturnedString,                                                        <
 3439    DWORD nSize);                                                                  <
 3440  extern(Windows) export DWORD GetProfileSectionW(                                 <
 3441    LPCWSTR lpAppName,                                                             <
 3442    LPWSTR lpReturnedString,                                                       <
 3443    DWORD nSize);                                                                  <
 3444  // #ifdef UNICODE                                                                <
 3445  alias GetProfileSectionW GetProfileSection;                                      <
 3446  // #else                                                                         <
 3447  // #...                                                                          <
 3448  // #endif // !UNICODE                                                            <
 3449                                                                                   <
 3450  extern(Windows) export BOOL WriteProfileSectionA(                                <
 3451    LPCSTR lpAppName,                                                              <
 3452    LPCSTR lpString);                                                              <
 3453  extern(Windows) export BOOL WriteProfileSectionW(                                <
 3454    LPCWSTR lpAppName,                                                             <
 3455    LPCWSTR lpString);                                                             <
 3456  // #ifdef UNICODE                                                                <
 3457  alias WriteProfileSectionW WriteProfileSection;                                  <
 3458  // #else                                                                         <
 3459  // #...                                                                          <
 3460  // #endif // !UNICODE                                                            <
 3461                                                                                   <
 3462  extern(Windows) export UINT GetPrivateProfileIntA(                               <
 3463    LPCSTR lpAppName,                                                              <
 3464    LPCSTR lpKeyName,                                                              <
 3465    INT nDefault,                                                                  <
 3466    LPCSTR lpFileName);                                                            <
 3467  extern(Windows) export UINT GetPrivateProfileIntW(                               <
 3468    LPCWSTR lpAppName,                                                             <
 3469    LPCWSTR lpKeyName,                                                             <
 3470    INT nDefault,                                                                  <
 3471    LPCWSTR lpFileName);                                                           <
 3472  // #ifdef UNICODE                                                                <
 3473  alias GetPrivateProfileIntW GetPrivateProfileInt;                                <
 3474  // #else                                                                         <
 3475  // #...                                                                          <
 3476  // #endif // !UNICODE                                                            <
 3477                                                                                   <
 3478  extern(Windows) export DWORD GetPrivateProfileStringA(                           <
 3479    LPCSTR lpAppName,                                                              <
 3480    LPCSTR lpKeyName,                                                              <
 3481    LPCSTR lpDefault,                                                              <
 3482    LPSTR lpReturnedString,                                                        <
 3483    DWORD nSize,                                                                   <
 3484    LPCSTR lpFileName);                                                            <
 3485  extern(Windows) export DWORD GetPrivateProfileStringW(                           <
 3486    LPCWSTR lpAppName,                                                             <
 3487    LPCWSTR lpKeyName,                                                             <
 3488    LPCWSTR lpDefault,                                                             <
 3489    LPWSTR lpReturnedString,                                                       <
 3490    DWORD nSize,                                                                   <
 3491    LPCWSTR lpFileName);                                                           <
 3492  // #ifdef UNICODE                                                                <
 3493  alias GetPrivateProfileStringW GetPrivateProfileString;                          <
 3494  // #else                                                                         <
 3495  // #...                                                                          <
 3496  // #endif // !UNICODE                                                            <
 3497                                                                                   <
 3498  extern(Windows) export BOOL WritePrivateProfileStringA(                          <
 3499    LPCSTR lpAppName,                                                              <
 3500    LPCSTR lpKeyName,                                                              <
 3501    LPCSTR lpString,                                                               <
 3502    LPCSTR lpFileName);                                                            <
 3503  extern(Windows) export BOOL WritePrivateProfileStringW(                          <
 3504    LPCWSTR lpAppName,                                                             <
 3505    LPCWSTR lpKeyName,                                                             <
 3506    LPCWSTR lpString,                                                              <
 3507    LPCWSTR lpFileName);                                                           <
 3508  // #ifdef UNICODE                                                                <
 3509  alias WritePrivateProfileStringW WritePrivateProfileString;                      <
 3510  // #else                                                                         <
 3511  // #...                                                                          <
 3512  // #endif // !UNICODE                                                            <
 3513                                                                                   <
 3514  extern(Windows) export DWORD GetPrivateProfileSectionA(                          <
 3515    LPCSTR lpAppName,                                                              <
 3516    LPSTR lpReturnedString,                                                        <
 3517    DWORD nSize,                                                                   <
 3518    LPCSTR lpFileName);                                                            <
 3519  extern(Windows) export DWORD GetPrivateProfileSectionW(                          <
 3520    LPCWSTR lpAppName,                                                             <
 3521    LPWSTR lpReturnedString,                                                       <
 3522    DWORD nSize,                                                                   <
 3523    LPCWSTR lpFileName);                                                           <
 3524  // #ifdef UNICODE                                                                <
 3525  alias GetPrivateProfileSectionW GetPrivateProfileSection;                        <
 3526  // #else                                                                         <
 3527  // #...                                                                          <
 3528  // #endif // !UNICODE                                                            <
 3529                                                                                   <
 3530  extern(Windows) export BOOL WritePrivateProfileSectionA(                         <
 3531    LPCSTR lpAppName,                                                              <
 3532    LPCSTR lpString,                                                               <
 3533    LPCSTR lpFileName);                                                            <
 3534  extern(Windows) export BOOL WritePrivateProfileSectionW(                         <
 3535    LPCWSTR lpAppName,                                                             <
 3536    LPCWSTR lpString,                                                              <
 3537    LPCWSTR lpFileName);                                                           <
 3538  // #ifdef UNICODE                                                                <
 3539  alias WritePrivateProfileSectionW WritePrivateProfileSection;                    <
 3540  // #else                                                                         <
 3541  // #...                                                                          <
 3542  // #endif // !UNICODE                                                            <
 3543                                                                                   <
 3544  extern(Windows) export DWORD GetPrivateProfileSectionNamesA(                     <
 3545    LPSTR lpszReturnBuffer,                                                        <
 3546    DWORD nSize,                                                                   <
 3547    LPCSTR lpFileName);                                                            <
 3548  extern(Windows) export DWORD GetPrivateProfileSectionNamesW(                     <
 3549    LPWSTR lpszReturnBuffer,                                                       <
 3550    DWORD nSize,                                                                   <
 3551    LPCWSTR lpFileName);                                                           <
 3552  // #ifdef UNICODE                                                                <
 3553  alias GetPrivateProfileSectionNamesW GetPrivateProfileSectionNames;              <
 3554  // #else                                                                         <
 3555  // #...                                                                          <
 3556  // #endif // !UNICODE                                                            <
 3557                                                                                   <
 3558  extern(Windows) export BOOL GetPrivateProfileStructA(                            <
 3559    LPCSTR lpszSection,                                                            <
 3560    LPCSTR lpszKey,                                                                <
 3561    LPVOID lpStruct,                                                               <
 3562    UINT uSizeStruct,                                                              <
 3563    LPCSTR szFile);                                                                <
 3564  extern(Windows) export BOOL GetPrivateProfileStructW(                            <
 3565    LPCWSTR lpszSection,                                                           <
 3566    LPCWSTR lpszKey,                                                               <
 3567    LPVOID lpStruct,                                                               <
 3568    UINT uSizeStruct,                                                              <
 3569    LPCWSTR szFile);                                                               <
 3570  // #ifdef UNICODE                                                                <
 3571  alias GetPrivateProfileStructW GetPrivateProfileStruct;                          <
 3572  // #else                                                                         <
 3573  // #...                                                                          <
 3574  // #endif // !UNICODE                                                            <
 3575                                                                                   <
 3576  extern(Windows) export BOOL WritePrivateProfileStructA(                          <
 3577    LPCSTR lpszSection,                                                            <
 3578    LPCSTR lpszKey,                                                                <
 3579    LPVOID lpStruct,                                                               <
 3580    UINT uSizeStruct,                                                              <
 3581    LPCSTR szFile);                                                                <
 3582  extern(Windows) export BOOL WritePrivateProfileStructW(                          <
 3583    LPCWSTR lpszSection,                                                           <
 3584    LPCWSTR lpszKey,                                                               <
 3585    LPVOID lpStruct,                                                               <
 3586    UINT uSizeStruct,                                                              <
 3587    LPCWSTR szFile);                                                               <
 3588  // #ifdef UNICODE                                                                <
 3589  alias WritePrivateProfileStructW WritePrivateProfileStruct;                      <
 3590  // #else                                                                         <
 3591  // #...                                                                          <
 3592  // #endif // !UNICODE                                                            <
 3593                                                                                   <
 3594  extern(Windows) export UINT GetDriveTypeA(                                       <
 3595    LPCSTR lpRootPathName);                                                        <
 3596  extern(Windows) export UINT GetDriveTypeW(                                       <
 3597    LPCWSTR lpRootPathName);                                                       <
 3598  // #ifdef UNICODE                                                                <
 3599  alias GetDriveTypeW GetDriveType;                                                <
 3600  // #else                                                                         <
 3601  // #...                                                                          <
 3602  // #endif // !UNICODE                                                            <
 3603                                                                                   <
 3604  extern(Windows) export UINT GetSystemDirectoryA(                                 <
 3605    LPSTR lpBuffer,                                                                <
 3606    UINT uSize);                                                                   <
 3607  extern(Windows) export UINT GetSystemDirectoryW(                                 <
 3608    LPWSTR lpBuffer,                                                               <
 3609    UINT uSize);                                                                   <
 3610  // #ifdef UNICODE                                                                <
 3611  alias GetSystemDirectoryW GetSystemDirectory;                                    <
 3612  // #else                                                                         <
 3613  // #...                                                                          <
 3614  // #endif // !UNICODE                                                            <
 3615                                                                                   <
 3616  extern(Windows) export DWORD GetTempPathA(                                       <
 3617    DWORD nBufferLength,                                                           <
 3618    LPSTR lpBuffer);                                                               <
 3619  extern(Windows) export DWORD GetTempPathW(                                       <
 3620    DWORD nBufferLength,                                                           <
 3621    LPWSTR lpBuffer);                                                              <
 3622  // #ifdef UNICODE                                                                <
 3623  alias GetTempPathW GetTempPath;                                                  <
 3624  // #else                                                                         <
 3625  // #...                                                                          <
 3626  // #endif // !UNICODE                                                            <
 3627                                                                                   <
 3628  extern(Windows) export UINT GetTempFileNameA(                                    <
 3629    LPCSTR lpPathName,                                                             <
 3630    LPCSTR lpPrefixString,                                                         <
 3631    UINT uUnique,                                                                  <
 3632    LPSTR lpTempFileName);                                                         <
 3633  extern(Windows) export UINT GetTempFileNameW(                                    <
 3634    LPCWSTR lpPathName,                                                            <
 3635    LPCWSTR lpPrefixString,                                                        <
 3636    UINT uUnique,                                                                  <
 3637    LPWSTR lpTempFileName);                                                        <
 3638  // #ifdef UNICODE                                                                <
 3639  alias GetTempFileNameW GetTempFileName;                                          <
 3640  // #else                                                                         <
 3641  // #...                                                                          <
 3642  // #endif // !UNICODE                                                            <
 3643                                                                                   <
 3644  extern(Windows) export UINT GetWindowsDirectoryA(                                <
 3645    LPSTR lpBuffer,                                                                <
 3646    UINT uSize);                                                                   <
 3647  extern(Windows) export UINT GetWindowsDirectoryW(                                <
 3648    LPWSTR lpBuffer,                                                               <
 3649    UINT uSize);                                                                   <
 3650  // #ifdef UNICODE                                                                <
 3651  alias GetWindowsDirectoryW GetWindowsDirectory;                                  <
 3652  // #else                                                                         <
 3653  // #...                                                                          <
 3654  // #endif // !UNICODE                                                            <
 3655                                                                                   <
 3656  extern(Windows) export UINT GetSystemWindowsDirectoryA(                          <
 3657    LPSTR lpBuffer,                                                                <
 3658    UINT uSize);                                                                   <
 3659  extern(Windows) export UINT GetSystemWindowsDirectoryW(                          <
 3660    LPWSTR lpBuffer,                                                               <
 3661    UINT uSize);                                                                   <
 3662  // #ifdef UNICODE                                                                <
 3663  alias GetSystemWindowsDirectoryW GetSystemWindowsDirectory;                      <
 3664  // #else                                                                         <
 3665  // #...                                                                          <
 3666  // #endif // !UNICODE                                                            <
 3667                                                                                   <
 3668  // #if !defined(RC_INVOKED) // RC warns because "WINBASE_DECLARE_GET_SYSTEM_WOW6 <
 3669  // #if _WIN32_WINNT >= 0x0501 || defined(WINBASE_DECLARE_GET_SYSTEM_WOW64_DIRECT <
 3670                                                                                   <
 3671  extern(Windows) export UINT GetSystemWow64DirectoryA(                            <
 3672    LPSTR lpBuffer,                                                                <
 3673    UINT uSize);                                                                   <
 3674  extern(Windows) export UINT GetSystemWow64DirectoryW(                            <
 3675    LPWSTR lpBuffer,                                                               <
 3676    UINT uSize);                                                                   <
 3677  // #ifdef UNICODE                                                                <
 3678  alias GetSystemWow64DirectoryW GetSystemWow64Directory;                          <
 3679  // #else                                                                         <
 3680  // #...                                                                          <
 3681  // #endif // !UNICODE                                                            <
 3682                                                                                   <
 3683  extern(Windows) alias UINT function( LPSTR lpBuffer, UINT uSize) PGET_SYSTEM_WOW <
 3684  extern(Windows) alias UINT function( LPWSTR lpBuffer, UINT uSize) PGET_SYSTEM_WO <
 3685                                                                                   <
 3686  const char[] GET_SYSTEM_WOW64_DIRECTORY_NAME_A_A = "GetSystemWow64DirectoryA";   <
 3687  const wchar[] GET_SYSTEM_WOW64_DIRECTORY_NAME_A_W = "GetSystemWow64DirectoryA";  <
 3688  const TCHAR[] GET_SYSTEM_WOW64_DIRECTORY_NAME_A_T = "GetSystemWow64DirectoryA";  <
 3689  const char[] GET_SYSTEM_WOW64_DIRECTORY_NAME_W_A = "GetSystemWow64DirectoryW";   <
 3690  const wchar[] GET_SYSTEM_WOW64_DIRECTORY_NAME_W_W = "GetSystemWow64DirectoryW";  <
 3691  const TCHAR[] GET_SYSTEM_WOW64_DIRECTORY_NAME_W_T = "GetSystemWow64DirectoryW";  <
 3692                                                                                   <
 3693  // #ifdef UNICODE                                                                <
 3694  alias GET_SYSTEM_WOW64_DIRECTORY_NAME_W_A GET_SYSTEM_WOW64_DIRECTORY_NAME_T_A;   <
 3695  alias GET_SYSTEM_WOW64_DIRECTORY_NAME_W_W GET_SYSTEM_WOW64_DIRECTORY_NAME_T_W;   <
 3696  alias GET_SYSTEM_WOW64_DIRECTORY_NAME_W_T GET_SYSTEM_WOW64_DIRECTORY_NAME_T_T;   <
 3697  // #else                                                                         <
 3698  // #...                                                                          <
 3699  // #...                                                                          <
 3700  // #...                                                                          <
 3701  // #endif                                                                        <
 3702                                                                                   <
 3703  // #endif // _WIN32_WINNT >= 0x0501                                              <
 3704  // #endif                                                                        <
 3705                                                                                   <
 3706  extern(Windows) export BOOL SetCurrentDirectoryA(                                <
 3707    LPCSTR lpPathName);                                                            <
 3708  extern(Windows) export BOOL SetCurrentDirectoryW(                                <
 3709    LPCWSTR lpPathName);                                                           <
 3710  // #ifdef UNICODE                                                                <
 3711  alias SetCurrentDirectoryW SetCurrentDirectory;                                  <
 3712  // #else                                                                         <
 3713  // #...                                                                          <
 3714  // #endif // !UNICODE                                                            <
 3715                                                                                   <
 3716  extern(Windows) export DWORD GetCurrentDirectoryA(                               <
 3717    DWORD nBufferLength,                                                           <
 3718    LPSTR lpBuffer);                                                               <
 3719  extern(Windows) export DWORD GetCurrentDirectoryW(                               <
 3720    DWORD nBufferLength,                                                           <
 3721    LPWSTR lpBuffer);                                                              <
 3722  // #ifdef UNICODE                                                                <
 3723  alias GetCurrentDirectoryW GetCurrentDirectory;                                  <
 3724  // #else                                                                         <
 3725  // #...                                                                          <
 3726  // #endif // !UNICODE                                                            <
 3727                                                                                   <
 3728  extern(Windows) export BOOL GetDiskFreeSpaceA(                                   <
 3729    LPCSTR lpRootPathName,                                                         <
 3730    LPDWORD lpSectorsPerCluster,                                                   <
 3731    LPDWORD lpBytesPerSector,                                                      <
 3732    LPDWORD lpNumberOfFreeClusters,                                                <
 3733    LPDWORD lpTotalNumberOfClusters);                                              <
 3734  extern(Windows) export BOOL GetDiskFreeSpaceW(                                   <
 3735    LPCWSTR lpRootPathName,                                                        <
 3736    LPDWORD lpSectorsPerCluster,                                                   <
 3737    LPDWORD lpBytesPerSector,                                                      <
 3738    LPDWORD lpNumberOfFreeClusters,                                                <
 3739    LPDWORD lpTotalNumberOfClusters);                                              <
 3740  // #ifdef UNICODE                                                                <
 3741  alias GetDiskFreeSpaceW GetDiskFreeSpace;                                        <
 3742  // #else                                                                         <
 3743  // #...                                                                          <
 3744  // #endif // !UNICODE                                                            <
 3745                                                                                   <
 3746  extern(Windows) export BOOL GetDiskFreeSpaceExA(                                 <
 3747    LPCSTR lpDirectoryName,                                                        <
 3748    PULARGE_INTEGER lpFreeBytesAvailableToCaller,                                  <
 3749    PULARGE_INTEGER lpTotalNumberOfBytes,                                          <
 3750    PULARGE_INTEGER lpTotalNumberOfFreeBytes);                                     <
 3751  extern(Windows) export BOOL GetDiskFreeSpaceExW(                                 <
 3752    LPCWSTR lpDirectoryName,                                                       <
 3753    PULARGE_INTEGER lpFreeBytesAvailableToCaller,                                  <
 3754    PULARGE_INTEGER lpTotalNumberOfBytes,                                          <
 3755    PULARGE_INTEGER lpTotalNumberOfFreeBytes);                                     <
 3756  // #ifdef UNICODE                                                                <
 3757  alias GetDiskFreeSpaceExW GetDiskFreeSpaceEx;                                    <
 3758  // #else                                                                         <
 3759  // #...                                                                          <
 3760  // #endif // !UNICODE                                                            <
 3761                                                                                   <
 3762  extern(Windows) export BOOL CreateDirectoryA(                                    <
 3763    LPCSTR lpPathName,                                                             <
 3764    LPSECURITY_ATTRIBUTES lpSecurityAttributes);                                   <
 3765  extern(Windows) export BOOL CreateDirectoryW(                                    <
 3766    LPCWSTR lpPathName,                                                            <
 3767    LPSECURITY_ATTRIBUTES lpSecurityAttributes);                                   <
 3768  // #ifdef UNICODE                                                                <
 3769  alias CreateDirectoryW CreateDirectory;                                          <
 3770  // #else                                                                         <
 3771  // #...                                                                          <
 3772  // #endif // !UNICODE                                                            <
 3773                                                                                   <
 3774  extern(Windows) export BOOL CreateDirectoryExA(                                  <
 3775    LPCSTR lpTemplateDirectory,                                                    <
 3776    LPCSTR lpNewDirectory,                                                         <
 3777    LPSECURITY_ATTRIBUTES lpSecurityAttributes);                                   <
 3778  extern(Windows) export BOOL CreateDirectoryExW(                                  <
 3779    LPCWSTR lpTemplateDirectory,                                                   <
 3780    LPCWSTR lpNewDirectory,                                                        <
 3781    LPSECURITY_ATTRIBUTES lpSecurityAttributes);                                   <
 3782  // #ifdef UNICODE                                                                <
 3783  alias CreateDirectoryExW CreateDirectoryEx;                                      <
 3784  // #else                                                                         <
 3785  // #...                                                                          <
 3786  // #endif // !UNICODE                                                            <
 3787                                                                                   <
 3788  extern(Windows) export BOOL RemoveDirectoryA(                                    <
 3789    LPCSTR lpPathName);                                                            <
 3790  extern(Windows) export BOOL RemoveDirectoryW(                                    <
 3791    LPCWSTR lpPathName);                                                           <
 3792  // #ifdef UNICODE                                                                <
 3793  alias RemoveDirectoryW RemoveDirectory;                                          <
 3794  // #else                                                                         <
 3795  // #...                                                                          <
 3796  // #endif // !UNICODE                                                            <
 3797                                                                                   <
 3798  extern(Windows) export DWORD GetFullPathNameA(                                   <
 3799    LPCSTR lpFileName,                                                             <
 3800    DWORD nBufferLength,                                                           <
 3801    LPSTR lpBuffer,                                                                <
 3802    LPSTR *lpFilePart);                                                            <
 3803  extern(Windows) export DWORD GetFullPathNameW(                                   <
 3804    LPCWSTR lpFileName,                                                            <
 3805    DWORD nBufferLength,                                                           <
 3806    LPWSTR lpBuffer,                                                               <
 3807    LPWSTR *lpFilePart);                                                           <
 3808  // #ifdef UNICODE                                                                <
 3809  alias GetFullPathNameW GetFullPathName;                                          <
 3810  // #else                                                                         <
 3811  // #...                                                                          <
 3812  // #endif // !UNICODE                                                            <
 3813                                                                                   <
 3814  enum : uint { DDD_RAW_TARGET_PATH = 0x00000001 }                                 <
 3815  enum : uint { DDD_REMOVE_DEFINITION = 0x00000002 }                               <
 3816  enum : uint { DDD_EXACT_MATCH_ON_REMOVE = 0x00000004 }                           <
 3817  enum : uint { DDD_NO_BROADCAST_SYSTEM = 0x00000008 }                             <
 3818  enum : uint { DDD_LUID_BROADCAST_DRIVE = 0x00000010 }                            <
 3819                                                                                   <
 3820  extern(Windows) export BOOL DefineDosDeviceA(                                    <
 3821    DWORD dwFlags,                                                                 <
 3822    LPCSTR lpDeviceName,                                                           <
 3823    LPCSTR lpTargetPath);                                                          <
 3824  extern(Windows) export BOOL DefineDosDeviceW(                                    <
 3825    DWORD dwFlags,                                                                 <
 3826    LPCWSTR lpDeviceName,                                                          <
 3827    LPCWSTR lpTargetPath);                                                         <
 3828  // #ifdef UNICODE                                                                <
 3829  alias DefineDosDeviceW DefineDosDevice;                                          <
 3830  // #else                                                                         <
 3831  // #...                                                                          <
 3832  // #endif // !UNICODE                                                            <
 3833                                                                                   <
 3834  extern(Windows) export DWORD QueryDosDeviceA(                                    <
 3835    LPCSTR lpDeviceName,                                                           <
 3836    LPSTR lpTargetPath,                                                            <
 3837    DWORD ucchMax);                                                                <
 3838  extern(Windows) export DWORD QueryDosDeviceW(                                    <
 3839    LPCWSTR lpDeviceName,                                                          <
 3840    LPWSTR lpTargetPath,                                                           <
 3841    DWORD ucchMax);                                                                <
 3842  // #ifdef UNICODE                                                                <
 3843  alias QueryDosDeviceW QueryDosDevice;                                            <
 3844  // #else                                                                         <
 3845  // #...                                                                          <
 3846  // #endif // !UNICODE                                                            <
 3847                                                                                   <
 3848  // #define EXPAND_LOCAL_DRIVES                                                   <
 3849                                                                                   <
 3850  extern(Windows) export HANDLE CreateFileA(                                       <
 3851    LPCSTR lpFileName,                                                             <
 3852    DWORD dwDesiredAccess,                                                         <
 3853    DWORD dwShareMode,                                                             <
 3854    LPSECURITY_ATTRIBUTES lpSecurityAttributes,                                    <
 3855    DWORD dwCreationDisposition,                                                   <
 3856    DWORD dwFlagsAndAttributes,                                                    <
 3857    HANDLE hTemplateFile);                                                         <
 3858  extern(Windows) export HANDLE CreateFileW(                                       <
 3859    LPCWSTR lpFileName,                                                            <
 3860    DWORD dwDesiredAccess,                                                         <
 3861    DWORD dwShareMode,                                                             <
 3862    LPSECURITY_ATTRIBUTES lpSecurityAttributes,                                    <
 3863    DWORD dwCreationDisposition,                                                   <
 3864    DWORD dwFlagsAndAttributes,                                                    <
 3865    HANDLE hTemplateFile);                                                         <
 3866  // #ifdef UNICODE                                                                <
 3867  alias CreateFileW CreateFile;                                                    <
 3868  // #else                                                                         <
 3869  // #...                                                                          <
 3870  // #endif // !UNICODE                                                            <
 3871                                                                                   <
 3872  extern(Windows) export BOOL SetFileAttributesA(                                  <
 3873    LPCSTR lpFileName,                                                             <
 3874    DWORD dwFileAttributes);                                                       <
 3875  extern(Windows) export BOOL SetFileAttributesW(                                  <
 3876    LPCWSTR lpFileName,                                                            <
 3877    DWORD dwFileAttributes);                                                       <
 3878  // #ifdef UNICODE                                                                <
 3879  alias SetFileAttributesW SetFileAttributes;                                      <
 3880  // #else                                                                         <
 3881  // #...                                                                          <
 3882  // #endif // !UNICODE                                                            <
 3883                                                                                   <
 3884  extern(Windows) export DWORD GetFileAttributesA(                                 <
 3885    LPCSTR lpFileName);                                                            <
 3886  extern(Windows) export DWORD GetFileAttributesW(                                 <
 3887    LPCWSTR lpFileName);                                                           <
 3888  // #ifdef UNICODE                                                                <
 3889  alias GetFileAttributesW GetFileAttributes;                                      <
 3890  // #else                                                                         <
 3891  // #...                                                                          <
 3892  // #endif // !UNICODE                                                            <
 3893                                                                                   <
 3894  alias int _GET_FILEEX_INFO_LEVELS;                                               <
 3895  enum {                                                                           <
 3896    GetFileExInfoStandard,                                                         <
 3897    GetFileExMaxInfoLevel,                                                         <
 3898  }                                                                                <
 3899  alias _GET_FILEEX_INFO_LEVELS GET_FILEEX_INFO_LEVELS;                            <
 3900                                                                                   <
 3901  extern(Windows) export BOOL GetFileAttributesExA(                                <
 3902    LPCSTR lpFileName,                                                             <
 3903    GET_FILEEX_INFO_LEVELS fInfoLevelId,                                           <
 3904    LPVOID lpFileInformation);                                                     <
 3905  extern(Windows) export BOOL GetFileAttributesExW(                                <
 3906    LPCWSTR lpFileName,                                                            <
 3907    GET_FILEEX_INFO_LEVELS fInfoLevelId,                                           <
 3908    LPVOID lpFileInformation);                                                     <
 3909  // #ifdef UNICODE                                                                <
 3910  alias GetFileAttributesExW GetFileAttributesEx;                                  <
 3911  // #else                                                                         <
 3912  // #...                                                                          <
 3913  // #endif // !UNICODE                                                            <
 3914                                                                                   <
 3915  extern(Windows) export DWORD GetCompressedFileSizeA(                             <
 3916    LPCSTR lpFileName,                                                             <
 3917    LPDWORD lpFileSizeHigh);                                                       <
 3918  extern(Windows) export DWORD GetCompressedFileSizeW(                             <
 3919    LPCWSTR lpFileName,                                                            <
 3920    LPDWORD lpFileSizeHigh);                                                       <
 3921  // #ifdef UNICODE                                                                <
 3922  alias GetCompressedFileSizeW GetCompressedFileSize;                              <
 3923  // #else                                                                         <
 3924  // #...                                                                          <
 3925  // #endif // !UNICODE                                                            <
 3926                                                                                   <
 3927  extern(Windows) export BOOL DeleteFileA(                                         <
 3928    LPCSTR lpFileName);                                                            <
 3929  extern(Windows) export BOOL DeleteFileW(                                         <
 3930    LPCWSTR lpFileName);                                                           <
 3931  // #ifdef UNICODE                                                                <
 3932  alias DeleteFileW DeleteFile;                                                    <
 3933  // #else                                                                         <
 3934  // #...                                                                          <
 3935  // #endif // !UNICODE                                                            <
 3936                                                                                   <
 3937  // #if(_WIN32_WINNT >= 0x0400)                                                   <
 3938  alias int _FINDEX_INFO_LEVELS;                                                   <
 3939  enum {                                                                           <
 3940    FindExInfoStandard,                                                            <
 3941    FindExInfoMaxInfoLevel,                                                        <
 3942  }                                                                                <
 3943  alias _FINDEX_INFO_LEVELS FINDEX_INFO_LEVELS;                                    <
 3944                                                                                   <
 3945  alias int _FINDEX_SEARCH_OPS;                                                    <
 3946  enum {                                                                           <
 3947    FindExSearchNameMatch,                                                         <
 3948    FindExSearchLimitToDirectories,                                                <
 3949    FindExSearchLimitToDevices,                                                    <
 3950    FindExSearchMaxSearchOp,                                                       <
 3951  }                                                                                <
 3952  alias _FINDEX_SEARCH_OPS FINDEX_SEARCH_OPS;                                      <
 3953                                                                                   <
 3954  enum : uint { FIND_FIRST_EX_CASE_SENSITIVE = 0x00000001 }                        <
 3955                                                                                   <
 3956  extern(Windows) export HANDLE FindFirstFileExA(                                  <
 3957    LPCSTR lpFileName,                                                             <
 3958    FINDEX_INFO_LEVELS fInfoLevelId,                                               <
 3959    LPVOID lpFindFileData,                                                         <
 3960    FINDEX_SEARCH_OPS fSearchOp,                                                   <
 3961    LPVOID lpSearchFilter,                                                         <
 3962    DWORD dwAdditionalFlags);                                                      <
 3963  extern(Windows) export HANDLE FindFirstFileExW(                                  <
 3964    LPCWSTR lpFileName,                                                            <
 3965    FINDEX_INFO_LEVELS fInfoLevelId,                                               <
 3966    LPVOID lpFindFileData,                                                         <
 3967    FINDEX_SEARCH_OPS fSearchOp,                                                   <
 3968    LPVOID lpSearchFilter,                                                         <
 3969    DWORD dwAdditionalFlags);                                                      <
 3970  // #ifdef UNICODE                                                                <
 3971  alias FindFirstFileExW FindFirstFileEx;                                          <
 3972  // #else                                                                         <
 3973  // #...                                                                          <
 3974  // #endif // !UNICODE                                                            <
 3975  // #endif /* _WIN32_WINNT >= 0x0400 */                                           <
 3976                                                                                   <
 3977  extern(Windows) export HANDLE FindFirstFileA(                                    <
 3978    LPCSTR lpFileName,                                                             <
 3979    LPWIN32_FIND_DATAA lpFindFileData);                                            <
 3980  extern(Windows) export HANDLE FindFirstFileW(                                    <
 3981    LPCWSTR lpFileName,                                                            <
 3982    LPWIN32_FIND_DATAW lpFindFileData);                                            <
 3983  // #ifdef UNICODE                                                                <
 3984  alias FindFirstFileW FindFirstFile;                                              <
 3985  // #else                                                                         <
 3986  // #...                                                                          <
 3987  // #endif // !UNICODE                                                            <
 3988                                                                                   <
 3989  extern(Windows) export BOOL FindNextFileA(                                       <
 3990    HANDLE hFindFile,                                                              <
 3991    LPWIN32_FIND_DATAA lpFindFileData);                                            <
 3992  extern(Windows) export BOOL FindNextFileW(                                       <
 3993    HANDLE hFindFile,                                                              <
 3994    LPWIN32_FIND_DATAW lpFindFileData);                                            <
 3995  // #ifdef UNICODE                                                                <
 3996  alias FindNextFileW FindNextFile;                                                <
 3997  // #else                                                                         <
 3998  // #...                                                                          <
 3999  // #endif // !UNICODE                                                            <
 4000                                                                                   <
 4001  extern(Windows) export DWORD SearchPathA(                                        <
 4002    LPCSTR lpPath,                                                                 <
 4003    LPCSTR lpFileName,                                                             <
 4004    LPCSTR lpExtension,                                                            <
 4005    DWORD nBufferLength,                                                           <
 4006    LPSTR lpBuffer,                                                                <
 4007    LPSTR *lpFilePart);                                                            <
 4008  extern(Windows) export DWORD SearchPathW(                                        <
 4009    LPCWSTR lpPath,                                                                <
 4010    LPCWSTR lpFileName,                                                            <
 4011    LPCWSTR lpExtension,                                                           <
 4012    DWORD nBufferLength,                                                           <
 4013    LPWSTR lpBuffer,                                                               <
 4014    LPWSTR *lpFilePart);                                                           <
 4015  // #ifdef UNICODE                                                                <
 4016  alias SearchPathW SearchPath;                                                    <
 4017  // #else                                                                         <
 4018  // #...                                                                          <
 4019  // #endif // !UNICODE                                                            <
 4020                                                                                   <
 4021  extern(Windows) export BOOL CopyFileA(                                           <
 4022    LPCSTR lpExistingFileName,                                                     <
 4023    LPCSTR lpNewFileName,                                                          <
 4024    BOOL bFailIfExists);                                                           <
 4025  extern(Windows) export BOOL CopyFileW(                                           <
 4026    LPCWSTR lpExistingFileName,                                                    <
 4027    LPCWSTR lpNewFileName,                                                         <
 4028    BOOL bFailIfExists);                                                           <
 4029  // #ifdef UNICODE                                                                <
 4030  alias CopyFileW CopyFile;                                                        <
 4031  // #else                                                                         <
 4032  // #...                                                                          <
 4033  // #endif // !UNICODE                                                            <
 4034                                                                                   <
 4035  // #if(_WIN32_WINNT >= 0x0400)                                                   <
 4036  extern(Windows) alias DWORD function( LARGE_INTEGER TotalFileSize, LARGE_INTEGER <
 4037                                                                                   <
 4038  extern(Windows) export BOOL CopyFileExA(                                         <
 4039    LPCSTR lpExistingFileName,                                                     <
 4040    LPCSTR lpNewFileName,                                                          <
 4041    LPPROGRESS_ROUTINE lpProgressRoutine ,                                         <
 4042    LPVOID lpData ,                                                                <
 4043    LPBOOL pbCancel ,                                                              <
 4044    DWORD dwCopyFlags);                                                            <
 4045  extern(Windows) export BOOL CopyFileExW(                                         <
 4046    LPCWSTR lpExistingFileName,                                                    <
 4047    LPCWSTR lpNewFileName,                                                         <
 4048    LPPROGRESS_ROUTINE lpProgressRoutine ,                                         <
 4049    LPVOID lpData ,                                                                <
 4050    LPBOOL pbCancel ,                                                              <
 4051    DWORD dwCopyFlags);                                                            <
 4052  // #ifdef UNICODE                                                                <
 4053  alias CopyFileExW CopyFileEx;                                                    <
 4054  // #else                                                                         <
 4055  // #...                                                                          <
 4056  // #endif // !UNICODE                                                            <
 4057  // #endif /* _WIN32_WINNT >= 0x0400 */                                           <
 4058                                                                                   <
 4059  extern(Windows) export BOOL MoveFileA(                                           <
 4060    LPCSTR lpExistingFileName,                                                     <
 4061    LPCSTR lpNewFileName);                                                         <
 4062  extern(Windows) export BOOL MoveFileW(                                           <
 4063    LPCWSTR lpExistingFileName,                                                    <
 4064    LPCWSTR lpNewFileName);                                                        <
 4065  // #ifdef UNICODE                                                                <
 4066  alias MoveFileW MoveFile;                                                        <
 4067  // #else                                                                         <
 4068  // #...                                                                          <
 4069  // #endif // !UNICODE                                                            <
 4070                                                                                   <
 4071  extern(Windows) export BOOL MoveFileExA(                                         <
 4072    LPCSTR lpExistingFileName,                                                     <
 4073    LPCSTR lpNewFileName,                                                          <
 4074    DWORD dwFlags);                                                                <
 4075  extern(Windows) export BOOL MoveFileExW(                                         <
 4076    LPCWSTR lpExistingFileName,                                                    <
 4077    LPCWSTR lpNewFileName,                                                         <
 4078    DWORD dwFlags);                                                                <
 4079  // #ifdef UNICODE                                                                <
 4080  alias MoveFileExW MoveFileEx;                                                    <
 4081  // #else                                                                         <
 4082  // #...                                                                          <
 4083  // #endif // !UNICODE                                                            <
 4084                                                                                   <
 4085  // #if (_WIN32_WINNT >= 0x0500)                                                  |  2817          static if (_WIN32_WINNT >= 0x501) {
 4086  extern(Windows) export BOOL MoveFileWithProgressA(                               <
 4087    LPCSTR lpExistingFileName,                                                     <
 4088    LPCSTR lpNewFileName,                                                          <
 4089    LPPROGRESS_ROUTINE lpProgressRoutine ,                                         <
 4090    LPVOID lpData ,                                                                <
 4091    DWORD dwFlags);                                                                <
 4092  extern(Windows) export BOOL MoveFileWithProgressW(                               <
 4093    LPCWSTR lpExistingFileName,                                                    <
 4094    LPCWSTR lpNewFileName,                                                         <
 4095    LPPROGRESS_ROUTINE lpProgressRoutine ,                                         <
 4096    LPVOID lpData ,                                                                <
 4097    DWORD dwFlags);                                                                <
 4098  // #ifdef UNICODE                                                                <
 4099  alias MoveFileWithProgressW MoveFileWithProgress;                                <
 4100  // #else                                                                         <
 4101  // #...                                                                          <
 4102  // #endif // !UNICODE                                                            <
 4103  // #endif // (_WIN32_WINNT >= 0x0500)                                            <
 4104                                                                                   <
 4105  enum : uint { MOVEFILE_REPLACE_EXISTING = 0x00000001 }                           <
 4106  enum : uint { MOVEFILE_COPY_ALLOWED = 0x00000002 }                               <
 4107  enum : uint { MOVEFILE_DELAY_UNTIL_REBOOT = 0x00000004 }                         <
 4108  enum : uint { MOVEFILE_WRITE_THROUGH = 0x00000008 }                              <
 4109  // #if (_WIN32_WINNT >= 0x0500)                                                  <
 4110  enum : uint { MOVEFILE_CREATE_HARDLINK = 0x00000010 }                            <
 4111  enum : uint { MOVEFILE_FAIL_IF_NOT_TRACKABLE = 0x00000020 }                      <
 4112  // #endif // (_WIN32_WINNT >= 0x0500)                                            <
 4113                                                                                   <
 4114  // #if (_WIN32_WINNT >= 0x0500)                                                  <
 4115  extern(Windows) export BOOL ReplaceFileA(                                        <
 4116    LPCSTR lpReplacedFileName,                                                     <
 4117    LPCSTR lpReplacementFileName,                                                  <
 4118    LPCSTR lpBackupFileName,                                                       <
 4119    DWORD dwReplaceFlags,                                                          <
 4120    LPVOID lpExclude,                                                              <
 4121    LPVOID lpReserved);                                                            <
 4122  extern(Windows) export BOOL ReplaceFileW(                                        <
 4123    LPCWSTR lpReplacedFileName,                                                    <
 4124    LPCWSTR lpReplacementFileName,                                                 <
 4125    LPCWSTR lpBackupFileName,                                                      <
 4126    DWORD dwReplaceFlags,                                                          <
 4127    LPVOID lpExclude,                                                              <
 4128    LPVOID lpReserved);                                                            <
 4129  // #ifdef UNICODE                                                                <
 4130  alias ReplaceFileW ReplaceFile;                                                  <
 4131  // #else                                                                         <
 4132  // #...                                                                          <
 4133  // #endif // !UNICODE                                                            <
 4134  // #endif // (_WIN32_WINNT >= 0x0500)                                            <
 4135                                                                                   <
 4136  // #if (_WIN32_WINNT >= 0x0500)                                                  <
 4137                                                                                   <
 4138  extern(Windows) export BOOL CreateHardLinkA(                                     <
 4139    LPCSTR lpFileName,                                                             <
 4140    LPCSTR lpExistingFileName,                                                     <
 4141    LPSECURITY_ATTRIBUTES lpSecurityAttributes);                                   <
 4142  extern(Windows) export BOOL CreateHardLinkW(                                     <
 4143    LPCWSTR lpFileName,                                                            <
 4144    LPCWSTR lpExistingFileName,                                                    <
 4145    LPSECURITY_ATTRIBUTES lpSecurityAttributes);                                   <
 4146  // #ifdef UNICODE                                                                <
 4147  alias CreateHardLinkW CreateHardLink;                                            <
 4148  // #else                                                                         <
 4149  // #...                                                                          <
 4150  // #endif // !UNICODE                                                            <
 4151                                                                                   <
 4152  // #endif // (_WIN32_WINNT >= 0x0500)                                            <
 4153                                                                                   <
 4154  extern(Windows) export HANDLE CreateNamedPipeA(                                  <
 4155    LPCSTR lpName,                                                                 <
 4156    DWORD dwOpenMode,                                                              <
 4157    DWORD dwPipeMode,                                                              <
 4158    DWORD nMaxInstances,                                                           <
 4159    DWORD nOutBufferSize,                                                          <
 4160    DWORD nInBufferSize,                                                           <
 4161    DWORD nDefaultTimeOut,                                                         <
 4162    LPSECURITY_ATTRIBUTES lpSecurityAttributes);                                   <
 4163  extern(Windows) export HANDLE CreateNamedPipeW(                                  <
 4164    LPCWSTR lpName,                                                                <
 4165    DWORD dwOpenMode,                                                              <
 4166    DWORD dwPipeMode,                                                              <
 4167    DWORD nMaxInstances,                                                           <
 4168    DWORD nOutBufferSize,                                                          <
 4169    DWORD nInBufferSize,                                                           <
 4170    DWORD nDefaultTimeOut,                                                         <
 4171    LPSECURITY_ATTRIBUTES lpSecurityAttributes);                                   <
 4172  // #ifdef UNICODE                                                                <
 4173  alias CreateNamedPipeW CreateNamedPipe;                                          <
 4174  // #else                                                                         <
 4175  // #...                                                                          <
 4176  // #endif // !UNICODE                                                            <
 4177                                                                                   <
 4178  extern(Windows) export BOOL GetNamedPipeHandleStateA(                            <
 4179    HANDLE hNamedPipe,                                                             <
 4180    LPDWORD lpState,                                                               <
 4181    LPDWORD lpCurInstances,                                                        <
 4182    LPDWORD lpMaxCollectionCount,                                                  <
 4183    LPDWORD lpCollectDataTimeout,                                                  <
 4184    LPSTR lpUserName,                                                              <
 4185    DWORD nMaxUserNameSize);                                                       <
 4186  extern(Windows) export BOOL GetNamedPipeHandleStateW(                            <
 4187    HANDLE hNamedPipe,                                                             <
 4188    LPDWORD lpState,                                                               <
 4189    LPDWORD lpCurInstances,                                                        <
 4190    LPDWORD lpMaxCollectionCount,                                                  <
 4191    LPDWORD lpCollectDataTimeout,                                                  <
 4192    LPWSTR lpUserName,                                                             <
 4193    DWORD nMaxUserNameSize);                                                       <
 4194  // #ifdef UNICODE                                                                <
 4195  alias GetNamedPipeHandleStateW GetNamedPipeHandleState;                          <
 4196  // #else                                                                         <
 4197  // #...                                                                          <
 4198  // #endif // !UNICODE                                                            <
 4199                                                                                   <
 4200  extern(Windows) export BOOL CallNamedPipeA(                                      <
 4201    LPCSTR lpNamedPipeName,                                                        <
 4202    LPVOID lpInBuffer,                                                             <
 4203    DWORD nInBufferSize,                                                           <
 4204    LPVOID lpOutBuffer,                                                            <
 4205    DWORD nOutBufferSize,                                                          <
 4206    LPDWORD lpBytesRead,                                                           <
 4207    DWORD nTimeOut);                                                               <
 4208  extern(Windows) export BOOL CallNamedPipeW(                                      <
 4209    LPCWSTR lpNamedPipeName,                                                       <
 4210    LPVOID lpInBuffer,                                                             <
 4211    DWORD nInBufferSize,                                                           <
 4212    LPVOID lpOutBuffer,                                                            <
 4213    DWORD nOutBufferSize,                                                          <
 4214    LPDWORD lpBytesRead,                                                           <
 4215    DWORD nTimeOut);                                                               <
 4216  // #ifdef UNICODE                                                                <
 4217  alias CallNamedPipeW CallNamedPipe;                                              <
 4218  // #else                                                                         <
 4219  // #...                                                                          <
 4220  // #endif // !UNICODE                                                            <
 4221                                                                                   <
 4222  extern(Windows) export BOOL WaitNamedPipeA(                                      <
 4223    LPCSTR lpNamedPipeName,                                                        <
 4224    DWORD nTimeOut);                                                               <
 4225  extern(Windows) export BOOL WaitNamedPipeW(                                      <
 4226    LPCWSTR lpNamedPipeName,                                                       <
 4227    DWORD nTimeOut);                                                               <
 4228  // #ifdef UNICODE                                                                <
 4229  alias WaitNamedPipeW WaitNamedPipe;                                              <
 4230  // #else                                                                         <
 4231  // #...                                                                          <
 4232  // #endif // !UNICODE                                                            <
 4233                                                                                   <
 4234  extern(Windows) export BOOL SetVolumeLabelA(                                     <
 4235    LPCSTR lpRootPathName,                                                         <
 4236    LPCSTR lpVolumeName);                                                          <
 4237  extern(Windows) export BOOL SetVolumeLabelW(                                     <
 4238    LPCWSTR lpRootPathName,                                                        <
 4239    LPCWSTR lpVolumeName);                                                         <
 4240  // #ifdef UNICODE                                                                <
 4241  alias SetVolumeLabelW SetVolumeLabel;                                            <
 4242  // #else                                                                         <
 4243  // #...                                                                          <
 4244  // #endif // !UNICODE                                                            <
 4245                                                                                   <
 4246  extern(Windows) export VOID SetFileApisToOEM();                                  <
 4247                                                                                   <
 4248  extern(Windows) export VOID SetFileApisToANSI();                                 <
 4249                                                                                   <
 4250  extern(Windows) export BOOL AreFileApisANSI();                                   <
 4251                                                                                   <
 4252  extern(Windows) export BOOL GetVolumeInformationA(                               <
 4253    LPCSTR lpRootPathName,                                                         <
 4254    LPSTR lpVolumeNameBuffer,                                                      <
 4255    DWORD nVolumeNameSize,                                                         <
 4256    LPDWORD lpVolumeSerialNumber,                                                  <
 4257    LPDWORD lpMaximumComponentLength,                                              <
 4258    LPDWORD lpFileSystemFlags,                                                     <
 4259    LPSTR lpFileSystemNameBuffer,                                                  <
 4260    DWORD nFileSystemNameSize);                                                    <
 4261  extern(Windows) export BOOL GetVolumeInformationW(                               <
 4262    LPCWSTR lpRootPathName,                                                        <
 4263    LPWSTR lpVolumeNameBuffer,                                                     <
 4264    DWORD nVolumeNameSize,                                                         <
 4265    LPDWORD lpVolumeSerialNumber,                                                  <
 4266    LPDWORD lpMaximumComponentLength,                                              <
 4267    LPDWORD lpFileSystemFlags,                                                     <
 4268    LPWSTR lpFileSystemNameBuffer,                                                 <
 4269    DWORD nFileSystemNameSize);                                                    <
 4270  // #ifdef UNICODE                                                                <
 4271  alias GetVolumeInformationW GetVolumeInformation;                                <
 4272  // #else                                                                         <
 4273  // #...                                                                          <
 4274  // #endif // !UNICODE                                                            <
 4275                                                                                   <
 4276  extern(Windows) export BOOL CancelIo(                                            <
 4277    HANDLE hFile);                                                                 <
 4278                                                                                   <
 4279  extern(Windows) export BOOL ClearEventLogA(                                      <
 4280    HANDLE hEventLog,                                                              <
 4281    LPCSTR lpBackupFileName);                                                      <
 4282  extern(Windows) export BOOL ClearEventLogW(                                      <
 4283    HANDLE hEventLog,                                                              <
 4284    LPCWSTR lpBackupFileName);                                                     <
 4285  // #ifdef UNICODE                                                                <
 4286  alias ClearEventLogW ClearEventLog;                                              <
 4287  // #else                                                                         <
 4288  // #...                                                                          <
 4289  // #endif // !UNICODE                                                            <
 4290                                                                                   <
 4291  extern(Windows) export BOOL BackupEventLogA(                                     <
 4292    HANDLE hEventLog,                                                              <
 4293    LPCSTR lpBackupFileName);                                                      <
 4294  extern(Windows) export BOOL BackupEventLogW(                                     <
 4295    HANDLE hEventLog,                                                              <
 4296    LPCWSTR lpBackupFileName);                                                     <
 4297  // #ifdef UNICODE                                                                <
 4298  alias BackupEventLogW BackupEventLog;                                            <
 4299  // #else                                                                         <
 4300  // #...                                                                          <
 4301  // #endif // !UNICODE                                                            <
 4302                                                                                   <
 4303  extern(Windows) export BOOL CloseEventLog(                                       <
 4304    HANDLE hEventLog);                                                             <
 4305                                                                                   <
 4306  extern(Windows) export BOOL DeregisterEventSource(                               <
 4307    HANDLE hEventLog);                                                             <
 4308                                                                                   <
 4309  extern(Windows) export BOOL NotifyChangeEventLog(                                <
 4310    HANDLE hEventLog,                                                              <
 4311    HANDLE hEvent);                                                                <
 4312                                                                                   <
 4313  extern(Windows) export BOOL GetNumberOfEventLogRecords(                          <
 4314    HANDLE hEventLog,                                                              <
 4315    PDWORD NumberOfRecords);                                                       <
 4316                                                                                   <
 4317  extern(Windows) export BOOL GetOldestEventLogRecord(                             <
 4318    HANDLE hEventLog,                                                              <
 4319    PDWORD OldestRecord);                                                          <
 4320                                                                                   <
 4321  extern(Windows) export HANDLE OpenEventLogA(                                     <
 4322    LPCSTR lpUNCServerName,                                                        <
 4323    LPCSTR lpSourceName);                                                          <
 4324  extern(Windows) export HANDLE OpenEventLogW(                                     <
 4325    LPCWSTR lpUNCServerName,                                                       <
 4326    LPCWSTR lpSourceName);                                                         <
 4327  // #ifdef UNICODE                                                                <
 4328  alias OpenEventLogW OpenEventLog;                                                <
 4329  // #else                                                                         <
 4330  // #...                                                                          <
 4331  // #endif // !UNICODE                                                            <
 4332                                                                                   <
 4333  extern(Windows) export HANDLE RegisterEventSourceA(                              <
 4334    LPCSTR lpUNCServerName,                                                        <
 4335    LPCSTR lpSourceName);                                                          <
 4336  extern(Windows) export HANDLE RegisterEventSourceW(                              <
 4337    LPCWSTR lpUNCServerName,                                                       <
 4338    LPCWSTR lpSourceName);                                                         <
 4339  // #ifdef UNICODE                                                                <
 4340  alias RegisterEventSourceW RegisterEventSource;                                  <
 4341  // #else                                                                         <
 4342  // #...                                                                          <
 4343  // #endif // !UNICODE                                                            <
 4344                                                                                   <
 4345  extern(Windows) export HANDLE OpenBackupEventLogA(                               <
 4346    LPCSTR lpUNCServerName,                                                        <
 4347    LPCSTR lpFileName);                                                            <
 4348  extern(Windows) export HANDLE OpenBackupEventLogW(                               <
 4349    LPCWSTR lpUNCServerName,                                                       <
 4350    LPCWSTR lpFileName);                                                           <
 4351  // #ifdef UNICODE                                                                <
 4352  alias OpenBackupEventLogW OpenBackupEventLog;                                    <
 4353  // #else                                                                         <
 4354  // #...                                                                          <
 4355  // #endif // !UNICODE                                                            <
 4356                                                                                   <
 4357  extern(Windows) export BOOL ReadEventLogA(                                       <
 4358    HANDLE hEventLog,                                                              <
 4359    DWORD dwReadFlags,                                                             <
 4360    DWORD dwRecordOffset,                                                          <
 4361    LPVOID lpBuffer,                                                               <
 4362    DWORD nNumberOfBytesToRead,                                                    <
 4363    DWORD *pnBytesRead,                                                            <
 4364    DWORD *pnMinNumberOfBytesNeeded);                                              <
 4365  extern(Windows) export BOOL ReadEventLogW(                                       <
 4366    HANDLE hEventLog,                                                              <
 4367    DWORD dwReadFlags,                                                             <
 4368    DWORD dwRecordOffset,                                                          <
 4369    LPVOID lpBuffer,                                                               <
 4370    DWORD nNumberOfBytesToRead,                                                    <
 4371    DWORD *pnBytesRead,                                                            <
 4372    DWORD *pnMinNumberOfBytesNeeded);                                              <
 4373  // #ifdef UNICODE                                                                <
 4374  alias ReadEventLogW ReadEventLog;                                                <
 4375  // #else                                                                         <
 4376  // #...                                                                          <
 4377  // #endif // !UNICODE                                                            <
 4378                                                                                   <
 4379  extern(Windows) export BOOL ReportEventA(                                        <
 4380    HANDLE hEventLog,                                                              <
 4381    WORD wType,                                                                    <
 4382    WORD wCategory,                                                                <
 4383    DWORD dwEventID,                                                               <
 4384    PSID lpUserSid,                                                                <
 4385    WORD wNumStrings,                                                              <
 4386    DWORD dwDataSize,                                                              <
 4387    LPCSTR *lpStrings,                                                             <
 4388    LPVOID lpRawData);                                                             <
 4389  extern(Windows) export BOOL ReportEventW(                                        <
 4390    HANDLE hEventLog,                                                              <
 4391    WORD wType,                                                                    <
 4392    WORD wCategory,                                                                <
 4393    DWORD dwEventID,                                                               <
 4394    PSID lpUserSid,                                                                <
 4395    WORD wNumStrings,                                                              <
 4396    DWORD dwDataSize,                                                              <
 4397    LPCWSTR *lpStrings,                                                            <
 4398    LPVOID lpRawData);                                                             <
 4399  // #ifdef UNICODE                                                                <
 4400  alias ReportEventW ReportEvent;                                                  <
 4401  // #else                                                                         <
 4402  // #...                                                                          <
 4403  // #endif // !UNICODE                                                            <
 4404                                                                                   <
 4405  enum : uint { EVENTLOG_FULL_INFO = 0 }                                           <
 4406                                                                                   <
 4407  struct _EVENTLOG_FULL_INFORMATION {                                              <
 4408    DWORD dwFull;                                                                  <
 4409  }                                                                                <
 4410  alias _EVENTLOG_FULL_INFORMATION EVENTLOG_FULL_INFORMATION;                      <
 4411  alias _EVENTLOG_FULL_INFORMATION* LPEVENTLOG_FULL_INFORMATION;                   <
 4412                                                                                   <
 4413  extern(Windows) export BOOL GetEventLogInformation(                              <
 4414    HANDLE hEventLog,                                                              <
 4415    DWORD dwInfoLevel,                                                             <
 4416    LPVOID lpBuffer,                                                               <
 4417    DWORD cbBufSize,                                                               <
 4418    LPDWORD pcbBytesNeeded);                                                       <
 4419                                                                                   <
 4420  extern(Windows) export BOOL DuplicateToken(                                      <
 4421    HANDLE ExistingTokenHandle,                                                    <
 4422    SECURITY_IMPERSONATION_LEVEL ImpersonationLevel,                               <
 4423    PHANDLE DuplicateTokenHandle);                                                 <
 4424                                                                                   <
 4425  extern(Windows) export BOOL GetKernelObjectSecurity(                             <
 4426    HANDLE Handle,                                                                 <
 4427    SECURITY_INFORMATION RequestedInformation,                                     <
 4428    PSECURITY_DESCRIPTOR pSecurityDescriptor,                                      <
 4429    DWORD nLength,                                                                 <
 4430    LPDWORD lpnLengthNeeded);                                                      <
 4431                                                                                   <
 4432  extern(Windows) export BOOL ImpersonateNamedPipeClient(                          <
 4433    HANDLE hNamedPipe);                                                            <
 4434                                                                                   <
 4435  extern(Windows) export BOOL ImpersonateSelf(                                     <
 4436    SECURITY_IMPERSONATION_LEVEL ImpersonationLevel);                              <
 4437                                                                                   <
 4438  extern(Windows) export BOOL RevertToSelf();                                      <
 4439                                                                                   <
 4440  extern(Windows) export BOOL SetThreadToken(                                      <
 4441    PHANDLE Thread,                                                                <
 4442    HANDLE Token);                                                                 <
 4443                                                                                   <
 4444  extern(Windows) export BOOL AccessCheck(                                         <
 4445    PSECURITY_DESCRIPTOR pSecurityDescriptor,                                      <
 4446    HANDLE ClientToken,                                                            <
 4447    DWORD DesiredAccess,                                                           <
 4448    PGENERIC_MAPPING GenericMapping,                                               <
 4449    PPRIVILEGE_SET PrivilegeSet,                                                   <
 4450    LPDWORD PrivilegeSetLength,                                                    <
 4451    LPDWORD GrantedAccess,                                                         <
 4452    LPBOOL AccessStatus);                                                          <
 4453                                                                                   <
 4454  // #if(_WIN32_WINNT >= 0x0500)                                                   <
 4455  extern(Windows) export BOOL AccessCheckByType(                                   <
 4456    PSECURITY_DESCRIPTOR pSecurityDescriptor,                                      <
 4457    PSID PrincipalSelfSid,                                                         <
 4458    HANDLE ClientToken,                                                            <
 4459    DWORD DesiredAccess,                                                           <
 4460    POBJECT_TYPE_LIST ObjectTypeList,                                              <
 4461    DWORD ObjectTypeListLength,                                                    <
 4462    PGENERIC_MAPPING GenericMapping,                                               <
 4463    PPRIVILEGE_SET PrivilegeSet,                                                   <
 4464    LPDWORD PrivilegeSetLength,                                                    <
 4465    LPDWORD GrantedAccess,                                                         <
 4466    LPBOOL AccessStatus);                                                          <
 4467                                                                                   <
 4468  extern(Windows) export BOOL AccessCheckByTypeResultList(                         <
 4469    PSECURITY_DESCRIPTOR pSecurityDescriptor,                                      <
 4470    PSID PrincipalSelfSid,                                                         <
 4471    HANDLE ClientToken,                                                            <
 4472    DWORD DesiredAccess,                                                           <
 4473    POBJECT_TYPE_LIST ObjectTypeList,                                              <
 4474    DWORD ObjectTypeListLength,                                                    <
 4475    PGENERIC_MAPPING GenericMapping,                                               <
 4476    PPRIVILEGE_SET PrivilegeSet,                                                   <
 4477    LPDWORD PrivilegeSetLength,                                                    <
 4478    LPDWORD GrantedAccessList,                                                     <
 4479    LPDWORD AccessStatusList);                                                     <
 4480  // #endif /* _WIN32_WINNT >=  0x0500 */                                          <
 4481                                                                                   <
 4482  extern(Windows) export BOOL OpenProcessToken(                                    <
 4483    HANDLE ProcessHandle,                                                          <
 4484    DWORD DesiredAccess,                                                           <
 4485    PHANDLE TokenHandle);                                                          <
 4486                                                                                   <
 4487  extern(Windows) export BOOL OpenThreadToken(                                     <
 4488    HANDLE ThreadHandle,                                                           <
 4489    DWORD DesiredAccess,                                                           <
 4490    BOOL OpenAsSelf,                                                               <
 4491    PHANDLE TokenHandle);                                                          <
 4492                                                                                   <
 4493  extern(Windows) export BOOL GetTokenInformation(                                 <
 4494    HANDLE TokenHandle,                                                            <
 4495    TOKEN_INFORMATION_CLASS TokenInformationClass,                                 <
 4496    LPVOID TokenInformation,                                                       <
 4497    DWORD TokenInformationLength,                                                  <
 4498    PDWORD ReturnLength);                                                          <
 4499                                                                                   <
 4500  extern(Windows) export BOOL SetTokenInformation(                                 <
 4501    HANDLE TokenHandle,                                                            <
 4502    TOKEN_INFORMATION_CLASS TokenInformationClass,                                 <
 4503    LPVOID TokenInformation,                                                       <
 4504    DWORD TokenInformationLength);                                                 <
 4505                                                                                   <
 4506  extern(Windows) export BOOL AdjustTokenPrivileges(                               <
 4507    HANDLE TokenHandle,                                                            <
 4508    BOOL DisableAllPrivileges,                                                     <
 4509    PTOKEN_PRIVILEGES NewState,                                                    <
 4510    DWORD BufferLength,                                                            <
 4511    PTOKEN_PRIVILEGES PreviousState,                                               <
 4512    PDWORD ReturnLength);                                                          <
 4513                                                                                   <
 4514  extern(Windows) export BOOL AdjustTokenGroups(                                   <
 4515    HANDLE TokenHandle,                                                            <
 4516    BOOL ResetToDefault,                                                           <
 4517    PTOKEN_GROUPS NewState,                                                        <
 4518    DWORD BufferLength,                                                            <
 4519    PTOKEN_GROUPS PreviousState,                                                   <
 4520    PDWORD ReturnLength);                                                          <
 4521                                                                                   <
 4522  extern(Windows) export BOOL PrivilegeCheck(                                      <
 4523    HANDLE ClientToken,                                                            <
 4524    PPRIVILEGE_SET RequiredPrivileges,                                             <
 4525    LPBOOL pfResult);                                                              <
 4526                                                                                   <
 4527  extern(Windows) export BOOL AccessCheckAndAuditAlarmA(                           <
 4528    LPCSTR SubsystemName,                                                          <
 4529    LPVOID HandleId,                                                               <
 4530    LPSTR ObjectTypeName,                                                          <
 4531    LPSTR ObjectName,                                                              <
 4532    PSECURITY_DESCRIPTOR SecurityDescriptor,                                       <
 4533    DWORD DesiredAccess,                                                           <
 4534    PGENERIC_MAPPING GenericMapping,                                               <
 4535    BOOL ObjectCreation,                                                           <
 4536    LPDWORD GrantedAccess,                                                         <
 4537    LPBOOL AccessStatus,                                                           <
 4538    LPBOOL pfGenerateOnClose);                                                     <
 4539  extern(Windows) export BOOL AccessCheckAndAuditAlarmW(                           <
 4540    LPCWSTR SubsystemName,                                                         <
 4541    LPVOID HandleId,                                                               <
 4542    LPWSTR ObjectTypeName,                                                         <
 4543    LPWSTR ObjectName,                                                             <
 4544    PSECURITY_DESCRIPTOR SecurityDescriptor,                                       <
 4545    DWORD DesiredAccess,                                                           <
 4546    PGENERIC_MAPPING GenericMapping,                                               <
 4547    BOOL ObjectCreation,                                                           <
 4548    LPDWORD GrantedAccess,                                                         <
 4549    LPBOOL AccessStatus,                                                           <
 4550    LPBOOL pfGenerateOnClose);                                                     <
 4551  // #ifdef UNICODE                                                                <
 4552  alias AccessCheckAndAuditAlarmW AccessCheckAndAuditAlarm;                        <
 4553  // #else                                                                         <
 4554  // #...                                                                          <
 4555  // #endif // !UNICODE                                                            <
 4556                                                                                   <
 4557  // #if(_WIN32_WINNT >= 0x0500)                                                   <
 4558                                                                                   <
 4559  extern(Windows) export BOOL AccessCheckByTypeAndAuditAlarmA(                     <
 4560    LPCSTR SubsystemName,                                                          <
 4561    LPVOID HandleId,                                                               <
 4562    LPCSTR ObjectTypeName,                                                         <
 4563    LPCSTR ObjectName,                                                             <
 4564    PSECURITY_DESCRIPTOR SecurityDescriptor,                                       <
 4565    PSID PrincipalSelfSid,                                                         <
 4566    DWORD DesiredAccess,                                                           <
 4567    AUDIT_EVENT_TYPE AuditType,                                                    <
 4568    DWORD Flags,                                                                   <
 4569    POBJECT_TYPE_LIST ObjectTypeList,                                              <
 4570    DWORD ObjectTypeListLength,                                                    <
 4571    PGENERIC_MAPPING GenericMapping,                                               <
 4572    BOOL ObjectCreation,                                                           <
 4573    LPDWORD GrantedAccess,                                                         <
 4574    LPBOOL AccessStatus,                                                           <
 4575    LPBOOL pfGenerateOnClose);                                                     <
 4576  extern(Windows) export BOOL AccessCheckByTypeAndAuditAlarmW(                     <
 4577    LPCWSTR SubsystemName,                                                         <
 4578    LPVOID HandleId,                                                               <
 4579    LPCWSTR ObjectTypeName,                                                        <
 4580    LPCWSTR ObjectName,                                                            <
 4581    PSECURITY_DESCRIPTOR SecurityDescriptor,                                       <
 4582    PSID PrincipalSelfSid,                                                         <
 4583    DWORD DesiredAccess,                                                           <
 4584    AUDIT_EVENT_TYPE AuditType,                                                    <
 4585    DWORD Flags,                                                                   <
 4586    POBJECT_TYPE_LIST ObjectTypeList,                                              <
 4587    DWORD ObjectTypeListLength,                                                    <
 4588    PGENERIC_MAPPING GenericMapping,                                               <
 4589    BOOL ObjectCreation,                                                           <
 4590    LPDWORD GrantedAccess,                                                         <
 4591    LPBOOL AccessStatus,                                                           <
 4592    LPBOOL pfGenerateOnClose);                                                     <
 4593  // #ifdef UNICODE                                                                <
 4594  alias AccessCheckByTypeAndAuditAlarmW AccessCheckByTypeAndAuditAlarm;            <
 4595  // #else                                                                         <
 4596  // #...                                                                          <
 4597  // #endif // !UNICODE                                                            <
 4598                                                                                   <
 4599  extern(Windows) export BOOL AccessCheckByTypeResultListAndAuditAlarmA(           <
 4600    LPCSTR SubsystemName,                                                          <
 4601    LPVOID HandleId,                                                               <
 4602    LPCSTR ObjectTypeName,                                                         <
 4603    LPCSTR ObjectName,                                                             <
 4604    PSECURITY_DESCRIPTOR SecurityDescriptor,                                       <
 4605    PSID PrincipalSelfSid,                                                         <
 4606    DWORD DesiredAccess,                                                           <
 4607    AUDIT_EVENT_TYPE AuditType,                                                    <
 4608    DWORD Flags,                                                                   <
 4609    POBJECT_TYPE_LIST ObjectTypeList,                                              <
 4610    DWORD ObjectTypeListLength,                                                    <
 4611    PGENERIC_MAPPING GenericMapping,                                               <
 4612    BOOL ObjectCreation,                                                           <
 4613    LPDWORD GrantedAccess,                                                         <
 4614    LPDWORD AccessStatusList,                                                      <
 4615    LPBOOL pfGenerateOnClose);                                                     <
 4616  extern(Windows) export BOOL AccessCheckByTypeResultListAndAuditAlarmW(           <
 4617    LPCWSTR SubsystemName,                                                         <
 4618    LPVOID HandleId,                                                               <
 4619    LPCWSTR ObjectTypeName,                                                        <
 4620    LPCWSTR ObjectName,                                                            <
 4621    PSECURITY_DESCRIPTOR SecurityDescriptor,                                       <
 4622    PSID PrincipalSelfSid,                                                         <
 4623    DWORD DesiredAccess,                                                           <
 4624    AUDIT_EVENT_TYPE AuditType,                                                    <
 4625    DWORD Flags,                                                                   <
 4626    POBJECT_TYPE_LIST ObjectTypeList,                                              <
 4627    DWORD ObjectTypeListLength,                                                    <
 4628    PGENERIC_MAPPING GenericMapping,                                               <
 4629    BOOL ObjectCreation,                                                           <
 4630    LPDWORD GrantedAccess,                                                         <
 4631    LPDWORD AccessStatusList,                                                      <
 4632    LPBOOL pfGenerateOnClose);                                                     <
 4633  // #ifdef UNICODE                                                                <
 4634  alias AccessCheckByTypeResultListAndAuditAlarmW AccessCheckByTypeResultListAndAu <
 4635  // #else                                                                         <
 4636  // #...                                                                          <
 4637  // #endif // !UNICODE                                                            <
 4638                                                                                   <
 4639  extern(Windows) export BOOL AccessCheckByTypeResultListAndAuditAlarmByHandleA(   <
 4640    LPCSTR SubsystemName,                                                          <
 4641    LPVOID HandleId,                                                               <
 4642    HANDLE ClientToken,                                                            <
 4643    LPCSTR ObjectTypeName,                                                         <
 4644    LPCSTR ObjectName,                                                             <
 4645    PSECURITY_DESCRIPTOR SecurityDescriptor,                                       <
 4646    PSID PrincipalSelfSid,                                                         <
 4647    DWORD DesiredAccess,                                                           <
 4648    AUDIT_EVENT_TYPE AuditType,                                                    <
 4649    DWORD Flags,                                                                   <
 4650    POBJECT_TYPE_LIST ObjectTypeList,                                              <
 4651    DWORD ObjectTypeListLength,                                                    <
 4652    PGENERIC_MAPPING GenericMapping,                                               <
 4653    BOOL ObjectCreation,                                                           <
 4654    LPDWORD GrantedAccess,                                                         <
 4655    LPDWORD AccessStatusList,                                                      <
 4656    LPBOOL pfGenerateOnClose);                                                     <
 4657  extern(Windows) export BOOL AccessCheckByTypeResultListAndAuditAlarmByHandleW(   <
 4658    LPCWSTR SubsystemName,                                                         <
 4659    LPVOID HandleId,                                                               <
 4660    HANDLE ClientToken,                                                            <
 4661    LPCWSTR ObjectTypeName,                                                        <
 4662    LPCWSTR ObjectName,                                                            <
 4663    PSECURITY_DESCRIPTOR SecurityDescriptor,                                       <
 4664    PSID PrincipalSelfSid,                                                         <
 4665    DWORD DesiredAccess,                                                           <
 4666    AUDIT_EVENT_TYPE AuditType,                                                    <
 4667    DWORD Flags,                                                                   <
 4668    POBJECT_TYPE_LIST ObjectTypeList,                                              <
 4669    DWORD ObjectTypeListLength,                                                    <
 4670    PGENERIC_MAPPING GenericMapping,                                               <
 4671    BOOL ObjectCreation,                                                           <
 4672    LPDWORD GrantedAccess,                                                         <
 4673    LPDWORD AccessStatusList,                                                      <
 4674    LPBOOL pfGenerateOnClose);                                                     <
 4675  // #ifdef UNICODE                                                                <
 4676  alias AccessCheckByTypeResultListAndAuditAlarmByHandleW AccessCheckByTypeResultL <
 4677  // #else                                                                         <
 4678  // #...                                                                          <
 4679  // #endif // !UNICODE                                                            <
 4680                                                                                   <
 4681  // #endif //(_WIN32_WINNT >= 0x0500)                                             <
 4682                                                                                   <
 4683  extern(Windows) export BOOL ObjectOpenAuditAlarmA(                               <
 4684    LPCSTR SubsystemName,                                                          <
 4685    LPVOID HandleId,                                                               <
 4686    LPSTR ObjectTypeName,                                                          <
 4687    LPSTR ObjectName,                                                              <
 4688    PSECURITY_DESCRIPTOR pSecurityDescriptor,                                      <
 4689    HANDLE ClientToken,                                                            <
 4690    DWORD DesiredAccess,                                                           <
 4691    DWORD GrantedAccess,                                                           <
 4692    PPRIVILEGE_SET Privileges,                                                     <
 4693    BOOL ObjectCreation,                                                           <
 4694    BOOL AccessGranted,                                                            <
 4695    LPBOOL GenerateOnClose);                                                       <
 4696  extern(Windows) export BOOL ObjectOpenAuditAlarmW(                               <
 4697    LPCWSTR SubsystemName,                                                         <
 4698    LPVOID HandleId,                                                               <
 4699    LPWSTR ObjectTypeName,                                                         <
 4700    LPWSTR ObjectName,                                                             <
 4701    PSECURITY_DESCRIPTOR pSecurityDescriptor,                                      <
 4702    HANDLE ClientToken,                                                            <
 4703    DWORD DesiredAccess,                                                           <
 4704    DWORD GrantedAccess,                                                           <
 4705    PPRIVILEGE_SET Privileges,                                                     <
 4706    BOOL ObjectCreation,                                                           <
 4707    BOOL AccessGranted,                                                            <
 4708    LPBOOL GenerateOnClose);                                                       <
 4709  // #ifdef UNICODE                                                                <
 4710  alias ObjectOpenAuditAlarmW ObjectOpenAuditAlarm;                                <
 4711  // #else                                                                         <
 4712  // #...                                                                          <
 4713  // #endif // !UNICODE                                                            <
 4714                                                                                   <
 4715  extern(Windows) export BOOL ObjectPrivilegeAuditAlarmA(                          <
 4716    LPCSTR SubsystemName,                                                          <
 4717    LPVOID HandleId,                                                               <
 4718    HANDLE ClientToken,                                                            <
 4719    DWORD DesiredAccess,                                                           <
 4720    PPRIVILEGE_SET Privileges,                                                     <
 4721    BOOL AccessGranted);                                                           <
 4722  extern(Windows) export BOOL ObjectPrivilegeAuditAlarmW(                          <
 4723    LPCWSTR SubsystemName,                                                         <
 4724    LPVOID HandleId,                                                               <
 4725    HANDLE ClientToken,                                                            <
 4726    DWORD DesiredAccess,                                                           <
 4727    PPRIVILEGE_SET Privileges,                                                     <
 4728    BOOL AccessGranted);                                                           <
 4729  // #ifdef UNICODE                                                                <
 4730  alias ObjectPrivilegeAuditAlarmW ObjectPrivilegeAuditAlarm;                      <
 4731  // #else                                                                         <
 4732  // #...                                                                          <
 4733  // #endif // !UNICODE                                                            <
 4734                                                                                   <
 4735  extern(Windows) export BOOL ObjectCloseAuditAlarmA(                              <
 4736    LPCSTR SubsystemName,                                                          <
 4737    LPVOID HandleId,                                                               <
 4738    BOOL GenerateOnClose);                                                         <
 4739  extern(Windows) export BOOL ObjectCloseAuditAlarmW(                              <
 4740    LPCWSTR SubsystemName,                                                         <
 4741    LPVOID HandleId,                                                               <
 4742    BOOL GenerateOnClose);                                                         <
 4743  // #ifdef UNICODE                                                                <
 4744  alias ObjectCloseAuditAlarmW ObjectCloseAuditAlarm;                              <
 4745  // #else                                                                         <
 4746  // #...                                                                          <
 4747  // #endif // !UNICODE                                                            <
 4748                                                                                   <
 4749  extern(Windows) export BOOL ObjectDeleteAuditAlarmA(                             <
 4750    LPCSTR SubsystemName,                                                          <
 4751    LPVOID HandleId,                                                               <
 4752    BOOL GenerateOnClose);                                                         <
 4753  extern(Windows) export BOOL ObjectDeleteAuditAlarmW(                             <
 4754    LPCWSTR SubsystemName,                                                         <
 4755    LPVOID HandleId,                                                               <
 4756    BOOL GenerateOnClose);                                                         <
 4757  // #ifdef UNICODE                                                                <
 4758  alias ObjectDeleteAuditAlarmW ObjectDeleteAuditAlarm;                            <
 4759  // #else                                                                         <
 4760  // #...                                                                          <
 4761  // #endif // !UNICODE                                                            <
 4762                                                                                   <
 4763  extern(Windows) export BOOL PrivilegedServiceAuditAlarmA(                        <
 4764    LPCSTR SubsystemName,                                                          <
 4765    LPCSTR ServiceName,                                                            <
 4766    HANDLE ClientToken,                                                            <
 4767    PPRIVILEGE_SET Privileges,                                                     <
 4768    BOOL AccessGranted);                                                           <
 4769  extern(Windows) export BOOL PrivilegedServiceAuditAlarmW(                        <
 4770    LPCWSTR SubsystemName,                                                         <
 4771    LPCWSTR ServiceName,                                                           <
 4772    HANDLE ClientToken,                                                            <
 4773    PPRIVILEGE_SET Privileges,                                                     <
 4774    BOOL AccessGranted);                                                           <
 4775  // #ifdef UNICODE                                                                <
 4776  alias PrivilegedServiceAuditAlarmW PrivilegedServiceAuditAlarm;                  <
 4777  // #else                                                                         <
 4778  // #...                                                                          <
 4779  // #endif // !UNICODE                                                            <
 4780                                                                                   <
 4781  // #if(_WIN32_WINNT >= 0x0501)                                                   <
 4782                                                                                   <
 4783  enum _0 {                                                                        <
 4784                                                                                   <
 4785    WinNullSid = 0,                                                                <
 4786    WinWorldSid = 1,                                                               <
 4787    WinLocalSid = 2,                                                               <
 4788    WinCreatorOwnerSid = 3,                                                        <
 4789    WinCreatorGroupSid = 4,                                                        <
 4790    WinCreatorOwnerServerSid = 5,                                                  <
 4791    WinCreatorGroupServerSid = 6,                                                  <
 4792    WinNtAuthoritySid = 7,                                                         <
 4793    WinDialupSid = 8,                                                              <
 4794    WinNetworkSid = 9,                                                             <
 4795    WinBatchSid = 10,                                                              <
 4796    WinInteractiveSid = 11,                                                        <
 4797    WinServiceSid = 12,                                                            <
 4798    WinAnonymousSid = 13,                                                          <
 4799    WinProxySid = 14,                                                              <
 4800    WinEnterpriseControllersSid = 15,                                              <
 4801    WinSelfSid = 16,                                                               <
 4802    WinAuthenticatedUserSid = 17,                                                  <
 4803    WinRestrictedCodeSid = 18,                                                     <
 4804    WinTerminalServerSid = 19,                                                     <
 4805    WinRemoteLogonIdSid = 20,                                                      <
 4806    WinLogonIdsSid = 21,                                                           <
 4807    WinLocalSystemSid = 22,                                                        <
 4808    WinLocalServiceSid = 23,                                                       <
 4809    WinNetworkServiceSid = 24,                                                     <
 4810    WinBuiltinDomainSid = 25,                                                      <
 4811    WinBuiltinAdministratorsSid = 26,                                              <
 4812    WinBuiltinUsersSid = 27,                                                       <
 4813    WinBuiltinGuestsSid = 28,                                                      <
 4814    WinBuiltinPowerUsersSid = 29,                                                  <
 4815    WinBuiltinAccountOperatorsSid = 30,                                            <
 4816    WinBuiltinSystemOperatorsSid = 31,                                             <
 4817    WinBuiltinPrintOperatorsSid = 32,                                              <
 4818    WinBuiltinBackupOperatorsSid = 33,                                             <
 4819    WinBuiltinReplicatorSid = 34,                                                  <
 4820    WinBuiltinPreWindows2000CompatibleAccessSid = 35,                              <
 4821    WinBuiltinRemoteDesktopUsersSid = 36,                                          <
 4822    WinBuiltinNetworkConfigurationOperatorsSid = 37,                               <
 4823    WinAccountAdministratorSid = 38,                                               <
 4824    WinAccountGuestSid = 39,                                                       <
 4825    WinAccountKrbtgtSid = 40,                                                      <
 4826    WinAccountDomainAdminsSid = 41,                                                <
 4827    WinAccountDomainUsersSid = 42,                                                 <
 4828    WinAccountDomainGuestsSid = 43,                                                <
 4829    WinAccountComputersSid = 44,                                                   <
 4830    WinAccountControllersSid = 45,                                                 <
 4831    WinAccountCertAdminsSid = 46,                                                  <
 4832    WinAccountSchemaAdminsSid = 47,                                                <
 4833    WinAccountEnterpriseAdminsSid = 48,                                            <
 4834    WinAccountPolicyAdminsSid = 49,                                                <
 4835    WinAccountRasAndIasServersSid = 50,                                            <
 4836                                                                                   <
 4837  }                                                                                <
 4838  alias _0 WELL_KNOWN_SID_TYPE;                                                    <
 4839                                                                                   <
 4840  extern(Windows) export BOOL IsWellKnownSid(                                      <
 4841    PSID pSid,                                                                     <
 4842    WELL_KNOWN_SID_TYPE WellKnownSidType);                                         <
 4843                                                                                   <
 4844  extern(Windows) export BOOL CreateWellKnownSid(                                  <
 4845    WELL_KNOWN_SID_TYPE WellKnownSidType,                                          <
 4846    PSID DomainSid ,                                                               <
 4847    PSID pSid,                                                                     <
 4848    DWORD *cbSid);                                                                 <
 4849                                                                                   <
 4850  extern(Windows) export BOOL EqualDomainSid(                                      <
 4851    PSID pSid1,                                                                    <
 4852    PSID pSid2,                                                                    <
 4853    BOOL *pfEqual);                                                                <
 4854                                                                                   <
 4855  extern(Windows) export BOOL GetWindowsAccountDomainSid(                          <
 4856    PSID pSid,                                                                     <
 4857    PSID ppDomainSid ,                                                             <
 4858    DWORD *cbSid);                                                                 <
 4859                                                                                   <
 4860  // #endif //(_WIN32_WINNT >= 0x0501)                                             <
 4861                                                                                   <
 4862  extern(Windows) export BOOL IsValidSid(                                          <
 4863    PSID pSid);                                                                    <
 4864                                                                                   <
 4865  extern(Windows) export BOOL EqualSid(                                            <
 4866    PSID pSid1,                                                                    <
 4867    PSID pSid2);                                                                   <
 4868                                                                                   <
 4869  extern(Windows) export BOOL EqualPrefixSid(                                      <
 4870    PSID pSid1,                                                                    <
 4871    PSID pSid2);                                                                   <
 4872                                                                                   <
 4873  extern(Windows) export DWORD GetSidLengthRequired(                               <
 4874    UCHAR nSubAuthorityCount);                                                     <
 4875                                                                                   <
 4876  extern(Windows) export BOOL AllocateAndInitializeSid(                            <
 4877    PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority,                                <
 4878    BYTE nSubAuthorityCount,                                                       <
 4879    DWORD nSubAuthority0,                                                          <
 4880    DWORD nSubAuthority1,                                                          <
 4881    DWORD nSubAuthority2,                                                          <
 4882    DWORD nSubAuthority3,                                                          <
 4883    DWORD nSubAuthority4,                                                          <
 4884    DWORD nSubAuthority5,                                                          <
 4885    DWORD nSubAuthority6,                                                          <
 4886    DWORD nSubAuthority7,                                                          <
 4887    PSID *pSid);                                                                   <
 4888                                                                                   <
 4889  extern(Windows) export PVOID FreeSid(                                            <
 4890    PSID pSid);                                                                    <
 4891                                                                                   <
 4892  extern(Windows) export BOOL InitializeSid(                                       <
 4893    PSID Sid,                                                                      <
 4894    PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority,                                <
 4895    BYTE nSubAuthorityCount);                                                      <
 4896                                                                                   <
 4897  extern(Windows) export PSID_IDENTIFIER_AUTHORITY GetSidIdentifierAuthority(      <
 4898    PSID pSid);                                                                    <
 4899                                                                                   <
 4900  extern(Windows) export PDWORD GetSidSubAuthority(                                <
 4901    PSID pSid,                                                                     <
 4902    DWORD nSubAuthority);                                                          <
 4903                                                                                   <
 4904  extern(Windows) export PUCHAR GetSidSubAuthorityCount(                           <
 4905    PSID pSid);                                                                    <
 4906                                                                                   <
 4907  extern(Windows) export DWORD GetLengthSid(                                       <
 4908    PSID pSid);                                                                    <
 4909                                                                                   <
 4910  extern(Windows) export BOOL CopySid(                                             <
 4911    DWORD nDestinationSidLength,                                                   <
 4912    PSID pDestinationSid,                                                          <
 4913    PSID pSourceSid);                                                              <
 4914                                                                                   <
 4915  extern(Windows) export BOOL AreAllAccessesGranted(                               <
 4916    DWORD GrantedAccess,                                                           <
 4917    DWORD DesiredAccess);                                                          <
 4918                                                                                   <
 4919  extern(Windows) export BOOL AreAnyAccessesGranted(                               <
 4920    DWORD GrantedAccess,                                                           <
 4921    DWORD DesiredAccess);                                                          <
 4922                                                                                   <
 4923  extern(Windows) export VOID MapGenericMask(                                      <
 4924    PDWORD AccessMask,                                                             <
 4925    PGENERIC_MAPPING GenericMapping);                                              <
 4926                                                                                   <
 4927  extern(Windows) export BOOL IsValidAcl(                                          <
 4928    PACL pAcl);                                                                    <
 4929                                                                                   <
 4930  extern(Windows) export BOOL InitializeAcl(                                       <
 4931    PACL pAcl,                                                                     <
 4932    DWORD nAclLength,                                                              <
 4933    DWORD dwAclRevision);                                                          <
 4934                                                                                   <
 4935  extern(Windows) export BOOL GetAclInformation(                                   <
 4936    PACL pAcl,                                                                     <
 4937    LPVOID pAclInformation,                                                        <
 4938    DWORD nAclInformationLength,                                                   <
 4939    ACL_INFORMATION_CLASS dwAclInformationClass);                                  <
 4940                                                                                   <
 4941  extern(Windows) export BOOL SetAclInformation(                                   <
 4942    PACL pAcl,                                                                     <
 4943    LPVOID pAclInformation,                                                        <
 4944    DWORD nAclInformationLength,                                                   <
 4945    ACL_INFORMATION_CLASS dwAclInformationClass);                                  <
 4946                                                                                   <
 4947  extern(Windows) export BOOL AddAce(                                              <
 4948    PACL pAcl,                                                                     <
 4949    DWORD dwAceRevision,                                                           <
 4950    DWORD dwStartingAceIndex,                                                      <
 4951    LPVOID pAceList,                                                               <
 4952    DWORD nAceListLength);                                                         <
 4953                                                                                   <
 4954  extern(Windows) export BOOL DeleteAce(                                           <
 4955    PACL pAcl,                                                                     <
 4956    DWORD dwAceIndex);                                                             <
 4957                                                                                   <
 4958  extern(Windows) export BOOL GetAce(                                              <
 4959    PACL pAcl,                                                                     <
 4960    DWORD dwAceIndex,                                                              <
 4961    LPVOID *pAce);                                                                 <
 4962                                                                                   <
 4963  extern(Windows) export BOOL AddAccessAllowedAce(                                 <
 4964    PACL pAcl,                                                                     <
 4965    DWORD dwAceRevision,                                                           <
 4966    DWORD AccessMask,                                                              <
 4967    PSID pSid);                                                                    <
 4968                                                                                   <
 4969  // #if(_WIN32_WINNT >= 0x0500)                                                   <
 4970  extern(Windows) export BOOL AddAccessAllowedAceEx(                               <
 4971    PACL pAcl,                                                                     <
 4972    DWORD dwAceRevision,                                                           <
 4973    DWORD AceFlags,                                                                <
 4974    DWORD AccessMask,                                                              <
 4975    PSID pSid);                                                                    <
 4976  // #endif /* _WIN32_WINNT >=  0x0500 */                                          <
 4977                                                                                   <
 4978  extern(Windows) export BOOL AddAccessDeniedAce(                                  <
 4979    PACL pAcl,                                                                     <
 4980    DWORD dwAceRevision,                                                           <
 4981    DWORD AccessMask,                                                              <
 4982    PSID pSid);                                                                    <
 4983                                                                                   <
 4984  // #if(_WIN32_WINNT >= 0x0500)                                                   <
 4985  extern(Windows) export BOOL AddAccessDeniedAceEx(                                <
 4986    PACL pAcl,                                                                     <
 4987    DWORD dwAceRevision,                                                           <
 4988    DWORD AceFlags,                                                                <
 4989    DWORD AccessMask,                                                              <
 4990    PSID pSid);                                                                    <
 4991  // #endif /* _WIN32_WINNT >=  0x0500 */                                          <
 4992                                                                                   <
 4993  extern(Windows) export BOOL AddAuditAccessAce(                                   <
 4994    PACL pAcl,                                                                     <
 4995    DWORD dwAceRevision,                                                           <
 4996    DWORD dwAccessMask,                                                            <
 4997    PSID pSid,                                                                     <
 4998    BOOL bAuditSuccess,                                                            <
 4999    BOOL bAuditFailure);                                                           <
 5000                                                                                   <
 5001  // #if(_WIN32_WINNT >= 0x0500)                                                   <
 5002  extern(Windows) export BOOL AddAuditAccessAceEx(                                 <
 5003    PACL pAcl,                                                                     <
 5004    DWORD dwAceRevision,                                                           <
 5005    DWORD AceFlags,                                                                <
 5006    DWORD dwAccessMask,                                                            <
 5007    PSID pSid,                                                                     <
 5008    BOOL bAuditSuccess,                                                            <
 5009    BOOL bAuditFailure);                                                           <
 5010                                                                                   <
 5011  extern(Windows) export BOOL AddAccessAllowedObjectAce(                           <
 5012    PACL pAcl,                                                                     <
 5013    DWORD dwAceRevision,                                                           <
 5014    DWORD AceFlags,                                                                <
 5015    DWORD AccessMask,                                                              <
 5016    GUID *ObjectTypeGuid,                                                          <
 5017    GUID *InheritedObjectTypeGuid,                                                 <
 5018    PSID pSid);                                                                    <
 5019                                                                                   <
 5020  extern(Windows) export BOOL AddAccessDeniedObjectAce(                            <
 5021    PACL pAcl,                                                                     <
 5022    DWORD dwAceRevision,                                                           <
 5023    DWORD AceFlags,                                                                <
 5024    DWORD AccessMask,                                                              <
 5025    GUID *ObjectTypeGuid,                                                          <
 5026    GUID *InheritedObjectTypeGuid,                                                 <
 5027    PSID pSid);                                                                    <
 5028                                                                                   <
 5029  extern(Windows) export BOOL AddAuditAccessObjectAce(                             <
 5030    PACL pAcl,                                                                     <
 5031    DWORD dwAceRevision,                                                           <
 5032    DWORD AceFlags,                                                                <
 5033    DWORD AccessMask,                                                              <
 5034    GUID *ObjectTypeGuid,                                                          <
 5035    GUID *InheritedObjectTypeGuid,                                                 <
 5036    PSID pSid,                                                                     <
 5037    BOOL bAuditSuccess,                                                            <
 5038    BOOL bAuditFailure);                                                           <
 5039  // #endif /* _WIN32_WINNT >=  0x0500 */                                          <
 5040                                                                                   <
 5041  extern(Windows) export BOOL FindFirstFreeAce(                                    <
 5042    PACL pAcl,                                                                     <
 5043    LPVOID *pAce);                                                                 <
 5044                                                                                   <
 5045  extern(Windows) export BOOL InitializeSecurityDescriptor(                        <
 5046    PSECURITY_DESCRIPTOR pSecurityDescriptor,                                      <
 5047    DWORD dwRevision);                                                             <
 5048                                                                                   <
 5049  extern(Windows) export BOOL IsValidSecurityDescriptor(                           <
 5050    PSECURITY_DESCRIPTOR pSecurityDescriptor);                                     <
 5051                                                                                   <
 5052  extern(Windows) export DWORD GetSecurityDescriptorLength(                        <
 5053    PSECURITY_DESCRIPTOR pSecurityDescriptor);                                     <
 5054                                                                                   <
 5055  extern(Windows) export BOOL GetSecurityDescriptorControl(                        <
 5056    PSECURITY_DESCRIPTOR pSecurityDescriptor,                                      <
 5057    PSECURITY_DESCRIPTOR_CONTROL pControl,                                         <
 5058    LPDWORD lpdwRevision);                                                         <
 5059                                                                                   <
 5060  // #if(_WIN32_WINNT >= 0x0500)                                                   <
 5061  extern(Windows) export BOOL SetSecurityDescriptorControl(                        <
 5062    PSECURITY_DESCRIPTOR pSecurityDescriptor,                                      <
 5063    SECURITY_DESCRIPTOR_CONTROL ControlBitsOfInterest,                             <
 5064    SECURITY_DESCRIPTOR_CONTROL ControlBitsToSet);                                 <
 5065  // #endif /* _WIN32_WINNT >=  0x0500 */                                          <
 5066                                                                                   <
 5067  extern(Windows) export BOOL SetSecurityDescriptorDacl(                           <
 5068    PSECURITY_DESCRIPTOR pSecurityDescriptor,                                      <
 5069    BOOL bDaclPresent,                                                             <
 5070    PACL pDacl,                                                                    <
 5071    BOOL bDaclDefaulted);                                                          <
 5072                                                                                   <
 5073  extern(Windows) export BOOL GetSecurityDescriptorDacl(                           <
 5074    PSECURITY_DESCRIPTOR pSecurityDescriptor,                                      <
 5075    LPBOOL lpbDaclPresent,                                                         <
 5076    PACL *pDacl,                                                                   <
 5077    LPBOOL lpbDaclDefaulted);                                                      <
 5078                                                                                   <
 5079  extern(Windows) export BOOL SetSecurityDescriptorSacl(                           <
 5080    PSECURITY_DESCRIPTOR pSecurityDescriptor,                                      <
 5081    BOOL bSaclPresent,                                                             <
 5082    PACL pSacl,                                                                    <
 5083    BOOL bSaclDefaulted);                                                          <
 5084                                                                                   <
 5085  extern(Windows) export BOOL GetSecurityDescriptorSacl(                           <
 5086    PSECURITY_DESCRIPTOR pSecurityDescriptor,                                      <
 5087    LPBOOL lpbSaclPresent,                                                         <
 5088    PACL *pSacl,                                                                   <
 5089    LPBOOL lpbSaclDefaulted);                                                      <
 5090                                                                                   <
 5091  extern(Windows) export BOOL SetSecurityDescriptorOwner(                          <
 5092    PSECURITY_DESCRIPTOR pSecurityDescriptor,                                      <
 5093    PSID pOwner,                                                                   <
 5094    BOOL bOwnerDefaulted);                                                         <
 5095                                                                                   <
 5096  extern(Windows) export BOOL GetSecurityDescriptorOwner(                          <
 5097    PSECURITY_DESCRIPTOR pSecurityDescriptor,                                      <
 5098    PSID *pOwner,                                                                  <
 5099    LPBOOL lpbOwnerDefaulted);                                                     <
 5100                                                                                   <
 5101  extern(Windows) export BOOL SetSecurityDescriptorGroup(                          <
 5102    PSECURITY_DESCRIPTOR pSecurityDescriptor,                                      <
 5103    PSID pGroup,                                                                   <
 5104    BOOL bGroupDefaulted);                                                         <
 5105                                                                                   <
 5106  extern(Windows) export BOOL GetSecurityDescriptorGroup(                          <
 5107    PSECURITY_DESCRIPTOR pSecurityDescriptor,                                      <
 5108    PSID *pGroup,                                                                  <
 5109    LPBOOL lpbGroupDefaulted);                                                     <
 5110                                                                                   <
 5111  extern(Windows) export DWORD SetSecurityDescriptorRMControl(                     <
 5112    PSECURITY_DESCRIPTOR SecurityDescriptor,                                       <
 5113    PUCHAR RMControl );                                                            <
 5114                                                                                   <
 5115  extern(Windows) export DWORD GetSecurityDescriptorRMControl(                     <
 5116    PSECURITY_DESCRIPTOR SecurityDescriptor,                                       <
 5117    PUCHAR RMControl);                                                             <
 5118                                                                                   <
 5119  extern(Windows) export BOOL CreatePrivateObjectSecurity(                         <
 5120    PSECURITY_DESCRIPTOR ParentDescriptor,                                         <
 5121    PSECURITY_DESCRIPTOR CreatorDescriptor,                                        <
 5122    PSECURITY_DESCRIPTOR * NewDescriptor,                                          <
 5123    BOOL IsDirectoryObject,                                                        <
 5124    HANDLE Token,                                                                  <
 5125    PGENERIC_MAPPING GenericMapping);                                              <
 5126                                                                                   <
 5127  // #if(_WIN32_WINNT >= 0x0500)                                                   <
 5128  extern(Windows) export BOOL ConvertToAutoInheritPrivateObjectSecurity(           <
 5129    PSECURITY_DESCRIPTOR ParentDescriptor,                                         <
 5130    PSECURITY_DESCRIPTOR CurrentSecurityDescriptor,                                <
 5131    PSECURITY_DESCRIPTOR *NewSecurityDescriptor,                                   <
 5132    GUID *ObjectType,                                                              <
 5133    BOOLEAN IsDirectoryObject,                                                     <
 5134    PGENERIC_MAPPING GenericMapping);                                              <
 5135                                                                                   <
 5136  extern(Windows) export BOOL CreatePrivateObjectSecurityEx(                       <
 5137    PSECURITY_DESCRIPTOR ParentDescriptor,                                         <
 5138    PSECURITY_DESCRIPTOR CreatorDescriptor,                                        <
 5139    PSECURITY_DESCRIPTOR * NewDescriptor,                                          <
 5140    GUID *ObjectType ,                                                             <
 5141    BOOL IsContainerObject,                                                        <
 5142    ULONG AutoInheritFlags,                                                        <
 5143    HANDLE Token,                                                                  <
 5144    PGENERIC_MAPPING GenericMapping);                                              <
 5145                                                                                   <
 5146  extern(Windows) export BOOL CreatePrivateObjectSecurityWithMultipleInheritance(  <
 5147    PSECURITY_DESCRIPTOR ParentDescriptor,                                         <
 5148    PSECURITY_DESCRIPTOR CreatorDescriptor,                                        <
 5149    PSECURITY_DESCRIPTOR * NewDescriptor,                                          <
 5150    GUID **ObjectTypes ,                                                           <
 5151    ULONG GuidCount,                                                               <
 5152    BOOL IsContainerObject,                                                        <
 5153    ULONG AutoInheritFlags,                                                        <
 5154    HANDLE Token,                                                                  <
 5155    PGENERIC_MAPPING GenericMapping);                                              <
 5156  // #endif /* _WIN32_WINNT >=  0x0500 */                                          <
 5157                                                                                   <
 5158  extern(Windows) export BOOL SetPrivateObjectSecurity(                            <
 5159    SECURITY_INFORMATION SecurityInformation,                                      <
 5160    PSECURITY_DESCRIPTOR ModificationDescriptor,                                   <
 5161    PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor,                               <
 5162    PGENERIC_MAPPING GenericMapping,                                               <
 5163    HANDLE Token);                                                                 <
 5164                                                                                   <
 5165  // #if(_WIN32_WINNT >= 0x0500)                                                   <
 5166  extern(Windows) export BOOL SetPrivateObjectSecurityEx(                          <
 5167    SECURITY_INFORMATION SecurityInformation,                                      <
 5168    PSECURITY_DESCRIPTOR ModificationDescriptor,                                   <
 5169    PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor,                               <
 5170    ULONG AutoInheritFlags,                                                        <
 5171    PGENERIC_MAPPING GenericMapping,                                               <
 5172    HANDLE Token );                                                                <
 5173  // #endif /* _WIN32_WINNT >=  0x0500 */                                          <
 5174                                                                                   <
 5175  extern(Windows) export BOOL GetPrivateObjectSecurity(                            <
 5176    PSECURITY_DESCRIPTOR ObjectDescriptor,                                         <
 5177    SECURITY_INFORMATION SecurityInformation,                                      <
 5178    PSECURITY_DESCRIPTOR ResultantDescriptor,                                      <
 5179    DWORD DescriptorLength,                                                        <
 5180    PDWORD ReturnLength);                                                          <
 5181                                                                                   <
 5182  extern(Windows) export BOOL DestroyPrivateObjectSecurity(                        <
 5183    PSECURITY_DESCRIPTOR * ObjectDescriptor);                                      <
 5184                                                                                   <
 5185  extern(Windows) export BOOL MakeSelfRelativeSD(                                  <
 5186    PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor,                              <
 5187    PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor,                          <
 5188    LPDWORD lpdwBufferLength);                                                     <
 5189                                                                                   <
 5190  extern(Windows) export BOOL MakeAbsoluteSD(                                      <
 5191    PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor,                          <
 5192    PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor,                              <
 5193    LPDWORD lpdwAbsoluteSecurityDescriptorSize,                                    <
 5194    PACL pDacl,                                                                    <
 5195    LPDWORD lpdwDaclSize,                                                          <
 5196    PACL pSacl,                                                                    <
 5197    LPDWORD lpdwSaclSize,                                                          <
 5198    PSID pOwner,                                                                   <
 5199    LPDWORD lpdwOwnerSize,                                                         <
 5200    PSID pPrimaryGroup,                                                            <
 5201    LPDWORD lpdwPrimaryGroupSize);                                                 <
 5202                                                                                   <
 5203  extern(Windows) export BOOL MakeAbsoluteSD2(                                     <
 5204    PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor,                          <
 5205    LPDWORD lpdwBufferSize);                                                       <
 5206                                                                                   <
 5207  extern(Windows) export BOOL SetFileSecurityA(                                    <
 5208    LPCSTR lpFileName,                                                             <
 5209    SECURITY_INFORMATION SecurityInformation,                                      <
 5210    PSECURITY_DESCRIPTOR pSecurityDescriptor);                                     <
 5211  extern(Windows) export BOOL SetFileSecurityW(                                    <
 5212    LPCWSTR lpFileName,                                                            <
 5213    SECURITY_INFORMATION SecurityInformation,                                      <
 5214    PSECURITY_DESCRIPTOR pSecurityDescriptor);                                     <
 5215  // #ifdef UNICODE                                                                <
 5216  alias SetFileSecurityW SetFileSecurity;                                          <
 5217  // #else                                                                         <
 5218  // #...                                                                          <
 5219  // #endif // !UNICODE                                                            <
 5220                                                                                   <
 5221  extern(Windows) export BOOL GetFileSecurityA(                                    <
 5222    LPCSTR lpFileName,                                                             <
 5223    SECURITY_INFORMATION RequestedInformation,                                     <
 5224    PSECURITY_DESCRIPTOR pSecurityDescriptor,                                      <
 5225    DWORD nLength,                                                                 <
 5226    LPDWORD lpnLengthNeeded);                                                      <
 5227  extern(Windows) export BOOL GetFileSecurityW(                                    <
 5228    LPCWSTR lpFileName,                                                            <
 5229    SECURITY_INFORMATION RequestedInformation,                                     <
 5230    PSECURITY_DESCRIPTOR pSecurityDescriptor,                                      <
 5231    DWORD nLength,                                                                 <
 5232    LPDWORD lpnLengthNeeded);                                                      <
 5233  // #ifdef UNICODE                                                                <
 5234  alias GetFileSecurityW GetFileSecurity;                                          <
 5235  // #else                                                                         <
 5236  // #...                                                                          <
 5237  // #endif // !UNICODE                                                            <
 5238                                                                                   <
 5239  extern(Windows) export BOOL SetKernelObjectSecurity(                             <
 5240    HANDLE Handle,                                                                 <
 5241    SECURITY_INFORMATION SecurityInformation,                                      <
 5242    PSECURITY_DESCRIPTOR SecurityDescriptor);                                      <
 5243                                                                                   <
 5244  extern(Windows) export HANDLE FindFirstChangeNotificationA(                      <
 5245    LPCSTR lpPathName,                                                             <
 5246    BOOL bWatchSubtree,                                                            <
 5247    DWORD dwNotifyFilter);                                                         <
 5248  extern(Windows) export HANDLE FindFirstChangeNotificationW(                      <
 5249    LPCWSTR lpPathName,                                                            <
 5250    BOOL bWatchSubtree,                                                            <
 5251    DWORD dwNotifyFilter);                                                         <
 5252  // #ifdef UNICODE                                                                <
 5253  alias FindFirstChangeNotificationW FindFirstChangeNotification;                  <
 5254  // #else                                                                         <
 5255  // #...                                                                          <
 5256  // #endif // !UNICODE                                                            <
 5257                                                                                   <
 5258  extern(Windows) export BOOL FindNextChangeNotification(                          <
 5259    HANDLE hChangeHandle);                                                         <
 5260                                                                                   <
 5261  extern(Windows) export BOOL FindCloseChangeNotification(                         <
 5262    HANDLE hChangeHandle);                                                         <
 5263                                                                                   <
 5264  // #if(_WIN32_WINNT >= 0x0400)                                                   <
 5265  extern(Windows) export BOOL ReadDirectoryChangesW(                               <
 5266    HANDLE hDirectory,                                                             <
 5267    LPVOID lpBuffer,                                                               <
 5268    DWORD nBufferLength,                                                           <
 5269    BOOL bWatchSubtree,                                                            <
 5270    DWORD dwNotifyFilter,                                                          <
 5271    LPDWORD lpBytesReturned,                                                       <
 5272    LPOVERLAPPED lpOverlapped,                                                     <
 5273    LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);                          <
 5274  // #endif /* _WIN32_WINNT >= 0x0400 */                                           <
 5275                                                                                   <
 5276  extern(Windows) export BOOL VirtualLock(                                         <
 5277    LPVOID lpAddress,                                                              <
 5278    SIZE_T dwSize);                                                                <
 5279                                                                                   <
 5280  extern(Windows) export BOOL VirtualUnlock(                                       <
 5281    LPVOID lpAddress,                                                              <
 5282    SIZE_T dwSize);                                                                <
 5283                                                                                   <
 5284  extern(Windows) export LPVOID MapViewOfFileEx(                                   <
 5285    HANDLE hFileMappingObject,                                                     <
 5286    DWORD dwDesiredAccess,                                                         <
 5287    DWORD dwFileOffsetHigh,                                                        <
 5288    DWORD dwFileOffsetLow,                                                         <
 5289    SIZE_T dwNumberOfBytesToMap,                                                   <
 5290    LPVOID lpBaseAddress);                                                         <
 5291                                                                                   <
 5292  extern(Windows) export BOOL SetPriorityClass(                                    <
 5293    HANDLE hProcess,                                                               <
 5294    DWORD dwPriorityClass);                                                        <
 5295                                                                                   <
 5296  extern(Windows) export DWORD GetPriorityClass(                                   <
 5297    HANDLE hProcess);                                                              <
 5298                                                                                   <
 5299  extern(Windows) export BOOL IsBadReadPtr(                                        <
 5300    VOID *lp,                                                                      <
 5301    UINT_PTR ucb);                                                                 <
 5302                                                                                   <
 5303  extern(Windows) export BOOL IsBadWritePtr(                                       <
 5304    LPVOID lp,                                                                     <
 5305    UINT_PTR ucb);                                                                 <
 5306                                                                                   <
 5307  extern(Windows) export BOOL IsBadHugeReadPtr(                                    <
 5308    VOID *lp,                                                                      <
 5309    UINT_PTR ucb);                                                                 <
 5310                                                                                   <
 5311  extern(Windows) export BOOL IsBadHugeWritePtr(                                   <
 5312    LPVOID lp,                                                                     <
 5313    UINT_PTR ucb);                                                                 <
 5314                                                                                   <
 5315  extern(Windows) export BOOL IsBadCodePtr(                                        <
 5316    FARPROC lpfn);                                                                 <
 5317                                                                                   <
 5318  extern(Windows) export BOOL IsBadStringPtrA(                                     <
 5319    LPCSTR lpsz,                                                                   <
 5320    UINT_PTR ucchMax);                                                             <
 5321  extern(Windows) export BOOL IsBadStringPtrW(                                     <
 5322    LPCWSTR lpsz,                                                                  <
 5323    UINT_PTR ucchMax);                                                             <
 5324  // #ifdef UNICODE                                                                <
 5325  alias IsBadStringPtrW IsBadStringPtr;                                            <
 5326  // #else                                                                         <
 5327  // #...                                                                          <
 5328  // #endif // !UNICODE                                                            <
 5329                                                                                   <
 5330  extern(Windows) export BOOL LookupAccountSidA(                                   <
 5331    LPCSTR lpSystemName,                                                           <
 5332    PSID Sid,                                                                      <
 5333    LPSTR Name,                                                                    <
 5334    LPDWORD cbName,                                                                <
 5335    LPSTR ReferencedDomainName,                                                    <
 5336    LPDWORD cbReferencedDomainName,                                                <
 5337    PSID_NAME_USE peUse);                                                          <
 5338  extern(Windows) export BOOL LookupAccountSidW(                                   <
 5339    LPCWSTR lpSystemName,                                                          <
 5340    PSID Sid,                                                                      <
 5341    LPWSTR Name,                                                                   <
 5342    LPDWORD cbName,                                                                <
 5343    LPWSTR ReferencedDomainName,                                                   <
 5344    LPDWORD cbReferencedDomainName,                                                <
 5345    PSID_NAME_USE peUse);                                                          <
 5346  // #ifdef UNICODE                                                                <
 5347  alias LookupAccountSidW LookupAccountSid;                                        <
 5348  // #else                                                                         <
 5349  // #...                                                                          <
 5350  // #endif // !UNICODE                                                            <
 5351                                                                                   <
 5352  extern(Windows) export BOOL LookupAccountNameA(                                  <
 5353    LPCSTR lpSystemName,                                                           <
 5354    LPCSTR lpAccountName,                                                          <
 5355    PSID Sid,                                                                      <
 5356    LPDWORD cbSid,                                                                 <
 5357    LPSTR ReferencedDomainName,                                                    <
 5358    LPDWORD cbReferencedDomainName,                                                <
 5359    PSID_NAME_USE peUse);                                                          <
 5360  extern(Windows) export BOOL LookupAccountNameW(                                  <
 5361    LPCWSTR lpSystemName,                                                          <
 5362    LPCWSTR lpAccountName,                                                         <
 5363    PSID Sid,                                                                      <
 5364    LPDWORD cbSid,                                                                 <
 5365    LPWSTR ReferencedDomainName,                                                   <
 5366    LPDWORD cbReferencedDomainName,                                                <
 5367    PSID_NAME_USE peUse);                                                          <
 5368  // #ifdef UNICODE                                                                <
 5369  alias LookupAccountNameW LookupAccountName;                                      <
 5370  // #else                                                                         <
 5371  // #...                                                                          <
 5372  // #endif // !UNICODE                                                            <
 5373                                                                                   <
 5374  extern(Windows) export BOOL LookupPrivilegeValueA(                               <
 5375    LPCSTR lpSystemName,                                                           <
 5376    LPCSTR lpName,                                                                 <
 5377    PLUID lpLuid);                                                                 <
 5378  extern(Windows) export BOOL LookupPrivilegeValueW(                               <
 5379    LPCWSTR lpSystemName,                                                          <
 5380    LPCWSTR lpName,                                                                <
 5381    PLUID lpLuid);                                                                 <
 5382  // #ifdef UNICODE                                                                <
 5383  alias LookupPrivilegeValueW LookupPrivilegeValue;                                <
 5384  // #else                                                                         <
 5385  // #...                                                                          <
 5386  // #endif // !UNICODE                                                            <
 5387                                                                                   <
 5388  extern(Windows) export BOOL LookupPrivilegeNameA(                                <
 5389    LPCSTR lpSystemName,                                                           <
 5390    PLUID lpLuid,                                                                  <
 5391    LPSTR lpName,                                                                  <
 5392    LPDWORD cbName);                                                               <
 5393  extern(Windows) export BOOL LookupPrivilegeNameW(                                <
 5394    LPCWSTR lpSystemName,                                                          <
 5395    PLUID lpLuid,                                                                  <
 5396    LPWSTR lpName,                                                                 <
 5397    LPDWORD cbName);                                                               <
 5398  // #ifdef UNICODE                                                                <
 5399  alias LookupPrivilegeNameW LookupPrivilegeName;                                  <
 5400  // #else                                                                         <
 5401  // #...                                                                          <
 5402  // #endif // !UNICODE                                                            <
 5403                                                                                   <
 5404  extern(Windows) export BOOL LookupPrivilegeDisplayNameA(                         <
 5405    LPCSTR lpSystemName,                                                           <
 5406    LPCSTR lpName,                                                                 <
 5407    LPSTR lpDisplayName,                                                           <
 5408    LPDWORD cbDisplayName,                                                         <
 5409    LPDWORD lpLanguageId);                                                         <
 5410  extern(Windows) export BOOL LookupPrivilegeDisplayNameW(                         <
 5411    LPCWSTR lpSystemName,                                                          <
 5412    LPCWSTR lpName,                                                                <
 5413    LPWSTR lpDisplayName,                                                          <
 5414    LPDWORD cbDisplayName,                                                         <
 5415    LPDWORD lpLanguageId);                                                         <
 5416  // #ifdef UNICODE                                                                <
 5417  alias LookupPrivilegeDisplayNameW LookupPrivilegeDisplayName;                    <
 5418  // #else                                                                         <
 5419  // #...                                                                          <
 5420  // #endif // !UNICODE                                                            <
 5421                                                                                   <
 5422  extern(Windows) export BOOL AllocateLocallyUniqueId(                             <
 5423    PLUID Luid);                                                                   <
 5424                                                                                   <
 5425  extern(Windows) export BOOL BuildCommDCBA(                                       <
 5426    LPCSTR lpDef,                                                                  <
 5427    LPDCB lpDCB);                                                                  <
 5428  extern(Windows) export BOOL BuildCommDCBW(                                       <
 5429    LPCWSTR lpDef,                                                                 <
 5430    LPDCB lpDCB);                                                                  <
 5431  // #ifdef UNICODE                                                                <
 5432  alias BuildCommDCBW BuildCommDCB;                                                <
 5433  // #else                                                                         <
 5434  // #...                                                                          <
 5435  // #endif // !UNICODE                                                            <
 5436                                                                                   <
 5437  extern(Windows) export BOOL BuildCommDCBAndTimeoutsA(                            <
 5438    LPCSTR lpDef,                                                                  <
 5439    LPDCB lpDCB,                                                                   <
 5440    LPCOMMTIMEOUTS lpCommTimeouts);                                                <
 5441  extern(Windows) export BOOL BuildCommDCBAndTimeoutsW(                            <
 5442    LPCWSTR lpDef,                                                                 <
 5443    LPDCB lpDCB,                                                                   <
 5444    LPCOMMTIMEOUTS lpCommTimeouts);                                                <
 5445  // #ifdef UNICODE                                                                <
 5446  alias BuildCommDCBAndTimeoutsW BuildCommDCBAndTimeouts;                          <
 5447  // #else                                                                         <
 5448  // #...                                                                          <
 5449  // #endif // !UNICODE                                                            <
 5450                                                                                   <
 5451  extern(Windows) export BOOL CommConfigDialogA(                                   <
 5452    LPCSTR lpszName,                                                               <
 5453    HWND hWnd,                                                                     <
 5454    LPCOMMCONFIG lpCC);                                                            <
 5455  extern(Windows) export BOOL CommConfigDialogW(                                   <
 5456    LPCWSTR lpszName,                                                              <
 5457    HWND hWnd,                                                                     <
 5458    LPCOMMCONFIG lpCC);                                                            <
 5459  // #ifdef UNICODE                                                                <
 5460  alias CommConfigDialogW CommConfigDialog;                                        <
 5461  // #else                                                                         <
 5462  // #...                                                                          <
 5463  // #endif // !UNICODE                                                            <
 5464                                                                                   <
 5465  extern(Windows) export BOOL GetDefaultCommConfigA(                               <
 5466    LPCSTR lpszName,                                                               <
 5467    LPCOMMCONFIG lpCC,                                                             <
 5468    LPDWORD lpdwSize);                                                             <
 5469  extern(Windows) export BOOL GetDefaultCommConfigW(                               <
 5470    LPCWSTR lpszName,                                                              <
 5471    LPCOMMCONFIG lpCC,                                                             <
 5472    LPDWORD lpdwSize);                                                             <
 5473  // #ifdef UNICODE                                                                <
 5474  alias GetDefaultCommConfigW GetDefaultCommConfig;                                <
 5475  // #else                                                                         <
 5476  // #...                                                                          <
 5477  // #endif // !UNICODE                                                            <
 5478                                                                                   <
 5479  extern(Windows) export BOOL SetDefaultCommConfigA(                               <
 5480    LPCSTR lpszName,                                                               <
 5481    LPCOMMCONFIG lpCC,                                                             <
 5482    DWORD dwSize);                                                                 <
 5483  extern(Windows) export BOOL SetDefaultCommConfigW(                               <
 5484    LPCWSTR lpszName,                                                              <
 5485    LPCOMMCONFIG lpCC,                                                             <
 5486    DWORD dwSize);                                                                 <
 5487  // #ifdef UNICODE                                                                <
 5488  alias SetDefaultCommConfigW SetDefaultCommConfig;                                <
 5489  // #else                                                                         <
 5490  // #...                                                                          <
 5491  // #endif // !UNICODE                                                            <
 5492                                                                                   <
 5493  // #ifndef _MAC                                                                  <
 5494  enum : uint { MAX_COMPUTERNAME_LENGTH = 15 }                                     <
 5495  // #else                                                                         <
 5496  // #...                                                                          <
 5497  // #endif                                                                        <
 5498                                                                                   <
 5499  extern(Windows) export BOOL GetComputerNameA(                                    <
 5500    LPSTR lpBuffer,                                                                <
 5501    LPDWORD nSize);                                                                <
 5502  extern(Windows) export BOOL GetComputerNameW(                                    <
 5503    LPWSTR lpBuffer,                                                               <
 5504    LPDWORD nSize);                                                                <
 5505  // #ifdef UNICODE                                                                <
 5506  alias GetComputerNameW GetComputerName;                                          <
 5507  // #else                                                                         <
 5508  // #...                                                                          <
 5509  // #endif // !UNICODE                                                            <
 5510                                                                                   <
 5511  extern(Windows) export BOOL SetComputerNameA(                                    <
 5512    LPCSTR lpComputerName);                                                        <
 5513  extern(Windows) export BOOL SetComputerNameW(                                    <
 5514    LPCWSTR lpComputerName);                                                       <
 5515  // #ifdef UNICODE                                                                <
 5516  alias SetComputerNameW SetComputerName;                                          <
 5517  // #else                                                                         <
 5518  // #...                                                                          <
 5519  // #endif // !UNICODE                                                            <
 5520                                                                                   <
 5521  // #if (_WIN32_WINNT >= 0x0500)                                                  <
 5522                                                                                   <
 5523  alias int _COMPUTER_NAME_FORMAT;                                                 <
 5524  enum {                                                                           <
 5525    ComputerNameNetBIOS,                                                           <
 5526    ComputerNameDnsHostname,                                                       <
 5527    ComputerNameDnsDomain,                                                         <
 5528    ComputerNameDnsFullyQualified,                                                 <
 5529    ComputerNamePhysicalNetBIOS,                                                   <
 5530    ComputerNamePhysicalDnsHostname,                                               <
 5531    ComputerNamePhysicalDnsDomain,                                                 <
 5532    ComputerNamePhysicalDnsFullyQualified,                                         <
 5533    ComputerNameMax,                                                               <
 5534  }                                                                                <
 5535  alias _COMPUTER_NAME_FORMAT COMPUTER_NAME_FORMAT;                                <
 5536                                                                                   <
 5537  extern(Windows) export BOOL GetComputerNameExA(                                  <
 5538    COMPUTER_NAME_FORMAT NameType,                                                 <
 5539    LPSTR lpBuffer,                                                                <
 5540    LPDWORD nSize);                                                                <
 5541  extern(Windows) export BOOL GetComputerNameExW(                                  <
 5542    COMPUTER_NAME_FORMAT NameType,                                                 <
 5543    LPWSTR lpBuffer,                                                               <
 5544    LPDWORD nSize);                                                                <
 5545  // #ifdef UNICODE                                                                <
 5546  alias GetComputerNameExW GetComputerNameEx;                                      <
 5547  // #else                                                                         <
 5548  // #...                                                                          <
 5549  // #endif // !UNICODE                                                            <
 5550                                                                                   <
 5551  extern(Windows) export BOOL SetComputerNameExA(                                  <
 5552    COMPUTER_NAME_FORMAT NameType,                                                 <
 5553    LPCSTR lpBuffer);                                                              <
 5554  extern(Windows) export BOOL SetComputerNameExW(                                  <
 5555    COMPUTER_NAME_FORMAT NameType,                                                 <
 5556    LPCWSTR lpBuffer);                                                             <
 5557  // #ifdef UNICODE                                                                <
 5558  alias SetComputerNameExW SetComputerNameEx;                                      <
 5559  // #else                                                                         <
 5560  // #...                                                                          <
 5561  // #endif // !UNICODE                                                            <
 5562                                                                                   <
 5563  extern(Windows) export DWORD AddLocalAlternateComputerNameA(                     <
 5564    LPCSTR lpDnsFQHostname,                                                        <
 5565    ULONG ulFlags);                                                                <
 5566  extern(Windows) export DWORD AddLocalAlternateComputerNameW(                     <
 5567    LPCWSTR lpDnsFQHostname,                                                       <
 5568    ULONG ulFlags);                                                                <
 5569  // #ifdef UNICODE                                                                <
 5570  alias AddLocalAlternateComputerNameW AddLocalAlternateComputerName;              <
 5571  // #else                                                                         <
 5572  // #...                                                                          <
 5573  // #endif // !UNICODE                                                            <
 5574                                                                                   <
 5575  extern(Windows) export DWORD RemoveLocalAlternateComputerNameA(                  <
 5576    LPCSTR lpAltDnsFQHostname,                                                     <
 5577    ULONG ulFlags);                                                                <
 5578  extern(Windows) export DWORD RemoveLocalAlternateComputerNameW(                  <
 5579    LPCWSTR lpAltDnsFQHostname,                                                    <
 5580    ULONG ulFlags);                                                                <
 5581  // #ifdef UNICODE                                                                <
 5582  alias RemoveLocalAlternateComputerNameW RemoveLocalAlternateComputerName;        <
 5583  // #else                                                                         <
 5584  // #...                                                                          <
 5585  // #endif // !UNICODE                                                            <
 5586                                                                                   <
 5587  extern(Windows) export DWORD SetLocalPrimaryComputerNameA(                       <
 5588    LPCSTR lpAltDnsFQHostname,                                                     <
 5589    ULONG ulFlags);                                                                <
 5590  extern(Windows) export DWORD SetLocalPrimaryComputerNameW(                       <
 5591    LPCWSTR lpAltDnsFQHostname,                                                    <
 5592    ULONG ulFlags);                                                                <
 5593  // #ifdef UNICODE                                                                <
 5594  alias SetLocalPrimaryComputerNameW SetLocalPrimaryComputerName;                  <
 5595  // #else                                                                         <
 5596  // #...                                                                          <
 5597  // #endif // !UNICODE                                                            <
 5598                                                                                   <
 5599  alias int _COMPUTER_NAME_TYPE;                                                   <
 5600  enum {                                                                           <
 5601    PrimaryComputerName,                                                           <
 5602    AlternateComputerNames,                                                        <
 5603    AllComputerNames,                                                              <
 5604    ComputerNameTypeMax,                                                           <
 5605  }                                                                                <
 5606  alias _COMPUTER_NAME_TYPE COMPUTER_NAME_TYPE;                                    <
 5607                                                                                   <
 5608  extern(Windows) export DWORD EnumerateLocalComputerNamesA(                       <
 5609    COMPUTER_NAME_TYPE NameType,                                                   <
 5610    ULONG ulFlags,                                                                 <
 5611    LPSTR lpDnsFQHostname,                                                         <
 5612    LPDWORD nSize);                                                                <
 5613  extern(Windows) export DWORD EnumerateLocalComputerNamesW(                       <
 5614    COMPUTER_NAME_TYPE NameType,                                                   <
 5615    ULONG ulFlags,                                                                 <
 5616    LPWSTR lpDnsFQHostname,                                                        <
 5617    LPDWORD nSize);                                                                <
 5618  // #ifdef UNICODE                                                                <
 5619  alias EnumerateLocalComputerNamesW EnumerateLocalComputerNames;                  <
 5620  // #else                                                                         <
 5621  // #...                                                                          <
 5622  // #endif // !UNICODE                                                            <
 5623                                                                                   <
 5624  extern(Windows) export BOOL DnsHostnameToComputerNameA(                          <
 5625    LPCSTR Hostname,                                                               <
 5626    LPSTR ComputerName,                                                            <
 5627    LPDWORD nSize);                                                                <
 5628  extern(Windows) export BOOL DnsHostnameToComputerNameW(                          <
 5629    LPCWSTR Hostname,                                                              <
 5630    LPWSTR ComputerName,                                                           <
 5631    LPDWORD nSize);                                                                <
 5632  // #ifdef UNICODE                                                                <
 5633  alias DnsHostnameToComputerNameW DnsHostnameToComputerName;                      <
 5634  // #else                                                                         <
 5635  // #...                                                                          <
 5636  // #endif // !UNICODE                                                            <
 5637                                                                                   <
 5638  // #endif // _WIN32_WINNT                                                        <
 5639                                                                                   <
 5640  extern(Windows) export BOOL GetUserNameA(                                        <
 5641    LPSTR lpBuffer,                                                                <
 5642    LPDWORD nSize);                                                                <
 5643  extern(Windows) export BOOL GetUserNameW(                                        <
 5644    LPWSTR lpBuffer,                                                               <
 5645    LPDWORD nSize);                                                                <
 5646  // #ifdef UNICODE                                                                <
 5647  alias GetUserNameW GetUserName;                                                  <
 5648  // #else                                                                         <
 5649  // #...                                                                          <
 5650  // #endif // !UNICODE                                                            <
 5651                                                                                   <
 5652  enum : uint { LOGON32_LOGON_INTERACTIVE = 2 }                                    <
 5653  enum : uint { LOGON32_LOGON_NETWORK = 3 }                                        <
 5654  enum : uint { LOGON32_LOGON_BATCH = 4 }                                          <
 5655  enum : uint { LOGON32_LOGON_SERVICE = 5 }                                        <
 5656  enum : uint { LOGON32_LOGON_UNLOCK = 7 }                                         <
 5657  // #if(_WIN32_WINNT >= 0x0500)                                                   <
 5658  enum : uint { LOGON32_LOGON_NETWORK_CLEARTEXT = 8 }                              <
 5659  enum : uint { LOGON32_LOGON_NEW_CREDENTIALS = 9 }                                <
 5660  // #endif // (_WIN32_WINNT >= 0x0500)                                            <
 5661                                                                                   <
 5662  enum : uint { LOGON32_PROVIDER_DEFAULT = 0 }                                     <
 5663  enum : uint { LOGON32_PROVIDER_WINNT35 = 1 }                                     <
 5664  // #if(_WIN32_WINNT >= 0x0400)                                                   <
 5665  enum : uint { LOGON32_PROVIDER_WINNT40 = 2 }                                     <
 5666  // #endif /* _WIN32_WINNT >= 0x0400 */                                           <
 5667  // #if(_WIN32_WINNT >= 0x0500)                                                   <
 5668  enum : uint { LOGON32_PROVIDER_WINNT50 = 3 }                                     <
 5669  // #endif // (_WIN32_WINNT >= 0x0500)                                            <
 5670                                                                                   <
 5671  extern(Windows) export BOOL LogonUserA(                                          <
 5672    LPSTR lpszUsername,                                                            <
 5673    LPSTR lpszDomain,                                                              <
 5674    LPSTR lpszPassword,                                                            <
 5675    DWORD dwLogonType,                                                             <
 5676    DWORD dwLogonProvider,                                                         <
 5677    PHANDLE phToken);                                                              <
 5678  extern(Windows) export BOOL LogonUserW(                                          <
 5679    LPWSTR lpszUsername,                                                           <
 5680    LPWSTR lpszDomain,                                                             <
 5681    LPWSTR lpszPassword,                                                           <
 5682    DWORD dwLogonType,                                                             <
 5683    DWORD dwLogonProvider,                                                         <
 5684    PHANDLE phToken);                                                              <
 5685  // #ifdef UNICODE                                                                <
 5686  alias LogonUserW LogonUser;                                                      <
 5687  // #else                                                                         <
 5688  // #...                                                                          <
 5689  // #endif // !UNICODE                                                            <
 5690                                                                                   <
 5691  extern(Windows) export BOOL LogonUserExA(                                        <
 5692    LPSTR lpszUsername,                                                            <
 5693    LPSTR lpszDomain,                                                              <
 5694    LPSTR lpszPassword,                                                            <
 5695    DWORD dwLogonType,                                                             <
 5696    DWORD dwLogonProvider,                                                         <
 5697    PHANDLE phToken ,                                                              <
 5698    PSID *ppLogonSid ,                                                             <
 5699    PVOID *ppProfileBuffer ,                                                       <
 5700    LPDWORD pdwProfileLength ,                                                     <
 5701    PQUOTA_LIMITS pQuotaLimits );                                                  <
 5702  extern(Windows) export BOOL LogonUserExW(                                        <
 5703    LPWSTR lpszUsername,                                                           <
 5704    LPWSTR lpszDomain,                                                             <
 5705    LPWSTR lpszPassword,                                                           <
 5706    DWORD dwLogonType,                                                             <
 5707    DWORD dwLogonProvider,                                                         <
 5708    PHANDLE phToken ,                                                              <
 5709    PSID *ppLogonSid ,                                                             <
 5710    PVOID *ppProfileBuffer ,                                                       <
 5711    LPDWORD pdwProfileLength ,                                                     <
 5712    PQUOTA_LIMITS pQuotaLimits );                                                  <
 5713  // #ifdef UNICODE                                                                <
 5714  alias LogonUserExW LogonUserEx;                                                  <
 5715  // #else                                                                         <
 5716  // #...                                                                          <
 5717  // #endif // !UNICODE                                                            <
 5718                                                                                   <
 5719  extern(Windows) export BOOL ImpersonateLoggedOnUser(                             <
 5720    HANDLE hToken);                                                                <
 5721                                                                                   <
 5722  extern(Windows) export BOOL CreateProcessAsUserA(                                <
 5723    HANDLE hToken,                                                                 <
 5724    LPCSTR lpApplicationName,                                                      <
 5725    LPSTR lpCommandLine,                                                           <
 5726    LPSECURITY_ATTRIBUTES lpProcessAttributes,                                     <
 5727    LPSECURITY_ATTRIBUTES lpThreadAttributes,                                      <
 5728    BOOL bInheritHandles,                                                          <
 5729    DWORD dwCreationFlags,                                                         <
 5730    LPVOID lpEnvironment,                                                          <
 5731    LPCSTR lpCurrentDirectory,                                                     <
 5732    LPSTARTUPINFOA lpStartupInfo,                                                  <
 5733    LPPROCESS_INFORMATION lpProcessInformation);                                   <
 5734  extern(Windows) export BOOL CreateProcessAsUserW(                                <
 5735    HANDLE hToken,                                                                 <
 5736    LPCWSTR lpApplicationName,                                                     <
 5737    LPWSTR lpCommandLine,                                                          <
 5738    LPSECURITY_ATTRIBUTES lpProcessAttributes,                                     <
 5739    LPSECURITY_ATTRIBUTES lpThreadAttributes,                                      <
 5740    BOOL bInheritHandles,                                                          <
 5741    DWORD dwCreationFlags,                                                         <
 5742    LPVOID lpEnvironment,                                                          <
 5743    LPCWSTR lpCurrentDirectory,                                                    <
 5744    LPSTARTUPINFOW lpStartupInfo,                                                  <
 5745    LPPROCESS_INFORMATION lpProcessInformation);                                   <
 5746  // #ifdef UNICODE                                                                <
 5747  alias CreateProcessAsUserW CreateProcessAsUser;                                  <
 5748  // #else                                                                         <
 5749  // #...                                                                          <
 5750  // #endif // !UNICODE                                                            <
 5751                                                                                   <
 5752  // #if(_WIN32_WINNT >= 0x0500)                                                   <
 5753                                                                                   <
 5754  enum : uint { LOGON_WITH_PROFILE = 0x00000001 }                                  <
 5755  enum : uint { LOGON_NETCREDENTIALS_ONLY = 0x00000002 }                           <
 5756                                                                                   <
 5757  extern(Windows) export BOOL CreateProcessWithLogonW(                             <
 5758    LPCWSTR lpUsername,                                                            <
 5759    LPCWSTR lpDomain,                                                              <
 5760    LPCWSTR lpPassword,                                                            <
 5761    DWORD dwLogonFlags,                                                            <
 5762    LPCWSTR lpApplicationName,                                                     <
 5763    LPWSTR lpCommandLine,                                                          <
 5764    DWORD dwCreationFlags,                                                         <
 5765    LPVOID lpEnvironment,                                                          <
 5766    LPCWSTR lpCurrentDirectory,                                                    <
 5767    LPSTARTUPINFOW lpStartupInfo,                                                  <
 5768    LPPROCESS_INFORMATION lpProcessInformation);                                   <
 5769                                                                                   <
 5770  // #endif // (_WIN32_WINNT >= 0x0500)                                            <
 5771                                                                                   <
 5772  extern(Windows) export BOOL ImpersonateAnonymousToken(                           <
 5773    HANDLE ThreadHandle);                                                          <
 5774                                                                                   <
 5775  extern(Windows) export BOOL DuplicateTokenEx(                                    <
 5776    HANDLE hExistingToken,                                                         <
 5777    DWORD dwDesiredAccess,                                                         <
 5778    LPSECURITY_ATTRIBUTES lpTokenAttributes,                                       <
 5779    SECURITY_IMPERSONATION_LEVEL ImpersonationLevel,                               <
 5780    TOKEN_TYPE TokenType,                                                          <
 5781    PHANDLE phNewToken);                                                           <
 5782                                                                                   <
 5783  extern(Windows) export BOOL CreateRestrictedToken(                               <
 5784    HANDLE ExistingTokenHandle,                                                    <
 5785    DWORD Flags,                                                                   <
 5786    DWORD DisableSidCount,                                                         <
 5787    PSID_AND_ATTRIBUTES SidsToDisable ,                                            <
 5788    DWORD DeletePrivilegeCount,                                                    <
 5789    PLUID_AND_ATTRIBUTES PrivilegesToDelete ,                                      <
 5790    DWORD RestrictedSidCount,                                                      <
 5791    PSID_AND_ATTRIBUTES SidsToRestrict ,                                           <
 5792    PHANDLE NewTokenHandle);                                                       <
 5793                                                                                   <
 5794  extern(Windows) export BOOL IsTokenRestricted(                                   <
 5795    HANDLE TokenHandle);                                                           <
 5796                                                                                   <
 5797  extern(Windows) export BOOL IsTokenUntrusted(                                    <
 5798    HANDLE TokenHandle);                                                           <
 5799                                                                                   <
 5800  extern(Windows) export BOOL CheckTokenMembership(                                <
 5801    HANDLE TokenHandle ,                                                           <
 5802    PSID SidToCheck,                                                               <
 5803    PBOOL IsMember);                                                               <
 5804                                                                                   <
 5805  // #if (_WIN32_WINNT >= 0x0500)                                                  <
 5806                                                                                   <
 5807  alias WAITORTIMERCALLBACKFUNC WAITORTIMERCALLBACK;                               <
 5808                                                                                   <
 5809  extern(Windows) export BOOL RegisterWaitForSingleObject(                         <
 5810    PHANDLE phNewWaitObject,                                                       <
 5811    HANDLE hObject,                                                                <
 5812    WAITORTIMERCALLBACK Callback,                                                  <
 5813    PVOID Context,                                                                 <
 5814    ULONG dwMilliseconds,                                                          <
 5815    ULONG dwFlags);                                                                <
 5816                                                                                   <
 5817  extern(Windows) export HANDLE RegisterWaitForSingleObjectEx(                     <
 5818    HANDLE hObject,                                                                <
 5819    WAITORTIMERCALLBACK Callback,                                                  <
 5820    PVOID Context,                                                                 <
 5821    ULONG dwMilliseconds,                                                          <
 5822    ULONG dwFlags);                                                                <
 5823                                                                                   <
 5824  extern(Windows) export BOOL UnregisterWait(                                      <
 5825    HANDLE WaitHandle);                                                            <
 5826                                                                                   <
 5827  extern(Windows) export BOOL UnregisterWaitEx(                                    <
 5828    HANDLE WaitHandle,                                                             <
 5829    HANDLE CompletionEvent);                                                       <
 5830                                                                                   <
 5831  extern(Windows) export BOOL QueueUserWorkItem(                                   <
 5832    LPTHREAD_START_ROUTINE Function,                                               <
 5833    PVOID Context,                                                                 <
 5834    ULONG Flags);                                                                  <
 5835                                                                                   <
 5836  extern(Windows) export BOOL BindIoCompletionCallback(                            <
 5837    HANDLE FileHandle,                                                             <
 5838    LPOVERLAPPED_COMPLETION_ROUTINE Function,                                      <
 5839    ULONG Flags);                                                                  <
 5840                                                                                   <
 5841  extern(Windows) export HANDLE CreateTimerQueue();                                <
 5842                                                                                   <
 5843  extern(Windows) export BOOL CreateTimerQueueTimer(                               <
 5844    PHANDLE phNewTimer,                                                            <
 5845    HANDLE TimerQueue,                                                             <
 5846    WAITORTIMERCALLBACK Callback,                                                  <
 5847    PVOID Parameter,                                                               <
 5848    DWORD DueTime,                                                                 <
 5849    DWORD Period,                                                                  <
 5850    ULONG Flags);                                                                  <
 5851                                                                                   <
 5852  extern(Windows) export BOOL ChangeTimerQueueTimer(                               <
 5853    HANDLE TimerQueue,                                                             <
 5854    HANDLE Timer,                                                                  <
 5855    ULONG DueTime,                                                                 <
 5856    ULONG Period);                                                                 <
 5857                                                                                   <
 5858  extern(Windows) export BOOL DeleteTimerQueueTimer(                               <
 5859    HANDLE TimerQueue,                                                             <
 5860    HANDLE Timer,                                                                  <
 5861    HANDLE CompletionEvent);                                                       <
 5862                                                                                   <
 5863  extern(Windows) export BOOL DeleteTimerQueueEx(                                  <
 5864    HANDLE TimerQueue,                                                             <
 5865    HANDLE CompletionEvent);                                                       <
 5866                                                                                   <
 5867  extern(Windows) export HANDLE SetTimerQueueTimer(                                <
 5868    HANDLE TimerQueue,                                                             <
 5869    WAITORTIMERCALLBACK Callback,                                                  <
 5870    PVOID Parameter,                                                               <
 5871    DWORD DueTime,                                                                 <
 5872    DWORD Period,                                                                  <
 5873    BOOL PreferIo);                                                                <
 5874                                                                                   <
 5875  extern(Windows) export BOOL CancelTimerQueueTimer(                               <
 5876    HANDLE TimerQueue,                                                             <
 5877    HANDLE Timer);                                                                 <
 5878                                                                                   <
 5879  extern(Windows) export BOOL DeleteTimerQueue(                                    <
 5880    HANDLE TimerQueue);                                                            <
 5881                                                                                   <
 5882  // #endif // _WIN32_WINNT                                                        <
 5883                                                                                   <
 5884  // #if(_WIN32_WINNT >= 0x0400)                                                   <
 5885                                                                                   <
 5886  enum : uint { HW_PROFILE_GUIDLEN = 39 }                                          <
 5887  enum : uint { MAX_PROFILE_LEN = 80 }                                             <
 5888                                                                                   <
 5889  enum : uint { DOCKINFO_UNDOCKED = 0x1 }                                          <
 5890  enum : uint { DOCKINFO_DOCKED = 0x2 }                                            <
 5891  enum : uint { DOCKINFO_USER_SUPPLIED = 0x4 }                                     <
 5892  enum : uint { DOCKINFO_USER_UNDOCKED = DOCKINFO_USER_SUPPLIED | DOCKINFO_UNDOCKE <
 5893  enum : uint { DOCKINFO_USER_DOCKED = DOCKINFO_USER_SUPPLIED | DOCKINFO_DOCKED }  <
 5894                                                                                   <
 5895  struct tagHW_PROFILE_INFOA {                                                     <
 5896    DWORD dwDockInfo;                                                              <
 5897    CHAR szHwProfileGuid[HW_PROFILE_GUIDLEN];                                      <
 5898    CHAR szHwProfileName[MAX_PROFILE_LEN];                                         <
 5899  }                                                                                <
 5900  alias tagHW_PROFILE_INFOA HW_PROFILE_INFOA;                                      <
 5901  alias tagHW_PROFILE_INFOA* LPHW_PROFILE_INFOA;                                   <
 5902                                                                                   <
 5903  struct tagHW_PROFILE_INFOW {                                                     <
 5904    DWORD dwDockInfo;                                                              <
 5905    WCHAR szHwProfileGuid[HW_PROFILE_GUIDLEN];                                     <
 5906    WCHAR szHwProfileName[MAX_PROFILE_LEN];                                        <
 5907  }                                                                                <
 5908  alias tagHW_PROFILE_INFOW HW_PROFILE_INFOW;                                      <
 5909  alias tagHW_PROFILE_INFOW* LPHW_PROFILE_INFOW;                                   <
 5910                                                                                   <
 5911  // #ifdef UNICODE                                                                <
 5912  alias HW_PROFILE_INFOW HW_PROFILE_INFO;                                          <
 5913  alias LPHW_PROFILE_INFOW LPHW_PROFILE_INFO;                                      <
 5914  // #else                                                                         <
 5915  // ...                                                                           <
 5916  // #endif // UNICODE                                                             <
 5917                                                                                   <
 5918  extern(Windows) export BOOL GetCurrentHwProfileA(                                <
 5919    LPHW_PROFILE_INFOA lpHwProfileInfo);                                           <
 5920  extern(Windows) export BOOL GetCurrentHwProfileW(                                <
 5921    LPHW_PROFILE_INFOW lpHwProfileInfo);                                           <
 5922  // #ifdef UNICODE                                                                <
 5923  alias GetCurrentHwProfileW GetCurrentHwProfile;                                  <
 5924  // #else                                                                         <
 5925  // #...                                                                          <
 5926  // #endif // !UNICODE                                                            <
 5927  // #endif /* _WIN32_WINNT >= 0x0400 */                                           <
 5928                                                                                   <
 5929  extern(Windows) export BOOL QueryPerformanceCounter(                             <
 5930    LARGE_INTEGER *lpPerformanceCount);                                            <
 5931                                                                                   <
 5932  extern(Windows) export BOOL QueryPerformanceFrequency(                           <
 5933    LARGE_INTEGER *lpFrequency);                                                   <
 5934                                                                                   <
 5935  extern(Windows) export BOOL GetVersionExA(                                       <
 5936    LPOSVERSIONINFOA lpVersionInformation);                                        <
 5937  extern(Windows) export BOOL GetVersionExW(                                       <
 5938    LPOSVERSIONINFOW lpVersionInformation);                                        <
 5939  // #ifdef UNICODE                                                                <
 5940  alias GetVersionExW GetVersionEx;                                                <
 5941  // #else                                                                         <
 5942  // #...                                                                          <
 5943  // #endif // !UNICODE                                                            <
 5944                                                                                   <
 5945  extern(Windows) export BOOL VerifyVersionInfoA(                                  <
 5946    LPOSVERSIONINFOEXA lpVersionInformation,                                       <
 5947    DWORD dwTypeMask,                                                              <
 5948    DWORDLONG dwlConditionMask);                                                   <
 5949  extern(Windows) export BOOL VerifyVersionInfoW(                                  <
 5950    LPOSVERSIONINFOEXW lpVersionInformation,                                       <
 5951    DWORD dwTypeMask,                                                              <
 5952    DWORDLONG dwlConditionMask);                                                   <
 5953  // #ifdef UNICODE                                                                <
 5954  alias VerifyVersionInfoW VerifyVersionInfo;                                      <
 5955  // #else                                                                         <
 5956  // #...                                                                          <
 5957  // #endif // !UNICODE                                                            <
 5958                                                                                   <
 5959  import win32.winerror;                                                           <
 5960                                                                                   <
 5961  enum : uint { TC_NORMAL = 0 }                                                    <
 5962  enum : uint { TC_HARDERR = 1 }                                                   <
 5963  enum : uint { TC_GP_TRAP = 2 }                                                   <
 5964  enum : uint { TC_SIGNAL = 3 }                                                    <
 5965                                                                                   <
 5966  // #if(WINVER >= 0x0400)                                                         <
 5967                                                                                   <
 5968  enum : uint { AC_LINE_OFFLINE = 0x00 }                                           <
 5969  enum : uint { AC_LINE_ONLINE = 0x01 }                                            <
 5970  enum : uint { AC_LINE_BACKUP_POWER = 0x02 }                                      <
 5971  enum : uint { AC_LINE_UNKNOWN = 0xFF }                                           <
 5972                                                                                   <
 5973  enum : uint { BATTERY_FLAG_HIGH = 0x01 }                                         <
 5974  enum : uint { BATTERY_FLAG_LOW = 0x02 }                                          <
 5975  enum : uint { BATTERY_FLAG_CRITICAL = 0x04 }                                     <
 5976  enum : uint { BATTERY_FLAG_CHARGING = 0x08 }                                     <
 5977  enum : uint { BATTERY_FLAG_NO_BATTERY = 0x80 }                                   <
 5978  enum : uint { BATTERY_FLAG_UNKNOWN = 0xFF }                                      <
 5979                                                                                   <
 5980  enum : uint { BATTERY_PERCENTAGE_UNKNOWN = 0xFF }                                <
 5981                                                                                   <
 5982  enum : uint { BATTERY_LIFE_UNKNOWN = 0xFFFFFFFF }                                <
 5983                                                                                   <
 5984  struct _SYSTEM_POWER_STATUS {                                                    <
 5985    BYTE ACLineStatus;                                                             <
 5986    BYTE BatteryFlag;                                                              <
 5987    BYTE BatteryLifePercent;                                                       <
 5988    BYTE Reserved1;                                                                <
 5989    DWORD BatteryLifeTime;                                                         <
 5990    DWORD BatteryFullLifeTime;                                                     <
 5991  }                                                                                <
 5992  alias _SYSTEM_POWER_STATUS SYSTEM_POWER_STATUS;                                  <
 5993  alias _SYSTEM_POWER_STATUS* LPSYSTEM_POWER_STATUS;                               <
 5994                                                                                   <
 5995  extern(Windows) export BOOL GetSystemPowerStatus(                                <
 5996    LPSYSTEM_POWER_STATUS lpSystemPowerStatus);                                    <
 5997                                                                                   <
 5998  extern(Windows) export BOOL SetSystemPowerState(                                 <
 5999    BOOL fSuspend,                                                                 <
 6000    BOOL fForce);                                                                  <
 6001                                                                                   <
 6002  // #endif /* WINVER >= 0x0400 */                                                 <
 6003                                                                                   <
 6004  // #if (_WIN32_WINNT >= 0x0500)                                                  <
 6005                                                                                   <
 6006  extern(Windows) export BOOL AllocateUserPhysicalPages(                           <
 6007    HANDLE hProcess,                                                               <
 6008    PULONG_PTR NumberOfPages,                                                      <
 6009    PULONG_PTR PageArray);                                                         <
 6010                                                                                   <
 6011  extern(Windows) export BOOL FreeUserPhysicalPages(                               <
 6012    HANDLE hProcess,                                                               <
 6013    PULONG_PTR NumberOfPages,                                                      <
 6014    PULONG_PTR PageArray);                                                         <
 6015                                                                                   <
 6016  extern(Windows) export BOOL MapUserPhysicalPages(                                <
 6017    PVOID VirtualAddress,                                                          <
 6018    ULONG_PTR NumberOfPages,                                                       <
 6019    PULONG_PTR PageArray );                                                        <
 6020                                                                                   <
 6021  extern(Windows) export BOOL MapUserPhysicalPagesScatter(                         <
 6022    PVOID *VirtualAddresses,                                                       <
 6023    ULONG_PTR NumberOfPages,                                                       <
 6024    PULONG_PTR PageArray );                                                        <
 6025                                                                                   <
 6026  extern(Windows) export HANDLE CreateJobObjectA(                                  <
 6027    LPSECURITY_ATTRIBUTES lpJobAttributes,                                         <
 6028    LPCSTR lpName);                                                                <
 6029  extern(Windows) export HANDLE CreateJobObjectW(                                  <
 6030    LPSECURITY_ATTRIBUTES lpJobAttributes,                                         <
 6031    LPCWSTR lpName);                                                               <
 6032  // #ifdef UNICODE                                                                <
 6033  alias CreateJobObjectW CreateJobObject;                                          <
 6034  // #else                                                                         <
 6035  // #...                                                                          <
 6036  // #endif // !UNICODE                                                            <
 6037                                                                                   <
 6038  extern(Windows) export HANDLE OpenJobObjectA(                                    <
 6039    DWORD dwDesiredAccess,                                                         <
 6040    BOOL bInheritHandle,                                                           <
 6041    LPCSTR lpName);                                                                <
 6042  extern(Windows) export HANDLE OpenJobObjectW(                                    <
 6043    DWORD dwDesiredAccess,                                                         <
 6044    BOOL bInheritHandle,                                                           <
 6045    LPCWSTR lpName);                                                               <
 6046  // #ifdef UNICODE                                                                <
 6047  alias OpenJobObjectW OpenJobObject;                                              <
 6048  // #else                                                                         <
 6049  // #...                                                                          <
 6050  // #endif // !UNICODE                                                            <
 6051                                                                                   <
 6052  extern(Windows) export BOOL AssignProcessToJobObject(                            <
 6053    HANDLE hJob,                                                                   <
 6054    HANDLE hProcess);                                                              <
 6055                                                                                   <
 6056  extern(Windows) export BOOL TerminateJobObject(                                  <
 6057    HANDLE hJob,                                                                   <
 6058    UINT uExitCode);                                                               <
 6059                                                                                   <
 6060  extern(Windows) export BOOL QueryInformationJobObject(                           <
 6061    HANDLE hJob,                                                                   <
 6062    JOBOBJECTINFOCLASS JobObjectInformationClass,                                  <
 6063    LPVOID lpJobObjectInformation,                                                 <
 6064    DWORD cbJobObjectInformationLength,                                            <
 6065    LPDWORD lpReturnLength);                                                       <
 6066                                                                                   <
 6067  extern(Windows) export BOOL SetInformationJobObject(                             <
 6068    HANDLE hJob,                                                                   <
 6069    JOBOBJECTINFOCLASS JobObjectInformationClass,                                  <
 6070    LPVOID lpJobObjectInformation,                                                 <
 6071    DWORD cbJobObjectInformationLength);                                           <
 6072                                                                                   <
 6073  extern(Windows) export BOOL IsProcessInJob(                                      <
 6074    HANDLE ProcessHandle,                                                          <
 6075    HANDLE JobHandle,                                                              <
 6076    PBOOL Result);                                                                 <
 6077                                                                                   <
 6078  extern(Windows) export BOOL CreateJobSet(                                        <
 6079    ULONG NumJob,                                                                  <
 6080    PJOB_SET_ARRAY UserJobSet,                                                     <
 6081    ULONG Flags);                                                                  <
 6082                                                                                   <
 6083  extern(Windows) export PVOID AddVectoredExceptionHandler(                        <
 6084    ULONG FirstHandler,                                                            <
 6085    PVECTORED_EXCEPTION_HANDLER VectoredHandler);                                  <
 6086                                                                                   <
 6087  extern(Windows) export ULONG RemoveVectoredExceptionHandler(                     <
 6088    PVOID VectoredHandlerHandle);                                                  <
 6089                                                                                   <
 6090  extern(Windows) export HANDLE FindFirstVolumeA(                                  <
 6091    LPSTR lpszVolumeName,                                                          <
 6092    DWORD cchBufferLength);                                                        <
 6093  extern(Windows) export HANDLE FindFirstVolumeW(                                  <
 6094    LPWSTR lpszVolumeName,                                                         <
 6095    DWORD cchBufferLength);                                                        <
 6096  // #ifdef UNICODE                                                                <
 6097  alias FindFirstVolumeW FindFirstVolume;                                          <
 6098  // #else                                                                         <
 6099  // #...                                                                          <
 6100  // #endif // !UNICODE                                                            <
 6101                                                                                   <
 6102  extern(Windows) export BOOL FindNextVolumeA(                                     <
 6103    HANDLE hFindVolume,                                                            <
 6104    LPSTR lpszVolumeName,                                                          <
 6105    DWORD cchBufferLength);                                                        <
 6106  extern(Windows) export BOOL FindNextVolumeW(                                     <
 6107    HANDLE hFindVolume,                                                            <
 6108    LPWSTR lpszVolumeName,                                                         <
 6109    DWORD cchBufferLength);                                                        <
 6110  // #ifdef UNICODE                                                                <
 6111  alias FindNextVolumeW FindNextVolume;                                            <
 6112  // #else                                                                         <
 6113  // #...                                                                          <
 6114  // #endif // !UNICODE                                                            <
 6115                                                                                   <
 6116  extern(Windows) export BOOL FindVolumeClose(                                     <
 6117    HANDLE hFindVolume);                                                           <
 6118                                                                                   <
 6119  extern(Windows) export HANDLE FindFirstVolumeMountPointA(                        <
 6120    LPCSTR lpszRootPathName,                                                       <
 6121    LPSTR lpszVolumeMountPoint,                                                    <
 6122    DWORD cchBufferLength);                                                        <
 6123  extern(Windows) export HANDLE FindFirstVolumeMountPointW(                        <
 6124    LPCWSTR lpszRootPathName,                                                      <
 6125    LPWSTR lpszVolumeMountPoint,                                                   <
 6126    DWORD cchBufferLength);                                                        <
 6127  // #ifdef UNICODE                                                                <
 6128  alias FindFirstVolumeMountPointW FindFirstVolumeMountPoint;                      <
 6129  // #else                                                                         <
 6130  // #...                                                                          <
 6131  // #endif // !UNICODE                                                            <
 6132                                                                                   <
 6133  extern(Windows) export BOOL FindNextVolumeMountPointA(                           <
 6134    HANDLE hFindVolumeMountPoint,                                                  <
 6135    LPSTR lpszVolumeMountPoint,                                                    <
 6136    DWORD cchBufferLength);                                                        <
 6137  extern(Windows) export BOOL FindNextVolumeMountPointW(                           <
 6138    HANDLE hFindVolumeMountPoint,                                                  <
 6139    LPWSTR lpszVolumeMountPoint,                                                   <
 6140    DWORD cchBufferLength);                                                        <
 6141  // #ifdef UNICODE                                                                <
 6142  alias FindNextVolumeMountPointW FindNextVolumeMountPoint;                        <
 6143  // #else                                                                         <
 6144  // #...                                                                          <
 6145  // #endif // !UNICODE                                                            <
 6146                                                                                   <
 6147  extern(Windows) export BOOL FindVolumeMountPointClose(                           <
 6148    HANDLE hFindVolumeMountPoint);                                                 <
 6149                                                                                   <
 6150  extern(Windows) export BOOL SetVolumeMountPointA(                                <
 6151    LPCSTR lpszVolumeMountPoint,                                                   <
 6152    LPCSTR lpszVolumeName);                                                        <
 6153  extern(Windows) export BOOL SetVolumeMountPointW(                                <
 6154    LPCWSTR lpszVolumeMountPoint,                                                  <
 6155    LPCWSTR lpszVolumeName);                                                       <
 6156  // #ifdef UNICODE                                                                <
 6157  alias SetVolumeMountPointW SetVolumeMountPoint;                                  <
 6158  // #else                                                                         <
 6159  // #...                                                                          <
 6160  // #endif // !UNICODE                                                            <
 6161                                                                                   <
 6162  extern(Windows) export BOOL DeleteVolumeMountPointA(                             <
 6163    LPCSTR lpszVolumeMountPoint);                                                  <
 6164  extern(Windows) export BOOL DeleteVolumeMountPointW(                             <
 6165    LPCWSTR lpszVolumeMountPoint);                                                 <
 6166  // #ifdef UNICODE                                                                <
 6167  alias DeleteVolumeMountPointW DeleteVolumeMountPoint;                            <
 6168  // #else                                                                         <
 6169  // #...                                                                          <
 6170  // #endif // !UNICODE                                                            <
 6171                                                                                   <
 6172  extern(Windows) export BOOL GetVolumeNameForVolumeMountPointA(                   <
 6173    LPCSTR lpszVolumeMountPoint,                                                   <
 6174    LPSTR lpszVolumeName,                                                          <
 6175    DWORD cchBufferLength);                                                        <
 6176  extern(Windows) export BOOL GetVolumeNameForVolumeMountPointW(                   <
 6177    LPCWSTR lpszVolumeMountPoint,                                                  <
 6178    LPWSTR lpszVolumeName,                                                         <
 6179    DWORD cchBufferLength);                                                        <
 6180  // #ifdef UNICODE                                                                <
 6181  alias GetVolumeNameForVolumeMountPointW GetVolumeNameForVolumeMountPoint;        <
 6182  // #else                                                                         <
 6183  // #...                                                                          <
 6184  // #endif // !UNICODE                                                            <
 6185                                                                                   <
 6186  extern(Windows) export BOOL GetVolumePathNameA(                                  <
 6187    LPCSTR lpszFileName,                                                           <
 6188    LPSTR lpszVolumePathName,                                                      <
 6189    DWORD cchBufferLength);                                                        <
 6190  extern(Windows) export BOOL GetVolumePathNameW(                                  <
 6191    LPCWSTR lpszFileName,                                                          <
 6192    LPWSTR lpszVolumePathName,                                                     <
 6193    DWORD cchBufferLength);                                                        <
 6194  // #ifdef UNICODE                                                                <
 6195  alias GetVolumePathNameW GetVolumePathName;                                      <
 6196  // #else                                                                         <
 6197  // #...                                                                          <
 6198  // #endif // !UNICODE                                                            <
 6199                                                                                   <
 6200  extern(Windows) export BOOL GetVolumePathNamesForVolumeNameA(                    <
 6201    LPCSTR lpszVolumeName,                                                         <
 6202    LPSTR lpszVolumePathNames,                                                     <
 6203    DWORD cchBufferLength,                                                         <
 6204    PDWORD lpcchReturnLength);                                                     <
 6205  extern(Windows) export BOOL GetVolumePathNamesForVolumeNameW(                    <
 6206    LPCWSTR lpszVolumeName,                                                        <
 6207    LPWSTR lpszVolumePathNames,                                                    <
 6208    DWORD cchBufferLength,                                                         <
 6209    PDWORD lpcchReturnLength);                                                     <
 6210  // #ifdef UNICODE                                                                <
 6211  alias GetVolumePathNamesForVolumeNameW GetVolumePathNamesForVolumeName;          <
 6212  // #else                                                                         <
 6213  // #...                                                                          <
 6214  // #endif // !UNICODE                                                            <
 6215                                                                                   <
 6216  // #endif                                                                        <
 6217                                                                                   <
 6218  // #if (_WIN32_WINNT >= 0x0500) || (_WIN32_FUSION >= 0x0100) || ISOLATION_AWARE_ <
 6219                                                                                   <
 6220  enum : uint { ACTCTX_FLAG_PROCESSOR_ARCHITECTURE_VALID = 0x00000001 }            <
 6221  enum : uint { ACTCTX_FLAG_LANGID_VALID = 0x00000002 }                            <
 6222  enum : uint { ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID = 0x00000004 }                <
 6223  enum : uint { ACTCTX_FLAG_RESOURCE_NAME_VALID = 0x00000008 }                     <
 6224  enum : uint { ACTCTX_FLAG_SET_PROCESS_DEFAULT = 0x00000010 }                     <
 6225  enum : uint { ACTCTX_FLAG_APPLICATION_NAME_VALID = 0x00000020 }                  <
 6226  enum : uint { ACTCTX_FLAG_SOURCE_IS_ASSEMBLYREF = 0x00000040 }                   <
 6227  enum : uint { ACTCTX_FLAG_HMODULE_VALID = 0x00000080 }                           <
 6228                                                                                   <
 6229  struct tagACTCTXA {                                                              <
 6230    ULONG cbSize;                                                                  <
 6231    DWORD dwFlags;                                                                 <
 6232    LPCSTR lpSource;                                                               <
 6233    USHORT wProcessorArchitecture;                                                 <
 6234    LANGID wLangId;                                                                <
 6235    LPCSTR lpAssemblyDirectory;                                                    <
 6236    LPCSTR lpResourceName;                                                         <
 6237    LPCSTR lpApplicationName;                                                      <
 6238    HMODULE hModule;                                                               <
 6239  }                                                                                <
 6240  alias tagACTCTXA ACTCTXA;                                                        <
 6241  alias tagACTCTXA* PACTCTXA;                                                      <
 6242                                                                                   <
 6243  struct tagACTCTXW {                                                              <
 6244    ULONG cbSize;                                                                  <
 6245    DWORD dwFlags;                                                                 <
 6246    LPCWSTR lpSource;                                                              <
 6247    USHORT wProcessorArchitecture;                                                 <
 6248    LANGID wLangId;                                                                <
 6249    LPCWSTR lpAssemblyDirectory;                                                   <
 6250    LPCWSTR lpResourceName;                                                        <
 6251    LPCWSTR lpApplicationName;                                                     <
 6252    HMODULE hModule;                                                               <
 6253  }                                                                                <
 6254  alias tagACTCTXW ACTCTXW;                                                        <
 6255  alias tagACTCTXW* PACTCTXW;                                                      <
 6256                                                                                   <
 6257  // #ifdef UNICODE                                                                <
 6258  // skip typedef ACTCTXW ACTCTX;                                                  <
 6259  alias PACTCTXW PACTCTX;                                                          <
 6260  // #else                                                                         <
 6261  // ...                                                                           <
 6262  // #endif // UNICODE                                                             <
 6263                                                                                   <
 6264  alias ACTCTXA* PCACTCTXA;                                                        |  2818                  alias ACTCTX* PACTCTX, PCACTCTX;
 6265  alias ACTCTXW* PCACTCTXW;                                                        <
 6266  // #ifdef UNICODE                                                                <
 6267  // skip typedef ACTCTXW ACTCTX;                                                  <
 6268  alias PCACTCTXW PCACTCTX;                                                        <
 6269  // #else                                                                         <
 6270  // ...                                                                           <
 6271  // #endif // UNICODE                                                             <
 6272                                                                                   |  2819          }
 6273  // #endif                                                                        <
 6274                                                                                   |  2820  }
 6275  // #if (_WIN32_WINNT >= 0x0500) || (_WIN32_FUSION >= 0x0100)                     <
 6276                                                                                   <
 6277  extern(Windows) export HANDLE CreateActCtxA(                                     <
 6278    PCACTCTXA pActCtx);                                                            <
 6279  extern(Windows) export HANDLE CreateActCtxW(                                     <
 6280    PCACTCTXW pActCtx);                                                            <
 6281  // #ifdef UNICODE                                                                <
 6282  alias CreateActCtxW CreateActCtx;                                                <
 6283  // #else                                                                         <
 6284  // #...                                                                          <
 6285  // #endif // !UNICODE                                                            <
 6286                                                                                   <
 6287  extern(Windows) export VOID AddRefActCtx(                                        <
 6288    HANDLE hActCtx);                                                               <
 6289                                                                                   <
 6290  extern(Windows) export VOID ReleaseActCtx(                                       <
 6291    HANDLE hActCtx);                                                               <
 6292                                                                                   <
 6293  extern(Windows) export BOOL ZombifyActCtx(                                       <
 6294    HANDLE hActCtx);                                                               <
 6295                                                                                   <
 6296  extern(Windows) export BOOL ActivateActCtx(                                      <
 6297    HANDLE hActCtx,                                                                <
 6298    ULONG_PTR *lpCookie);                                                          <
 6299                                                                                   <
 6300  enum : uint { DEACTIVATE_ACTCTX_FLAG_FORCE_EARLY_DEACTIVATION = 0x00000001 }     <
 6301                                                                                   <
 6302  extern(Windows) export BOOL DeactivateActCtx(                                    <
 6303    DWORD dwFlags,                                                                 <
 6304    ULONG_PTR ulCookie);                                                           <
 6305                                                                                   <
 6306  extern(Windows) export BOOL GetCurrentActCtx(                                    <
 6307    HANDLE *lphActCtx);                                                            <
 6308                                                                                   <
 6309  // #endif                                                                        <
 6310                                                                                   <
 6311  // #if (_WIN32_WINNT >= 0x0500) || (_WIN32_FUSION >= 0x0100) || ISOLATION_AWARE_ <
 6312                                                                                   <
 6313  struct tagACTCTX_SECTION_KEYED_DATA {                                            <
 6314    ULONG cbSize;                                                                  <
 6315    ULONG ulDataFormatVersion;                                                     <
 6316    PVOID lpData;                                                                  <
 6317    ULONG ulLength;                                                                <
 6318    PVOID lpSectionGlobalData;                                                     <
 6319    ULONG ulSectionGlobalDataLength;                                               <
 6320    PVOID lpSectionBase;                                                           <
 6321    ULONG ulSectionTotalLength;                                                    <
 6322    HANDLE hActCtx;                                                                <
 6323    ULONG ulAssemblyRosterIndex;                                                   <
 6324  }                                                                                <
 6325  alias tagACTCTX_SECTION_KEYED_DATA ACTCTX_SECTION_KEYED_DATA;                    <
 6326  alias tagACTCTX_SECTION_KEYED_DATA* PACTCTX_SECTION_KEYED_DATA;                  <
 6327                                                                                   <
 6328  enum : uint { FIND_ACTCTX_SECTION_KEY_RETURN_HACTCTX = 0x00000001 }              <
 6329                                                                                   <
 6330  // #endif                                                                        <
 6331                                                                                   <
 6332  // #if (_WIN32_WINNT >= 0x0500) || (_WIN32_FUSION >= 0x0100)                     <
 6333                                                                                   <
 6334  extern(Windows) export BOOL FindActCtxSectionStringA(                            <
 6335    DWORD dwFlags,                                                                 <
 6336    GUID *lpExtensionGuid,                                                         <
 6337    ULONG ulSectionId,                                                             <
 6338    LPCSTR lpStringToFind,                                                         <
 6339    PACTCTX_SECTION_KEYED_DATA ReturnedData);                                      <
 6340  extern(Windows) export BOOL FindActCtxSectionStringW(                            <
 6341    DWORD dwFlags,                                                                 <
 6342    GUID *lpExtensionGuid,                                                         <
 6343    ULONG ulSectionId,                                                             <
 6344    LPCWSTR lpStringToFind,                                                        <
 6345    PACTCTX_SECTION_KEYED_DATA ReturnedData);                                      <
 6346  // #ifdef UNICODE                                                                <
 6347  alias FindActCtxSectionStringW FindActCtxSectionString;                          <
 6348  // #else                                                                         <
 6349  // #...                                                                          <
 6350  // #endif // !UNICODE                                                            <
 6351                                                                                   <
 6352  extern(Windows) export BOOL FindActCtxSectionGuid(                               <
 6353    DWORD dwFlags,                                                                 <
 6354    GUID *lpExtensionGuid,                                                         <
 6355    ULONG ulSectionId,                                                             <
 6356    GUID *lpGuidToFind,                                                            <
 6357    PACTCTX_SECTION_KEYED_DATA ReturnedData);                                      <
 6358                                                                                   <
 6359  // #endif                                                                        <
 6360                                                                                   <
 6361  // #if (_WIN32_WINNT >= 0x0500) || (_WIN32_FUSION >= 0x0100) || ISOLATION_AWARE_ <
 6362                                                                                   <
 6363  // #if !defined(RC_INVOKED) /* RC complains about long symbols in #ifs */        <
 6364  // #if !defined(ACTIVATION_CONTEXT_BASIC_INFORMATION_DEFINED)                    <
 6365                                                                                   <
 6366  // ...                                                                           <
 6367                                                                                   <
 6368  // ...                                                                           <
 6369                                                                                   <
 6370  // #...                                                                          <
 6371                                                                                   <
 6372  // #endif // !defined(ACTIVATION_CONTEXT_BASIC_INFORMATION_DEFINED)              <
 6373  // #endif                                                                        <
 6374                                                                                   <
 6375  enum : uint { QUERY_ACTCTX_FLAG_USE_ACTIVE_ACTCTX = 0x00000004 }                 <
 6376  enum : uint { QUERY_ACTCTX_FLAG_ACTCTX_IS_HMODULE = 0x00000008 }                 <
 6377  enum : uint { QUERY_ACTCTX_FLAG_ACTCTX_IS_ADDRESS = 0x00000010 }                 <
 6378  enum : uint { QUERY_ACTCTX_FLAG_NO_ADDREF = 0x80000000 }                         <
 6379                                                                                   <
 6380  // #endif                                                                        <
 6381                                                                                   <
 6382  // #if (_WIN32_WINNT >= 0x0500) || (_WIN32_FUSION >= 0x0100)                     <
 6383                                                                                   <
 6384  extern(Windows) export BOOL QueryActCtxW(                                        <
 6385    DWORD dwFlags,                                                                 <
 6386    HANDLE hActCtx,                                                                <
 6387    PVOID pvSubInstance,                                                           <
 6388    ULONG ulInfoClass,                                                             <
 6389    PVOID pvBuffer,                                                                <
 6390    SIZE_T cbBuffer ,                                                              <
 6391    SIZE_T *pcbWrittenOrRequired );                                                <
 6392                                                                                   <
 6393  extern(Windows) alias BOOL function(  DWORD dwFlags,  HANDLE hActCtx,  PVOID pvS <
 6394                                                                                   <
 6395  // #endif // (_WIN32_WINNT > 0x0500) || (_WIN32_FUSION >= 0x0100)                <
 6396                                                                                   <
 6397  extern(Windows) export BOOL ProcessIdToSessionId(                                <
 6398    DWORD dwProcessId,                                                             <
 6399    DWORD *pSessionId);                                                            <
 6400                                                                                   <
 6401  // #if _WIN32_WINNT >= 0x0501                                                    <
 6402                                                                                   <
 6403  extern(Windows) export DWORD WTSGetActiveConsoleSessionId();                     <
 6404                                                                                   <
 6405  extern(Windows) export BOOL IsWow64Process(                                      <
 6406    HANDLE hProcess,                                                               <
 6407    PBOOL Wow64Process);                                                           <
 6408                                                                                   <
 6409  // #endif // (_WIN32_WINNT >= 0x0501)                                            <
 6410                                                                                   <
 6411  extern(Windows) export BOOL GetNumaHighestNodeNumber(                            <
 6412    PULONG HighestNodeNumber);                                                     <
 6413                                                                                   <
 6414  extern(Windows) export BOOL GetNumaProcessorNode(                                <
 6415    UCHAR Processor,                                                               <
 6416    PUCHAR NodeNumber);                                                            <
 6417                                                                                   <
 6418  extern(Windows) export BOOL GetNumaNodeProcessorMask(                            <
 6419    UCHAR Node,                                                                    <
 6420    PULONGLONG ProcessorMask);                                                     <
 6421                                                                                   <
 6422  extern(Windows) export BOOL GetNumaProcessorMap(                                 <
 6423    PSYSTEM_NUMA_INFORMATION Map,                                                  <
 6424    ULONG Length,                                                                  <
 6425    PULONG ReturnedLength);                                                        <
 6426                                                                                   <
 6427  extern(Windows) export BOOL GetNumaAvailableMemory(                              <
 6428    PSYSTEM_NUMA_INFORMATION Memory,                                               <
 6429    ULONG Length,                                                                  <
 6430    PULONG ReturnedLength);                                                        <
 6431                                                                                   <
 6432  extern(Windows) export BOOL GetNumaAvailableMemoryNode(                          <
 6433    UCHAR Node,                                                                    <
 6434    PULONGLONG AvailableBytes);                                                    <
 6435                                                                                   <
 6436  extern(Windows) export ULONGLONG NumaVirtualQueryNode(                           <
 6437    ULONG NumberOfRanges,                                                          <
 6438    PULONG_PTR RangeList,                                                          <
 6439    PULONG_PTR VirtualPageAndNode,                                                 <
 6440    SIZE_T MaximumOutputLength);                                                   <
 6441                                                                                   <
 6442  // #if !defined(RC_INVOKED) /* RC complains about long symbols in #ifs */        <
 6443  // #if ISOLATION_AWARE_ENABLED                                                   <
 6444  // #...                                                                          <
 6445  // #endif /* ISOLATION_AWARE_ENABLED */                                          <
 6446  // #endif /* RC */                                                               <
 6447                                                                                   <
 6448  // #ifdef __cplusplus                                                            <
 6449  // }                                                                             <
 6450  // #endif                                                                        <
 6451                                                                                   <
 6452  // #endif // _WINBASE_                                                           <
 6453                                                                                   <