Hex Artifact Content

Not logged in

Artifact 59684aebe49706fde9e320d54f3aff55272648d5:


0000: 6d 6f 64 75 6c 65 20 77 69 6e 33 32 2e 77 69 6e  module win32.win
0010: 62 61 73 65 3b 0d 0a 0d 0a 2f 2f 20 54 72 61 6e  base;....// Tran
0020: 73 6c 61 74 65 64 20 66 72 6f 6d 20 4d 69 63 72  slated from Micr
0030: 6f 73 6f 66 74 20 50 6c 61 74 66 6f 72 6d 20 53  osoft Platform S
0040: 44 4b 20 41 75 67 75 73 74 20 32 30 30 31 20 45  DK August 2001 E
0050: 64 69 74 69 6f 6e 0d 0a 2f 2f 20 62 79 20 59 2e  dition..// by Y.
0060: 54 6f 6d 69 6e 6f 20 28 64 65 6d 6f 6f 6e 6c 69  Tomino (demoonli
0070: 74 40 69 6e 74 65 72 37 2e 6a 70 29 0d 0a 0d 0a  t@inter7.jp)....
0080: 69 6d 70 6f 72 74 20 77 69 6e 33 32 2e 77 69 6e  import win32.win
0090: 64 65 66 3b 0d 0a 0d 0a 2f 2f 20 23 69 66 6e 64  def;....// #ifnd
00a0: 65 66 20 5f 57 49 4e 42 41 53 45 5f 0d 0a 2f 2f  ef _WINBASE_..//
00b0: 20 23 64 65 66 69 6e 65 20 5f 57 49 4e 42 41 53   #define _WINBAS
00c0: 45 5f 0d 0a 0d 0a 2f 2f 20 23 69 66 20 5f 4d 53  E_....// #if _MS
00d0: 43 5f 56 45 52 20 3e 20 31 30 30 30 0d 0a 2f 2f  C_VER > 1000..//
00e0: 20 23 70 72 61 67 6d 61 20 6f 6e 63 65 0d 0a 2f   #pragma once../
00f0: 2f 20 23 65 6e 64 69 66 0d 0a 0d 0a 2f 2f 20 23  / #endif....// #
0100: 69 66 64 65 66 20 5f 4d 41 43 0d 0a 2f 2f 20 23  ifdef _MAC..// #
0110: 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f  .....// #endif /
0120: 2f 5f 4d 41 43 0d 0a 0d 0a 2f 2f 20 23 69 66 20  /_MAC....// #if 
0130: 21 64 65 66 69 6e 65 64 28 5f 41 44 56 41 50 49  !defined(_ADVAPI
0140: 33 32 5f 29 0d 0a 2f 2f 20 23 64 65 66 69 6e 65  32_)..// #define
0150: 20 57 49 4e 41 44 56 41 50 49 20 44 45 43 4c 53   WINADVAPI DECLS
0160: 50 45 43 5f 49 4d 50 4f 52 54 0d 0a 2f 2f 20 23  PEC_IMPORT..// #
0170: 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f  else..// #...../
0180: 2f 20 23 65 6e 64 69 66 0d 0a 0d 0a 2f 2f 20 23  / #endif....// #
0190: 69 66 20 21 64 65 66 69 6e 65 64 28 5f 4b 45 52  if !defined(_KER
01a0: 4e 45 4c 33 32 5f 29 0d 0a 2f 2f 20 23 64 65 66  NEL32_)..// #def
01b0: 69 6e 65 20 57 49 4e 42 41 53 45 41 50 49 20 44  ine WINBASEAPI D
01c0: 45 43 4c 53 50 45 43 5f 49 4d 50 4f 52 54 0d 0a  ECLSPEC_IMPORT..
01d0: 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e  // #else..// #..
01e0: 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 0d 0a 0d 0a  ...// #endif....
01f0: 2f 2f 20 23 69 66 20 21 64 65 66 69 6e 65 64 28  // #if !defined(
0200: 5f 5a 41 57 50 52 4f 58 59 5f 29 0d 0a 2f 2f 20  _ZAWPROXY_)..// 
0210: 23 64 65 66 69 6e 65 20 5a 41 57 50 52 4f 58 59  #define ZAWPROXY
0220: 41 50 49 20 44 45 43 4c 53 50 45 43 5f 49 4d 50  API DECLSPEC_IMP
0230: 4f 52 54 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f  ORT..// #else../
0240: 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69  / #.....// #endi
0250: 66 0d 0a 0d 0a 2f 2f 20 23 69 66 64 65 66 20 5f  f....// #ifdef _
0260: 5f 63 70 6c 75 73 70 6c 75 73 0d 0a 2f 2f 20 65  _cplusplus..// e
0270: 78 74 65 72 6e 20 22 43 22 20 7b 0d 0a 2f 2f 20  xtern "C" {..// 
0280: 23 65 6e 64 69 66 0d 0a 0d 0a 2f 2f 20 23 64 65  #endif....// #de
0290: 66 69 6e 65 20 44 65 66 69 6e 65 48 61 6e 64 6c  fine DefineHandl
02a0: 65 54 61 62 6c 65 28 77 29 20 28 28 77 29 2c 54  eTable(w) ((w),T
02b0: 52 55 45 29 0d 0a 2f 2f 20 23 64 65 66 69 6e 65  RUE)..// #define
02c0: 20 4c 69 6d 69 74 45 6d 73 50 61 67 65 73 28 64   LimitEmsPages(d
02d0: 77 29 0d 0a 2f 2f 20 23 64 65 66 69 6e 65 20 53  w)..// #define S
02e0: 65 74 53 77 61 70 41 72 65 61 53 69 7a 65 28 77  etSwapAreaSize(w
02f0: 29 20 28 77 29 0d 0a 2f 2f 20 23 64 65 66 69 6e  ) (w)..// #defin
0300: 65 20 4c 6f 63 6b 53 65 67 6d 65 6e 74 28 77 29  e LockSegment(w)
0310: 20 47 6c 6f 62 61 6c 46 69 78 28 28 48 41 4e 44   GlobalFix((HAND
0320: 4c 45 29 28 77 29 29 0d 0a 2f 2f 20 23 64 65 66  LE)(w))..// #def
0330: 69 6e 65 20 55 6e 6c 6f 63 6b 53 65 67 6d 65 6e  ine UnlockSegmen
0340: 74 28 77 29 20 47 6c 6f 62 61 6c 55 6e 66 69 78  t(w) GlobalUnfix
0350: 28 28 48 41 4e 44 4c 45 29 28 77 29 29 0d 0a 61  ((HANDLE)(w))..a
0360: 6c 69 61 73 20 47 65 74 54 69 63 6b 43 6f 75 6e  lias GetTickCoun
0370: 74 20 47 65 74 43 75 72 72 65 6e 74 54 69 6d 65  t GetCurrentTime
0380: 3b 0d 0a 0d 0a 2f 2f 20 23 64 65 66 69 6e 65 20  ;....// #define 
0390: 59 69 65 6c 64 28 29 0d 0a 0d 0a 48 41 4e 44 4c  Yield()....HANDL
03a0: 45 20 49 4e 56 41 4c 49 44 5f 48 41 4e 44 4c 45  E INVALID_HANDLE
03b0: 5f 56 41 4c 55 45 20 3d 20 63 61 73 74 28 48 41  _VALUE = cast(HA
03c0: 4e 44 4c 45 29 2d 31 3b 0d 0a 65 6e 75 6d 20 3a  NDLE)-1;..enum :
03d0: 20 75 69 6e 74 20 7b 20 49 4e 56 41 4c 49 44 5f   uint { INVALID_
03e0: 46 49 4c 45 5f 53 49 5a 45 20 3d 20 63 61 73 74  FILE_SIZE = cast
03f0: 28 44 57 4f 52 44 29 30 78 46 46 46 46 46 46 46  (DWORD)0xFFFFFFF
0400: 46 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  F }..enum : uint
0410: 20 7b 20 49 4e 56 41 4c 49 44 5f 53 45 54 5f 46   { INVALID_SET_F
0420: 49 4c 45 5f 50 4f 49 4e 54 45 52 20 3d 20 63 61  ILE_POINTER = ca
0430: 73 74 28 44 57 4f 52 44 29 2d 31 20 7d 0d 0a 65  st(DWORD)-1 }..e
0440: 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 49 4e 56  num : uint { INV
0450: 41 4c 49 44 5f 46 49 4c 45 5f 41 54 54 52 49 42  ALID_FILE_ATTRIB
0460: 55 54 45 53 20 3d 20 63 61 73 74 28 44 57 4f 52  UTES = cast(DWOR
0470: 44 29 2d 31 20 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a  D)-1 }....enum :
0480: 20 75 69 6e 74 20 7b 20 46 49 4c 45 5f 42 45 47   uint { FILE_BEG
0490: 49 4e 20 3d 20 30 20 7d 0d 0a 65 6e 75 6d 20 3a  IN = 0 }..enum :
04a0: 20 75 69 6e 74 20 7b 20 46 49 4c 45 5f 43 55 52   uint { FILE_CUR
04b0: 52 45 4e 54 20 3d 20 31 20 7d 0d 0a 65 6e 75 6d  RENT = 1 }..enum
04c0: 20 3a 20 75 69 6e 74 20 7b 20 46 49 4c 45 5f 45   : uint { FILE_E
04d0: 4e 44 20 3d 20 32 20 7d 0d 0a 0d 0a 65 6e 75 6d  ND = 2 }....enum
04e0: 20 3a 20 75 69 6e 74 20 7b 20 54 49 4d 45 5f 5a   : uint { TIME_Z
04f0: 4f 4e 45 5f 49 44 5f 49 4e 56 41 4c 49 44 20 3d  ONE_ID_INVALID =
0500: 20 63 61 73 74 28 44 57 4f 52 44 29 30 78 46 46   cast(DWORD)0xFF
0510: 46 46 46 46 46 46 20 7d 0d 0a 0d 0a 65 6e 75 6d  FFFFFF }....enum
0520: 20 3a 20 75 69 6e 74 20 7b 20 57 41 49 54 5f 46   : uint { WAIT_F
0530: 41 49 4c 45 44 20 3d 20 63 61 73 74 28 44 57 4f  AILED = cast(DWO
0540: 52 44 29 30 78 46 46 46 46 46 46 46 46 20 7d 0d  RD)0xFFFFFFFF }.
0550: 0a 61 6c 69 61 73 20 53 54 41 54 55 53 5f 57 41  .alias STATUS_WA
0560: 49 54 5f 30 20 57 41 49 54 5f 4f 42 4a 45 43 54  IT_0 WAIT_OBJECT
0570: 5f 30 3b 0d 0a 0d 0a 61 6c 69 61 73 20 53 54 41  _0;....alias STA
0580: 54 55 53 5f 41 42 41 4e 44 4f 4e 45 44 5f 57 41  TUS_ABANDONED_WA
0590: 49 54 5f 30 20 57 41 49 54 5f 41 42 41 4e 44 4f  IT_0 WAIT_ABANDO
05a0: 4e 45 44 3b 0d 0a 61 6c 69 61 73 20 53 54 41 54  NED;..alias STAT
05b0: 55 53 5f 41 42 41 4e 44 4f 4e 45 44 5f 57 41 49  US_ABANDONED_WAI
05c0: 54 5f 30 20 57 41 49 54 5f 41 42 41 4e 44 4f 4e  T_0 WAIT_ABANDON
05d0: 45 44 5f 30 3b 0d 0a 0d 0a 61 6c 69 61 73 20 53  ED_0;....alias S
05e0: 54 41 54 55 53 5f 55 53 45 52 5f 41 50 43 20 57  TATUS_USER_APC W
05f0: 41 49 54 5f 49 4f 5f 43 4f 4d 50 4c 45 54 49 4f  AIT_IO_COMPLETIO
0600: 4e 3b 0d 0a 61 6c 69 61 73 20 53 54 41 54 55 53  N;..alias STATUS
0610: 5f 50 45 4e 44 49 4e 47 20 53 54 49 4c 4c 5f 41  _PENDING STILL_A
0620: 43 54 49 56 45 3b 0d 0a 61 6c 69 61 73 20 53 54  CTIVE;..alias ST
0630: 41 54 55 53 5f 41 43 43 45 53 53 5f 56 49 4f 4c  ATUS_ACCESS_VIOL
0640: 41 54 49 4f 4e 20 45 58 43 45 50 54 49 4f 4e 5f  ATION EXCEPTION_
0650: 41 43 43 45 53 53 5f 56 49 4f 4c 41 54 49 4f 4e  ACCESS_VIOLATION
0660: 3b 0d 0a 61 6c 69 61 73 20 53 54 41 54 55 53 5f  ;..alias STATUS_
0670: 44 41 54 41 54 59 50 45 5f 4d 49 53 41 4c 49 47  DATATYPE_MISALIG
0680: 4e 4d 45 4e 54 20 45 58 43 45 50 54 49 4f 4e 5f  NMENT EXCEPTION_
0690: 44 41 54 41 54 59 50 45 5f 4d 49 53 41 4c 49 47  DATATYPE_MISALIG
06a0: 4e 4d 45 4e 54 3b 0d 0a 61 6c 69 61 73 20 53 54  NMENT;..alias ST
06b0: 41 54 55 53 5f 42 52 45 41 4b 50 4f 49 4e 54 20  ATUS_BREAKPOINT 
06c0: 45 58 43 45 50 54 49 4f 4e 5f 42 52 45 41 4b 50  EXCEPTION_BREAKP
06d0: 4f 49 4e 54 3b 0d 0a 61 6c 69 61 73 20 53 54 41  OINT;..alias STA
06e0: 54 55 53 5f 53 49 4e 47 4c 45 5f 53 54 45 50 20  TUS_SINGLE_STEP 
06f0: 45 58 43 45 50 54 49 4f 4e 5f 53 49 4e 47 4c 45  EXCEPTION_SINGLE
0700: 5f 53 54 45 50 3b 0d 0a 61 6c 69 61 73 20 53 54  _STEP;..alias ST
0710: 41 54 55 53 5f 41 52 52 41 59 5f 42 4f 55 4e 44  ATUS_ARRAY_BOUND
0720: 53 5f 45 58 43 45 45 44 45 44 20 45 58 43 45 50  S_EXCEEDED EXCEP
0730: 54 49 4f 4e 5f 41 52 52 41 59 5f 42 4f 55 4e 44  TION_ARRAY_BOUND
0740: 53 5f 45 58 43 45 45 44 45 44 3b 0d 0a 61 6c 69  S_EXCEEDED;..ali
0750: 61 73 20 53 54 41 54 55 53 5f 46 4c 4f 41 54 5f  as STATUS_FLOAT_
0760: 44 45 4e 4f 52 4d 41 4c 5f 4f 50 45 52 41 4e 44  DENORMAL_OPERAND
0770: 20 45 58 43 45 50 54 49 4f 4e 5f 46 4c 54 5f 44   EXCEPTION_FLT_D
0780: 45 4e 4f 52 4d 41 4c 5f 4f 50 45 52 41 4e 44 3b  ENORMAL_OPERAND;
0790: 0d 0a 61 6c 69 61 73 20 53 54 41 54 55 53 5f 46  ..alias STATUS_F
07a0: 4c 4f 41 54 5f 44 49 56 49 44 45 5f 42 59 5f 5a  LOAT_DIVIDE_BY_Z
07b0: 45 52 4f 20 45 58 43 45 50 54 49 4f 4e 5f 46 4c  ERO EXCEPTION_FL
07c0: 54 5f 44 49 56 49 44 45 5f 42 59 5f 5a 45 52 4f  T_DIVIDE_BY_ZERO
07d0: 3b 0d 0a 61 6c 69 61 73 20 53 54 41 54 55 53 5f  ;..alias STATUS_
07e0: 46 4c 4f 41 54 5f 49 4e 45 58 41 43 54 5f 52 45  FLOAT_INEXACT_RE
07f0: 53 55 4c 54 20 45 58 43 45 50 54 49 4f 4e 5f 46  SULT EXCEPTION_F
0800: 4c 54 5f 49 4e 45 58 41 43 54 5f 52 45 53 55 4c  LT_INEXACT_RESUL
0810: 54 3b 0d 0a 61 6c 69 61 73 20 53 54 41 54 55 53  T;..alias STATUS
0820: 5f 46 4c 4f 41 54 5f 49 4e 56 41 4c 49 44 5f 4f  _FLOAT_INVALID_O
0830: 50 45 52 41 54 49 4f 4e 20 45 58 43 45 50 54 49  PERATION EXCEPTI
0840: 4f 4e 5f 46 4c 54 5f 49 4e 56 41 4c 49 44 5f 4f  ON_FLT_INVALID_O
0850: 50 45 52 41 54 49 4f 4e 3b 0d 0a 61 6c 69 61 73  PERATION;..alias
0860: 20 53 54 41 54 55 53 5f 46 4c 4f 41 54 5f 4f 56   STATUS_FLOAT_OV
0870: 45 52 46 4c 4f 57 20 45 58 43 45 50 54 49 4f 4e  ERFLOW EXCEPTION
0880: 5f 46 4c 54 5f 4f 56 45 52 46 4c 4f 57 3b 0d 0a  _FLT_OVERFLOW;..
0890: 61 6c 69 61 73 20 53 54 41 54 55 53 5f 46 4c 4f  alias STATUS_FLO
08a0: 41 54 5f 53 54 41 43 4b 5f 43 48 45 43 4b 20 45  AT_STACK_CHECK E
08b0: 58 43 45 50 54 49 4f 4e 5f 46 4c 54 5f 53 54 41  XCEPTION_FLT_STA
08c0: 43 4b 5f 43 48 45 43 4b 3b 0d 0a 61 6c 69 61 73  CK_CHECK;..alias
08d0: 20 53 54 41 54 55 53 5f 46 4c 4f 41 54 5f 55 4e   STATUS_FLOAT_UN
08e0: 44 45 52 46 4c 4f 57 20 45 58 43 45 50 54 49 4f  DERFLOW EXCEPTIO
08f0: 4e 5f 46 4c 54 5f 55 4e 44 45 52 46 4c 4f 57 3b  N_FLT_UNDERFLOW;
0900: 0d 0a 61 6c 69 61 73 20 53 54 41 54 55 53 5f 49  ..alias STATUS_I
0910: 4e 54 45 47 45 52 5f 44 49 56 49 44 45 5f 42 59  NTEGER_DIVIDE_BY
0920: 5f 5a 45 52 4f 20 45 58 43 45 50 54 49 4f 4e 5f  _ZERO EXCEPTION_
0930: 49 4e 54 5f 44 49 56 49 44 45 5f 42 59 5f 5a 45  INT_DIVIDE_BY_ZE
0940: 52 4f 3b 0d 0a 61 6c 69 61 73 20 53 54 41 54 55  RO;..alias STATU
0950: 53 5f 49 4e 54 45 47 45 52 5f 4f 56 45 52 46 4c  S_INTEGER_OVERFL
0960: 4f 57 20 45 58 43 45 50 54 49 4f 4e 5f 49 4e 54  OW EXCEPTION_INT
0970: 5f 4f 56 45 52 46 4c 4f 57 3b 0d 0a 61 6c 69 61  _OVERFLOW;..alia
0980: 73 20 53 54 41 54 55 53 5f 50 52 49 56 49 4c 45  s STATUS_PRIVILE
0990: 47 45 44 5f 49 4e 53 54 52 55 43 54 49 4f 4e 20  GED_INSTRUCTION 
09a0: 45 58 43 45 50 54 49 4f 4e 5f 50 52 49 56 5f 49  EXCEPTION_PRIV_I
09b0: 4e 53 54 52 55 43 54 49 4f 4e 3b 0d 0a 61 6c 69  NSTRUCTION;..ali
09c0: 61 73 20 53 54 41 54 55 53 5f 49 4e 5f 50 41 47  as STATUS_IN_PAG
09d0: 45 5f 45 52 52 4f 52 20 45 58 43 45 50 54 49 4f  E_ERROR EXCEPTIO
09e0: 4e 5f 49 4e 5f 50 41 47 45 5f 45 52 52 4f 52 3b  N_IN_PAGE_ERROR;
09f0: 0d 0a 61 6c 69 61 73 20 53 54 41 54 55 53 5f 49  ..alias STATUS_I
0a00: 4c 4c 45 47 41 4c 5f 49 4e 53 54 52 55 43 54 49  LLEGAL_INSTRUCTI
0a10: 4f 4e 20 45 58 43 45 50 54 49 4f 4e 5f 49 4c 4c  ON EXCEPTION_ILL
0a20: 45 47 41 4c 5f 49 4e 53 54 52 55 43 54 49 4f 4e  EGAL_INSTRUCTION
0a30: 3b 0d 0a 61 6c 69 61 73 20 53 54 41 54 55 53 5f  ;..alias STATUS_
0a40: 4e 4f 4e 43 4f 4e 54 49 4e 55 41 42 4c 45 5f 45  NONCONTINUABLE_E
0a50: 58 43 45 50 54 49 4f 4e 20 45 58 43 45 50 54 49  XCEPTION EXCEPTI
0a60: 4f 4e 5f 4e 4f 4e 43 4f 4e 54 49 4e 55 41 42 4c  ON_NONCONTINUABL
0a70: 45 5f 45 58 43 45 50 54 49 4f 4e 3b 0d 0a 61 6c  E_EXCEPTION;..al
0a80: 69 61 73 20 53 54 41 54 55 53 5f 53 54 41 43 4b  ias STATUS_STACK
0a90: 5f 4f 56 45 52 46 4c 4f 57 20 45 58 43 45 50 54  _OVERFLOW EXCEPT
0aa0: 49 4f 4e 5f 53 54 41 43 4b 5f 4f 56 45 52 46 4c  ION_STACK_OVERFL
0ab0: 4f 57 3b 0d 0a 61 6c 69 61 73 20 53 54 41 54 55  OW;..alias STATU
0ac0: 53 5f 49 4e 56 41 4c 49 44 5f 44 49 53 50 4f 53  S_INVALID_DISPOS
0ad0: 49 54 49 4f 4e 20 45 58 43 45 50 54 49 4f 4e 5f  ITION EXCEPTION_
0ae0: 49 4e 56 41 4c 49 44 5f 44 49 53 50 4f 53 49 54  INVALID_DISPOSIT
0af0: 49 4f 4e 3b 0d 0a 61 6c 69 61 73 20 53 54 41 54  ION;..alias STAT
0b00: 55 53 5f 47 55 41 52 44 5f 50 41 47 45 5f 56 49  US_GUARD_PAGE_VI
0b10: 4f 4c 41 54 49 4f 4e 20 45 58 43 45 50 54 49 4f  OLATION EXCEPTIO
0b20: 4e 5f 47 55 41 52 44 5f 50 41 47 45 3b 0d 0a 61  N_GUARD_PAGE;..a
0b30: 6c 69 61 73 20 53 54 41 54 55 53 5f 49 4e 56 41  lias STATUS_INVA
0b40: 4c 49 44 5f 48 41 4e 44 4c 45 20 45 58 43 45 50  LID_HANDLE EXCEP
0b50: 54 49 4f 4e 5f 49 4e 56 41 4c 49 44 5f 48 41 4e  TION_INVALID_HAN
0b60: 44 4c 45 3b 0d 0a 61 6c 69 61 73 20 53 54 41 54  DLE;..alias STAT
0b70: 55 53 5f 43 4f 4e 54 52 4f 4c 5f 43 5f 45 58 49  US_CONTROL_C_EXI
0b80: 54 20 43 4f 4e 54 52 4f 4c 5f 43 5f 45 58 49 54  T CONTROL_C_EXIT
0b90: 3b 0d 0a 61 6c 69 61 73 20 52 74 6c 4d 6f 76 65  ;..alias RtlMove
0ba0: 4d 65 6d 6f 72 79 20 4d 6f 76 65 4d 65 6d 6f 72  Memory MoveMemor
0bb0: 79 3b 0d 0a 61 6c 69 61 73 20 52 74 6c 43 6f 70  y;..alias RtlCop
0bc0: 79 4d 65 6d 6f 72 79 20 43 6f 70 79 4d 65 6d 6f  yMemory CopyMemo
0bd0: 72 79 3b 0d 0a 61 6c 69 61 73 20 52 74 6c 46 69  ry;..alias RtlFi
0be0: 6c 6c 4d 65 6d 6f 72 79 20 46 69 6c 6c 4d 65 6d  llMemory FillMem
0bf0: 6f 72 79 3b 0d 0a 61 6c 69 61 73 20 52 74 6c 5a  ory;..alias RtlZ
0c00: 65 72 6f 4d 65 6d 6f 72 79 20 5a 65 72 6f 4d 65  eroMemory ZeroMe
0c10: 6d 6f 72 79 3b 0d 0a 0d 0a 65 6e 75 6d 20 3a 20  mory;....enum : 
0c20: 75 69 6e 74 20 7b 20 46 49 4c 45 5f 46 4c 41 47  uint { FILE_FLAG
0c30: 5f 57 52 49 54 45 5f 54 48 52 4f 55 47 48 20 3d  _WRITE_THROUGH =
0c40: 20 30 78 38 30 30 30 30 30 30 30 20 7d 0d 0a 65   0x80000000 }..e
0c50: 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 46 49 4c  num : uint { FIL
0c60: 45 5f 46 4c 41 47 5f 4f 56 45 52 4c 41 50 50 45  E_FLAG_OVERLAPPE
0c70: 44 20 3d 20 30 78 34 30 30 30 30 30 30 30 20 7d  D = 0x40000000 }
0c80: 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20  ..enum : uint { 
0c90: 46 49 4c 45 5f 46 4c 41 47 5f 4e 4f 5f 42 55 46  FILE_FLAG_NO_BUF
0ca0: 46 45 52 49 4e 47 20 3d 20 30 78 32 30 30 30 30  FERING = 0x20000
0cb0: 30 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69  000 }..enum : ui
0cc0: 6e 74 20 7b 20 46 49 4c 45 5f 46 4c 41 47 5f 52  nt { FILE_FLAG_R
0cd0: 41 4e 44 4f 4d 5f 41 43 43 45 53 53 20 3d 20 30  ANDOM_ACCESS = 0
0ce0: 78 31 30 30 30 30 30 30 30 20 7d 0d 0a 65 6e 75  x10000000 }..enu
0cf0: 6d 20 3a 20 75 69 6e 74 20 7b 20 46 49 4c 45 5f  m : uint { FILE_
0d00: 46 4c 41 47 5f 53 45 51 55 45 4e 54 49 41 4c 5f  FLAG_SEQUENTIAL_
0d10: 53 43 41 4e 20 3d 20 30 78 30 38 30 30 30 30 30  SCAN = 0x0800000
0d20: 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  0 }..enum : uint
0d30: 20 7b 20 46 49 4c 45 5f 46 4c 41 47 5f 44 45 4c   { FILE_FLAG_DEL
0d40: 45 54 45 5f 4f 4e 5f 43 4c 4f 53 45 20 3d 20 30  ETE_ON_CLOSE = 0
0d50: 78 30 34 30 30 30 30 30 30 20 7d 0d 0a 65 6e 75  x04000000 }..enu
0d60: 6d 20 3a 20 75 69 6e 74 20 7b 20 46 49 4c 45 5f  m : uint { FILE_
0d70: 46 4c 41 47 5f 42 41 43 4b 55 50 5f 53 45 4d 41  FLAG_BACKUP_SEMA
0d80: 4e 54 49 43 53 20 3d 20 30 78 30 32 30 30 30 30  NTICS = 0x020000
0d90: 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e  00 }..enum : uin
0da0: 74 20 7b 20 46 49 4c 45 5f 46 4c 41 47 5f 50 4f  t { FILE_FLAG_PO
0db0: 53 49 58 5f 53 45 4d 41 4e 54 49 43 53 20 3d 20  SIX_SEMANTICS = 
0dc0: 30 78 30 31 30 30 30 30 30 30 20 7d 0d 0a 65 6e  0x01000000 }..en
0dd0: 75 6d 20 3a 20 75 69 6e 74 20 7b 20 46 49 4c 45  um : uint { FILE
0de0: 5f 46 4c 41 47 5f 4f 50 45 4e 5f 52 45 50 41 52  _FLAG_OPEN_REPAR
0df0: 53 45 5f 50 4f 49 4e 54 20 3d 20 30 78 30 30 32  SE_POINT = 0x002
0e00: 30 30 30 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20  00000 }..enum : 
0e10: 75 69 6e 74 20 7b 20 46 49 4c 45 5f 46 4c 41 47  uint { FILE_FLAG
0e20: 5f 4f 50 45 4e 5f 4e 4f 5f 52 45 43 41 4c 4c 20  _OPEN_NO_RECALL 
0e30: 3d 20 30 78 30 30 31 30 30 30 30 30 20 7d 0d 0a  = 0x00100000 }..
0e40: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 46 49  enum : uint { FI
0e50: 4c 45 5f 46 4c 41 47 5f 46 49 52 53 54 5f 50 49  LE_FLAG_FIRST_PI
0e60: 50 45 5f 49 4e 53 54 41 4e 43 45 20 3d 20 30 78  PE_INSTANCE = 0x
0e70: 30 30 30 38 30 30 30 30 20 7d 0d 0a 0d 0a 65 6e  00080000 }....en
0e80: 75 6d 20 3a 20 75 69 6e 74 20 7b 20 43 52 45 41  um : uint { CREA
0e90: 54 45 5f 4e 45 57 20 3d 20 31 20 7d 0d 0a 65 6e  TE_NEW = 1 }..en
0ea0: 75 6d 20 3a 20 75 69 6e 74 20 7b 20 43 52 45 41  um : uint { CREA
0eb0: 54 45 5f 41 4c 57 41 59 53 20 3d 20 32 20 7d 0d  TE_ALWAYS = 2 }.
0ec0: 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 4f  .enum : uint { O
0ed0: 50 45 4e 5f 45 58 49 53 54 49 4e 47 20 3d 20 33  PEN_EXISTING = 3
0ee0: 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20   }..enum : uint 
0ef0: 7b 20 4f 50 45 4e 5f 41 4c 57 41 59 53 20 3d 20  { OPEN_ALWAYS = 
0f00: 34 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  4 }..enum : uint
0f10: 20 7b 20 54 52 55 4e 43 41 54 45 5f 45 58 49 53   { TRUNCATE_EXIS
0f20: 54 49 4e 47 20 3d 20 35 20 7d 0d 0a 0d 0a 2f 2f  TING = 5 }....//
0f30: 20 23 69 66 28 5f 57 49 4e 33 32 5f 57 49 4e 4e   #if(_WIN32_WINN
0f40: 54 20 3e 3d 20 30 78 30 34 30 30 29 0d 0a 0d 0a  T >= 0x0400)....
0f50: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 50 52  enum : uint { PR
0f60: 4f 47 52 45 53 53 5f 43 4f 4e 54 49 4e 55 45 20  OGRESS_CONTINUE 
0f70: 3d 20 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69  = 0 }..enum : ui
0f80: 6e 74 20 7b 20 50 52 4f 47 52 45 53 53 5f 43 41  nt { PROGRESS_CA
0f90: 4e 43 45 4c 20 3d 20 31 20 7d 0d 0a 65 6e 75 6d  NCEL = 1 }..enum
0fa0: 20 3a 20 75 69 6e 74 20 7b 20 50 52 4f 47 52 45   : uint { PROGRE
0fb0: 53 53 5f 53 54 4f 50 20 3d 20 32 20 7d 0d 0a 65  SS_STOP = 2 }..e
0fc0: 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 50 52 4f  num : uint { PRO
0fd0: 47 52 45 53 53 5f 51 55 49 45 54 20 3d 20 33 20  GRESS_QUIET = 3 
0fe0: 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  }....enum : uint
0ff0: 20 7b 20 43 41 4c 4c 42 41 43 4b 5f 43 48 55 4e   { CALLBACK_CHUN
1000: 4b 5f 46 49 4e 49 53 48 45 44 20 3d 20 30 78 30  K_FINISHED = 0x0
1010: 30 30 30 30 30 30 30 20 7d 0d 0a 65 6e 75 6d 20  0000000 }..enum 
1020: 3a 20 75 69 6e 74 20 7b 20 43 41 4c 4c 42 41 43  : uint { CALLBAC
1030: 4b 5f 53 54 52 45 41 4d 5f 53 57 49 54 43 48 20  K_STREAM_SWITCH 
1040: 3d 20 30 78 30 30 30 30 30 30 30 31 20 7d 0d 0a  = 0x00000001 }..
1050: 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20  ..enum : uint { 
1060: 43 4f 50 59 5f 46 49 4c 45 5f 46 41 49 4c 5f 49  COPY_FILE_FAIL_I
1070: 46 5f 45 58 49 53 54 53 20 3d 20 30 78 30 30 30  F_EXISTS = 0x000
1080: 30 30 30 30 31 20 7d 0d 0a 65 6e 75 6d 20 3a 20  00001 }..enum : 
1090: 75 69 6e 74 20 7b 20 43 4f 50 59 5f 46 49 4c 45  uint { COPY_FILE
10a0: 5f 52 45 53 54 41 52 54 41 42 4c 45 20 3d 20 30  _RESTARTABLE = 0
10b0: 78 30 30 30 30 30 30 30 32 20 7d 0d 0a 65 6e 75  x00000002 }..enu
10c0: 6d 20 3a 20 75 69 6e 74 20 7b 20 43 4f 50 59 5f  m : uint { COPY_
10d0: 46 49 4c 45 5f 4f 50 45 4e 5f 53 4f 55 52 43 45  FILE_OPEN_SOURCE
10e0: 5f 46 4f 52 5f 57 52 49 54 45 20 3d 20 30 78 30  _FOR_WRITE = 0x0
10f0: 30 30 30 30 30 30 34 20 7d 0d 0a 65 6e 75 6d 20  0000004 }..enum 
1100: 3a 20 75 69 6e 74 20 7b 20 43 4f 50 59 5f 46 49  : uint { COPY_FI
1110: 4c 45 5f 41 4c 4c 4f 57 5f 44 45 43 52 59 50 54  LE_ALLOW_DECRYPT
1120: 45 44 5f 44 45 53 54 49 4e 41 54 49 4f 4e 20 3d  ED_DESTINATION =
1130: 20 30 78 30 30 30 30 30 30 30 38 20 7d 0d 0a 2f   0x00000008 }../
1140: 2f 20 23 65 6e 64 69 66 20 2f 2a 20 5f 57 49 4e  / #endif /* _WIN
1150: 33 32 5f 57 49 4e 4e 54 20 3e 3d 20 30 78 30 34  32_WINNT >= 0x04
1160: 30 30 20 2a 2f 0d 0a 0d 0a 2f 2f 20 23 69 66 20  00 */....// #if 
1170: 28 5f 57 49 4e 33 32 5f 57 49 4e 4e 54 20 3e 3d  (_WIN32_WINNT >=
1180: 20 30 78 30 35 30 30 29 0d 0a 0d 0a 65 6e 75 6d   0x0500)....enum
1190: 20 3a 20 75 69 6e 74 20 7b 20 52 45 50 4c 41 43   : uint { REPLAC
11a0: 45 46 49 4c 45 5f 57 52 49 54 45 5f 54 48 52 4f  EFILE_WRITE_THRO
11b0: 55 47 48 20 3d 20 30 78 30 30 30 30 30 30 30 31  UGH = 0x00000001
11c0: 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20   }..enum : uint 
11d0: 7b 20 52 45 50 4c 41 43 45 46 49 4c 45 5f 49 47  { REPLACEFILE_IG
11e0: 4e 4f 52 45 5f 4d 45 52 47 45 5f 45 52 52 4f 52  NORE_MERGE_ERROR
11f0: 53 20 3d 20 30 78 30 30 30 30 30 30 30 32 20 7d  S = 0x00000002 }
1200: 0d 0a 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f  ....// #endif //
1210: 20 23 69 66 20 28 5f 57 49 4e 33 32 5f 57 49 4e   #if (_WIN32_WIN
1220: 4e 54 20 3e 3d 20 30 78 30 35 30 30 29 0d 0a 0d  NT >= 0x0500)...
1230: 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 50  .enum : uint { P
1240: 49 50 45 5f 41 43 43 45 53 53 5f 49 4e 42 4f 55  IPE_ACCESS_INBOU
1250: 4e 44 20 3d 20 30 78 30 30 30 30 30 30 30 31 20  ND = 0x00000001 
1260: 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b  }..enum : uint {
1270: 20 50 49 50 45 5f 41 43 43 45 53 53 5f 4f 55 54   PIPE_ACCESS_OUT
1280: 42 4f 55 4e 44 20 3d 20 30 78 30 30 30 30 30 30  BOUND = 0x000000
1290: 30 32 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e  02 }..enum : uin
12a0: 74 20 7b 20 50 49 50 45 5f 41 43 43 45 53 53 5f  t { PIPE_ACCESS_
12b0: 44 55 50 4c 45 58 20 3d 20 30 78 30 30 30 30 30  DUPLEX = 0x00000
12c0: 30 30 33 20 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20  003 }....enum : 
12d0: 75 69 6e 74 20 7b 20 50 49 50 45 5f 43 4c 49 45  uint { PIPE_CLIE
12e0: 4e 54 5f 45 4e 44 20 3d 20 30 78 30 30 30 30 30  NT_END = 0x00000
12f0: 30 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69  000 }..enum : ui
1300: 6e 74 20 7b 20 50 49 50 45 5f 53 45 52 56 45 52  nt { PIPE_SERVER
1310: 5f 45 4e 44 20 3d 20 30 78 30 30 30 30 30 30 30  _END = 0x0000000
1320: 31 20 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 75 69  1 }....enum : ui
1330: 6e 74 20 7b 20 50 49 50 45 5f 57 41 49 54 20 3d  nt { PIPE_WAIT =
1340: 20 30 78 30 30 30 30 30 30 30 30 20 7d 0d 0a 65   0x00000000 }..e
1350: 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 50 49 50  num : uint { PIP
1360: 45 5f 4e 4f 57 41 49 54 20 3d 20 30 78 30 30 30  E_NOWAIT = 0x000
1370: 30 30 30 30 31 20 7d 0d 0a 65 6e 75 6d 20 3a 20  00001 }..enum : 
1380: 75 69 6e 74 20 7b 20 50 49 50 45 5f 52 45 41 44  uint { PIPE_READ
1390: 4d 4f 44 45 5f 42 59 54 45 20 3d 20 30 78 30 30  MODE_BYTE = 0x00
13a0: 30 30 30 30 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a  000000 }..enum :
13b0: 20 75 69 6e 74 20 7b 20 50 49 50 45 5f 52 45 41   uint { PIPE_REA
13c0: 44 4d 4f 44 45 5f 4d 45 53 53 41 47 45 20 3d 20  DMODE_MESSAGE = 
13d0: 30 78 30 30 30 30 30 30 30 32 20 7d 0d 0a 65 6e  0x00000002 }..en
13e0: 75 6d 20 3a 20 75 69 6e 74 20 7b 20 50 49 50 45  um : uint { PIPE
13f0: 5f 54 59 50 45 5f 42 59 54 45 20 3d 20 30 78 30  _TYPE_BYTE = 0x0
1400: 30 30 30 30 30 30 30 20 7d 0d 0a 65 6e 75 6d 20  0000000 }..enum 
1410: 3a 20 75 69 6e 74 20 7b 20 50 49 50 45 5f 54 59  : uint { PIPE_TY
1420: 50 45 5f 4d 45 53 53 41 47 45 20 3d 20 30 78 30  PE_MESSAGE = 0x0
1430: 30 30 30 30 30 30 34 20 7d 0d 0a 0d 0a 65 6e 75  0000004 }....enu
1440: 6d 20 3a 20 75 69 6e 74 20 7b 20 50 49 50 45 5f  m : uint { PIPE_
1450: 55 4e 4c 49 4d 49 54 45 44 5f 49 4e 53 54 41 4e  UNLIMITED_INSTAN
1460: 43 45 53 20 3d 20 32 35 35 20 7d 0d 0a 0d 0a 65  CES = 255 }....e
1470: 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 53 45 43  num : uint { SEC
1480: 55 52 49 54 59 5f 41 4e 4f 4e 59 4d 4f 55 53 20  URITY_ANONYMOUS 
1490: 3d 20 20 53 65 63 75 72 69 74 79 41 6e 6f 6e 79  =  SecurityAnony
14a0: 6d 6f 75 73 20 3c 3c 20 31 36 20 20 7d 0d 0a 65  mous << 16  }..e
14b0: 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 53 45 43  num : uint { SEC
14c0: 55 52 49 54 59 5f 49 44 45 4e 54 49 46 49 43 41  URITY_IDENTIFICA
14d0: 54 49 4f 4e 20 3d 20 20 53 65 63 75 72 69 74 79  TION =  Security
14e0: 49 64 65 6e 74 69 66 69 63 61 74 69 6f 6e 20 3c  Identification <
14f0: 3c 20 31 36 20 20 7d 0d 0a 65 6e 75 6d 20 3a 20  < 16  }..enum : 
1500: 75 69 6e 74 20 7b 20 53 45 43 55 52 49 54 59 5f  uint { SECURITY_
1510: 49 4d 50 45 52 53 4f 4e 41 54 49 4f 4e 20 3d 20  IMPERSONATION = 
1520: 20 53 65 63 75 72 69 74 79 49 6d 70 65 72 73 6f   SecurityImperso
1530: 6e 61 74 69 6f 6e 20 3c 3c 20 31 36 20 20 7d 0d  nation << 16  }.
1540: 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 53  .enum : uint { S
1550: 45 43 55 52 49 54 59 5f 44 45 4c 45 47 41 54 49  ECURITY_DELEGATI
1560: 4f 4e 20 3d 20 20 53 65 63 75 72 69 74 79 44 65  ON =  SecurityDe
1570: 6c 65 67 61 74 69 6f 6e 20 3c 3c 20 31 36 20 20  legation << 16  
1580: 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  }....enum : uint
1590: 20 7b 20 53 45 43 55 52 49 54 59 5f 43 4f 4e 54   { SECURITY_CONT
15a0: 45 58 54 5f 54 52 41 43 4b 49 4e 47 20 3d 20 30  EXT_TRACKING = 0
15b0: 78 30 30 30 34 30 30 30 30 20 7d 0d 0a 65 6e 75  x00040000 }..enu
15c0: 6d 20 3a 20 75 69 6e 74 20 7b 20 53 45 43 55 52  m : uint { SECUR
15d0: 49 54 59 5f 45 46 46 45 43 54 49 56 45 5f 4f 4e  ITY_EFFECTIVE_ON
15e0: 4c 59 20 3d 20 30 78 30 30 30 38 30 30 30 30 20  LY = 0x00080000 
15f0: 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  }....enum : uint
1600: 20 7b 20 53 45 43 55 52 49 54 59 5f 53 51 4f 53   { SECURITY_SQOS
1610: 5f 50 52 45 53 45 4e 54 20 3d 20 30 78 30 30 31  _PRESENT = 0x001
1620: 30 30 30 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20  00000 }..enum : 
1630: 75 69 6e 74 20 7b 20 53 45 43 55 52 49 54 59 5f  uint { SECURITY_
1640: 56 41 4c 49 44 5f 53 51 4f 53 5f 46 4c 41 47 53  VALID_SQOS_FLAGS
1650: 20 3d 20 30 78 30 30 31 46 30 30 30 30 20 7d 0d   = 0x001F0000 }.
1660: 0a 0d 0a 73 74 72 75 63 74 20 5f 4f 56 45 52 4c  ...struct _OVERL
1670: 41 50 50 45 44 20 7b 0d 0a 20 20 55 4c 4f 4e 47  APPED {..  ULONG
1680: 5f 50 54 52 20 49 6e 74 65 72 6e 61 6c 3b 0d 0a  _PTR Internal;..
1690: 20 20 55 4c 4f 4e 47 5f 50 54 52 20 49 6e 74 65    ULONG_PTR Inte
16a0: 72 6e 61 6c 48 69 67 68 3b 0d 0a 75 6e 69 6f 6e  rnalHigh;..union
16b0: 20 7b 0d 0a 73 74 72 75 63 74 20 7b 0d 0a 20 20   {..struct {..  
16c0: 44 57 4f 52 44 20 4f 66 66 73 65 74 3b 0d 0a 20  DWORD Offset;.. 
16d0: 20 44 57 4f 52 44 20 4f 66 66 73 65 74 48 69 67   DWORD OffsetHig
16e0: 68 3b 0d 0a 7d 0d 0a 0d 0a 20 20 50 56 4f 49 44  h;..}....  PVOID
16f0: 20 50 6f 69 6e 74 65 72 3b 0d 0a 7d 0d 0a 0d 0a   Pointer;..}....
1700: 20 20 48 41 4e 44 4c 45 20 68 45 76 65 6e 74 3b    HANDLE hEvent;
1710: 0d 0a 7d 0d 0a 61 6c 69 61 73 20 5f 4f 56 45 52  ..}..alias _OVER
1720: 4c 41 50 50 45 44 20 4f 56 45 52 4c 41 50 50 45  LAPPED OVERLAPPE
1730: 44 3b 0d 0a 61 6c 69 61 73 20 5f 4f 56 45 52 4c  D;..alias _OVERL
1740: 41 50 50 45 44 2a 20 4c 50 4f 56 45 52 4c 41 50  APPED* LPOVERLAP
1750: 50 45 44 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 5f  PED;....struct _
1760: 53 45 43 55 52 49 54 59 5f 41 54 54 52 49 42 55  SECURITY_ATTRIBU
1770: 54 45 53 20 7b 0d 0a 20 20 44 57 4f 52 44 20 6e  TES {..  DWORD n
1780: 4c 65 6e 67 74 68 3b 0d 0a 20 20 4c 50 56 4f 49  Length;..  LPVOI
1790: 44 20 6c 70 53 65 63 75 72 69 74 79 44 65 73 63  D lpSecurityDesc
17a0: 72 69 70 74 6f 72 3b 0d 0a 20 20 42 4f 4f 4c 20  riptor;..  BOOL 
17b0: 62 49 6e 68 65 72 69 74 48 61 6e 64 6c 65 3b 0d  bInheritHandle;.
17c0: 0a 7d 0d 0a 61 6c 69 61 73 20 5f 53 45 43 55 52  .}..alias _SECUR
17d0: 49 54 59 5f 41 54 54 52 49 42 55 54 45 53 20 53  ITY_ATTRIBUTES S
17e0: 45 43 55 52 49 54 59 5f 41 54 54 52 49 42 55 54  ECURITY_ATTRIBUT
17f0: 45 53 3b 0d 0a 61 6c 69 61 73 20 5f 53 45 43 55  ES;..alias _SECU
1800: 52 49 54 59 5f 41 54 54 52 49 42 55 54 45 53 2a  RITY_ATTRIBUTES*
1810: 20 50 53 45 43 55 52 49 54 59 5f 41 54 54 52 49   PSECURITY_ATTRI
1820: 42 55 54 45 53 3b 0d 0a 61 6c 69 61 73 20 5f 53  BUTES;..alias _S
1830: 45 43 55 52 49 54 59 5f 41 54 54 52 49 42 55 54  ECURITY_ATTRIBUT
1840: 45 53 2a 20 4c 50 53 45 43 55 52 49 54 59 5f 41  ES* LPSECURITY_A
1850: 54 54 52 49 42 55 54 45 53 3b 0d 0a 0d 0a 73 74  TTRIBUTES;....st
1860: 72 75 63 74 20 5f 50 52 4f 43 45 53 53 5f 49 4e  ruct _PROCESS_IN
1870: 46 4f 52 4d 41 54 49 4f 4e 20 7b 0d 0a 20 20 48  FORMATION {..  H
1880: 41 4e 44 4c 45 20 68 50 72 6f 63 65 73 73 3b 0d  ANDLE hProcess;.
1890: 0a 20 20 48 41 4e 44 4c 45 20 68 54 68 72 65 61  .  HANDLE hThrea
18a0: 64 3b 0d 0a 20 20 44 57 4f 52 44 20 64 77 50 72  d;..  DWORD dwPr
18b0: 6f 63 65 73 73 49 64 3b 0d 0a 20 20 44 57 4f 52  ocessId;..  DWOR
18c0: 44 20 64 77 54 68 72 65 61 64 49 64 3b 0d 0a 7d  D dwThreadId;..}
18d0: 0d 0a 61 6c 69 61 73 20 5f 50 52 4f 43 45 53 53  ..alias _PROCESS
18e0: 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 20 50 52 4f  _INFORMATION PRO
18f0: 43 45 53 53 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e  CESS_INFORMATION
1900: 3b 0d 0a 61 6c 69 61 73 20 5f 50 52 4f 43 45 53  ;..alias _PROCES
1910: 53 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 2a 20 50  S_INFORMATION* P
1920: 50 52 4f 43 45 53 53 5f 49 4e 46 4f 52 4d 41 54  PROCESS_INFORMAT
1930: 49 4f 4e 3b 0d 0a 61 6c 69 61 73 20 5f 50 52 4f  ION;..alias _PRO
1940: 43 45 53 53 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e  CESS_INFORMATION
1950: 2a 20 4c 50 50 52 4f 43 45 53 53 5f 49 4e 46 4f  * LPPROCESS_INFO
1960: 52 4d 41 54 49 4f 4e 3b 0d 0a 0d 0a 73 74 72 75  RMATION;....stru
1970: 63 74 20 5f 46 49 4c 45 54 49 4d 45 20 7b 0d 0a  ct _FILETIME {..
1980: 20 20 44 57 4f 52 44 20 64 77 4c 6f 77 44 61 74    DWORD dwLowDat
1990: 65 54 69 6d 65 3b 0d 0a 20 20 44 57 4f 52 44 20  eTime;..  DWORD 
19a0: 64 77 48 69 67 68 44 61 74 65 54 69 6d 65 3b 0d  dwHighDateTime;.
19b0: 0a 7d 0d 0a 61 6c 69 61 73 20 5f 46 49 4c 45 54  .}..alias _FILET
19c0: 49 4d 45 20 46 49 4c 45 54 49 4d 45 3b 0d 0a 61  IME FILETIME;..a
19d0: 6c 69 61 73 20 5f 46 49 4c 45 54 49 4d 45 2a 20  lias _FILETIME* 
19e0: 50 46 49 4c 45 54 49 4d 45 3b 0d 0a 61 6c 69 61  PFILETIME;..alia
19f0: 73 20 5f 46 49 4c 45 54 49 4d 45 2a 20 4c 50 46  s _FILETIME* LPF
1a00: 49 4c 45 54 49 4d 45 3b 0d 0a 0d 0a 73 74 72 75  ILETIME;....stru
1a10: 63 74 20 5f 53 59 53 54 45 4d 54 49 4d 45 20 7b  ct _SYSTEMTIME {
1a20: 0d 0a 20 20 57 4f 52 44 20 77 59 65 61 72 3b 0d  ..  WORD wYear;.
1a30: 0a 20 20 57 4f 52 44 20 77 4d 6f 6e 74 68 3b 0d  .  WORD wMonth;.
1a40: 0a 20 20 57 4f 52 44 20 77 44 61 79 4f 66 57 65  .  WORD wDayOfWe
1a50: 65 6b 3b 0d 0a 20 20 57 4f 52 44 20 77 44 61 79  ek;..  WORD wDay
1a60: 3b 0d 0a 20 20 57 4f 52 44 20 77 48 6f 75 72 3b  ;..  WORD wHour;
1a70: 0d 0a 20 20 57 4f 52 44 20 77 4d 69 6e 75 74 65  ..  WORD wMinute
1a80: 3b 0d 0a 20 20 57 4f 52 44 20 77 53 65 63 6f 6e  ;..  WORD wSecon
1a90: 64 3b 0d 0a 20 20 57 4f 52 44 20 77 4d 69 6c 6c  d;..  WORD wMill
1aa0: 69 73 65 63 6f 6e 64 73 3b 0d 0a 7d 0d 0a 61 6c  iseconds;..}..al
1ab0: 69 61 73 20 5f 53 59 53 54 45 4d 54 49 4d 45 20  ias _SYSTEMTIME 
1ac0: 53 59 53 54 45 4d 54 49 4d 45 3b 0d 0a 61 6c 69  SYSTEMTIME;..ali
1ad0: 61 73 20 5f 53 59 53 54 45 4d 54 49 4d 45 2a 20  as _SYSTEMTIME* 
1ae0: 50 53 59 53 54 45 4d 54 49 4d 45 3b 0d 0a 61 6c  PSYSTEMTIME;..al
1af0: 69 61 73 20 5f 53 59 53 54 45 4d 54 49 4d 45 2a  ias _SYSTEMTIME*
1b00: 20 4c 50 53 59 53 54 45 4d 54 49 4d 45 3b 0d 0a   LPSYSTEMTIME;..
1b10: 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
1b20: 29 20 61 6c 69 61 73 20 44 57 4f 52 44 20 66 75  ) alias DWORD fu
1b30: 6e 63 74 69 6f 6e 28 20 4c 50 56 4f 49 44 20 6c  nction( LPVOID l
1b40: 70 54 68 72 65 61 64 50 61 72 61 6d 65 74 65 72  pThreadParameter
1b50: 20 29 20 50 54 48 52 45 41 44 5f 53 54 41 52 54   ) PTHREAD_START
1b60: 5f 52 4f 55 54 49 4e 45 3b 0d 0a 61 6c 69 61 73  _ROUTINE;..alias
1b70: 20 50 54 48 52 45 41 44 5f 53 54 41 52 54 5f 52   PTHREAD_START_R
1b80: 4f 55 54 49 4e 45 20 4c 50 54 48 52 45 41 44 5f  OUTINE LPTHREAD_
1b90: 53 54 41 52 54 5f 52 4f 55 54 49 4e 45 3b 0d 0a  START_ROUTINE;..
1ba0: 0d 0a 2f 2f 20 23 69 66 28 5f 57 49 4e 33 32 5f  ..// #if(_WIN32_
1bb0: 57 49 4e 4e 54 20 3e 3d 20 30 78 30 34 30 30 29  WINNT >= 0x0400)
1bc0: 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
1bd0: 29 20 61 6c 69 61 73 20 56 4f 49 44 20 66 75 6e  ) alias VOID fun
1be0: 63 74 69 6f 6e 28 20 4c 50 56 4f 49 44 20 6c 70  ction( LPVOID lp
1bf0: 46 69 62 65 72 50 61 72 61 6d 65 74 65 72 20 29  FiberParameter )
1c00: 20 50 46 49 42 45 52 5f 53 54 41 52 54 5f 52 4f   PFIBER_START_RO
1c10: 55 54 49 4e 45 3b 0d 0a 61 6c 69 61 73 20 50 46  UTINE;..alias PF
1c20: 49 42 45 52 5f 53 54 41 52 54 5f 52 4f 55 54 49  IBER_START_ROUTI
1c30: 4e 45 20 4c 50 46 49 42 45 52 5f 53 54 41 52 54  NE LPFIBER_START
1c40: 5f 52 4f 55 54 49 4e 45 3b 0d 0a 2f 2f 20 23 65  _ROUTINE;..// #e
1c50: 6e 64 69 66 20 2f 2a 20 5f 57 49 4e 33 32 5f 57  ndif /* _WIN32_W
1c60: 49 4e 4e 54 20 3e 3d 20 30 78 30 34 30 30 20 2a  INNT >= 0x0400 *
1c70: 2f 0d 0a 0d 0a 61 6c 69 61 73 20 52 54 4c 5f 43  /....alias RTL_C
1c80: 52 49 54 49 43 41 4c 5f 53 45 43 54 49 4f 4e 20  RITICAL_SECTION 
1c90: 43 52 49 54 49 43 41 4c 5f 53 45 43 54 49 4f 4e  CRITICAL_SECTION
1ca0: 3b 0d 0a 61 6c 69 61 73 20 50 52 54 4c 5f 43 52  ;..alias PRTL_CR
1cb0: 49 54 49 43 41 4c 5f 53 45 43 54 49 4f 4e 20 50  ITICAL_SECTION P
1cc0: 43 52 49 54 49 43 41 4c 5f 53 45 43 54 49 4f 4e  CRITICAL_SECTION
1cd0: 3b 0d 0a 61 6c 69 61 73 20 50 52 54 4c 5f 43 52  ;..alias PRTL_CR
1ce0: 49 54 49 43 41 4c 5f 53 45 43 54 49 4f 4e 20 4c  ITICAL_SECTION L
1cf0: 50 43 52 49 54 49 43 41 4c 5f 53 45 43 54 49 4f  PCRITICAL_SECTIO
1d00: 4e 3b 0d 0a 0d 0a 61 6c 69 61 73 20 52 54 4c 5f  N;....alias RTL_
1d10: 43 52 49 54 49 43 41 4c 5f 53 45 43 54 49 4f 4e  CRITICAL_SECTION
1d20: 5f 44 45 42 55 47 20 43 52 49 54 49 43 41 4c 5f  _DEBUG CRITICAL_
1d30: 53 45 43 54 49 4f 4e 5f 44 45 42 55 47 3b 0d 0a  SECTION_DEBUG;..
1d40: 61 6c 69 61 73 20 50 52 54 4c 5f 43 52 49 54 49  alias PRTL_CRITI
1d50: 43 41 4c 5f 53 45 43 54 49 4f 4e 5f 44 45 42 55  CAL_SECTION_DEBU
1d60: 47 20 50 43 52 49 54 49 43 41 4c 5f 53 45 43 54  G PCRITICAL_SECT
1d70: 49 4f 4e 5f 44 45 42 55 47 3b 0d 0a 61 6c 69 61  ION_DEBUG;..alia
1d80: 73 20 50 52 54 4c 5f 43 52 49 54 49 43 41 4c 5f  s PRTL_CRITICAL_
1d90: 53 45 43 54 49 4f 4e 5f 44 45 42 55 47 20 4c 50  SECTION_DEBUG LP
1da0: 43 52 49 54 49 43 41 4c 5f 53 45 43 54 49 4f 4e  CRITICAL_SECTION
1db0: 5f 44 45 42 55 47 3b 0d 0a 0d 0a 2f 2f 20 23 69  _DEBUG;....// #i
1dc0: 66 20 64 65 66 69 6e 65 64 28 5f 58 38 36 5f 29  f defined(_X86_)
1dd0: 0d 0a 61 6c 69 61 73 20 50 4c 44 54 5f 45 4e 54  ..alias PLDT_ENT
1de0: 52 59 20 4c 50 4c 44 54 5f 45 4e 54 52 59 3b 0d  RY LPLDT_ENTRY;.
1df0: 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 2e 2e  .// #else..// ..
1e00: 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 0d 0a 0d 0a  ...// #endif....
1e10: 61 6c 69 61 73 20 4d 55 54 41 4e 54 5f 51 55 45  alias MUTANT_QUE
1e20: 52 59 5f 53 54 41 54 45 20 4d 55 54 45 58 5f 4d  RY_STATE MUTEX_M
1e30: 4f 44 49 46 59 5f 53 54 41 54 45 3b 0d 0a 61 6c  ODIFY_STATE;..al
1e40: 69 61 73 20 4d 55 54 41 4e 54 5f 41 4c 4c 5f 41  ias MUTANT_ALL_A
1e50: 43 43 45 53 53 20 4d 55 54 45 58 5f 41 4c 4c 5f  CCESS MUTEX_ALL_
1e60: 41 43 43 45 53 53 3b 0d 0a 0d 0a 65 6e 75 6d 20  ACCESS;....enum 
1e70: 3a 20 75 69 6e 74 20 7b 20 53 50 5f 53 45 52 49  : uint { SP_SERI
1e80: 41 4c 43 4f 4d 4d 20 3d 20 63 61 73 74 28 44 57  ALCOMM = cast(DW
1e90: 4f 52 44 29 30 78 30 30 30 30 30 30 30 31 20 7d  ORD)0x00000001 }
1ea0: 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20  ....enum : uint 
1eb0: 7b 20 50 53 54 5f 55 4e 53 50 45 43 49 46 49 45  { PST_UNSPECIFIE
1ec0: 44 20 3d 20 63 61 73 74 28 44 57 4f 52 44 29 30  D = cast(DWORD)0
1ed0: 78 30 30 30 30 30 30 30 30 20 7d 0d 0a 65 6e 75  x00000000 }..enu
1ee0: 6d 20 3a 20 75 69 6e 74 20 7b 20 50 53 54 5f 52  m : uint { PST_R
1ef0: 53 32 33 32 20 3d 20 63 61 73 74 28 44 57 4f 52  S232 = cast(DWOR
1f00: 44 29 30 78 30 30 30 30 30 30 30 31 20 7d 0d 0a  D)0x00000001 }..
1f10: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 50 53  enum : uint { PS
1f20: 54 5f 50 41 52 41 4c 4c 45 4c 50 4f 52 54 20 3d  T_PARALLELPORT =
1f30: 20 63 61 73 74 28 44 57 4f 52 44 29 30 78 30 30   cast(DWORD)0x00
1f40: 30 30 30 30 30 32 20 7d 0d 0a 65 6e 75 6d 20 3a  000002 }..enum :
1f50: 20 75 69 6e 74 20 7b 20 50 53 54 5f 52 53 34 32   uint { PST_RS42
1f60: 32 20 3d 20 63 61 73 74 28 44 57 4f 52 44 29 30  2 = cast(DWORD)0
1f70: 78 30 30 30 30 30 30 30 33 20 7d 0d 0a 65 6e 75  x00000003 }..enu
1f80: 6d 20 3a 20 75 69 6e 74 20 7b 20 50 53 54 5f 52  m : uint { PST_R
1f90: 53 34 32 33 20 3d 20 63 61 73 74 28 44 57 4f 52  S423 = cast(DWOR
1fa0: 44 29 30 78 30 30 30 30 30 30 30 34 20 7d 0d 0a  D)0x00000004 }..
1fb0: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 50 53  enum : uint { PS
1fc0: 54 5f 52 53 34 34 39 20 3d 20 63 61 73 74 28 44  T_RS449 = cast(D
1fd0: 57 4f 52 44 29 30 78 30 30 30 30 30 30 30 35 20  WORD)0x00000005 
1fe0: 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b  }..enum : uint {
1ff0: 20 50 53 54 5f 4d 4f 44 45 4d 20 3d 20 63 61 73   PST_MODEM = cas
2000: 74 28 44 57 4f 52 44 29 30 78 30 30 30 30 30 30  t(DWORD)0x000000
2010: 30 36 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e  06 }..enum : uin
2020: 74 20 7b 20 50 53 54 5f 46 41 58 20 3d 20 63 61  t { PST_FAX = ca
2030: 73 74 28 44 57 4f 52 44 29 30 78 30 30 30 30 30  st(DWORD)0x00000
2040: 30 32 31 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69  021 }..enum : ui
2050: 6e 74 20 7b 20 50 53 54 5f 53 43 41 4e 4e 45 52  nt { PST_SCANNER
2060: 20 3d 20 63 61 73 74 28 44 57 4f 52 44 29 30 78   = cast(DWORD)0x
2070: 30 30 30 30 30 30 32 32 20 7d 0d 0a 65 6e 75 6d  00000022 }..enum
2080: 20 3a 20 75 69 6e 74 20 7b 20 50 53 54 5f 4e 45   : uint { PST_NE
2090: 54 57 4f 52 4b 5f 42 52 49 44 47 45 20 3d 20 63  TWORK_BRIDGE = c
20a0: 61 73 74 28 44 57 4f 52 44 29 30 78 30 30 30 30  ast(DWORD)0x0000
20b0: 30 31 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75  0100 }..enum : u
20c0: 69 6e 74 20 7b 20 50 53 54 5f 4c 41 54 20 3d 20  int { PST_LAT = 
20d0: 63 61 73 74 28 44 57 4f 52 44 29 30 78 30 30 30  cast(DWORD)0x000
20e0: 30 30 31 30 31 20 7d 0d 0a 65 6e 75 6d 20 3a 20  00101 }..enum : 
20f0: 75 69 6e 74 20 7b 20 50 53 54 5f 54 43 50 49 50  uint { PST_TCPIP
2100: 5f 54 45 4c 4e 45 54 20 3d 20 63 61 73 74 28 44  _TELNET = cast(D
2110: 57 4f 52 44 29 30 78 30 30 30 30 30 31 30 32 20  WORD)0x00000102 
2120: 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b  }..enum : uint {
2130: 20 50 53 54 5f 58 32 35 20 3d 20 63 61 73 74 28   PST_X25 = cast(
2140: 44 57 4f 52 44 29 30 78 30 30 30 30 30 31 30 33  DWORD)0x00000103
2150: 20 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e   }....enum : uin
2160: 74 20 7b 20 50 43 46 5f 44 54 52 44 53 52 20 3d  t { PCF_DTRDSR =
2170: 20 63 61 73 74 28 44 57 4f 52 44 29 30 78 30 30   cast(DWORD)0x00
2180: 30 31 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e  01 }..enum : uin
2190: 74 20 7b 20 50 43 46 5f 52 54 53 43 54 53 20 3d  t { PCF_RTSCTS =
21a0: 20 63 61 73 74 28 44 57 4f 52 44 29 30 78 30 30   cast(DWORD)0x00
21b0: 30 32 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e  02 }..enum : uin
21c0: 74 20 7b 20 50 43 46 5f 52 4c 53 44 20 3d 20 63  t { PCF_RLSD = c
21d0: 61 73 74 28 44 57 4f 52 44 29 30 78 30 30 30 34  ast(DWORD)0x0004
21e0: 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20   }..enum : uint 
21f0: 7b 20 50 43 46 5f 50 41 52 49 54 59 5f 43 48 45  { PCF_PARITY_CHE
2200: 43 4b 20 3d 20 63 61 73 74 28 44 57 4f 52 44 29  CK = cast(DWORD)
2210: 30 78 30 30 30 38 20 7d 0d 0a 65 6e 75 6d 20 3a  0x0008 }..enum :
2220: 20 75 69 6e 74 20 7b 20 50 43 46 5f 58 4f 4e 58   uint { PCF_XONX
2230: 4f 46 46 20 3d 20 63 61 73 74 28 44 57 4f 52 44  OFF = cast(DWORD
2240: 29 30 78 30 30 31 30 20 7d 0d 0a 65 6e 75 6d 20  )0x0010 }..enum 
2250: 3a 20 75 69 6e 74 20 7b 20 50 43 46 5f 53 45 54  : uint { PCF_SET
2260: 58 43 48 41 52 20 3d 20 63 61 73 74 28 44 57 4f  XCHAR = cast(DWO
2270: 52 44 29 30 78 30 30 32 30 20 7d 0d 0a 65 6e 75  RD)0x0020 }..enu
2280: 6d 20 3a 20 75 69 6e 74 20 7b 20 50 43 46 5f 54  m : uint { PCF_T
2290: 4f 54 41 4c 54 49 4d 45 4f 55 54 53 20 3d 20 63  OTALTIMEOUTS = c
22a0: 61 73 74 28 44 57 4f 52 44 29 30 78 30 30 34 30  ast(DWORD)0x0040
22b0: 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20   }..enum : uint 
22c0: 7b 20 50 43 46 5f 49 4e 54 54 49 4d 45 4f 55 54  { PCF_INTTIMEOUT
22d0: 53 20 3d 20 63 61 73 74 28 44 57 4f 52 44 29 30  S = cast(DWORD)0
22e0: 78 30 30 38 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20  x0080 }..enum : 
22f0: 75 69 6e 74 20 7b 20 50 43 46 5f 53 50 45 43 49  uint { PCF_SPECI
2300: 41 4c 43 48 41 52 53 20 3d 20 63 61 73 74 28 44  ALCHARS = cast(D
2310: 57 4f 52 44 29 30 78 30 31 30 30 20 7d 0d 0a 65  WORD)0x0100 }..e
2320: 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 50 43 46  num : uint { PCF
2330: 5f 31 36 42 49 54 4d 4f 44 45 20 3d 20 63 61 73  _16BITMODE = cas
2340: 74 28 44 57 4f 52 44 29 30 78 30 32 30 30 20 7d  t(DWORD)0x0200 }
2350: 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20  ....enum : uint 
2360: 7b 20 53 50 5f 50 41 52 49 54 59 20 3d 20 63 61  { SP_PARITY = ca
2370: 73 74 28 44 57 4f 52 44 29 30 78 30 30 30 31 20  st(DWORD)0x0001 
2380: 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b  }..enum : uint {
2390: 20 53 50 5f 42 41 55 44 20 3d 20 63 61 73 74 28   SP_BAUD = cast(
23a0: 44 57 4f 52 44 29 30 78 30 30 30 32 20 7d 0d 0a  DWORD)0x0002 }..
23b0: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 53 50  enum : uint { SP
23c0: 5f 44 41 54 41 42 49 54 53 20 3d 20 63 61 73 74  _DATABITS = cast
23d0: 28 44 57 4f 52 44 29 30 78 30 30 30 34 20 7d 0d  (DWORD)0x0004 }.
23e0: 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 53  .enum : uint { S
23f0: 50 5f 53 54 4f 50 42 49 54 53 20 3d 20 63 61 73  P_STOPBITS = cas
2400: 74 28 44 57 4f 52 44 29 30 78 30 30 30 38 20 7d  t(DWORD)0x0008 }
2410: 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20  ..enum : uint { 
2420: 53 50 5f 48 41 4e 44 53 48 41 4b 49 4e 47 20 3d  SP_HANDSHAKING =
2430: 20 63 61 73 74 28 44 57 4f 52 44 29 30 78 30 30   cast(DWORD)0x00
2440: 31 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e  10 }..enum : uin
2450: 74 20 7b 20 53 50 5f 50 41 52 49 54 59 5f 43 48  t { SP_PARITY_CH
2460: 45 43 4b 20 3d 20 63 61 73 74 28 44 57 4f 52 44  ECK = cast(DWORD
2470: 29 30 78 30 30 32 30 20 7d 0d 0a 65 6e 75 6d 20  )0x0020 }..enum 
2480: 3a 20 75 69 6e 74 20 7b 20 53 50 5f 52 4c 53 44  : uint { SP_RLSD
2490: 20 3d 20 63 61 73 74 28 44 57 4f 52 44 29 30 78   = cast(DWORD)0x
24a0: 30 30 34 30 20 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a  0040 }....enum :
24b0: 20 75 69 6e 74 20 7b 20 42 41 55 44 5f 30 37 35   uint { BAUD_075
24c0: 20 3d 20 63 61 73 74 28 44 57 4f 52 44 29 30 78   = cast(DWORD)0x
24d0: 30 30 30 30 30 30 30 31 20 7d 0d 0a 65 6e 75 6d  00000001 }..enum
24e0: 20 3a 20 75 69 6e 74 20 7b 20 42 41 55 44 5f 31   : uint { BAUD_1
24f0: 31 30 20 3d 20 63 61 73 74 28 44 57 4f 52 44 29  10 = cast(DWORD)
2500: 30 78 30 30 30 30 30 30 30 32 20 7d 0d 0a 65 6e  0x00000002 }..en
2510: 75 6d 20 3a 20 75 69 6e 74 20 7b 20 42 41 55 44  um : uint { BAUD
2520: 5f 31 33 34 5f 35 20 3d 20 63 61 73 74 28 44 57  _134_5 = cast(DW
2530: 4f 52 44 29 30 78 30 30 30 30 30 30 30 34 20 7d  ORD)0x00000004 }
2540: 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20  ..enum : uint { 
2550: 42 41 55 44 5f 31 35 30 20 3d 20 63 61 73 74 28  BAUD_150 = cast(
2560: 44 57 4f 52 44 29 30 78 30 30 30 30 30 30 30 38  DWORD)0x00000008
2570: 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20   }..enum : uint 
2580: 7b 20 42 41 55 44 5f 33 30 30 20 3d 20 63 61 73  { BAUD_300 = cas
2590: 74 28 44 57 4f 52 44 29 30 78 30 30 30 30 30 30  t(DWORD)0x000000
25a0: 31 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e  10 }..enum : uin
25b0: 74 20 7b 20 42 41 55 44 5f 36 30 30 20 3d 20 63  t { BAUD_600 = c
25c0: 61 73 74 28 44 57 4f 52 44 29 30 78 30 30 30 30  ast(DWORD)0x0000
25d0: 30 30 32 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75  0020 }..enum : u
25e0: 69 6e 74 20 7b 20 42 41 55 44 5f 31 32 30 30 20  int { BAUD_1200 
25f0: 3d 20 63 61 73 74 28 44 57 4f 52 44 29 30 78 30  = cast(DWORD)0x0
2600: 30 30 30 30 30 34 30 20 7d 0d 0a 65 6e 75 6d 20  0000040 }..enum 
2610: 3a 20 75 69 6e 74 20 7b 20 42 41 55 44 5f 31 38  : uint { BAUD_18
2620: 30 30 20 3d 20 63 61 73 74 28 44 57 4f 52 44 29  00 = cast(DWORD)
2630: 30 78 30 30 30 30 30 30 38 30 20 7d 0d 0a 65 6e  0x00000080 }..en
2640: 75 6d 20 3a 20 75 69 6e 74 20 7b 20 42 41 55 44  um : uint { BAUD
2650: 5f 32 34 30 30 20 3d 20 63 61 73 74 28 44 57 4f  _2400 = cast(DWO
2660: 52 44 29 30 78 30 30 30 30 30 31 30 30 20 7d 0d  RD)0x00000100 }.
2670: 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 42  .enum : uint { B
2680: 41 55 44 5f 34 38 30 30 20 3d 20 63 61 73 74 28  AUD_4800 = cast(
2690: 44 57 4f 52 44 29 30 78 30 30 30 30 30 32 30 30  DWORD)0x00000200
26a0: 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20   }..enum : uint 
26b0: 7b 20 42 41 55 44 5f 37 32 30 30 20 3d 20 63 61  { BAUD_7200 = ca
26c0: 73 74 28 44 57 4f 52 44 29 30 78 30 30 30 30 30  st(DWORD)0x00000
26d0: 34 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69  400 }..enum : ui
26e0: 6e 74 20 7b 20 42 41 55 44 5f 39 36 30 30 20 3d  nt { BAUD_9600 =
26f0: 20 63 61 73 74 28 44 57 4f 52 44 29 30 78 30 30   cast(DWORD)0x00
2700: 30 30 30 38 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a  000800 }..enum :
2710: 20 75 69 6e 74 20 7b 20 42 41 55 44 5f 31 34 34   uint { BAUD_144
2720: 30 30 20 3d 20 63 61 73 74 28 44 57 4f 52 44 29  00 = cast(DWORD)
2730: 30 78 30 30 30 30 31 30 30 30 20 7d 0d 0a 65 6e  0x00001000 }..en
2740: 75 6d 20 3a 20 75 69 6e 74 20 7b 20 42 41 55 44  um : uint { BAUD
2750: 5f 31 39 32 30 30 20 3d 20 63 61 73 74 28 44 57  _19200 = cast(DW
2760: 4f 52 44 29 30 78 30 30 30 30 32 30 30 30 20 7d  ORD)0x00002000 }
2770: 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20  ..enum : uint { 
2780: 42 41 55 44 5f 33 38 34 30 30 20 3d 20 63 61 73  BAUD_38400 = cas
2790: 74 28 44 57 4f 52 44 29 30 78 30 30 30 30 34 30  t(DWORD)0x000040
27a0: 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e  00 }..enum : uin
27b0: 74 20 7b 20 42 41 55 44 5f 35 36 4b 20 3d 20 63  t { BAUD_56K = c
27c0: 61 73 74 28 44 57 4f 52 44 29 30 78 30 30 30 30  ast(DWORD)0x0000
27d0: 38 30 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75  8000 }..enum : u
27e0: 69 6e 74 20 7b 20 42 41 55 44 5f 31 32 38 4b 20  int { BAUD_128K 
27f0: 3d 20 63 61 73 74 28 44 57 4f 52 44 29 30 78 30  = cast(DWORD)0x0
2800: 30 30 31 30 30 30 30 20 7d 0d 0a 65 6e 75 6d 20  0010000 }..enum 
2810: 3a 20 75 69 6e 74 20 7b 20 42 41 55 44 5f 31 31  : uint { BAUD_11
2820: 35 32 30 30 20 3d 20 63 61 73 74 28 44 57 4f 52  5200 = cast(DWOR
2830: 44 29 30 78 30 30 30 32 30 30 30 30 20 7d 0d 0a  D)0x00020000 }..
2840: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 42 41  enum : uint { BA
2850: 55 44 5f 35 37 36 30 30 20 3d 20 63 61 73 74 28  UD_57600 = cast(
2860: 44 57 4f 52 44 29 30 78 30 30 30 34 30 30 30 30  DWORD)0x00040000
2870: 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20   }..enum : uint 
2880: 7b 20 42 41 55 44 5f 55 53 45 52 20 3d 20 63 61  { BAUD_USER = ca
2890: 73 74 28 44 57 4f 52 44 29 30 78 31 30 30 30 30  st(DWORD)0x10000
28a0: 30 30 30 20 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20  000 }....enum : 
28b0: 75 69 6e 74 20 7b 20 44 41 54 41 42 49 54 53 5f  uint { DATABITS_
28c0: 35 20 3d 20 63 61 73 74 28 57 4f 52 44 29 30 78  5 = cast(WORD)0x
28d0: 30 30 30 31 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75  0001 }..enum : u
28e0: 69 6e 74 20 7b 20 44 41 54 41 42 49 54 53 5f 36  int { DATABITS_6
28f0: 20 3d 20 63 61 73 74 28 57 4f 52 44 29 30 78 30   = cast(WORD)0x0
2900: 30 30 32 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69  002 }..enum : ui
2910: 6e 74 20 7b 20 44 41 54 41 42 49 54 53 5f 37 20  nt { DATABITS_7 
2920: 3d 20 63 61 73 74 28 57 4f 52 44 29 30 78 30 30  = cast(WORD)0x00
2930: 30 34 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e  04 }..enum : uin
2940: 74 20 7b 20 44 41 54 41 42 49 54 53 5f 38 20 3d  t { DATABITS_8 =
2950: 20 63 61 73 74 28 57 4f 52 44 29 30 78 30 30 30   cast(WORD)0x000
2960: 38 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  8 }..enum : uint
2970: 20 7b 20 44 41 54 41 42 49 54 53 5f 31 36 20 3d   { DATABITS_16 =
2980: 20 63 61 73 74 28 57 4f 52 44 29 30 78 30 30 31   cast(WORD)0x001
2990: 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  0 }..enum : uint
29a0: 20 7b 20 44 41 54 41 42 49 54 53 5f 31 36 58 20   { DATABITS_16X 
29b0: 3d 20 63 61 73 74 28 57 4f 52 44 29 30 78 30 30  = cast(WORD)0x00
29c0: 32 30 20 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 75  20 }....enum : u
29d0: 69 6e 74 20 7b 20 53 54 4f 50 42 49 54 53 5f 31  int { STOPBITS_1
29e0: 30 20 3d 20 63 61 73 74 28 57 4f 52 44 29 30 78  0 = cast(WORD)0x
29f0: 30 30 30 31 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75  0001 }..enum : u
2a00: 69 6e 74 20 7b 20 53 54 4f 50 42 49 54 53 5f 31  int { STOPBITS_1
2a10: 35 20 3d 20 63 61 73 74 28 57 4f 52 44 29 30 78  5 = cast(WORD)0x
2a20: 30 30 30 32 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75  0002 }..enum : u
2a30: 69 6e 74 20 7b 20 53 54 4f 50 42 49 54 53 5f 32  int { STOPBITS_2
2a40: 30 20 3d 20 63 61 73 74 28 57 4f 52 44 29 30 78  0 = cast(WORD)0x
2a50: 30 30 30 34 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75  0004 }..enum : u
2a60: 69 6e 74 20 7b 20 50 41 52 49 54 59 5f 4e 4f 4e  int { PARITY_NON
2a70: 45 20 3d 20 63 61 73 74 28 57 4f 52 44 29 30 78  E = cast(WORD)0x
2a80: 30 31 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75  0100 }..enum : u
2a90: 69 6e 74 20 7b 20 50 41 52 49 54 59 5f 4f 44 44  int { PARITY_ODD
2aa0: 20 3d 20 63 61 73 74 28 57 4f 52 44 29 30 78 30   = cast(WORD)0x0
2ab0: 32 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69  200 }..enum : ui
2ac0: 6e 74 20 7b 20 50 41 52 49 54 59 5f 45 56 45 4e  nt { PARITY_EVEN
2ad0: 20 3d 20 63 61 73 74 28 57 4f 52 44 29 30 78 30   = cast(WORD)0x0
2ae0: 34 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69  400 }..enum : ui
2af0: 6e 74 20 7b 20 50 41 52 49 54 59 5f 4d 41 52 4b  nt { PARITY_MARK
2b00: 20 3d 20 63 61 73 74 28 57 4f 52 44 29 30 78 30   = cast(WORD)0x0
2b10: 38 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69  800 }..enum : ui
2b20: 6e 74 20 7b 20 50 41 52 49 54 59 5f 53 50 41 43  nt { PARITY_SPAC
2b30: 45 20 3d 20 63 61 73 74 28 57 4f 52 44 29 30 78  E = cast(WORD)0x
2b40: 31 30 30 30 20 7d 0d 0a 0d 0a 73 74 72 75 63 74  1000 }....struct
2b50: 20 5f 43 4f 4d 4d 50 52 4f 50 20 7b 0d 0a 20 20   _COMMPROP {..  
2b60: 57 4f 52 44 20 77 50 61 63 6b 65 74 4c 65 6e 67  WORD wPacketLeng
2b70: 74 68 3b 0d 0a 20 20 57 4f 52 44 20 77 50 61 63  th;..  WORD wPac
2b80: 6b 65 74 56 65 72 73 69 6f 6e 3b 0d 0a 20 20 44  ketVersion;..  D
2b90: 57 4f 52 44 20 64 77 53 65 72 76 69 63 65 4d 61  WORD dwServiceMa
2ba0: 73 6b 3b 0d 0a 20 20 44 57 4f 52 44 20 64 77 52  sk;..  DWORD dwR
2bb0: 65 73 65 72 76 65 64 31 3b 0d 0a 20 20 44 57 4f  eserved1;..  DWO
2bc0: 52 44 20 64 77 4d 61 78 54 78 51 75 65 75 65 3b  RD dwMaxTxQueue;
2bd0: 0d 0a 20 20 44 57 4f 52 44 20 64 77 4d 61 78 52  ..  DWORD dwMaxR
2be0: 78 51 75 65 75 65 3b 0d 0a 20 20 44 57 4f 52 44  xQueue;..  DWORD
2bf0: 20 64 77 4d 61 78 42 61 75 64 3b 0d 0a 20 20 44   dwMaxBaud;..  D
2c00: 57 4f 52 44 20 64 77 50 72 6f 76 53 75 62 54 79  WORD dwProvSubTy
2c10: 70 65 3b 0d 0a 20 20 44 57 4f 52 44 20 64 77 50  pe;..  DWORD dwP
2c20: 72 6f 76 43 61 70 61 62 69 6c 69 74 69 65 73 3b  rovCapabilities;
2c30: 0d 0a 20 20 44 57 4f 52 44 20 64 77 53 65 74 74  ..  DWORD dwSett
2c40: 61 62 6c 65 50 61 72 61 6d 73 3b 0d 0a 20 20 44  ableParams;..  D
2c50: 57 4f 52 44 20 64 77 53 65 74 74 61 62 6c 65 42  WORD dwSettableB
2c60: 61 75 64 3b 0d 0a 20 20 57 4f 52 44 20 77 53 65  aud;..  WORD wSe
2c70: 74 74 61 62 6c 65 44 61 74 61 3b 0d 0a 20 20 57  ttableData;..  W
2c80: 4f 52 44 20 77 53 65 74 74 61 62 6c 65 53 74 6f  ORD wSettableSto
2c90: 70 50 61 72 69 74 79 3b 0d 0a 20 20 44 57 4f 52  pParity;..  DWOR
2ca0: 44 20 64 77 43 75 72 72 65 6e 74 54 78 51 75 65  D dwCurrentTxQue
2cb0: 75 65 3b 0d 0a 20 20 44 57 4f 52 44 20 64 77 43  ue;..  DWORD dwC
2cc0: 75 72 72 65 6e 74 52 78 51 75 65 75 65 3b 0d 0a  urrentRxQueue;..
2cd0: 20 20 44 57 4f 52 44 20 64 77 50 72 6f 76 53 70    DWORD dwProvSp
2ce0: 65 63 31 3b 0d 0a 20 20 44 57 4f 52 44 20 64 77  ec1;..  DWORD dw
2cf0: 50 72 6f 76 53 70 65 63 32 3b 0d 0a 20 20 57 43  ProvSpec2;..  WC
2d00: 48 41 52 20 77 63 50 72 6f 76 43 68 61 72 5b 31  HAR wcProvChar[1
2d10: 5d 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 5f 43 4f  ];..}..alias _CO
2d20: 4d 4d 50 52 4f 50 20 43 4f 4d 4d 50 52 4f 50 3b  MMPROP COMMPROP;
2d30: 0d 0a 61 6c 69 61 73 20 5f 43 4f 4d 4d 50 52 4f  ..alias _COMMPRO
2d40: 50 2a 20 4c 50 43 4f 4d 4d 50 52 4f 50 3b 0d 0a  P* LPCOMMPROP;..
2d50: 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20  ..enum : uint { 
2d60: 43 4f 4d 4d 50 52 4f 50 5f 49 4e 49 54 49 41 4c  COMMPROP_INITIAL
2d70: 49 5a 45 44 20 3d 20 63 61 73 74 28 44 57 4f 52  IZED = cast(DWOR
2d80: 44 29 30 78 45 37 33 43 46 35 32 45 20 7d 0d 0a  D)0xE73CF52E }..
2d90: 0d 0a 73 74 72 75 63 74 20 5f 43 4f 4d 53 54 41  ..struct _COMSTA
2da0: 54 20 7b 0d 0a 2f 2f 20 44 57 4f 52 44 20 66 43  T {..// DWORD fC
2db0: 74 73 48 6f 6c 64 20 3a 20 31 3b 0d 0a 2f 2f 20  tsHold : 1;..// 
2dc0: 44 57 4f 52 44 20 66 44 73 72 48 6f 6c 64 20 3a  DWORD fDsrHold :
2dd0: 20 31 3b 0d 0a 2f 2f 20 44 57 4f 52 44 20 66 52   1;..// DWORD fR
2de0: 6c 73 64 48 6f 6c 64 20 3a 20 31 3b 0d 0a 2f 2f  lsdHold : 1;..//
2df0: 20 44 57 4f 52 44 20 66 58 6f 66 66 48 6f 6c 64   DWORD fXoffHold
2e00: 20 3a 20 31 3b 0d 0a 2f 2f 20 44 57 4f 52 44 20   : 1;..// DWORD 
2e10: 66 58 6f 66 66 53 65 6e 74 20 3a 20 31 3b 0d 0a  fXoffSent : 1;..
2e20: 2f 2f 20 44 57 4f 52 44 20 66 45 6f 66 20 3a 20  // DWORD fEof : 
2e30: 31 3b 0d 0a 2f 2f 20 44 57 4f 52 44 20 66 54 78  1;..// DWORD fTx
2e40: 69 6d 20 3a 20 31 3b 0d 0a 2f 2f 20 44 57 4f 52  im : 1;..// DWOR
2e50: 44 20 66 52 65 73 65 72 76 65 64 20 3a 20 32 35  D fReserved : 25
2e60: 3b 0d 0a 20 20 44 57 4f 52 44 20 63 62 49 6e 51  ;..  DWORD cbInQ
2e70: 75 65 3b 0d 0a 20 20 44 57 4f 52 44 20 63 62 4f  ue;..  DWORD cbO
2e80: 75 74 51 75 65 3b 0d 0a 7d 0d 0a 61 6c 69 61 73  utQue;..}..alias
2e90: 20 5f 43 4f 4d 53 54 41 54 20 43 4f 4d 53 54 41   _COMSTAT COMSTA
2ea0: 54 3b 0d 0a 61 6c 69 61 73 20 5f 43 4f 4d 53 54  T;..alias _COMST
2eb0: 41 54 2a 20 4c 50 43 4f 4d 53 54 41 54 3b 0d 0a  AT* LPCOMSTAT;..
2ec0: 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20  ..enum : uint { 
2ed0: 44 54 52 5f 43 4f 4e 54 52 4f 4c 5f 44 49 53 41  DTR_CONTROL_DISA
2ee0: 42 4c 45 20 3d 20 30 78 30 30 20 7d 0d 0a 65 6e  BLE = 0x00 }..en
2ef0: 75 6d 20 3a 20 75 69 6e 74 20 7b 20 44 54 52 5f  um : uint { DTR_
2f00: 43 4f 4e 54 52 4f 4c 5f 45 4e 41 42 4c 45 20 3d  CONTROL_ENABLE =
2f10: 20 30 78 30 31 20 7d 0d 0a 65 6e 75 6d 20 3a 20   0x01 }..enum : 
2f20: 75 69 6e 74 20 7b 20 44 54 52 5f 43 4f 4e 54 52  uint { DTR_CONTR
2f30: 4f 4c 5f 48 41 4e 44 53 48 41 4b 45 20 3d 20 30  OL_HANDSHAKE = 0
2f40: 78 30 32 20 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20  x02 }....enum : 
2f50: 75 69 6e 74 20 7b 20 52 54 53 5f 43 4f 4e 54 52  uint { RTS_CONTR
2f60: 4f 4c 5f 44 49 53 41 42 4c 45 20 3d 20 30 78 30  OL_DISABLE = 0x0
2f70: 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  0 }..enum : uint
2f80: 20 7b 20 52 54 53 5f 43 4f 4e 54 52 4f 4c 5f 45   { RTS_CONTROL_E
2f90: 4e 41 42 4c 45 20 3d 20 30 78 30 31 20 7d 0d 0a  NABLE = 0x01 }..
2fa0: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 52 54  enum : uint { RT
2fb0: 53 5f 43 4f 4e 54 52 4f 4c 5f 48 41 4e 44 53 48  S_CONTROL_HANDSH
2fc0: 41 4b 45 20 3d 20 30 78 30 32 20 7d 0d 0a 65 6e  AKE = 0x02 }..en
2fd0: 75 6d 20 3a 20 75 69 6e 74 20 7b 20 52 54 53 5f  um : uint { RTS_
2fe0: 43 4f 4e 54 52 4f 4c 5f 54 4f 47 47 4c 45 20 3d  CONTROL_TOGGLE =
2ff0: 20 30 78 30 33 20 7d 0d 0a 0d 0a 73 74 72 75 63   0x03 }....struc
3000: 74 20 5f 44 43 42 20 7b 0d 0a 20 20 44 57 4f 52  t _DCB {..  DWOR
3010: 44 20 44 43 42 6c 65 6e 67 74 68 3b 0d 0a 20 20  D DCBlength;..  
3020: 44 57 4f 52 44 20 42 61 75 64 52 61 74 65 3b 0d  DWORD BaudRate;.
3030: 0a 2f 2f 20 44 57 4f 52 44 20 66 42 69 6e 61 72  .// DWORD fBinar
3040: 79 3a 20 31 3b 0d 0a 2f 2f 20 44 57 4f 52 44 20  y: 1;..// DWORD 
3050: 66 50 61 72 69 74 79 3a 20 31 3b 0d 0a 2f 2f 20  fParity: 1;..// 
3060: 44 57 4f 52 44 20 66 4f 75 74 78 43 74 73 46 6c  DWORD fOutxCtsFl
3070: 6f 77 3a 31 3b 0d 0a 2f 2f 20 44 57 4f 52 44 20  ow:1;..// DWORD 
3080: 66 4f 75 74 78 44 73 72 46 6c 6f 77 3a 31 3b 0d  fOutxDsrFlow:1;.
3090: 0a 2f 2f 20 44 57 4f 52 44 20 66 44 74 72 43 6f  .// DWORD fDtrCo
30a0: 6e 74 72 6f 6c 3a 32 3b 0d 0a 2f 2f 20 44 57 4f  ntrol:2;..// DWO
30b0: 52 44 20 66 44 73 72 53 65 6e 73 69 74 69 76 69  RD fDsrSensitivi
30c0: 74 79 3a 31 3b 0d 0a 2f 2f 20 44 57 4f 52 44 20  ty:1;..// DWORD 
30d0: 66 54 58 43 6f 6e 74 69 6e 75 65 4f 6e 58 6f 66  fTXContinueOnXof
30e0: 66 3a 20 31 3b 0d 0a 2f 2f 20 44 57 4f 52 44 20  f: 1;..// DWORD 
30f0: 66 4f 75 74 58 3a 20 31 3b 0d 0a 2f 2f 20 44 57  fOutX: 1;..// DW
3100: 4f 52 44 20 66 49 6e 58 3a 20 31 3b 0d 0a 2f 2f  ORD fInX: 1;..//
3110: 20 44 57 4f 52 44 20 66 45 72 72 6f 72 43 68 61   DWORD fErrorCha
3120: 72 3a 20 31 3b 0d 0a 2f 2f 20 44 57 4f 52 44 20  r: 1;..// DWORD 
3130: 66 4e 75 6c 6c 3a 20 31 3b 0d 0a 2f 2f 20 44 57  fNull: 1;..// DW
3140: 4f 52 44 20 66 52 74 73 43 6f 6e 74 72 6f 6c 3a  ORD fRtsControl:
3150: 32 3b 0d 0a 2f 2f 20 44 57 4f 52 44 20 66 41 62  2;..// DWORD fAb
3160: 6f 72 74 4f 6e 45 72 72 6f 72 3a 31 3b 0d 0a 2f  ortOnError:1;../
3170: 2f 20 44 57 4f 52 44 20 66 44 75 6d 6d 79 32 3a  / DWORD fDummy2:
3180: 31 37 3b 0d 0a 20 20 57 4f 52 44 20 77 52 65 73  17;..  WORD wRes
3190: 65 72 76 65 64 3b 0d 0a 20 20 57 4f 52 44 20 58  erved;..  WORD X
31a0: 6f 6e 4c 69 6d 3b 0d 0a 20 20 57 4f 52 44 20 58  onLim;..  WORD X
31b0: 6f 66 66 4c 69 6d 3b 0d 0a 20 20 42 59 54 45 20  offLim;..  BYTE 
31c0: 42 79 74 65 53 69 7a 65 3b 0d 0a 20 20 42 59 54  ByteSize;..  BYT
31d0: 45 20 50 61 72 69 74 79 3b 0d 0a 20 20 42 59 54  E Parity;..  BYT
31e0: 45 20 53 74 6f 70 42 69 74 73 3b 0d 0a 20 20 63  E StopBits;..  c
31f0: 68 61 72 20 58 6f 6e 43 68 61 72 3b 0d 0a 20 20  har XonChar;..  
3200: 63 68 61 72 20 58 6f 66 66 43 68 61 72 3b 0d 0a  char XoffChar;..
3210: 20 20 63 68 61 72 20 45 72 72 6f 72 43 68 61 72    char ErrorChar
3220: 3b 0d 0a 20 20 63 68 61 72 20 45 6f 66 43 68 61  ;..  char EofCha
3230: 72 3b 0d 0a 20 20 63 68 61 72 20 45 76 74 43 68  r;..  char EvtCh
3240: 61 72 3b 0d 0a 20 20 57 4f 52 44 20 77 52 65 73  ar;..  WORD wRes
3250: 65 72 76 65 64 31 3b 0d 0a 7d 0d 0a 61 6c 69 61  erved1;..}..alia
3260: 73 20 5f 44 43 42 20 44 43 42 3b 0d 0a 61 6c 69  s _DCB DCB;..ali
3270: 61 73 20 5f 44 43 42 2a 20 4c 50 44 43 42 3b 0d  as _DCB* LPDCB;.
3280: 0a 0d 0a 73 74 72 75 63 74 20 5f 43 4f 4d 4d 54  ...struct _COMMT
3290: 49 4d 45 4f 55 54 53 20 7b 0d 0a 20 20 44 57 4f  IMEOUTS {..  DWO
32a0: 52 44 20 52 65 61 64 49 6e 74 65 72 76 61 6c 54  RD ReadIntervalT
32b0: 69 6d 65 6f 75 74 3b 0d 0a 20 20 44 57 4f 52 44  imeout;..  DWORD
32c0: 20 52 65 61 64 54 6f 74 61 6c 54 69 6d 65 6f 75   ReadTotalTimeou
32d0: 74 4d 75 6c 74 69 70 6c 69 65 72 3b 0d 0a 20 20  tMultiplier;..  
32e0: 44 57 4f 52 44 20 52 65 61 64 54 6f 74 61 6c 54  DWORD ReadTotalT
32f0: 69 6d 65 6f 75 74 43 6f 6e 73 74 61 6e 74 3b 0d  imeoutConstant;.
3300: 0a 20 20 44 57 4f 52 44 20 57 72 69 74 65 54 6f  .  DWORD WriteTo
3310: 74 61 6c 54 69 6d 65 6f 75 74 4d 75 6c 74 69 70  talTimeoutMultip
3320: 6c 69 65 72 3b 0d 0a 20 20 44 57 4f 52 44 20 57  lier;..  DWORD W
3330: 72 69 74 65 54 6f 74 61 6c 54 69 6d 65 6f 75 74  riteTotalTimeout
3340: 43 6f 6e 73 74 61 6e 74 3b 0d 0a 7d 0d 0a 61 6c  Constant;..}..al
3350: 69 61 73 20 5f 43 4f 4d 4d 54 49 4d 45 4f 55 54  ias _COMMTIMEOUT
3360: 53 20 43 4f 4d 4d 54 49 4d 45 4f 55 54 53 3b 0d  S COMMTIMEOUTS;.
3370: 0a 61 6c 69 61 73 20 5f 43 4f 4d 4d 54 49 4d 45  .alias _COMMTIME
3380: 4f 55 54 53 2a 20 4c 50 43 4f 4d 4d 54 49 4d 45  OUTS* LPCOMMTIME
3390: 4f 55 54 53 3b 0d 0a 0d 0a 73 74 72 75 63 74 20  OUTS;....struct 
33a0: 5f 43 4f 4d 4d 43 4f 4e 46 49 47 20 7b 0d 0a 20  _COMMCONFIG {.. 
33b0: 20 44 57 4f 52 44 20 64 77 53 69 7a 65 3b 0d 0a   DWORD dwSize;..
33c0: 20 20 57 4f 52 44 20 77 56 65 72 73 69 6f 6e 3b    WORD wVersion;
33d0: 0d 0a 20 20 57 4f 52 44 20 77 52 65 73 65 72 76  ..  WORD wReserv
33e0: 65 64 3b 0d 0a 20 20 44 43 42 20 64 63 62 3b 0d  ed;..  DCB dcb;.
33f0: 0a 20 20 44 57 4f 52 44 20 64 77 50 72 6f 76 69  .  DWORD dwProvi
3400: 64 65 72 53 75 62 54 79 70 65 3b 0d 0a 20 20 44  derSubType;..  D
3410: 57 4f 52 44 20 64 77 50 72 6f 76 69 64 65 72 4f  WORD dwProviderO
3420: 66 66 73 65 74 3b 0d 0a 20 20 44 57 4f 52 44 20  ffset;..  DWORD 
3430: 64 77 50 72 6f 76 69 64 65 72 53 69 7a 65 3b 0d  dwProviderSize;.
3440: 0a 20 20 57 43 48 41 52 20 77 63 50 72 6f 76 69  .  WCHAR wcProvi
3450: 64 65 72 44 61 74 61 5b 31 5d 3b 0d 0a 7d 0d 0a  derData[1];..}..
3460: 61 6c 69 61 73 20 5f 43 4f 4d 4d 43 4f 4e 46 49  alias _COMMCONFI
3470: 47 20 43 4f 4d 4d 43 4f 4e 46 49 47 3b 0d 0a 61  G COMMCONFIG;..a
3480: 6c 69 61 73 20 5f 43 4f 4d 4d 43 4f 4e 46 49 47  lias _COMMCONFIG
3490: 2a 20 4c 50 43 4f 4d 4d 43 4f 4e 46 49 47 3b 0d  * LPCOMMCONFIG;.
34a0: 0a 0d 0a 73 74 72 75 63 74 20 5f 53 59 53 54 45  ...struct _SYSTE
34b0: 4d 5f 49 4e 46 4f 20 7b 0d 0a 75 6e 69 6f 6e 20  M_INFO {..union 
34c0: 7b 0d 0a 20 20 44 57 4f 52 44 20 64 77 4f 65 6d  {..  DWORD dwOem
34d0: 49 64 3b 0d 0a 73 74 72 75 63 74 20 7b 0d 0a 20  Id;..struct {.. 
34e0: 20 57 4f 52 44 20 77 50 72 6f 63 65 73 73 6f 72   WORD wProcessor
34f0: 41 72 63 68 69 74 65 63 74 75 72 65 3b 0d 0a 20  Architecture;.. 
3500: 20 57 4f 52 44 20 77 52 65 73 65 72 76 65 64 3b   WORD wReserved;
3510: 0d 0a 7d 0d 0a 0d 0a 7d 0d 0a 0d 0a 20 20 44 57  ..}....}....  DW
3520: 4f 52 44 20 64 77 50 61 67 65 53 69 7a 65 3b 0d  ORD dwPageSize;.
3530: 0a 20 20 4c 50 56 4f 49 44 20 6c 70 4d 69 6e 69  .  LPVOID lpMini
3540: 6d 75 6d 41 70 70 6c 69 63 61 74 69 6f 6e 41 64  mumApplicationAd
3550: 64 72 65 73 73 3b 0d 0a 20 20 4c 50 56 4f 49 44  dress;..  LPVOID
3560: 20 6c 70 4d 61 78 69 6d 75 6d 41 70 70 6c 69 63   lpMaximumApplic
3570: 61 74 69 6f 6e 41 64 64 72 65 73 73 3b 0d 0a 20  ationAddress;.. 
3580: 20 44 57 4f 52 44 5f 50 54 52 20 64 77 41 63 74   DWORD_PTR dwAct
3590: 69 76 65 50 72 6f 63 65 73 73 6f 72 4d 61 73 6b  iveProcessorMask
35a0: 3b 0d 0a 20 20 44 57 4f 52 44 20 64 77 4e 75 6d  ;..  DWORD dwNum
35b0: 62 65 72 4f 66 50 72 6f 63 65 73 73 6f 72 73 3b  berOfProcessors;
35c0: 0d 0a 20 20 44 57 4f 52 44 20 64 77 50 72 6f 63  ..  DWORD dwProc
35d0: 65 73 73 6f 72 54 79 70 65 3b 0d 0a 20 20 44 57  essorType;..  DW
35e0: 4f 52 44 20 64 77 41 6c 6c 6f 63 61 74 69 6f 6e  ORD dwAllocation
35f0: 47 72 61 6e 75 6c 61 72 69 74 79 3b 0d 0a 20 20  Granularity;..  
3600: 57 4f 52 44 20 77 50 72 6f 63 65 73 73 6f 72 4c  WORD wProcessorL
3610: 65 76 65 6c 3b 0d 0a 20 20 57 4f 52 44 20 77 50  evel;..  WORD wP
3620: 72 6f 63 65 73 73 6f 72 52 65 76 69 73 69 6f 6e  rocessorRevision
3630: 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 5f 53 59 53  ;..}..alias _SYS
3640: 54 45 4d 5f 49 4e 46 4f 20 53 59 53 54 45 4d 5f  TEM_INFO SYSTEM_
3650: 49 4e 46 4f 3b 0d 0a 61 6c 69 61 73 20 5f 53 59  INFO;..alias _SY
3660: 53 54 45 4d 5f 49 4e 46 4f 2a 20 4c 50 53 59 53  STEM_INFO* LPSYS
3670: 54 45 4d 5f 49 4e 46 4f 3b 0d 0a 0d 0a 61 6c 69  TEM_INFO;....ali
3680: 61 73 20 46 72 65 65 4c 69 62 72 61 72 79 20 46  as FreeLibrary F
3690: 72 65 65 4d 6f 64 75 6c 65 3b 0d 0a 2f 2f 20 23  reeModule;..// #
36a0: 64 65 66 69 6e 65 20 4d 61 6b 65 50 72 6f 63 49  define MakeProcI
36b0: 6e 73 74 61 6e 63 65 28 6c 70 50 72 6f 63 2c 68  nstance(lpProc,h
36c0: 49 6e 73 74 61 6e 63 65 29 20 28 6c 70 50 72 6f  Instance) (lpPro
36d0: 63 29 0d 0a 2f 2f 20 23 64 65 66 69 6e 65 20 46  c)..// #define F
36e0: 72 65 65 50 72 6f 63 49 6e 73 74 61 6e 63 65 28  reeProcInstance(
36f0: 6c 70 50 72 6f 63 29 20 28 6c 70 50 72 6f 63 29  lpProc) (lpProc)
3700: 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20  ....enum : uint 
3710: 7b 20 47 4d 45 4d 5f 46 49 58 45 44 20 3d 20 30  { GMEM_FIXED = 0
3720: 78 30 30 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20  x0000 }..enum : 
3730: 75 69 6e 74 20 7b 20 47 4d 45 4d 5f 4d 4f 56 45  uint { GMEM_MOVE
3740: 41 42 4c 45 20 3d 20 30 78 30 30 30 32 20 7d 0d  ABLE = 0x0002 }.
3750: 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 47  .enum : uint { G
3760: 4d 45 4d 5f 4e 4f 43 4f 4d 50 41 43 54 20 3d 20  MEM_NOCOMPACT = 
3770: 30 78 30 30 31 30 20 7d 0d 0a 65 6e 75 6d 20 3a  0x0010 }..enum :
3780: 20 75 69 6e 74 20 7b 20 47 4d 45 4d 5f 4e 4f 44   uint { GMEM_NOD
3790: 49 53 43 41 52 44 20 3d 20 30 78 30 30 32 30 20  ISCARD = 0x0020 
37a0: 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b  }..enum : uint {
37b0: 20 47 4d 45 4d 5f 5a 45 52 4f 49 4e 49 54 20 3d   GMEM_ZEROINIT =
37c0: 20 30 78 30 30 34 30 20 7d 0d 0a 65 6e 75 6d 20   0x0040 }..enum 
37d0: 3a 20 75 69 6e 74 20 7b 20 47 4d 45 4d 5f 4d 4f  : uint { GMEM_MO
37e0: 44 49 46 59 20 3d 20 30 78 30 30 38 30 20 7d 0d  DIFY = 0x0080 }.
37f0: 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 47  .enum : uint { G
3800: 4d 45 4d 5f 44 49 53 43 41 52 44 41 42 4c 45 20  MEM_DISCARDABLE 
3810: 3d 20 30 78 30 31 30 30 20 7d 0d 0a 65 6e 75 6d  = 0x0100 }..enum
3820: 20 3a 20 75 69 6e 74 20 7b 20 47 4d 45 4d 5f 4e   : uint { GMEM_N
3830: 4f 54 5f 42 41 4e 4b 45 44 20 3d 20 30 78 31 30  OT_BANKED = 0x10
3840: 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e  00 }..enum : uin
3850: 74 20 7b 20 47 4d 45 4d 5f 53 48 41 52 45 20 3d  t { GMEM_SHARE =
3860: 20 30 78 32 30 30 30 20 7d 0d 0a 65 6e 75 6d 20   0x2000 }..enum 
3870: 3a 20 75 69 6e 74 20 7b 20 47 4d 45 4d 5f 44 44  : uint { GMEM_DD
3880: 45 53 48 41 52 45 20 3d 20 30 78 32 30 30 30 20  ESHARE = 0x2000 
3890: 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b  }..enum : uint {
38a0: 20 47 4d 45 4d 5f 4e 4f 54 49 46 59 20 3d 20 30   GMEM_NOTIFY = 0
38b0: 78 34 30 30 30 20 7d 0d 0a 61 6c 69 61 73 20 47  x4000 }..alias G
38c0: 4d 45 4d 5f 4e 4f 54 5f 42 41 4e 4b 45 44 20 47  MEM_NOT_BANKED G
38d0: 4d 45 4d 5f 4c 4f 57 45 52 3b 0d 0a 65 6e 75 6d  MEM_LOWER;..enum
38e0: 20 3a 20 75 69 6e 74 20 7b 20 47 4d 45 4d 5f 56   : uint { GMEM_V
38f0: 41 4c 49 44 5f 46 4c 41 47 53 20 3d 20 30 78 37  ALID_FLAGS = 0x7
3900: 46 37 32 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69  F72 }..enum : ui
3910: 6e 74 20 7b 20 47 4d 45 4d 5f 49 4e 56 41 4c 49  nt { GMEM_INVALI
3920: 44 5f 48 41 4e 44 4c 45 20 3d 20 30 78 38 30 30  D_HANDLE = 0x800
3930: 30 20 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 75 69  0 }....enum : ui
3940: 6e 74 20 7b 20 47 48 4e 44 20 3d 20 47 4d 45 4d  nt { GHND = GMEM
3950: 5f 4d 4f 56 45 41 42 4c 45 20 7c 20 47 4d 45 4d  _MOVEABLE | GMEM
3960: 5f 5a 45 52 4f 49 4e 49 54 20 7d 0d 0a 65 6e 75  _ZEROINIT }..enu
3970: 6d 20 3a 20 75 69 6e 74 20 7b 20 47 50 54 52 20  m : uint { GPTR 
3980: 3d 20 47 4d 45 4d 5f 46 49 58 45 44 20 7c 20 47  = GMEM_FIXED | G
3990: 4d 45 4d 5f 5a 45 52 4f 49 4e 49 54 20 7d 0d 0a  MEM_ZEROINIT }..
39a0: 0d 0a 2f 2f 20 23 64 65 66 69 6e 65 20 47 6c 6f  ..// #define Glo
39b0: 62 61 6c 4c 52 55 4e 65 77 65 73 74 28 20 68 20  balLRUNewest( h 
39c0: 29 20 28 28 48 41 4e 44 4c 45 29 28 68 29 29 0d  ) ((HANDLE)(h)).
39d0: 0a 2f 2f 20 23 64 65 66 69 6e 65 20 47 6c 6f 62  .// #define Glob
39e0: 61 6c 4c 52 55 4f 6c 64 65 73 74 28 20 68 20 29  alLRUOldest( h )
39f0: 20 28 28 48 41 4e 44 4c 45 29 28 68 29 29 0d 0a   ((HANDLE)(h))..
3a00: 2f 2f 20 23 64 65 66 69 6e 65 20 47 6c 6f 62 61  // #define Globa
3a10: 6c 44 69 73 63 61 72 64 28 20 68 20 29 20 47 6c  lDiscard( h ) Gl
3a20: 6f 62 61 6c 52 65 41 6c 6c 6f 63 28 20 28 68 29  obalReAlloc( (h)
3a30: 2c 20 30 2c 20 47 4d 45 4d 5f 4d 4f 56 45 41 42  , 0, GMEM_MOVEAB
3a40: 4c 45 20 29 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 75  LE )....enum : u
3a50: 69 6e 74 20 7b 20 47 4d 45 4d 5f 44 49 53 43 41  int { GMEM_DISCA
3a60: 52 44 45 44 20 3d 20 30 78 34 30 30 30 20 7d 0d  RDED = 0x4000 }.
3a70: 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 47  .enum : uint { G
3a80: 4d 45 4d 5f 4c 4f 43 4b 43 4f 55 4e 54 20 3d 20  MEM_LOCKCOUNT = 
3a90: 30 78 30 30 46 46 20 7d 0d 0a 0d 0a 73 74 72 75  0x00FF }....stru
3aa0: 63 74 20 5f 4d 45 4d 4f 52 59 53 54 41 54 55 53  ct _MEMORYSTATUS
3ab0: 20 7b 0d 0a 20 20 44 57 4f 52 44 20 64 77 4c 65   {..  DWORD dwLe
3ac0: 6e 67 74 68 3b 0d 0a 20 20 44 57 4f 52 44 20 64  ngth;..  DWORD d
3ad0: 77 4d 65 6d 6f 72 79 4c 6f 61 64 3b 0d 0a 20 20  wMemoryLoad;..  
3ae0: 53 49 5a 45 5f 54 20 64 77 54 6f 74 61 6c 50 68  SIZE_T dwTotalPh
3af0: 79 73 3b 0d 0a 20 20 53 49 5a 45 5f 54 20 64 77  ys;..  SIZE_T dw
3b00: 41 76 61 69 6c 50 68 79 73 3b 0d 0a 20 20 53 49  AvailPhys;..  SI
3b10: 5a 45 5f 54 20 64 77 54 6f 74 61 6c 50 61 67 65  ZE_T dwTotalPage
3b20: 46 69 6c 65 3b 0d 0a 20 20 53 49 5a 45 5f 54 20  File;..  SIZE_T 
3b30: 64 77 41 76 61 69 6c 50 61 67 65 46 69 6c 65 3b  dwAvailPageFile;
3b40: 0d 0a 20 20 53 49 5a 45 5f 54 20 64 77 54 6f 74  ..  SIZE_T dwTot
3b50: 61 6c 56 69 72 74 75 61 6c 3b 0d 0a 20 20 53 49  alVirtual;..  SI
3b60: 5a 45 5f 54 20 64 77 41 76 61 69 6c 56 69 72 74  ZE_T dwAvailVirt
3b70: 75 61 6c 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 5f  ual;..}..alias _
3b80: 4d 45 4d 4f 52 59 53 54 41 54 55 53 20 4d 45 4d  MEMORYSTATUS MEM
3b90: 4f 52 59 53 54 41 54 55 53 3b 0d 0a 61 6c 69 61  ORYSTATUS;..alia
3ba0: 73 20 5f 4d 45 4d 4f 52 59 53 54 41 54 55 53 2a  s _MEMORYSTATUS*
3bb0: 20 4c 50 4d 45 4d 4f 52 59 53 54 41 54 55 53 3b   LPMEMORYSTATUS;
3bc0: 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20  ....enum : uint 
3bd0: 7b 20 4c 4d 45 4d 5f 46 49 58 45 44 20 3d 20 30  { LMEM_FIXED = 0
3be0: 78 30 30 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20  x0000 }..enum : 
3bf0: 75 69 6e 74 20 7b 20 4c 4d 45 4d 5f 4d 4f 56 45  uint { LMEM_MOVE
3c00: 41 42 4c 45 20 3d 20 30 78 30 30 30 32 20 7d 0d  ABLE = 0x0002 }.
3c10: 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 4c  .enum : uint { L
3c20: 4d 45 4d 5f 4e 4f 43 4f 4d 50 41 43 54 20 3d 20  MEM_NOCOMPACT = 
3c30: 30 78 30 30 31 30 20 7d 0d 0a 65 6e 75 6d 20 3a  0x0010 }..enum :
3c40: 20 75 69 6e 74 20 7b 20 4c 4d 45 4d 5f 4e 4f 44   uint { LMEM_NOD
3c50: 49 53 43 41 52 44 20 3d 20 30 78 30 30 32 30 20  ISCARD = 0x0020 
3c60: 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b  }..enum : uint {
3c70: 20 4c 4d 45 4d 5f 5a 45 52 4f 49 4e 49 54 20 3d   LMEM_ZEROINIT =
3c80: 20 30 78 30 30 34 30 20 7d 0d 0a 65 6e 75 6d 20   0x0040 }..enum 
3c90: 3a 20 75 69 6e 74 20 7b 20 4c 4d 45 4d 5f 4d 4f  : uint { LMEM_MO
3ca0: 44 49 46 59 20 3d 20 30 78 30 30 38 30 20 7d 0d  DIFY = 0x0080 }.
3cb0: 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 4c  .enum : uint { L
3cc0: 4d 45 4d 5f 44 49 53 43 41 52 44 41 42 4c 45 20  MEM_DISCARDABLE 
3cd0: 3d 20 30 78 30 46 30 30 20 7d 0d 0a 65 6e 75 6d  = 0x0F00 }..enum
3ce0: 20 3a 20 75 69 6e 74 20 7b 20 4c 4d 45 4d 5f 56   : uint { LMEM_V
3cf0: 41 4c 49 44 5f 46 4c 41 47 53 20 3d 20 30 78 30  ALID_FLAGS = 0x0
3d00: 46 37 32 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69  F72 }..enum : ui
3d10: 6e 74 20 7b 20 4c 4d 45 4d 5f 49 4e 56 41 4c 49  nt { LMEM_INVALI
3d20: 44 5f 48 41 4e 44 4c 45 20 3d 20 30 78 38 30 30  D_HANDLE = 0x800
3d30: 30 20 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 75 69  0 }....enum : ui
3d40: 6e 74 20 7b 20 4c 48 4e 44 20 3d 20 4c 4d 45 4d  nt { LHND = LMEM
3d50: 5f 4d 4f 56 45 41 42 4c 45 20 7c 20 4c 4d 45 4d  _MOVEABLE | LMEM
3d60: 5f 5a 45 52 4f 49 4e 49 54 20 7d 0d 0a 65 6e 75  _ZEROINIT }..enu
3d70: 6d 20 3a 20 75 69 6e 74 20 7b 20 4c 50 54 52 20  m : uint { LPTR 
3d80: 3d 20 4c 4d 45 4d 5f 46 49 58 45 44 20 7c 20 4c  = LMEM_FIXED | L
3d90: 4d 45 4d 5f 5a 45 52 4f 49 4e 49 54 20 7d 0d 0a  MEM_ZEROINIT }..
3da0: 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20  ..enum : uint { 
3db0: 4e 4f 4e 5a 45 52 4f 4c 48 4e 44 20 3d 20 4c 4d  NONZEROLHND = LM
3dc0: 45 4d 5f 4d 4f 56 45 41 42 4c 45 20 7d 0d 0a 65  EM_MOVEABLE }..e
3dd0: 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 4e 4f 4e  num : uint { NON
3de0: 5a 45 52 4f 4c 50 54 52 20 3d 20 4c 4d 45 4d 5f  ZEROLPTR = LMEM_
3df0: 46 49 58 45 44 20 7d 0d 0a 0d 0a 2f 2f 20 23 64  FIXED }....// #d
3e00: 65 66 69 6e 65 20 4c 6f 63 61 6c 44 69 73 63 61  efine LocalDisca
3e10: 72 64 28 20 68 20 29 20 4c 6f 63 61 6c 52 65 41  rd( h ) LocalReA
3e20: 6c 6c 6f 63 28 20 28 68 29 2c 20 30 2c 20 4c 4d  lloc( (h), 0, LM
3e30: 45 4d 5f 4d 4f 56 45 41 42 4c 45 20 29 0d 0a 0d  EM_MOVEABLE )...
3e40: 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 4c  .enum : uint { L
3e50: 4d 45 4d 5f 44 49 53 43 41 52 44 45 44 20 3d 20  MEM_DISCARDED = 
3e60: 30 78 34 30 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a  0x4000 }..enum :
3e70: 20 75 69 6e 74 20 7b 20 4c 4d 45 4d 5f 4c 4f 43   uint { LMEM_LOC
3e80: 4b 43 4f 55 4e 54 20 3d 20 30 78 30 30 46 46 20  KCOUNT = 0x00FF 
3e90: 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  }....enum : uint
3ea0: 20 7b 20 44 45 42 55 47 5f 50 52 4f 43 45 53 53   { DEBUG_PROCESS
3eb0: 20 3d 20 30 78 30 30 30 30 30 30 30 31 20 7d 0d   = 0x00000001 }.
3ec0: 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 44  .enum : uint { D
3ed0: 45 42 55 47 5f 4f 4e 4c 59 5f 54 48 49 53 5f 50  EBUG_ONLY_THIS_P
3ee0: 52 4f 43 45 53 53 20 3d 20 30 78 30 30 30 30 30  ROCESS = 0x00000
3ef0: 30 30 32 20 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20  002 }....enum : 
3f00: 75 69 6e 74 20 7b 20 43 52 45 41 54 45 5f 53 55  uint { CREATE_SU
3f10: 53 50 45 4e 44 45 44 20 3d 20 30 78 30 30 30 30  SPENDED = 0x0000
3f20: 30 30 30 34 20 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a  0004 }....enum :
3f30: 20 75 69 6e 74 20 7b 20 44 45 54 41 43 48 45 44   uint { DETACHED
3f40: 5f 50 52 4f 43 45 53 53 20 3d 20 30 78 30 30 30  _PROCESS = 0x000
3f50: 30 30 30 30 38 20 7d 0d 0a 0d 0a 65 6e 75 6d 20  00008 }....enum 
3f60: 3a 20 75 69 6e 74 20 7b 20 43 52 45 41 54 45 5f  : uint { CREATE_
3f70: 4e 45 57 5f 43 4f 4e 53 4f 4c 45 20 3d 20 30 78  NEW_CONSOLE = 0x
3f80: 30 30 30 30 30 30 31 30 20 7d 0d 0a 0d 0a 65 6e  00000010 }....en
3f90: 75 6d 20 3a 20 75 69 6e 74 20 7b 20 4e 4f 52 4d  um : uint { NORM
3fa0: 41 4c 5f 50 52 49 4f 52 49 54 59 5f 43 4c 41 53  AL_PRIORITY_CLAS
3fb0: 53 20 3d 20 30 78 30 30 30 30 30 30 32 30 20 7d  S = 0x00000020 }
3fc0: 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20  ..enum : uint { 
3fd0: 49 44 4c 45 5f 50 52 49 4f 52 49 54 59 5f 43 4c  IDLE_PRIORITY_CL
3fe0: 41 53 53 20 3d 20 30 78 30 30 30 30 30 30 34 30  ASS = 0x00000040
3ff0: 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20   }..enum : uint 
4000: 7b 20 48 49 47 48 5f 50 52 49 4f 52 49 54 59 5f  { HIGH_PRIORITY_
4010: 43 4c 41 53 53 20 3d 20 30 78 30 30 30 30 30 30  CLASS = 0x000000
4020: 38 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e  80 }..enum : uin
4030: 74 20 7b 20 52 45 41 4c 54 49 4d 45 5f 50 52 49  t { REALTIME_PRI
4040: 4f 52 49 54 59 5f 43 4c 41 53 53 20 3d 20 30 78  ORITY_CLASS = 0x
4050: 30 30 30 30 30 31 30 30 20 7d 0d 0a 0d 0a 65 6e  00000100 }....en
4060: 75 6d 20 3a 20 75 69 6e 74 20 7b 20 43 52 45 41  um : uint { CREA
4070: 54 45 5f 4e 45 57 5f 50 52 4f 43 45 53 53 5f 47  TE_NEW_PROCESS_G
4080: 52 4f 55 50 20 3d 20 30 78 30 30 30 30 30 32 30  ROUP = 0x0000020
4090: 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  0 }..enum : uint
40a0: 20 7b 20 43 52 45 41 54 45 5f 55 4e 49 43 4f 44   { CREATE_UNICOD
40b0: 45 5f 45 4e 56 49 52 4f 4e 4d 45 4e 54 20 3d 20  E_ENVIRONMENT = 
40c0: 30 78 30 30 30 30 30 34 30 30 20 7d 0d 0a 0d 0a  0x00000400 }....
40d0: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 43 52  enum : uint { CR
40e0: 45 41 54 45 5f 53 45 50 41 52 41 54 45 5f 57 4f  EATE_SEPARATE_WO
40f0: 57 5f 56 44 4d 20 3d 20 30 78 30 30 30 30 30 38  W_VDM = 0x000008
4100: 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e  00 }..enum : uin
4110: 74 20 7b 20 43 52 45 41 54 45 5f 53 48 41 52 45  t { CREATE_SHARE
4120: 44 5f 57 4f 57 5f 56 44 4d 20 3d 20 30 78 30 30  D_WOW_VDM = 0x00
4130: 30 30 31 30 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a  001000 }..enum :
4140: 20 75 69 6e 74 20 7b 20 43 52 45 41 54 45 5f 46   uint { CREATE_F
4150: 4f 52 43 45 44 4f 53 20 3d 20 30 78 30 30 30 30  ORCEDOS = 0x0000
4160: 32 30 30 30 20 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a  2000 }....enum :
4170: 20 75 69 6e 74 20 7b 20 42 45 4c 4f 57 5f 4e 4f   uint { BELOW_NO
4180: 52 4d 41 4c 5f 50 52 49 4f 52 49 54 59 5f 43 4c  RMAL_PRIORITY_CL
4190: 41 53 53 20 3d 20 30 78 30 30 30 30 34 30 30 30  ASS = 0x00004000
41a0: 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20   }..enum : uint 
41b0: 7b 20 41 42 4f 56 45 5f 4e 4f 52 4d 41 4c 5f 50  { ABOVE_NORMAL_P
41c0: 52 49 4f 52 49 54 59 5f 43 4c 41 53 53 20 3d 20  RIORITY_CLASS = 
41d0: 30 78 30 30 30 30 38 30 30 30 20 7d 0d 0a 65 6e  0x00008000 }..en
41e0: 75 6d 20 3a 20 75 69 6e 74 20 7b 20 53 54 41 43  um : uint { STAC
41f0: 4b 5f 53 49 5a 45 5f 50 41 52 41 4d 5f 49 53 5f  K_SIZE_PARAM_IS_
4200: 41 5f 52 45 53 45 52 56 41 54 49 4f 4e 20 3d 20  A_RESERVATION = 
4210: 30 78 30 30 30 31 30 30 30 30 20 7d 0d 0a 0d 0a  0x00010000 }....
4220: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 43 52  enum : uint { CR
4230: 45 41 54 45 5f 42 52 45 41 4b 41 57 41 59 5f 46  EATE_BREAKAWAY_F
4240: 52 4f 4d 5f 4a 4f 42 20 3d 20 30 78 30 31 30 30  ROM_JOB = 0x0100
4250: 30 30 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75  0000 }..enum : u
4260: 69 6e 74 20 7b 20 43 52 45 41 54 45 5f 50 52 45  int { CREATE_PRE
4270: 53 45 52 56 45 5f 43 4f 44 45 5f 41 55 54 48 5a  SERVE_CODE_AUTHZ
4280: 5f 4c 45 56 45 4c 20 3d 20 30 78 30 32 30 30 30  _LEVEL = 0x02000
4290: 30 30 30 20 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20  000 }....enum : 
42a0: 75 69 6e 74 20 7b 20 43 52 45 41 54 45 5f 44 45  uint { CREATE_DE
42b0: 46 41 55 4c 54 5f 45 52 52 4f 52 5f 4d 4f 44 45  FAULT_ERROR_MODE
42c0: 20 3d 20 30 78 30 34 30 30 30 30 30 30 20 7d 0d   = 0x04000000 }.
42d0: 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 43  .enum : uint { C
42e0: 52 45 41 54 45 5f 4e 4f 5f 57 49 4e 44 4f 57 20  REATE_NO_WINDOW 
42f0: 3d 20 30 78 30 38 30 30 30 30 30 30 20 7d 0d 0a  = 0x08000000 }..
4300: 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20  ..enum : uint { 
4310: 50 52 4f 46 49 4c 45 5f 55 53 45 52 20 3d 20 30  PROFILE_USER = 0
4320: 78 31 30 30 30 30 30 30 30 20 7d 0d 0a 65 6e 75  x10000000 }..enu
4330: 6d 20 3a 20 75 69 6e 74 20 7b 20 50 52 4f 46 49  m : uint { PROFI
4340: 4c 45 5f 4b 45 52 4e 45 4c 20 3d 20 30 78 32 30  LE_KERNEL = 0x20
4350: 30 30 30 30 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a  000000 }..enum :
4360: 20 75 69 6e 74 20 7b 20 50 52 4f 46 49 4c 45 5f   uint { PROFILE_
4370: 53 45 52 56 45 52 20 3d 20 30 78 34 30 30 30 30  SERVER = 0x40000
4380: 30 30 30 20 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20  000 }....enum : 
4390: 75 69 6e 74 20 7b 20 43 52 45 41 54 45 5f 49 47  uint { CREATE_IG
43a0: 4e 4f 52 45 5f 53 59 53 54 45 4d 5f 44 45 46 41  NORE_SYSTEM_DEFA
43b0: 55 4c 54 20 3d 20 30 78 38 30 30 30 30 30 30 30  ULT = 0x80000000
43c0: 20 7d 0d 0a 0d 0a 61 6c 69 61 73 20 54 48 52 45   }....alias THRE
43d0: 41 44 5f 42 41 53 45 5f 50 52 49 4f 52 49 54 59  AD_BASE_PRIORITY
43e0: 5f 4d 49 4e 20 54 48 52 45 41 44 5f 50 52 49 4f  _MIN THREAD_PRIO
43f0: 52 49 54 59 5f 4c 4f 57 45 53 54 3b 0d 0a 65 6e  RITY_LOWEST;..en
4400: 75 6d 20 3a 20 75 69 6e 74 20 7b 20 54 48 52 45  um : uint { THRE
4410: 41 44 5f 50 52 49 4f 52 49 54 59 5f 42 45 4c 4f  AD_PRIORITY_BELO
4420: 57 5f 4e 4f 52 4d 41 4c 20 3d 20 54 48 52 45 41  W_NORMAL = THREA
4430: 44 5f 50 52 49 4f 52 49 54 59 5f 4c 4f 57 45 53  D_PRIORITY_LOWES
4440: 54 2b 31 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69  T+1 }..enum : ui
4450: 6e 74 20 7b 20 54 48 52 45 41 44 5f 50 52 49 4f  nt { THREAD_PRIO
4460: 52 49 54 59 5f 4e 4f 52 4d 41 4c 20 3d 20 30 20  RITY_NORMAL = 0 
4470: 7d 0d 0a 61 6c 69 61 73 20 54 48 52 45 41 44 5f  }..alias THREAD_
4480: 42 41 53 45 5f 50 52 49 4f 52 49 54 59 5f 4d 41  BASE_PRIORITY_MA
4490: 58 20 54 48 52 45 41 44 5f 50 52 49 4f 52 49 54  X THREAD_PRIORIT
44a0: 59 5f 48 49 47 48 45 53 54 3b 0d 0a 65 6e 75 6d  Y_HIGHEST;..enum
44b0: 20 3a 20 75 69 6e 74 20 7b 20 54 48 52 45 41 44   : uint { THREAD
44c0: 5f 50 52 49 4f 52 49 54 59 5f 41 42 4f 56 45 5f  _PRIORITY_ABOVE_
44d0: 4e 4f 52 4d 41 4c 20 3d 20 54 48 52 45 41 44 5f  NORMAL = THREAD_
44e0: 50 52 49 4f 52 49 54 59 5f 48 49 47 48 45 53 54  PRIORITY_HIGHEST
44f0: 2d 31 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e  -1 }..enum : uin
4500: 74 20 7b 20 54 48 52 45 41 44 5f 50 52 49 4f 52  t { THREAD_PRIOR
4510: 49 54 59 5f 45 52 52 4f 52 5f 52 45 54 55 52 4e  ITY_ERROR_RETURN
4520: 20 3d 20 4d 41 58 4c 4f 4e 47 20 7d 0d 0a 0d 0a   = MAXLONG }....
4530: 61 6c 69 61 73 20 54 48 52 45 41 44 5f 42 41 53  alias THREAD_BAS
4540: 45 5f 50 52 49 4f 52 49 54 59 5f 4c 4f 57 52 54  E_PRIORITY_LOWRT
4550: 20 54 48 52 45 41 44 5f 50 52 49 4f 52 49 54 59   THREAD_PRIORITY
4560: 5f 54 49 4d 45 5f 43 52 49 54 49 43 41 4c 3b 0d  _TIME_CRITICAL;.
4570: 0a 61 6c 69 61 73 20 54 48 52 45 41 44 5f 42 41  .alias THREAD_BA
4580: 53 45 5f 50 52 49 4f 52 49 54 59 5f 49 44 4c 45  SE_PRIORITY_IDLE
4590: 20 54 48 52 45 41 44 5f 50 52 49 4f 52 49 54 59   THREAD_PRIORITY
45a0: 5f 49 44 4c 45 3b 0d 0a 0d 0a 65 6e 75 6d 20 3a  _IDLE;....enum :
45b0: 20 75 69 6e 74 20 7b 20 45 58 43 45 50 54 49 4f   uint { EXCEPTIO
45c0: 4e 5f 44 45 42 55 47 5f 45 56 45 4e 54 20 3d 20  N_DEBUG_EVENT = 
45d0: 31 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  1 }..enum : uint
45e0: 20 7b 20 43 52 45 41 54 45 5f 54 48 52 45 41 44   { CREATE_THREAD
45f0: 5f 44 45 42 55 47 5f 45 56 45 4e 54 20 3d 20 32  _DEBUG_EVENT = 2
4600: 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20   }..enum : uint 
4610: 7b 20 43 52 45 41 54 45 5f 50 52 4f 43 45 53 53  { CREATE_PROCESS
4620: 5f 44 45 42 55 47 5f 45 56 45 4e 54 20 3d 20 33  _DEBUG_EVENT = 3
4630: 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20   }..enum : uint 
4640: 7b 20 45 58 49 54 5f 54 48 52 45 41 44 5f 44 45  { EXIT_THREAD_DE
4650: 42 55 47 5f 45 56 45 4e 54 20 3d 20 34 20 7d 0d  BUG_EVENT = 4 }.
4660: 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 45  .enum : uint { E
4670: 58 49 54 5f 50 52 4f 43 45 53 53 5f 44 45 42 55  XIT_PROCESS_DEBU
4680: 47 5f 45 56 45 4e 54 20 3d 20 35 20 7d 0d 0a 65  G_EVENT = 5 }..e
4690: 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 4c 4f 41  num : uint { LOA
46a0: 44 5f 44 4c 4c 5f 44 45 42 55 47 5f 45 56 45 4e  D_DLL_DEBUG_EVEN
46b0: 54 20 3d 20 36 20 7d 0d 0a 65 6e 75 6d 20 3a 20  T = 6 }..enum : 
46c0: 75 69 6e 74 20 7b 20 55 4e 4c 4f 41 44 5f 44 4c  uint { UNLOAD_DL
46d0: 4c 5f 44 45 42 55 47 5f 45 56 45 4e 54 20 3d 20  L_DEBUG_EVENT = 
46e0: 37 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  7 }..enum : uint
46f0: 20 7b 20 4f 55 54 50 55 54 5f 44 45 42 55 47 5f   { OUTPUT_DEBUG_
4700: 53 54 52 49 4e 47 5f 45 56 45 4e 54 20 3d 20 38  STRING_EVENT = 8
4710: 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20   }..enum : uint 
4720: 7b 20 52 49 50 5f 45 56 45 4e 54 20 3d 20 39 20  { RIP_EVENT = 9 
4730: 7d 0d 0a 0d 0a 73 74 72 75 63 74 20 5f 45 58 43  }....struct _EXC
4740: 45 50 54 49 4f 4e 5f 44 45 42 55 47 5f 49 4e 46  EPTION_DEBUG_INF
4750: 4f 20 7b 0d 0a 20 20 45 58 43 45 50 54 49 4f 4e  O {..  EXCEPTION
4760: 5f 52 45 43 4f 52 44 20 45 78 63 65 70 74 69 6f  _RECORD Exceptio
4770: 6e 52 65 63 6f 72 64 3b 0d 0a 20 20 44 57 4f 52  nRecord;..  DWOR
4780: 44 20 64 77 46 69 72 73 74 43 68 61 6e 63 65 3b  D dwFirstChance;
4790: 0d 0a 7d 0d 0a 61 6c 69 61 73 20 5f 45 58 43 45  ..}..alias _EXCE
47a0: 50 54 49 4f 4e 5f 44 45 42 55 47 5f 49 4e 46 4f  PTION_DEBUG_INFO
47b0: 20 45 58 43 45 50 54 49 4f 4e 5f 44 45 42 55 47   EXCEPTION_DEBUG
47c0: 5f 49 4e 46 4f 3b 0d 0a 61 6c 69 61 73 20 5f 45  _INFO;..alias _E
47d0: 58 43 45 50 54 49 4f 4e 5f 44 45 42 55 47 5f 49  XCEPTION_DEBUG_I
47e0: 4e 46 4f 2a 20 4c 50 45 58 43 45 50 54 49 4f 4e  NFO* LPEXCEPTION
47f0: 5f 44 45 42 55 47 5f 49 4e 46 4f 3b 0d 0a 0d 0a  _DEBUG_INFO;....
4800: 73 74 72 75 63 74 20 5f 43 52 45 41 54 45 5f 54  struct _CREATE_T
4810: 48 52 45 41 44 5f 44 45 42 55 47 5f 49 4e 46 4f  HREAD_DEBUG_INFO
4820: 20 7b 0d 0a 20 20 48 41 4e 44 4c 45 20 68 54 68   {..  HANDLE hTh
4830: 72 65 61 64 3b 0d 0a 20 20 4c 50 56 4f 49 44 20  read;..  LPVOID 
4840: 6c 70 54 68 72 65 61 64 4c 6f 63 61 6c 42 61 73  lpThreadLocalBas
4850: 65 3b 0d 0a 20 20 4c 50 54 48 52 45 41 44 5f 53  e;..  LPTHREAD_S
4860: 54 41 52 54 5f 52 4f 55 54 49 4e 45 20 6c 70 53  TART_ROUTINE lpS
4870: 74 61 72 74 41 64 64 72 65 73 73 3b 0d 0a 7d 0d  tartAddress;..}.
4880: 0a 61 6c 69 61 73 20 5f 43 52 45 41 54 45 5f 54  .alias _CREATE_T
4890: 48 52 45 41 44 5f 44 45 42 55 47 5f 49 4e 46 4f  HREAD_DEBUG_INFO
48a0: 20 43 52 45 41 54 45 5f 54 48 52 45 41 44 5f 44   CREATE_THREAD_D
48b0: 45 42 55 47 5f 49 4e 46 4f 3b 0d 0a 61 6c 69 61  EBUG_INFO;..alia
48c0: 73 20 5f 43 52 45 41 54 45 5f 54 48 52 45 41 44  s _CREATE_THREAD
48d0: 5f 44 45 42 55 47 5f 49 4e 46 4f 2a 20 4c 50 43  _DEBUG_INFO* LPC
48e0: 52 45 41 54 45 5f 54 48 52 45 41 44 5f 44 45 42  REATE_THREAD_DEB
48f0: 55 47 5f 49 4e 46 4f 3b 0d 0a 0d 0a 73 74 72 75  UG_INFO;....stru
4900: 63 74 20 5f 43 52 45 41 54 45 5f 50 52 4f 43 45  ct _CREATE_PROCE
4910: 53 53 5f 44 45 42 55 47 5f 49 4e 46 4f 20 7b 0d  SS_DEBUG_INFO {.
4920: 0a 20 20 48 41 4e 44 4c 45 20 68 46 69 6c 65 3b  .  HANDLE hFile;
4930: 0d 0a 20 20 48 41 4e 44 4c 45 20 68 50 72 6f 63  ..  HANDLE hProc
4940: 65 73 73 3b 0d 0a 20 20 48 41 4e 44 4c 45 20 68  ess;..  HANDLE h
4950: 54 68 72 65 61 64 3b 0d 0a 20 20 4c 50 56 4f 49  Thread;..  LPVOI
4960: 44 20 6c 70 42 61 73 65 4f 66 49 6d 61 67 65 3b  D lpBaseOfImage;
4970: 0d 0a 20 20 44 57 4f 52 44 20 64 77 44 65 62 75  ..  DWORD dwDebu
4980: 67 49 6e 66 6f 46 69 6c 65 4f 66 66 73 65 74 3b  gInfoFileOffset;
4990: 0d 0a 20 20 44 57 4f 52 44 20 6e 44 65 62 75 67  ..  DWORD nDebug
49a0: 49 6e 66 6f 53 69 7a 65 3b 0d 0a 20 20 4c 50 56  InfoSize;..  LPV
49b0: 4f 49 44 20 6c 70 54 68 72 65 61 64 4c 6f 63 61  OID lpThreadLoca
49c0: 6c 42 61 73 65 3b 0d 0a 20 20 4c 50 54 48 52 45  lBase;..  LPTHRE
49d0: 41 44 5f 53 54 41 52 54 5f 52 4f 55 54 49 4e 45  AD_START_ROUTINE
49e0: 20 6c 70 53 74 61 72 74 41 64 64 72 65 73 73 3b   lpStartAddress;
49f0: 0d 0a 20 20 4c 50 56 4f 49 44 20 6c 70 49 6d 61  ..  LPVOID lpIma
4a00: 67 65 4e 61 6d 65 3b 0d 0a 20 20 57 4f 52 44 20  geName;..  WORD 
4a10: 66 55 6e 69 63 6f 64 65 3b 0d 0a 7d 0d 0a 61 6c  fUnicode;..}..al
4a20: 69 61 73 20 5f 43 52 45 41 54 45 5f 50 52 4f 43  ias _CREATE_PROC
4a30: 45 53 53 5f 44 45 42 55 47 5f 49 4e 46 4f 20 43  ESS_DEBUG_INFO C
4a40: 52 45 41 54 45 5f 50 52 4f 43 45 53 53 5f 44 45  REATE_PROCESS_DE
4a50: 42 55 47 5f 49 4e 46 4f 3b 0d 0a 61 6c 69 61 73  BUG_INFO;..alias
4a60: 20 5f 43 52 45 41 54 45 5f 50 52 4f 43 45 53 53   _CREATE_PROCESS
4a70: 5f 44 45 42 55 47 5f 49 4e 46 4f 2a 20 4c 50 43  _DEBUG_INFO* LPC
4a80: 52 45 41 54 45 5f 50 52 4f 43 45 53 53 5f 44 45  REATE_PROCESS_DE
4a90: 42 55 47 5f 49 4e 46 4f 3b 0d 0a 0d 0a 73 74 72  BUG_INFO;....str
4aa0: 75 63 74 20 5f 45 58 49 54 5f 54 48 52 45 41 44  uct _EXIT_THREAD
4ab0: 5f 44 45 42 55 47 5f 49 4e 46 4f 20 7b 0d 0a 20  _DEBUG_INFO {.. 
4ac0: 20 44 57 4f 52 44 20 64 77 45 78 69 74 43 6f 64   DWORD dwExitCod
4ad0: 65 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 5f 45 58  e;..}..alias _EX
4ae0: 49 54 5f 54 48 52 45 41 44 5f 44 45 42 55 47 5f  IT_THREAD_DEBUG_
4af0: 49 4e 46 4f 20 45 58 49 54 5f 54 48 52 45 41 44  INFO EXIT_THREAD
4b00: 5f 44 45 42 55 47 5f 49 4e 46 4f 3b 0d 0a 61 6c  _DEBUG_INFO;..al
4b10: 69 61 73 20 5f 45 58 49 54 5f 54 48 52 45 41 44  ias _EXIT_THREAD
4b20: 5f 44 45 42 55 47 5f 49 4e 46 4f 2a 20 4c 50 45  _DEBUG_INFO* LPE
4b30: 58 49 54 5f 54 48 52 45 41 44 5f 44 45 42 55 47  XIT_THREAD_DEBUG
4b40: 5f 49 4e 46 4f 3b 0d 0a 0d 0a 73 74 72 75 63 74  _INFO;....struct
4b50: 20 5f 45 58 49 54 5f 50 52 4f 43 45 53 53 5f 44   _EXIT_PROCESS_D
4b60: 45 42 55 47 5f 49 4e 46 4f 20 7b 0d 0a 20 20 44  EBUG_INFO {..  D
4b70: 57 4f 52 44 20 64 77 45 78 69 74 43 6f 64 65 3b  WORD dwExitCode;
4b80: 0d 0a 7d 0d 0a 61 6c 69 61 73 20 5f 45 58 49 54  ..}..alias _EXIT
4b90: 5f 50 52 4f 43 45 53 53 5f 44 45 42 55 47 5f 49  _PROCESS_DEBUG_I
4ba0: 4e 46 4f 20 45 58 49 54 5f 50 52 4f 43 45 53 53  NFO EXIT_PROCESS
4bb0: 5f 44 45 42 55 47 5f 49 4e 46 4f 3b 0d 0a 61 6c  _DEBUG_INFO;..al
4bc0: 69 61 73 20 5f 45 58 49 54 5f 50 52 4f 43 45 53  ias _EXIT_PROCES
4bd0: 53 5f 44 45 42 55 47 5f 49 4e 46 4f 2a 20 4c 50  S_DEBUG_INFO* LP
4be0: 45 58 49 54 5f 50 52 4f 43 45 53 53 5f 44 45 42  EXIT_PROCESS_DEB
4bf0: 55 47 5f 49 4e 46 4f 3b 0d 0a 0d 0a 73 74 72 75  UG_INFO;....stru
4c00: 63 74 20 5f 4c 4f 41 44 5f 44 4c 4c 5f 44 45 42  ct _LOAD_DLL_DEB
4c10: 55 47 5f 49 4e 46 4f 20 7b 0d 0a 20 20 48 41 4e  UG_INFO {..  HAN
4c20: 44 4c 45 20 68 46 69 6c 65 3b 0d 0a 20 20 4c 50  DLE hFile;..  LP
4c30: 56 4f 49 44 20 6c 70 42 61 73 65 4f 66 44 6c 6c  VOID lpBaseOfDll
4c40: 3b 0d 0a 20 20 44 57 4f 52 44 20 64 77 44 65 62  ;..  DWORD dwDeb
4c50: 75 67 49 6e 66 6f 46 69 6c 65 4f 66 66 73 65 74  ugInfoFileOffset
4c60: 3b 0d 0a 20 20 44 57 4f 52 44 20 6e 44 65 62 75  ;..  DWORD nDebu
4c70: 67 49 6e 66 6f 53 69 7a 65 3b 0d 0a 20 20 4c 50  gInfoSize;..  LP
4c80: 56 4f 49 44 20 6c 70 49 6d 61 67 65 4e 61 6d 65  VOID lpImageName
4c90: 3b 0d 0a 20 20 57 4f 52 44 20 66 55 6e 69 63 6f  ;..  WORD fUnico
4ca0: 64 65 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 5f 4c  de;..}..alias _L
4cb0: 4f 41 44 5f 44 4c 4c 5f 44 45 42 55 47 5f 49 4e  OAD_DLL_DEBUG_IN
4cc0: 46 4f 20 4c 4f 41 44 5f 44 4c 4c 5f 44 45 42 55  FO LOAD_DLL_DEBU
4cd0: 47 5f 49 4e 46 4f 3b 0d 0a 61 6c 69 61 73 20 5f  G_INFO;..alias _
4ce0: 4c 4f 41 44 5f 44 4c 4c 5f 44 45 42 55 47 5f 49  LOAD_DLL_DEBUG_I
4cf0: 4e 46 4f 2a 20 4c 50 4c 4f 41 44 5f 44 4c 4c 5f  NFO* LPLOAD_DLL_
4d00: 44 45 42 55 47 5f 49 4e 46 4f 3b 0d 0a 0d 0a 73  DEBUG_INFO;....s
4d10: 74 72 75 63 74 20 5f 55 4e 4c 4f 41 44 5f 44 4c  truct _UNLOAD_DL
4d20: 4c 5f 44 45 42 55 47 5f 49 4e 46 4f 20 7b 0d 0a  L_DEBUG_INFO {..
4d30: 20 20 4c 50 56 4f 49 44 20 6c 70 42 61 73 65 4f    LPVOID lpBaseO
4d40: 66 44 6c 6c 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20  fDll;..}..alias 
4d50: 5f 55 4e 4c 4f 41 44 5f 44 4c 4c 5f 44 45 42 55  _UNLOAD_DLL_DEBU
4d60: 47 5f 49 4e 46 4f 20 55 4e 4c 4f 41 44 5f 44 4c  G_INFO UNLOAD_DL
4d70: 4c 5f 44 45 42 55 47 5f 49 4e 46 4f 3b 0d 0a 61  L_DEBUG_INFO;..a
4d80: 6c 69 61 73 20 5f 55 4e 4c 4f 41 44 5f 44 4c 4c  lias _UNLOAD_DLL
4d90: 5f 44 45 42 55 47 5f 49 4e 46 4f 2a 20 4c 50 55  _DEBUG_INFO* LPU
4da0: 4e 4c 4f 41 44 5f 44 4c 4c 5f 44 45 42 55 47 5f  NLOAD_DLL_DEBUG_
4db0: 49 4e 46 4f 3b 0d 0a 0d 0a 73 74 72 75 63 74 20  INFO;....struct 
4dc0: 5f 4f 55 54 50 55 54 5f 44 45 42 55 47 5f 53 54  _OUTPUT_DEBUG_ST
4dd0: 52 49 4e 47 5f 49 4e 46 4f 20 7b 0d 0a 20 20 4c  RING_INFO {..  L
4de0: 50 53 54 52 20 6c 70 44 65 62 75 67 53 74 72 69  PSTR lpDebugStri
4df0: 6e 67 44 61 74 61 3b 0d 0a 20 20 57 4f 52 44 20  ngData;..  WORD 
4e00: 66 55 6e 69 63 6f 64 65 3b 0d 0a 20 20 57 4f 52  fUnicode;..  WOR
4e10: 44 20 6e 44 65 62 75 67 53 74 72 69 6e 67 4c 65  D nDebugStringLe
4e20: 6e 67 74 68 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20  ngth;..}..alias 
4e30: 5f 4f 55 54 50 55 54 5f 44 45 42 55 47 5f 53 54  _OUTPUT_DEBUG_ST
4e40: 52 49 4e 47 5f 49 4e 46 4f 20 4f 55 54 50 55 54  RING_INFO OUTPUT
4e50: 5f 44 45 42 55 47 5f 53 54 52 49 4e 47 5f 49 4e  _DEBUG_STRING_IN
4e60: 46 4f 3b 0d 0a 61 6c 69 61 73 20 5f 4f 55 54 50  FO;..alias _OUTP
4e70: 55 54 5f 44 45 42 55 47 5f 53 54 52 49 4e 47 5f  UT_DEBUG_STRING_
4e80: 49 4e 46 4f 2a 20 4c 50 4f 55 54 50 55 54 5f 44  INFO* LPOUTPUT_D
4e90: 45 42 55 47 5f 53 54 52 49 4e 47 5f 49 4e 46 4f  EBUG_STRING_INFO
4ea0: 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 5f 52 49 50  ;....struct _RIP
4eb0: 5f 49 4e 46 4f 20 7b 0d 0a 20 20 44 57 4f 52 44  _INFO {..  DWORD
4ec0: 20 64 77 45 72 72 6f 72 3b 0d 0a 20 20 44 57 4f   dwError;..  DWO
4ed0: 52 44 20 64 77 54 79 70 65 3b 0d 0a 7d 0d 0a 61  RD dwType;..}..a
4ee0: 6c 69 61 73 20 5f 52 49 50 5f 49 4e 46 4f 20 52  lias _RIP_INFO R
4ef0: 49 50 5f 49 4e 46 4f 3b 0d 0a 61 6c 69 61 73 20  IP_INFO;..alias 
4f00: 5f 52 49 50 5f 49 4e 46 4f 2a 20 4c 50 52 49 50  _RIP_INFO* LPRIP
4f10: 5f 49 4e 46 4f 3b 0d 0a 0d 0a 73 74 72 75 63 74  _INFO;....struct
4f20: 20 5f 44 45 42 55 47 5f 45 56 45 4e 54 20 7b 0d   _DEBUG_EVENT {.
4f30: 0a 20 20 44 57 4f 52 44 20 64 77 44 65 62 75 67  .  DWORD dwDebug
4f40: 45 76 65 6e 74 43 6f 64 65 3b 0d 0a 20 20 44 57  EventCode;..  DW
4f50: 4f 52 44 20 64 77 50 72 6f 63 65 73 73 49 64 3b  ORD dwProcessId;
4f60: 0d 0a 20 20 44 57 4f 52 44 20 64 77 54 68 72 65  ..  DWORD dwThre
4f70: 61 64 49 64 3b 0d 0a 75 6e 69 6f 6e 20 7b 0d 0a  adId;..union {..
4f80: 20 20 45 58 43 45 50 54 49 4f 4e 5f 44 45 42 55    EXCEPTION_DEBU
4f90: 47 5f 49 4e 46 4f 20 45 78 63 65 70 74 69 6f 6e  G_INFO Exception
4fa0: 3b 0d 0a 20 20 43 52 45 41 54 45 5f 54 48 52 45  ;..  CREATE_THRE
4fb0: 41 44 5f 44 45 42 55 47 5f 49 4e 46 4f 20 43 72  AD_DEBUG_INFO Cr
4fc0: 65 61 74 65 54 68 72 65 61 64 3b 0d 0a 20 20 43  eateThread;..  C
4fd0: 52 45 41 54 45 5f 50 52 4f 43 45 53 53 5f 44 45  REATE_PROCESS_DE
4fe0: 42 55 47 5f 49 4e 46 4f 20 43 72 65 61 74 65 50  BUG_INFO CreateP
4ff0: 72 6f 63 65 73 73 49 6e 66 6f 3b 0d 0a 20 20 45  rocessInfo;..  E
5000: 58 49 54 5f 54 48 52 45 41 44 5f 44 45 42 55 47  XIT_THREAD_DEBUG
5010: 5f 49 4e 46 4f 20 45 78 69 74 54 68 72 65 61 64  _INFO ExitThread
5020: 3b 0d 0a 20 20 45 58 49 54 5f 50 52 4f 43 45 53  ;..  EXIT_PROCES
5030: 53 5f 44 45 42 55 47 5f 49 4e 46 4f 20 45 78 69  S_DEBUG_INFO Exi
5040: 74 50 72 6f 63 65 73 73 3b 0d 0a 20 20 4c 4f 41  tProcess;..  LOA
5050: 44 5f 44 4c 4c 5f 44 45 42 55 47 5f 49 4e 46 4f  D_DLL_DEBUG_INFO
5060: 20 4c 6f 61 64 44 6c 6c 3b 0d 0a 20 20 55 4e 4c   LoadDll;..  UNL
5070: 4f 41 44 5f 44 4c 4c 5f 44 45 42 55 47 5f 49 4e  OAD_DLL_DEBUG_IN
5080: 46 4f 20 55 6e 6c 6f 61 64 44 6c 6c 3b 0d 0a 20  FO UnloadDll;.. 
5090: 20 4f 55 54 50 55 54 5f 44 45 42 55 47 5f 53 54   OUTPUT_DEBUG_ST
50a0: 52 49 4e 47 5f 49 4e 46 4f 20 44 65 62 75 67 53  RING_INFO DebugS
50b0: 74 72 69 6e 67 3b 0d 0a 20 20 52 49 50 5f 49 4e  tring;..  RIP_IN
50c0: 46 4f 20 52 69 70 49 6e 66 6f 3b 0d 0a 7d 0d 0a  FO RipInfo;..}..
50d0: 0d 0a 7d 0d 0a 61 6c 69 61 73 20 5f 44 45 42 55  ..}..alias _DEBU
50e0: 47 5f 45 56 45 4e 54 20 44 45 42 55 47 5f 45 56  G_EVENT DEBUG_EV
50f0: 45 4e 54 3b 0d 0a 61 6c 69 61 73 20 5f 44 45 42  ENT;..alias _DEB
5100: 55 47 5f 45 56 45 4e 54 2a 20 4c 50 44 45 42 55  UG_EVENT* LPDEBU
5110: 47 5f 45 56 45 4e 54 3b 0d 0a 0d 0a 2f 2f 20 23  G_EVENT;....// #
5120: 69 66 20 21 64 65 66 69 6e 65 64 28 4d 49 44 4c  if !defined(MIDL
5130: 5f 50 41 53 53 29 0d 0a 61 6c 69 61 73 20 50 43  _PASS)..alias PC
5140: 4f 4e 54 45 58 54 20 4c 50 43 4f 4e 54 45 58 54  ONTEXT LPCONTEXT
5150: 3b 0d 0a 61 6c 69 61 73 20 50 45 58 43 45 50 54  ;..alias PEXCEPT
5160: 49 4f 4e 5f 52 45 43 4f 52 44 20 4c 50 45 58 43  ION_RECORD LPEXC
5170: 45 50 54 49 4f 4e 5f 52 45 43 4f 52 44 3b 0d 0a  EPTION_RECORD;..
5180: 61 6c 69 61 73 20 50 45 58 43 45 50 54 49 4f 4e  alias PEXCEPTION
5190: 5f 50 4f 49 4e 54 45 52 53 20 4c 50 45 58 43 45  _POINTERS LPEXCE
51a0: 50 54 49 4f 4e 5f 50 4f 49 4e 54 45 52 53 3b 0d  PTION_POINTERS;.
51b0: 0a 2f 2f 20 23 65 6e 64 69 66 0d 0a 0d 0a 65 6e  .// #endif....en
51c0: 75 6d 20 3a 20 75 69 6e 74 20 7b 20 44 52 49 56  um : uint { DRIV
51d0: 45 5f 55 4e 4b 4e 4f 57 4e 20 3d 20 30 20 7d 0d  E_UNKNOWN = 0 }.
51e0: 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 44  .enum : uint { D
51f0: 52 49 56 45 5f 4e 4f 5f 52 4f 4f 54 5f 44 49 52  RIVE_NO_ROOT_DIR
5200: 20 3d 20 31 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75   = 1 }..enum : u
5210: 69 6e 74 20 7b 20 44 52 49 56 45 5f 52 45 4d 4f  int { DRIVE_REMO
5220: 56 41 42 4c 45 20 3d 20 32 20 7d 0d 0a 65 6e 75  VABLE = 2 }..enu
5230: 6d 20 3a 20 75 69 6e 74 20 7b 20 44 52 49 56 45  m : uint { DRIVE
5240: 5f 46 49 58 45 44 20 3d 20 33 20 7d 0d 0a 65 6e  _FIXED = 3 }..en
5250: 75 6d 20 3a 20 75 69 6e 74 20 7b 20 44 52 49 56  um : uint { DRIV
5260: 45 5f 52 45 4d 4f 54 45 20 3d 20 34 20 7d 0d 0a  E_REMOTE = 4 }..
5270: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 44 52  enum : uint { DR
5280: 49 56 45 5f 43 44 52 4f 4d 20 3d 20 35 20 7d 0d  IVE_CDROM = 5 }.
5290: 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 44  .enum : uint { D
52a0: 52 49 56 45 5f 52 41 4d 44 49 53 4b 20 3d 20 36  RIVE_RAMDISK = 6
52b0: 20 7d 0d 0a 0d 0a 2f 2f 20 23 69 66 6e 64 65 66   }....// #ifndef
52c0: 20 5f 4d 41 43 0d 0a 2f 2f 20 23 64 65 66 69 6e   _MAC..// #defin
52d0: 65 20 47 65 74 46 72 65 65 53 70 61 63 65 28 77  e GetFreeSpace(w
52e0: 29 20 28 30 78 31 30 30 30 30 30 4c 29 0d 0a 2f  ) (0x100000L)../
52f0: 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 2e 2e 2e 0d  / #else..// ....
5300: 0a 2f 2f 20 23 65 6e 64 69 66 0d 0a 0d 0a 65 6e  .// #endif....en
5310: 75 6d 20 3a 20 75 69 6e 74 20 7b 20 46 49 4c 45  um : uint { FILE
5320: 5f 54 59 50 45 5f 55 4e 4b 4e 4f 57 4e 20 3d 20  _TYPE_UNKNOWN = 
5330: 30 78 30 30 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a  0x0000 }..enum :
5340: 20 75 69 6e 74 20 7b 20 46 49 4c 45 5f 54 59 50   uint { FILE_TYP
5350: 45 5f 44 49 53 4b 20 3d 20 30 78 30 30 30 31 20  E_DISK = 0x0001 
5360: 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b  }..enum : uint {
5370: 20 46 49 4c 45 5f 54 59 50 45 5f 43 48 41 52 20   FILE_TYPE_CHAR 
5380: 3d 20 30 78 30 30 30 32 20 7d 0d 0a 65 6e 75 6d  = 0x0002 }..enum
5390: 20 3a 20 75 69 6e 74 20 7b 20 46 49 4c 45 5f 54   : uint { FILE_T
53a0: 59 50 45 5f 50 49 50 45 20 3d 20 30 78 30 30 30  YPE_PIPE = 0x000
53b0: 33 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  3 }..enum : uint
53c0: 20 7b 20 46 49 4c 45 5f 54 59 50 45 5f 52 45 4d   { FILE_TYPE_REM
53d0: 4f 54 45 20 3d 20 30 78 38 30 30 30 20 7d 0d 0a  OTE = 0x8000 }..
53e0: 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20  ..enum : uint { 
53f0: 53 54 44 5f 49 4e 50 55 54 5f 48 41 4e 44 4c 45  STD_INPUT_HANDLE
5400: 20 3d 20 63 61 73 74 28 44 57 4f 52 44 29 2d 31   = cast(DWORD)-1
5410: 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  0 }..enum : uint
5420: 20 7b 20 53 54 44 5f 4f 55 54 50 55 54 5f 48 41   { STD_OUTPUT_HA
5430: 4e 44 4c 45 20 3d 20 63 61 73 74 28 44 57 4f 52  NDLE = cast(DWOR
5440: 44 29 2d 31 31 20 7d 0d 0a 65 6e 75 6d 20 3a 20  D)-11 }..enum : 
5450: 75 69 6e 74 20 7b 20 53 54 44 5f 45 52 52 4f 52  uint { STD_ERROR
5460: 5f 48 41 4e 44 4c 45 20 3d 20 63 61 73 74 28 44  _HANDLE = cast(D
5470: 57 4f 52 44 29 2d 31 32 20 7d 0d 0a 0d 0a 65 6e  WORD)-12 }....en
5480: 75 6d 20 3a 20 75 69 6e 74 20 7b 20 4e 4f 50 41  um : uint { NOPA
5490: 52 49 54 59 20 3d 20 30 20 7d 0d 0a 65 6e 75 6d  RITY = 0 }..enum
54a0: 20 3a 20 75 69 6e 74 20 7b 20 4f 44 44 50 41 52   : uint { ODDPAR
54b0: 49 54 59 20 3d 20 31 20 7d 0d 0a 65 6e 75 6d 20  ITY = 1 }..enum 
54c0: 3a 20 75 69 6e 74 20 7b 20 45 56 45 4e 50 41 52  : uint { EVENPAR
54d0: 49 54 59 20 3d 20 32 20 7d 0d 0a 65 6e 75 6d 20  ITY = 2 }..enum 
54e0: 3a 20 75 69 6e 74 20 7b 20 4d 41 52 4b 50 41 52  : uint { MARKPAR
54f0: 49 54 59 20 3d 20 33 20 7d 0d 0a 65 6e 75 6d 20  ITY = 3 }..enum 
5500: 3a 20 75 69 6e 74 20 7b 20 53 50 41 43 45 50 41  : uint { SPACEPA
5510: 52 49 54 59 20 3d 20 34 20 7d 0d 0a 0d 0a 65 6e  RITY = 4 }....en
5520: 75 6d 20 3a 20 75 69 6e 74 20 7b 20 4f 4e 45 53  um : uint { ONES
5530: 54 4f 50 42 49 54 20 3d 20 30 20 7d 0d 0a 65 6e  TOPBIT = 0 }..en
5540: 75 6d 20 3a 20 75 69 6e 74 20 7b 20 4f 4e 45 35  um : uint { ONE5
5550: 53 54 4f 50 42 49 54 53 20 3d 20 31 20 7d 0d 0a  STOPBITS = 1 }..
5560: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 54 57  enum : uint { TW
5570: 4f 53 54 4f 50 42 49 54 53 20 3d 20 32 20 7d 0d  OSTOPBITS = 2 }.
5580: 0a 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b  ...enum : uint {
5590: 20 49 47 4e 4f 52 45 20 3d 20 30 20 7d 0d 0a 65   IGNORE = 0 }..e
55a0: 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 49 4e 46  num : uint { INF
55b0: 49 4e 49 54 45 20 3d 20 30 78 46 46 46 46 46 46  INITE = 0xFFFFFF
55c0: 46 46 20 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 75  FF }....enum : u
55d0: 69 6e 74 20 7b 20 43 42 52 5f 31 31 30 20 3d 20  int { CBR_110 = 
55e0: 31 31 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69  110 }..enum : ui
55f0: 6e 74 20 7b 20 43 42 52 5f 33 30 30 20 3d 20 33  nt { CBR_300 = 3
5600: 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e  00 }..enum : uin
5610: 74 20 7b 20 43 42 52 5f 36 30 30 20 3d 20 36 30  t { CBR_600 = 60
5620: 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  0 }..enum : uint
5630: 20 7b 20 43 42 52 5f 31 32 30 30 20 3d 20 31 32   { CBR_1200 = 12
5640: 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e  00 }..enum : uin
5650: 74 20 7b 20 43 42 52 5f 32 34 30 30 20 3d 20 32  t { CBR_2400 = 2
5660: 34 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69  400 }..enum : ui
5670: 6e 74 20 7b 20 43 42 52 5f 34 38 30 30 20 3d 20  nt { CBR_4800 = 
5680: 34 38 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75  4800 }..enum : u
5690: 69 6e 74 20 7b 20 43 42 52 5f 39 36 30 30 20 3d  int { CBR_9600 =
56a0: 20 39 36 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20   9600 }..enum : 
56b0: 75 69 6e 74 20 7b 20 43 42 52 5f 31 34 34 30 30  uint { CBR_14400
56c0: 20 3d 20 31 34 34 30 30 20 7d 0d 0a 65 6e 75 6d   = 14400 }..enum
56d0: 20 3a 20 75 69 6e 74 20 7b 20 43 42 52 5f 31 39   : uint { CBR_19
56e0: 32 30 30 20 3d 20 31 39 32 30 30 20 7d 0d 0a 65  200 = 19200 }..e
56f0: 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 43 42 52  num : uint { CBR
5700: 5f 33 38 34 30 30 20 3d 20 33 38 34 30 30 20 7d  _38400 = 38400 }
5710: 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20  ..enum : uint { 
5720: 43 42 52 5f 35 36 30 30 30 20 3d 20 35 36 30 30  CBR_56000 = 5600
5730: 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  0 }..enum : uint
5740: 20 7b 20 43 42 52 5f 35 37 36 30 30 20 3d 20 35   { CBR_57600 = 5
5750: 37 36 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75  7600 }..enum : u
5760: 69 6e 74 20 7b 20 43 42 52 5f 31 31 35 32 30 30  int { CBR_115200
5770: 20 3d 20 31 31 35 32 30 30 20 7d 0d 0a 65 6e 75   = 115200 }..enu
5780: 6d 20 3a 20 75 69 6e 74 20 7b 20 43 42 52 5f 31  m : uint { CBR_1
5790: 32 38 30 30 30 20 3d 20 31 32 38 30 30 30 20 7d  28000 = 128000 }
57a0: 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20  ..enum : uint { 
57b0: 43 42 52 5f 32 35 36 30 30 30 20 3d 20 32 35 36  CBR_256000 = 256
57c0: 30 30 30 20 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20  000 }....enum : 
57d0: 75 69 6e 74 20 7b 20 43 45 5f 52 58 4f 56 45 52  uint { CE_RXOVER
57e0: 20 3d 20 30 78 30 30 30 31 20 7d 0d 0a 65 6e 75   = 0x0001 }..enu
57f0: 6d 20 3a 20 75 69 6e 74 20 7b 20 43 45 5f 4f 56  m : uint { CE_OV
5800: 45 52 52 55 4e 20 3d 20 30 78 30 30 30 32 20 7d  ERRUN = 0x0002 }
5810: 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20  ..enum : uint { 
5820: 43 45 5f 52 58 50 41 52 49 54 59 20 3d 20 30 78  CE_RXPARITY = 0x
5830: 30 30 30 34 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75  0004 }..enum : u
5840: 69 6e 74 20 7b 20 43 45 5f 46 52 41 4d 45 20 3d  int { CE_FRAME =
5850: 20 30 78 30 30 30 38 20 7d 0d 0a 65 6e 75 6d 20   0x0008 }..enum 
5860: 3a 20 75 69 6e 74 20 7b 20 43 45 5f 42 52 45 41  : uint { CE_BREA
5870: 4b 20 3d 20 30 78 30 30 31 30 20 7d 0d 0a 65 6e  K = 0x0010 }..en
5880: 75 6d 20 3a 20 75 69 6e 74 20 7b 20 43 45 5f 54  um : uint { CE_T
5890: 58 46 55 4c 4c 20 3d 20 30 78 30 31 30 30 20 7d  XFULL = 0x0100 }
58a0: 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20  ..enum : uint { 
58b0: 43 45 5f 50 54 4f 20 3d 20 30 78 30 32 30 30 20  CE_PTO = 0x0200 
58c0: 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b  }..enum : uint {
58d0: 20 43 45 5f 49 4f 45 20 3d 20 30 78 30 34 30 30   CE_IOE = 0x0400
58e0: 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20   }..enum : uint 
58f0: 7b 20 43 45 5f 44 4e 53 20 3d 20 30 78 30 38 30  { CE_DNS = 0x080
5900: 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  0 }..enum : uint
5910: 20 7b 20 43 45 5f 4f 4f 50 20 3d 20 30 78 31 30   { CE_OOP = 0x10
5920: 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e  00 }..enum : uin
5930: 74 20 7b 20 43 45 5f 4d 4f 44 45 20 3d 20 30 78  t { CE_MODE = 0x
5940: 38 30 30 30 20 7d 0d 0a 0d 0a 65 6e 75 6d 20 7b  8000 }....enum {
5950: 20 49 45 5f 42 41 44 49 44 20 3d 20 2d 31 20 7d   IE_BADID = -1 }
5960: 0d 0a 65 6e 75 6d 20 7b 20 49 45 5f 4f 50 45 4e  ..enum { IE_OPEN
5970: 20 3d 20 2d 32 20 7d 0d 0a 65 6e 75 6d 20 7b 20   = -2 }..enum { 
5980: 49 45 5f 4e 4f 50 45 4e 20 3d 20 2d 33 20 7d 0d  IE_NOPEN = -3 }.
5990: 0a 65 6e 75 6d 20 7b 20 49 45 5f 4d 45 4d 4f 52  .enum { IE_MEMOR
59a0: 59 20 3d 20 2d 34 20 7d 0d 0a 65 6e 75 6d 20 7b  Y = -4 }..enum {
59b0: 20 49 45 5f 44 45 46 41 55 4c 54 20 3d 20 2d 35   IE_DEFAULT = -5
59c0: 20 7d 0d 0a 65 6e 75 6d 20 7b 20 49 45 5f 48 41   }..enum { IE_HA
59d0: 52 44 57 41 52 45 20 3d 20 2d 31 30 20 7d 0d 0a  RDWARE = -10 }..
59e0: 65 6e 75 6d 20 7b 20 49 45 5f 42 59 54 45 53 49  enum { IE_BYTESI
59f0: 5a 45 20 3d 20 2d 31 31 20 7d 0d 0a 65 6e 75 6d  ZE = -11 }..enum
5a00: 20 7b 20 49 45 5f 42 41 55 44 52 41 54 45 20 3d   { IE_BAUDRATE =
5a10: 20 2d 31 32 20 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a   -12 }....enum :
5a20: 20 75 69 6e 74 20 7b 20 45 56 5f 52 58 43 48 41   uint { EV_RXCHA
5a30: 52 20 3d 20 30 78 30 30 30 31 20 7d 0d 0a 65 6e  R = 0x0001 }..en
5a40: 75 6d 20 3a 20 75 69 6e 74 20 7b 20 45 56 5f 52  um : uint { EV_R
5a50: 58 46 4c 41 47 20 3d 20 30 78 30 30 30 32 20 7d  XFLAG = 0x0002 }
5a60: 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20  ..enum : uint { 
5a70: 45 56 5f 54 58 45 4d 50 54 59 20 3d 20 30 78 30  EV_TXEMPTY = 0x0
5a80: 30 30 34 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69  004 }..enum : ui
5a90: 6e 74 20 7b 20 45 56 5f 43 54 53 20 3d 20 30 78  nt { EV_CTS = 0x
5aa0: 30 30 30 38 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75  0008 }..enum : u
5ab0: 69 6e 74 20 7b 20 45 56 5f 44 53 52 20 3d 20 30  int { EV_DSR = 0
5ac0: 78 30 30 31 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20  x0010 }..enum : 
5ad0: 75 69 6e 74 20 7b 20 45 56 5f 52 4c 53 44 20 3d  uint { EV_RLSD =
5ae0: 20 30 78 30 30 32 30 20 7d 0d 0a 65 6e 75 6d 20   0x0020 }..enum 
5af0: 3a 20 75 69 6e 74 20 7b 20 45 56 5f 42 52 45 41  : uint { EV_BREA
5b00: 4b 20 3d 20 30 78 30 30 34 30 20 7d 0d 0a 65 6e  K = 0x0040 }..en
5b10: 75 6d 20 3a 20 75 69 6e 74 20 7b 20 45 56 5f 45  um : uint { EV_E
5b20: 52 52 20 3d 20 30 78 30 30 38 30 20 7d 0d 0a 65  RR = 0x0080 }..e
5b30: 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 45 56 5f  num : uint { EV_
5b40: 52 49 4e 47 20 3d 20 30 78 30 31 30 30 20 7d 0d  RING = 0x0100 }.
5b50: 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 45  .enum : uint { E
5b60: 56 5f 50 45 52 52 20 3d 20 30 78 30 32 30 30 20  V_PERR = 0x0200 
5b70: 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b  }..enum : uint {
5b80: 20 45 56 5f 52 58 38 30 46 55 4c 4c 20 3d 20 30   EV_RX80FULL = 0
5b90: 78 30 34 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20  x0400 }..enum : 
5ba0: 75 69 6e 74 20 7b 20 45 56 5f 45 56 45 4e 54 31  uint { EV_EVENT1
5bb0: 20 3d 20 30 78 30 38 30 30 20 7d 0d 0a 65 6e 75   = 0x0800 }..enu
5bc0: 6d 20 3a 20 75 69 6e 74 20 7b 20 45 56 5f 45 56  m : uint { EV_EV
5bd0: 45 4e 54 32 20 3d 20 30 78 31 30 30 30 20 7d 0d  ENT2 = 0x1000 }.
5be0: 0a 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b  ...enum : uint {
5bf0: 20 53 45 54 58 4f 46 46 20 3d 20 31 20 7d 0d 0a   SETXOFF = 1 }..
5c00: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 53 45  enum : uint { SE
5c10: 54 58 4f 4e 20 3d 20 32 20 7d 0d 0a 65 6e 75 6d  TXON = 2 }..enum
5c20: 20 3a 20 75 69 6e 74 20 7b 20 53 45 54 52 54 53   : uint { SETRTS
5c30: 20 3d 20 33 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75   = 3 }..enum : u
5c40: 69 6e 74 20 7b 20 43 4c 52 52 54 53 20 3d 20 34  int { CLRRTS = 4
5c50: 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20   }..enum : uint 
5c60: 7b 20 53 45 54 44 54 52 20 3d 20 35 20 7d 0d 0a  { SETDTR = 5 }..
5c70: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 43 4c  enum : uint { CL
5c80: 52 44 54 52 20 3d 20 36 20 7d 0d 0a 65 6e 75 6d  RDTR = 6 }..enum
5c90: 20 3a 20 75 69 6e 74 20 7b 20 52 45 53 45 54 44   : uint { RESETD
5ca0: 45 56 20 3d 20 37 20 7d 0d 0a 65 6e 75 6d 20 3a  EV = 7 }..enum :
5cb0: 20 75 69 6e 74 20 7b 20 53 45 54 42 52 45 41 4b   uint { SETBREAK
5cc0: 20 3d 20 38 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75   = 8 }..enum : u
5cd0: 69 6e 74 20 7b 20 43 4c 52 42 52 45 41 4b 20 3d  int { CLRBREAK =
5ce0: 20 39 20 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 75   9 }....enum : u
5cf0: 69 6e 74 20 7b 20 50 55 52 47 45 5f 54 58 41 42  int { PURGE_TXAB
5d00: 4f 52 54 20 3d 20 30 78 30 30 30 31 20 7d 0d 0a  ORT = 0x0001 }..
5d10: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 50 55  enum : uint { PU
5d20: 52 47 45 5f 52 58 41 42 4f 52 54 20 3d 20 30 78  RGE_RXABORT = 0x
5d30: 30 30 30 32 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75  0002 }..enum : u
5d40: 69 6e 74 20 7b 20 50 55 52 47 45 5f 54 58 43 4c  int { PURGE_TXCL
5d50: 45 41 52 20 3d 20 30 78 30 30 30 34 20 7d 0d 0a  EAR = 0x0004 }..
5d60: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 50 55  enum : uint { PU
5d70: 52 47 45 5f 52 58 43 4c 45 41 52 20 3d 20 30 78  RGE_RXCLEAR = 0x
5d80: 30 30 30 38 20 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a  0008 }....enum :
5d90: 20 75 69 6e 74 20 7b 20 4c 50 54 78 20 3d 20 30   uint { LPTx = 0
5da0: 78 38 30 20 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20  x80 }....enum : 
5db0: 75 69 6e 74 20 7b 20 4d 53 5f 43 54 53 5f 4f 4e  uint { MS_CTS_ON
5dc0: 20 3d 20 63 61 73 74 28 44 57 4f 52 44 29 30 78   = cast(DWORD)0x
5dd0: 30 30 31 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75  0010 }..enum : u
5de0: 69 6e 74 20 7b 20 4d 53 5f 44 53 52 5f 4f 4e 20  int { MS_DSR_ON 
5df0: 3d 20 63 61 73 74 28 44 57 4f 52 44 29 30 78 30  = cast(DWORD)0x0
5e00: 30 32 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69  020 }..enum : ui
5e10: 6e 74 20 7b 20 4d 53 5f 52 49 4e 47 5f 4f 4e 20  nt { MS_RING_ON 
5e20: 3d 20 63 61 73 74 28 44 57 4f 52 44 29 30 78 30  = cast(DWORD)0x0
5e30: 30 34 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69  040 }..enum : ui
5e40: 6e 74 20 7b 20 4d 53 5f 52 4c 53 44 5f 4f 4e 20  nt { MS_RLSD_ON 
5e50: 3d 20 63 61 73 74 28 44 57 4f 52 44 29 30 78 30  = cast(DWORD)0x0
5e60: 30 38 30 20 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20  080 }....enum : 
5e70: 75 69 6e 74 20 7b 20 53 5f 51 55 45 55 45 45 4d  uint { S_QUEUEEM
5e80: 50 54 59 20 3d 20 30 20 7d 0d 0a 65 6e 75 6d 20  PTY = 0 }..enum 
5e90: 3a 20 75 69 6e 74 20 7b 20 53 5f 54 48 52 45 53  : uint { S_THRES
5ea0: 48 4f 4c 44 20 3d 20 31 20 7d 0d 0a 65 6e 75 6d  HOLD = 1 }..enum
5eb0: 20 3a 20 75 69 6e 74 20 7b 20 53 5f 41 4c 4c 54   : uint { S_ALLT
5ec0: 48 52 45 53 48 4f 4c 44 20 3d 20 32 20 7d 0d 0a  HRESHOLD = 2 }..
5ed0: 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20  ..enum : uint { 
5ee0: 53 5f 4e 4f 52 4d 41 4c 20 3d 20 30 20 7d 0d 0a  S_NORMAL = 0 }..
5ef0: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 53 5f  enum : uint { S_
5f00: 4c 45 47 41 54 4f 20 3d 20 31 20 7d 0d 0a 65 6e  LEGATO = 1 }..en
5f10: 75 6d 20 3a 20 75 69 6e 74 20 7b 20 53 5f 53 54  um : uint { S_ST
5f20: 41 43 43 41 54 4f 20 3d 20 32 20 7d 0d 0a 0d 0a  ACCATO = 2 }....
5f30: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 53 5f  enum : uint { S_
5f40: 50 45 52 49 4f 44 35 31 32 20 3d 20 30 20 7d 0d  PERIOD512 = 0 }.
5f50: 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 53  .enum : uint { S
5f60: 5f 50 45 52 49 4f 44 31 30 32 34 20 3d 20 31 20  _PERIOD1024 = 1 
5f70: 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b  }..enum : uint {
5f80: 20 53 5f 50 45 52 49 4f 44 32 30 34 38 20 3d 20   S_PERIOD2048 = 
5f90: 32 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  2 }..enum : uint
5fa0: 20 7b 20 53 5f 50 45 52 49 4f 44 56 4f 49 43 45   { S_PERIODVOICE
5fb0: 20 3d 20 33 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75   = 3 }..enum : u
5fc0: 69 6e 74 20 7b 20 53 5f 57 48 49 54 45 35 31 32  int { S_WHITE512
5fd0: 20 3d 20 34 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75   = 4 }..enum : u
5fe0: 69 6e 74 20 7b 20 53 5f 57 48 49 54 45 31 30 32  int { S_WHITE102
5ff0: 34 20 3d 20 35 20 7d 0d 0a 65 6e 75 6d 20 3a 20  4 = 5 }..enum : 
6000: 75 69 6e 74 20 7b 20 53 5f 57 48 49 54 45 32 30  uint { S_WHITE20
6010: 34 38 20 3d 20 36 20 7d 0d 0a 65 6e 75 6d 20 3a  48 = 6 }..enum :
6020: 20 75 69 6e 74 20 7b 20 53 5f 57 48 49 54 45 56   uint { S_WHITEV
6030: 4f 49 43 45 20 3d 20 37 20 7d 0d 0a 0d 0a 65 6e  OICE = 7 }....en
6040: 75 6d 20 7b 20 53 5f 53 45 52 44 56 4e 41 20 3d  um { S_SERDVNA =
6050: 20 2d 31 20 7d 0d 0a 65 6e 75 6d 20 7b 20 53 5f   -1 }..enum { S_
6060: 53 45 52 4f 46 4d 20 3d 20 2d 32 20 7d 0d 0a 65  SEROFM = -2 }..e
6070: 6e 75 6d 20 7b 20 53 5f 53 45 52 4d 41 43 54 20  num { S_SERMACT 
6080: 3d 20 2d 33 20 7d 0d 0a 65 6e 75 6d 20 7b 20 53  = -3 }..enum { S
6090: 5f 53 45 52 51 46 55 4c 20 3d 20 2d 34 20 7d 0d  _SERQFUL = -4 }.
60a0: 0a 65 6e 75 6d 20 7b 20 53 5f 53 45 52 42 44 4e  .enum { S_SERBDN
60b0: 54 20 3d 20 2d 35 20 7d 0d 0a 65 6e 75 6d 20 7b  T = -5 }..enum {
60c0: 20 53 5f 53 45 52 44 4c 4e 20 3d 20 2d 36 20 7d   S_SERDLN = -6 }
60d0: 0d 0a 65 6e 75 6d 20 7b 20 53 5f 53 45 52 44 43  ..enum { S_SERDC
60e0: 43 20 3d 20 2d 37 20 7d 0d 0a 65 6e 75 6d 20 7b  C = -7 }..enum {
60f0: 20 53 5f 53 45 52 44 54 50 20 3d 20 2d 38 20 7d   S_SERDTP = -8 }
6100: 0d 0a 65 6e 75 6d 20 7b 20 53 5f 53 45 52 44 56  ..enum { S_SERDV
6110: 4c 20 3d 20 2d 39 20 7d 0d 0a 65 6e 75 6d 20 7b  L = -9 }..enum {
6120: 20 53 5f 53 45 52 44 4d 44 20 3d 20 2d 31 30 20   S_SERDMD = -10 
6130: 7d 0d 0a 65 6e 75 6d 20 7b 20 53 5f 53 45 52 44  }..enum { S_SERD
6140: 53 48 20 3d 20 2d 31 31 20 7d 0d 0a 65 6e 75 6d  SH = -11 }..enum
6150: 20 7b 20 53 5f 53 45 52 44 50 54 20 3d 20 2d 31   { S_SERDPT = -1
6160: 32 20 7d 0d 0a 65 6e 75 6d 20 7b 20 53 5f 53 45  2 }..enum { S_SE
6170: 52 44 46 51 20 3d 20 2d 31 33 20 7d 0d 0a 65 6e  RDFQ = -13 }..en
6180: 75 6d 20 7b 20 53 5f 53 45 52 44 44 52 20 3d 20  um { S_SERDDR = 
6190: 2d 31 34 20 7d 0d 0a 65 6e 75 6d 20 7b 20 53 5f  -14 }..enum { S_
61a0: 53 45 52 44 53 52 20 3d 20 2d 31 35 20 7d 0d 0a  SERDSR = -15 }..
61b0: 65 6e 75 6d 20 7b 20 53 5f 53 45 52 44 53 54 20  enum { S_SERDST 
61c0: 3d 20 2d 31 36 20 7d 0d 0a 0d 0a 65 6e 75 6d 20  = -16 }....enum 
61d0: 3a 20 75 69 6e 74 20 7b 20 4e 4d 50 57 41 49 54  : uint { NMPWAIT
61e0: 5f 57 41 49 54 5f 46 4f 52 45 56 45 52 20 3d 20  _WAIT_FOREVER = 
61f0: 30 78 66 66 66 66 66 66 66 66 20 7d 0d 0a 65 6e  0xffffffff }..en
6200: 75 6d 20 3a 20 75 69 6e 74 20 7b 20 4e 4d 50 57  um : uint { NMPW
6210: 41 49 54 5f 4e 4f 57 41 49 54 20 3d 20 30 78 30  AIT_NOWAIT = 0x0
6220: 30 30 30 30 30 30 31 20 7d 0d 0a 65 6e 75 6d 20  0000001 }..enum 
6230: 3a 20 75 69 6e 74 20 7b 20 4e 4d 50 57 41 49 54  : uint { NMPWAIT
6240: 5f 55 53 45 5f 44 45 46 41 55 4c 54 5f 57 41 49  _USE_DEFAULT_WAI
6250: 54 20 3d 20 30 78 30 30 30 30 30 30 30 30 20 7d  T = 0x00000000 }
6260: 0d 0a 0d 0a 61 6c 69 61 73 20 46 49 4c 45 5f 43  ....alias FILE_C
6270: 41 53 45 5f 50 52 45 53 45 52 56 45 44 5f 4e 41  ASE_PRESERVED_NA
6280: 4d 45 53 20 46 53 5f 43 41 53 45 5f 49 53 5f 50  MES FS_CASE_IS_P
6290: 52 45 53 45 52 56 45 44 3b 0d 0a 61 6c 69 61 73  RESERVED;..alias
62a0: 20 46 49 4c 45 5f 43 41 53 45 5f 53 45 4e 53 49   FILE_CASE_SENSI
62b0: 54 49 56 45 5f 53 45 41 52 43 48 20 46 53 5f 43  TIVE_SEARCH FS_C
62c0: 41 53 45 5f 53 45 4e 53 49 54 49 56 45 3b 0d 0a  ASE_SENSITIVE;..
62d0: 61 6c 69 61 73 20 46 49 4c 45 5f 55 4e 49 43 4f  alias FILE_UNICO
62e0: 44 45 5f 4f 4e 5f 44 49 53 4b 20 46 53 5f 55 4e  DE_ON_DISK FS_UN
62f0: 49 43 4f 44 45 5f 53 54 4f 52 45 44 5f 4f 4e 5f  ICODE_STORED_ON_
6300: 44 49 53 4b 3b 0d 0a 61 6c 69 61 73 20 46 49 4c  DISK;..alias FIL
6310: 45 5f 50 45 52 53 49 53 54 45 4e 54 5f 41 43 4c  E_PERSISTENT_ACL
6320: 53 20 46 53 5f 50 45 52 53 49 53 54 45 4e 54 5f  S FS_PERSISTENT_
6330: 41 43 4c 53 3b 0d 0a 61 6c 69 61 73 20 46 49 4c  ACLS;..alias FIL
6340: 45 5f 56 4f 4c 55 4d 45 5f 49 53 5f 43 4f 4d 50  E_VOLUME_IS_COMP
6350: 52 45 53 53 45 44 20 46 53 5f 56 4f 4c 5f 49 53  RESSED FS_VOL_IS
6360: 5f 43 4f 4d 50 52 45 53 53 45 44 3b 0d 0a 61 6c  _COMPRESSED;..al
6370: 69 61 73 20 46 49 4c 45 5f 46 49 4c 45 5f 43 4f  ias FILE_FILE_CO
6380: 4d 50 52 45 53 53 49 4f 4e 20 46 53 5f 46 49 4c  MPRESSION FS_FIL
6390: 45 5f 43 4f 4d 50 52 45 53 53 49 4f 4e 3b 0d 0a  E_COMPRESSION;..
63a0: 61 6c 69 61 73 20 46 49 4c 45 5f 53 55 50 50 4f  alias FILE_SUPPO
63b0: 52 54 53 5f 45 4e 43 52 59 50 54 49 4f 4e 20 46  RTS_ENCRYPTION F
63c0: 53 5f 46 49 4c 45 5f 45 4e 43 52 59 50 54 49 4f  S_FILE_ENCRYPTIO
63d0: 4e 3b 0d 0a 0d 0a 61 6c 69 61 73 20 53 45 43 54  N;....alias SECT
63e0: 49 4f 4e 5f 51 55 45 52 59 20 46 49 4c 45 5f 4d  ION_QUERY FILE_M
63f0: 41 50 5f 43 4f 50 59 3b 0d 0a 61 6c 69 61 73 20  AP_COPY;..alias 
6400: 53 45 43 54 49 4f 4e 5f 4d 41 50 5f 57 52 49 54  SECTION_MAP_WRIT
6410: 45 20 46 49 4c 45 5f 4d 41 50 5f 57 52 49 54 45  E FILE_MAP_WRITE
6420: 3b 0d 0a 61 6c 69 61 73 20 53 45 43 54 49 4f 4e  ;..alias SECTION
6430: 5f 4d 41 50 5f 52 45 41 44 20 46 49 4c 45 5f 4d  _MAP_READ FILE_M
6440: 41 50 5f 52 45 41 44 3b 0d 0a 61 6c 69 61 73 20  AP_READ;..alias 
6450: 53 45 43 54 49 4f 4e 5f 41 4c 4c 5f 41 43 43 45  SECTION_ALL_ACCE
6460: 53 53 20 46 49 4c 45 5f 4d 41 50 5f 41 4c 4c 5f  SS FILE_MAP_ALL_
6470: 41 43 43 45 53 53 3b 0d 0a 0d 0a 65 6e 75 6d 20  ACCESS;....enum 
6480: 3a 20 75 69 6e 74 20 7b 20 4f 46 5f 52 45 41 44  : uint { OF_READ
6490: 20 3d 20 30 78 30 30 30 30 30 30 30 30 20 7d 0d   = 0x00000000 }.
64a0: 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 4f  .enum : uint { O
64b0: 46 5f 57 52 49 54 45 20 3d 20 30 78 30 30 30 30  F_WRITE = 0x0000
64c0: 30 30 30 31 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75  0001 }..enum : u
64d0: 69 6e 74 20 7b 20 4f 46 5f 52 45 41 44 57 52 49  int { OF_READWRI
64e0: 54 45 20 3d 20 30 78 30 30 30 30 30 30 30 32 20  TE = 0x00000002 
64f0: 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b  }..enum : uint {
6500: 20 4f 46 5f 53 48 41 52 45 5f 43 4f 4d 50 41 54   OF_SHARE_COMPAT
6510: 20 3d 20 30 78 30 30 30 30 30 30 30 30 20 7d 0d   = 0x00000000 }.
6520: 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 4f  .enum : uint { O
6530: 46 5f 53 48 41 52 45 5f 45 58 43 4c 55 53 49 56  F_SHARE_EXCLUSIV
6540: 45 20 3d 20 30 78 30 30 30 30 30 30 31 30 20 7d  E = 0x00000010 }
6550: 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20  ..enum : uint { 
6560: 4f 46 5f 53 48 41 52 45 5f 44 45 4e 59 5f 57 52  OF_SHARE_DENY_WR
6570: 49 54 45 20 3d 20 30 78 30 30 30 30 30 30 32 30  ITE = 0x00000020
6580: 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20   }..enum : uint 
6590: 7b 20 4f 46 5f 53 48 41 52 45 5f 44 45 4e 59 5f  { OF_SHARE_DENY_
65a0: 52 45 41 44 20 3d 20 30 78 30 30 30 30 30 30 33  READ = 0x0000003
65b0: 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  0 }..enum : uint
65c0: 20 7b 20 4f 46 5f 53 48 41 52 45 5f 44 45 4e 59   { OF_SHARE_DENY
65d0: 5f 4e 4f 4e 45 20 3d 20 30 78 30 30 30 30 30 30  _NONE = 0x000000
65e0: 34 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e  40 }..enum : uin
65f0: 74 20 7b 20 4f 46 5f 50 41 52 53 45 20 3d 20 30  t { OF_PARSE = 0
6600: 78 30 30 30 30 30 31 30 30 20 7d 0d 0a 65 6e 75  x00000100 }..enu
6610: 6d 20 3a 20 75 69 6e 74 20 7b 20 4f 46 5f 44 45  m : uint { OF_DE
6620: 4c 45 54 45 20 3d 20 30 78 30 30 30 30 30 32 30  LETE = 0x0000020
6630: 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  0 }..enum : uint
6640: 20 7b 20 4f 46 5f 56 45 52 49 46 59 20 3d 20 30   { OF_VERIFY = 0
6650: 78 30 30 30 30 30 34 30 30 20 7d 0d 0a 65 6e 75  x00000400 }..enu
6660: 6d 20 3a 20 75 69 6e 74 20 7b 20 4f 46 5f 43 41  m : uint { OF_CA
6670: 4e 43 45 4c 20 3d 20 30 78 30 30 30 30 30 38 30  NCEL = 0x0000080
6680: 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  0 }..enum : uint
6690: 20 7b 20 4f 46 5f 43 52 45 41 54 45 20 3d 20 30   { OF_CREATE = 0
66a0: 78 30 30 30 30 31 30 30 30 20 7d 0d 0a 65 6e 75  x00001000 }..enu
66b0: 6d 20 3a 20 75 69 6e 74 20 7b 20 4f 46 5f 50 52  m : uint { OF_PR
66c0: 4f 4d 50 54 20 3d 20 30 78 30 30 30 30 32 30 30  OMPT = 0x0000200
66d0: 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  0 }..enum : uint
66e0: 20 7b 20 4f 46 5f 45 58 49 53 54 20 3d 20 30 78   { OF_EXIST = 0x
66f0: 30 30 30 30 34 30 30 30 20 7d 0d 0a 65 6e 75 6d  00004000 }..enum
6700: 20 3a 20 75 69 6e 74 20 7b 20 4f 46 5f 52 45 4f   : uint { OF_REO
6710: 50 45 4e 20 3d 20 30 78 30 30 30 30 38 30 30 30  PEN = 0x00008000
6720: 20 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e   }....enum : uin
6730: 74 20 7b 20 4f 46 53 5f 4d 41 58 50 41 54 48 4e  t { OFS_MAXPATHN
6740: 41 4d 45 20 3d 20 31 32 38 20 7d 0d 0a 73 74 72  AME = 128 }..str
6750: 75 63 74 20 5f 4f 46 53 54 52 55 43 54 20 7b 0d  uct _OFSTRUCT {.
6760: 0a 20 20 42 59 54 45 20 63 42 79 74 65 73 3b 0d  .  BYTE cBytes;.
6770: 0a 20 20 42 59 54 45 20 66 46 69 78 65 64 44 69  .  BYTE fFixedDi
6780: 73 6b 3b 0d 0a 20 20 57 4f 52 44 20 6e 45 72 72  sk;..  WORD nErr
6790: 43 6f 64 65 3b 0d 0a 20 20 57 4f 52 44 20 52 65  Code;..  WORD Re
67a0: 73 65 72 76 65 64 31 3b 0d 0a 20 20 57 4f 52 44  served1;..  WORD
67b0: 20 52 65 73 65 72 76 65 64 32 3b 0d 0a 20 20 43   Reserved2;..  C
67c0: 48 41 52 20 73 7a 50 61 74 68 4e 61 6d 65 5b 4f  HAR szPathName[O
67d0: 46 53 5f 4d 41 58 50 41 54 48 4e 41 4d 45 5d 3b  FS_MAXPATHNAME];
67e0: 0d 0a 7d 0d 0a 61 6c 69 61 73 20 5f 4f 46 53 54  ..}..alias _OFST
67f0: 52 55 43 54 20 4f 46 53 54 52 55 43 54 3b 0d 0a  RUCT OFSTRUCT;..
6800: 61 6c 69 61 73 20 5f 4f 46 53 54 52 55 43 54 2a  alias _OFSTRUCT*
6810: 20 4c 50 4f 46 53 54 52 55 43 54 3b 0d 0a 61 6c   LPOFSTRUCT;..al
6820: 69 61 73 20 5f 4f 46 53 54 52 55 43 54 2a 20 50  ias _OFSTRUCT* P
6830: 4f 46 53 54 52 55 43 54 3b 0d 0a 0d 0a 2f 2f 20  OFSTRUCT;....// 
6840: 23 69 66 6e 64 65 66 20 4e 4f 57 49 4e 42 41 53  #ifndef NOWINBAS
6850: 45 49 4e 54 45 52 4c 4f 43 4b 0d 0a 0d 0a 2f 2f  EINTERLOCK....//
6860: 20 23 69 66 6e 64 65 66 20 5f 4e 54 4f 53 5f 0d   #ifndef _NTOS_.
6870: 0a 0d 0a 2f 2f 20 23 69 66 20 64 65 66 69 6e 65  ...// #if define
6880: 64 28 5f 4d 5f 49 41 36 34 29 20 26 26 20 21 64  d(_M_IA64) && !d
6890: 65 66 69 6e 65 64 28 52 43 5f 49 4e 56 4f 4b 45  efined(RC_INVOKE
68a0: 44 29 0d 0a 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f  D)....// #...../
68b0: 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 2e 2e 2e 0d  / #.....// #....
68c0: 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 2e 2e  .// #.....// #..
68d0: 2e 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23  ...// #.....// #
68e0: 2e 2e 2e 0d 0a 0d 0a 2f 2f 20 2e 2e 2e 0d 0a 0d  .......// ......
68f0: 0a 2f 2f 20 2e 2e 2e 0d 0a 0d 0a 2f 2f 20 2e 2e  .// .......// ..
6900: 2e 0d 0a 0d 0a 2f 2f 20 2e 2e 2e 0d 0a 0d 0a 2f  .....// ......./
6910: 2f 20 2e 2e 2e 0d 0a 0d 0a 2f 2f 20 2e 2e 2e 0d  / .......// ....
6920: 0a 0d 0a 2f 2f 20 2e 2e 2e 0d 0a 0d 0a 2f 2f 20  ...// .......// 
6930: 23 2e 2e 2e 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f  #.....// #...../
6940: 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 2e 2e 2e 0d  / #.....// #....
6950: 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 2e 2e  .// #.....// #..
6960: 2e 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 0d 0a 2f 2f  ...// #.......//
6970: 20 23 65 6c 69 66 20 64 65 66 69 6e 65 64 28 5f   #elif defined(_
6980: 4d 5f 41 4d 44 36 34 29 20 26 26 20 21 64 65 66  M_AMD64) && !def
6990: 69 6e 65 64 28 52 43 5f 49 4e 56 4f 4b 45 44 29  ined(RC_INVOKED)
69a0: 0d 0a 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20  ....// #.....// 
69b0: 23 2e 2e 2e 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f  #.....// #...../
69c0: 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 2e 2e 2e 0d  / #.....// #....
69d0: 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 2e 2e  .// #.....// #..
69e0: 2e 0d 0a 0d 0a 2f 2f 20 2e 2e 2e 0d 0a 0d 0a 2f  .....// ......./
69f0: 2f 20 2e 2e 2e 0d 0a 0d 0a 2f 2f 20 2e 2e 2e 0d  / .......// ....
6a00: 0a 0d 0a 2f 2f 20 2e 2e 2e 0d 0a 0d 0a 2f 2f 20  ...// .......// 
6a10: 2e 2e 2e 0d 0a 0d 0a 2f 2f 20 2e 2e 2e 0d 0a 0d  .......// ......
6a20: 0a 2f 2f 20 2e 2e 2e 0d 0a 0d 0a 2f 2f 20 23 2e  .// .......// #.
6a30: 2e 2e 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20  ....// #.....// 
6a40: 23 2e 2e 2e 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f  #.....// #...../
6a50: 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 2e 2e 2e 0d  / #.....// #....
6a60: 0a 2f 2f 20 23 2e 2e 2e 0d 0a 0d 0a 2f 2f 20 23  .// #.......// #
6a70: 65 6c 73 65 20 20 20 20 20 20 20 20 20 20 20 2f  else           /
6a80: 2f 20 58 38 36 20 69 6e 74 65 72 6c 6f 63 6b 65  / X86 interlocke
6a90: 64 20 64 65 66 69 6e 69 74 69 6f 6e 73 0d 0a 0d  d definitions...
6aa0: 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29  .extern(Windows)
6ab0: 20 65 78 70 6f 72 74 20 4c 4f 4e 47 20 49 6e 74   export LONG Int
6ac0: 65 72 6c 6f 63 6b 65 64 49 6e 63 72 65 6d 65 6e  erlockedIncremen
6ad0: 74 28 0d 0a 20 20 4c 4f 4e 47 20 2a 6c 70 41 64  t(..  LONG *lpAd
6ae0: 64 65 6e 64 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e  dend);....extern
6af0: 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
6b00: 20 4c 4f 4e 47 20 49 6e 74 65 72 6c 6f 63 6b 65   LONG Interlocke
6b10: 64 44 65 63 72 65 6d 65 6e 74 28 0d 0a 20 20 4c  dDecrement(..  L
6b20: 4f 4e 47 20 2a 6c 70 41 64 64 65 6e 64 29 3b 0d  ONG *lpAddend);.
6b30: 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ...extern(Window
6b40: 73 29 20 65 78 70 6f 72 74 20 4c 4f 4e 47 20 49  s) export LONG I
6b50: 6e 74 65 72 6c 6f 63 6b 65 64 45 78 63 68 61 6e  nterlockedExchan
6b60: 67 65 28 0d 0a 20 20 4c 4f 4e 47 20 2a 54 61 72  ge(..  LONG *Tar
6b70: 67 65 74 2c 0d 0a 20 20 4c 4f 4e 47 20 56 61 6c  get,..  LONG Val
6b80: 75 65 29 3b 0d 0a 0d 0a 76 6f 69 64 2a 20 49 6e  ue);....void* In
6b90: 74 65 72 6c 6f 63 6b 65 64 45 78 63 68 61 6e 67  terlockedExchang
6ba0: 65 50 6f 69 6e 74 65 72 28 76 6f 69 64 2a 2a 20  ePointer(void** 
6bb0: 74 2c 20 76 6f 69 64 2a 20 76 29 7b 20 72 65 74  t, void* v){ ret
6bc0: 75 72 6e 20 63 61 73 74 28 76 6f 69 64 2a 29 49  urn cast(void*)I
6bd0: 6e 74 65 72 6c 6f 63 6b 65 64 45 78 63 68 61 6e  nterlockedExchan
6be0: 67 65 28 63 61 73 74 28 50 4c 4f 4e 47 29 74 2c  ge(cast(PLONG)t,
6bf0: 20 63 61 73 74 28 4c 4f 4e 47 29 76 29 3b 20 7d   cast(LONG)v); }
6c00: 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f  ....extern(Windo
6c10: 77 73 29 20 65 78 70 6f 72 74 20 4c 4f 4e 47 20  ws) export LONG 
6c20: 49 6e 74 65 72 6c 6f 63 6b 65 64 45 78 63 68 61  InterlockedExcha
6c30: 6e 67 65 41 64 64 28 0d 0a 20 20 4c 4f 4e 47 20  ngeAdd(..  LONG 
6c40: 2a 41 64 64 65 6e 64 2c 0d 0a 20 20 4c 4f 4e 47  *Addend,..  LONG
6c50: 20 56 61 6c 75 65 29 3b 0d 0a 0d 0a 65 78 74 65   Value);....exte
6c60: 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
6c70: 72 74 20 4c 4f 4e 47 20 49 6e 74 65 72 6c 6f 63  rt LONG Interloc
6c80: 6b 65 64 43 6f 6d 70 61 72 65 45 78 63 68 61 6e  kedCompareExchan
6c90: 67 65 28 0d 0a 20 20 4c 4f 4e 47 20 2a 44 65 73  ge(..  LONG *Des
6ca0: 74 69 6e 61 74 69 6f 6e 2c 0d 0a 20 20 4c 4f 4e  tination,..  LON
6cb0: 47 20 45 78 63 68 61 6e 67 65 2c 0d 0a 20 20 4c  G Exchange,..  L
6cc0: 4f 4e 47 20 43 6f 6d 70 65 72 61 6e 64 29 3b 0d  ONG Comperand);.
6cd0: 0a 0d 0a 2f 2f 20 23 69 66 64 65 66 20 5f 5f 63  ...// #ifdef __c
6ce0: 70 6c 75 73 70 6c 75 73 0d 0a 0d 0a 50 56 4f 49  plusplus....PVOI
6cf0: 44 20 5f 5f 49 6e 6c 69 6e 65 49 6e 74 65 72 6c  D __InlineInterl
6d00: 6f 63 6b 65 64 43 6f 6d 70 61 72 65 45 78 63 68  ockedCompareExch
6d10: 61 6e 67 65 50 6f 69 6e 74 65 72 28 50 56 4f 49  angePointer(PVOI
6d20: 44 2a 20 44 65 73 74 69 6e 61 74 69 6f 6e 2c 20  D* Destination, 
6d30: 50 56 4f 49 44 20 45 78 43 68 61 6e 67 65 2c 20  PVOID ExChange, 
6d40: 50 56 4f 49 44 20 43 6f 6d 70 65 72 61 6e 64 29  PVOID Comperand)
6d50: 7b 20 72 65 74 75 72 6e 28 63 61 73 74 28 50 56  { return(cast(PV
6d60: 4f 49 44 29 63 61 73 74 28 4c 4f 4e 47 5f 50 54  OID)cast(LONG_PT
6d70: 52 29 49 6e 74 65 72 6c 6f 63 6b 65 64 43 6f 6d  R)InterlockedCom
6d80: 70 61 72 65 45 78 63 68 61 6e 67 65 28 63 61 73  pareExchange(cas
6d90: 74 28 4c 4f 4e 47 2a 29 44 65 73 74 69 6e 61 74  t(LONG*)Destinat
6da0: 69 6f 6e 2c 20 63 61 73 74 28 4c 4f 4e 47 29 63  ion, cast(LONG)c
6db0: 61 73 74 28 4c 4f 4e 47 5f 50 54 52 29 45 78 43  ast(LONG_PTR)ExC
6dc0: 68 61 6e 67 65 2c 20 63 61 73 74 28 4c 4f 4e 47  hange, cast(LONG
6dd0: 29 63 61 73 74 28 4c 4f 4e 47 5f 50 54 52 29 43  )cast(LONG_PTR)C
6de0: 6f 6d 70 65 72 61 6e 64 29 29 3b 20 7d 0d 0a 61  omperand)); }..a
6df0: 6c 69 61 73 20 5f 5f 49 6e 6c 69 6e 65 49 6e 74  lias __InlineInt
6e00: 65 72 6c 6f 63 6b 65 64 43 6f 6d 70 61 72 65 45  erlockedCompareE
6e10: 78 63 68 61 6e 67 65 50 6f 69 6e 74 65 72 20 49  xchangePointer I
6e20: 6e 74 65 72 6c 6f 63 6b 65 64 43 6f 6d 70 61 72  nterlockedCompar
6e30: 65 45 78 63 68 61 6e 67 65 50 6f 69 6e 74 65 72  eExchangePointer
6e40: 3b 0d 0a 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 0d  ;....// #else...
6e50: 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 2e 2e 2e  .// #.....// ...
6e60: 0d 0a 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2a  ....// #endif /*
6e70: 20 5f 5f 63 70 6c 75 73 70 6c 75 73 20 2a 2f 0d   __cplusplus */.
6e80: 0a 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2a 20  ...// #endif /* 
6e90: 58 38 36 20 7c 20 49 41 36 34 20 2a 2f 0d 0a 0d  X86 | IA64 */...
6ea0: 0a 2f 2f 20 23 69 66 20 64 65 66 69 6e 65 64 28  .// #if defined(
6eb0: 5f 53 4c 49 53 54 5f 48 45 41 44 45 52 5f 29 20  _SLIST_HEADER_) 
6ec0: 26 26 20 21 64 65 66 69 6e 65 64 28 5f 4e 54 4f  && !defined(_NTO
6ed0: 53 50 5f 29 0d 0a 0d 0a 2f 2f 20 2e 2e 2e 0d 0a  SP_)....// .....
6ee0: 0d 0a 2f 2f 20 2e 2e 2e 0d 0a 0d 0a 2f 2f 20 2e  ..// .......// .
6ef0: 2e 2e 0d 0a 0d 0a 2f 2f 20 2e 2e 2e 0d 0a 0d 0a  ......// .......
6f00: 2f 2f 20 2e 2e 2e 0d 0a 0d 0a 2f 2f 20 23 65 6e  // .......// #en
6f10: 64 69 66 20 2f 2a 20 5f 53 4c 49 53 54 5f 48 45  dif /* _SLIST_HE
6f20: 41 44 45 52 5f 20 2a 2f 0d 0a 2f 2f 20 23 65 6e  ADER_ */..// #en
6f30: 64 69 66 20 2f 2a 20 5f 4e 54 4f 53 5f 20 2a 2f  dif /* _NTOS_ */
6f40: 0d 0a 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2a  ....// #endif /*
6f50: 20 4e 4f 57 49 4e 42 41 53 45 49 4e 54 45 52 4c   NOWINBASEINTERL
6f60: 4f 43 4b 20 2a 2f 0d 0a 0d 0a 65 78 74 65 72 6e  OCK */....extern
6f70: 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
6f80: 20 42 4f 4f 4c 20 46 72 65 65 52 65 73 6f 75 72   BOOL FreeResour
6f90: 63 65 28 0d 0a 20 20 48 47 4c 4f 42 41 4c 20 68  ce(..  HGLOBAL h
6fa0: 52 65 73 44 61 74 61 29 3b 0d 0a 0d 0a 65 78 74  ResData);....ext
6fb0: 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
6fc0: 6f 72 74 20 4c 50 56 4f 49 44 20 4c 6f 63 6b 52  ort LPVOID LockR
6fd0: 65 73 6f 75 72 63 65 28 0d 0a 20 20 48 47 4c 4f  esource(..  HGLO
6fe0: 42 41 4c 20 68 52 65 73 44 61 74 61 29 3b 0d 0a  BAL hResData);..
6ff0: 0d 0a 2f 2f 20 23 64 65 66 69 6e 65 20 55 6e 6c  ..// #define Unl
7000: 6f 63 6b 52 65 73 6f 75 72 63 65 28 68 52 65 73  ockResource(hRes
7010: 44 61 74 61 29 20 28 28 68 52 65 73 44 61 74 61  Data) ((hResData
7020: 29 2c 20 30 29 0d 0a 65 6e 75 6d 20 3a 20 75 69  ), 0)..enum : ui
7030: 6e 74 20 7b 20 4d 41 58 49 4e 54 41 54 4f 4d 20  nt { MAXINTATOM 
7040: 3d 20 30 78 43 30 30 30 20 7d 0d 0a 2f 2f 20 23  = 0xC000 }..// #
7050: 64 65 66 69 6e 65 20 4d 41 4b 45 49 4e 54 41 54  define MAKEINTAT
7060: 4f 4d 28 69 29 20 28 4c 50 54 53 54 52 29 28 28  OM(i) (LPTSTR)((
7070: 55 4c 4f 4e 47 5f 50 54 52 29 28 28 57 4f 52 44  ULONG_PTR)((WORD
7080: 29 28 69 29 29 29 0d 0a 65 6e 75 6d 20 3a 20 41  )(i)))..enum : A
7090: 54 4f 4d 20 7b 20 49 4e 56 41 4c 49 44 5f 41 54  TOM { INVALID_AT
70a0: 4f 4d 20 3d 20 30 20 7d 0d 0a 0d 0a 2f 2f 20 23  OM = 0 }....// #
70b0: 69 66 6e 64 65 66 20 5f 4d 41 43 0d 0a 2f 2f 20  ifndef _MAC..// 
70c0: 3f 3f 3f 0d 0a 2f 2f 20 3f 3f 3f 0d 0a 2f 2f 20  ???..// ???..// 
70d0: 23 65 6c 73 65 0d 0a 2f 2f 20 2e 2e 2e 0d 0a 2f  #else..// ...../
70e0: 2f 20 23 65 6e 64 69 66 0d 0a 2f 2f 20 57 69 6e  / #endif..// Win
70f0: 4d 61 69 6e 0d 0a 0d 0a 65 78 74 65 72 6e 28 57  Main....extern(W
7100: 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42  indows) export B
7110: 4f 4f 4c 20 46 72 65 65 4c 69 62 72 61 72 79 28  OOL FreeLibrary(
7120: 0d 0a 20 20 48 4d 4f 44 55 4c 45 20 68 4c 69 62  ..  HMODULE hLib
7130: 4d 6f 64 75 6c 65 29 3b 0d 0a 0d 0a 65 78 74 65  Module);....exte
7140: 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
7150: 72 74 20 56 4f 49 44 20 46 72 65 65 4c 69 62 72  rt VOID FreeLibr
7160: 61 72 79 41 6e 64 45 78 69 74 54 68 72 65 61 64  aryAndExitThread
7170: 28 0d 0a 20 20 48 4d 4f 44 55 4c 45 20 68 4c 69  (..  HMODULE hLi
7180: 62 4d 6f 64 75 6c 65 2c 0d 0a 20 20 44 57 4f 52  bModule,..  DWOR
7190: 44 20 64 77 45 78 69 74 43 6f 64 65 29 3b 0d 0a  D dwExitCode);..
71a0: 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
71b0: 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 44 69  ) export BOOL Di
71c0: 73 61 62 6c 65 54 68 72 65 61 64 4c 69 62 72 61  sableThreadLibra
71d0: 72 79 43 61 6c 6c 73 28 0d 0a 20 20 48 4d 4f 44  ryCalls(..  HMOD
71e0: 55 4c 45 20 68 4c 69 62 4d 6f 64 75 6c 65 29 3b  ULE hLibModule);
71f0: 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f  ....extern(Windo
7200: 77 73 29 20 65 78 70 6f 72 74 20 46 41 52 50 52  ws) export FARPR
7210: 4f 43 20 47 65 74 50 72 6f 63 41 64 64 72 65 73  OC GetProcAddres
7220: 73 28 0d 0a 20 20 48 4d 4f 44 55 4c 45 20 68 4d  s(..  HMODULE hM
7230: 6f 64 75 6c 65 2c 0d 0a 20 20 4c 50 43 53 54 52  odule,..  LPCSTR
7240: 20 6c 70 50 72 6f 63 4e 61 6d 65 29 3b 0d 0a 0d   lpProcName);...
7250: 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29  .extern(Windows)
7260: 20 65 78 70 6f 72 74 20 44 57 4f 52 44 20 47 65   export DWORD Ge
7270: 74 56 65 72 73 69 6f 6e 28 29 3b 0d 0a 0d 0a 65  tVersion();....e
7280: 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
7290: 78 70 6f 72 74 20 48 47 4c 4f 42 41 4c 20 47 6c  xport HGLOBAL Gl
72a0: 6f 62 61 6c 41 6c 6c 6f 63 28 0d 0a 20 20 55 49  obalAlloc(..  UI
72b0: 4e 54 20 75 46 6c 61 67 73 2c 0d 0a 20 20 53 49  NT uFlags,..  SI
72c0: 5a 45 5f 54 20 64 77 42 79 74 65 73 29 3b 0d 0a  ZE_T dwBytes);..
72d0: 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
72e0: 29 20 65 78 70 6f 72 74 20 48 47 4c 4f 42 41 4c  ) export HGLOBAL
72f0: 20 47 6c 6f 62 61 6c 52 65 41 6c 6c 6f 63 28 0d   GlobalReAlloc(.
7300: 0a 20 20 48 47 4c 4f 42 41 4c 20 68 4d 65 6d 2c  .  HGLOBAL hMem,
7310: 0d 0a 20 20 53 49 5a 45 5f 54 20 64 77 42 79 74  ..  SIZE_T dwByt
7320: 65 73 2c 0d 0a 20 20 55 49 4e 54 20 75 46 6c 61  es,..  UINT uFla
7330: 67 73 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57  gs);....extern(W
7340: 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 53  indows) export S
7350: 49 5a 45 5f 54 20 47 6c 6f 62 61 6c 53 69 7a 65  IZE_T GlobalSize
7360: 28 0d 0a 20 20 48 47 4c 4f 42 41 4c 20 68 4d 65  (..  HGLOBAL hMe
7370: 6d 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69  m);....extern(Wi
7380: 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 55 49  ndows) export UI
7390: 4e 54 20 47 6c 6f 62 61 6c 46 6c 61 67 73 28 0d  NT GlobalFlags(.
73a0: 0a 20 20 48 47 4c 4f 42 41 4c 20 68 4d 65 6d 29  .  HGLOBAL hMem)
73b0: 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  ;....extern(Wind
73c0: 6f 77 73 29 20 65 78 70 6f 72 74 20 4c 50 56 4f  ows) export LPVO
73d0: 49 44 20 47 6c 6f 62 61 6c 4c 6f 63 6b 28 0d 0a  ID GlobalLock(..
73e0: 20 20 48 47 4c 4f 42 41 4c 20 68 4d 65 6d 29 3b    HGLOBAL hMem);
73f0: 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f  ....extern(Windo
7400: 77 73 29 20 65 78 70 6f 72 74 20 48 47 4c 4f 42  ws) export HGLOB
7410: 41 4c 20 47 6c 6f 62 61 6c 48 61 6e 64 6c 65 28  AL GlobalHandle(
7420: 0d 0a 20 20 4c 50 43 56 4f 49 44 20 70 4d 65 6d  ..  LPCVOID pMem
7430: 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e  );....extern(Win
7440: 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f  dows) export BOO
7450: 4c 20 47 6c 6f 62 61 6c 55 6e 6c 6f 63 6b 28 0d  L GlobalUnlock(.
7460: 0a 20 20 48 47 4c 4f 42 41 4c 20 68 4d 65 6d 29  .  HGLOBAL hMem)
7470: 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  ;....extern(Wind
7480: 6f 77 73 29 20 65 78 70 6f 72 74 20 48 47 4c 4f  ows) export HGLO
7490: 42 41 4c 20 47 6c 6f 62 61 6c 46 72 65 65 28 0d  BAL GlobalFree(.
74a0: 0a 20 20 48 47 4c 4f 42 41 4c 20 68 4d 65 6d 29  .  HGLOBAL hMem)
74b0: 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  ;....extern(Wind
74c0: 6f 77 73 29 20 65 78 70 6f 72 74 20 53 49 5a 45  ows) export SIZE
74d0: 5f 54 20 47 6c 6f 62 61 6c 43 6f 6d 70 61 63 74  _T GlobalCompact
74e0: 28 0d 0a 20 20 44 57 4f 52 44 20 64 77 4d 69 6e  (..  DWORD dwMin
74f0: 46 72 65 65 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e  Free);....extern
7500: 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
7510: 20 56 4f 49 44 20 47 6c 6f 62 61 6c 46 69 78 28   VOID GlobalFix(
7520: 0d 0a 20 20 48 47 4c 4f 42 41 4c 20 68 4d 65 6d  ..  HGLOBAL hMem
7530: 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e  );....extern(Win
7540: 64 6f 77 73 29 20 65 78 70 6f 72 74 20 56 4f 49  dows) export VOI
7550: 44 20 47 6c 6f 62 61 6c 55 6e 66 69 78 28 0d 0a  D GlobalUnfix(..
7560: 20 20 48 47 4c 4f 42 41 4c 20 68 4d 65 6d 29 3b    HGLOBAL hMem);
7570: 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f  ....extern(Windo
7580: 77 73 29 20 65 78 70 6f 72 74 20 4c 50 56 4f 49  ws) export LPVOI
7590: 44 20 47 6c 6f 62 61 6c 57 69 72 65 28 0d 0a 20  D GlobalWire(.. 
75a0: 20 48 47 4c 4f 42 41 4c 20 68 4d 65 6d 29 3b 0d   HGLOBAL hMem);.
75b0: 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ...extern(Window
75c0: 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 47  s) export BOOL G
75d0: 6c 6f 62 61 6c 55 6e 57 69 72 65 28 0d 0a 20 20  lobalUnWire(..  
75e0: 48 47 4c 4f 42 41 4c 20 68 4d 65 6d 29 3b 0d 0a  HGLOBAL hMem);..
75f0: 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
7600: 29 20 65 78 70 6f 72 74 20 56 4f 49 44 20 47 6c  ) export VOID Gl
7610: 6f 62 61 6c 4d 65 6d 6f 72 79 53 74 61 74 75 73  obalMemoryStatus
7620: 28 0d 0a 20 20 4c 50 4d 45 4d 4f 52 59 53 54 41  (..  LPMEMORYSTA
7630: 54 55 53 20 6c 70 42 75 66 66 65 72 29 3b 0d 0a  TUS lpBuffer);..
7640: 0d 0a 73 74 72 75 63 74 20 5f 4d 45 4d 4f 52 59  ..struct _MEMORY
7650: 53 54 41 54 55 53 45 58 20 7b 0d 0a 20 20 44 57  STATUSEX {..  DW
7660: 4f 52 44 20 64 77 4c 65 6e 67 74 68 3b 0d 0a 20  ORD dwLength;.. 
7670: 20 44 57 4f 52 44 20 64 77 4d 65 6d 6f 72 79 4c   DWORD dwMemoryL
7680: 6f 61 64 3b 0d 0a 20 20 44 57 4f 52 44 4c 4f 4e  oad;..  DWORDLON
7690: 47 20 75 6c 6c 54 6f 74 61 6c 50 68 79 73 3b 0d  G ullTotalPhys;.
76a0: 0a 20 20 44 57 4f 52 44 4c 4f 4e 47 20 75 6c 6c  .  DWORDLONG ull
76b0: 41 76 61 69 6c 50 68 79 73 3b 0d 0a 20 20 44 57  AvailPhys;..  DW
76c0: 4f 52 44 4c 4f 4e 47 20 75 6c 6c 54 6f 74 61 6c  ORDLONG ullTotal
76d0: 50 61 67 65 46 69 6c 65 3b 0d 0a 20 20 44 57 4f  PageFile;..  DWO
76e0: 52 44 4c 4f 4e 47 20 75 6c 6c 41 76 61 69 6c 50  RDLONG ullAvailP
76f0: 61 67 65 46 69 6c 65 3b 0d 0a 20 20 44 57 4f 52  ageFile;..  DWOR
7700: 44 4c 4f 4e 47 20 75 6c 6c 54 6f 74 61 6c 56 69  DLONG ullTotalVi
7710: 72 74 75 61 6c 3b 0d 0a 20 20 44 57 4f 52 44 4c  rtual;..  DWORDL
7720: 4f 4e 47 20 75 6c 6c 41 76 61 69 6c 56 69 72 74  ONG ullAvailVirt
7730: 75 61 6c 3b 0d 0a 20 20 44 57 4f 52 44 4c 4f 4e  ual;..  DWORDLON
7740: 47 20 75 6c 6c 41 76 61 69 6c 45 78 74 65 6e 64  G ullAvailExtend
7750: 65 64 56 69 72 74 75 61 6c 3b 0d 0a 7d 0d 0a 61  edVirtual;..}..a
7760: 6c 69 61 73 20 5f 4d 45 4d 4f 52 59 53 54 41 54  lias _MEMORYSTAT
7770: 55 53 45 58 20 4d 45 4d 4f 52 59 53 54 41 54 55  USEX MEMORYSTATU
7780: 53 45 58 3b 0d 0a 61 6c 69 61 73 20 5f 4d 45 4d  SEX;..alias _MEM
7790: 4f 52 59 53 54 41 54 55 53 45 58 2a 20 4c 50 4d  ORYSTATUSEX* LPM
77a0: 45 4d 4f 52 59 53 54 41 54 55 53 45 58 3b 0d 0a  EMORYSTATUSEX;..
77b0: 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
77c0: 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 47 6c  ) export BOOL Gl
77d0: 6f 62 61 6c 4d 65 6d 6f 72 79 53 74 61 74 75 73  obalMemoryStatus
77e0: 45 78 28 0d 0a 20 20 4c 50 4d 45 4d 4f 52 59 53  Ex(..  LPMEMORYS
77f0: 54 41 54 55 53 45 58 20 6c 70 42 75 66 66 65 72  TATUSEX lpBuffer
7800: 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e  );....extern(Win
7810: 64 6f 77 73 29 20 65 78 70 6f 72 74 20 48 4c 4f  dows) export HLO
7820: 43 41 4c 20 4c 6f 63 61 6c 41 6c 6c 6f 63 28 0d  CAL LocalAlloc(.
7830: 0a 20 20 55 49 4e 54 20 75 46 6c 61 67 73 2c 0d  .  UINT uFlags,.
7840: 0a 20 20 53 49 5a 45 5f 54 20 75 42 79 74 65 73  .  SIZE_T uBytes
7850: 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e  );....extern(Win
7860: 64 6f 77 73 29 20 65 78 70 6f 72 74 20 48 4c 4f  dows) export HLO
7870: 43 41 4c 20 4c 6f 63 61 6c 52 65 41 6c 6c 6f 63  CAL LocalReAlloc
7880: 28 0d 0a 20 20 48 4c 4f 43 41 4c 20 68 4d 65 6d  (..  HLOCAL hMem
7890: 2c 0d 0a 20 20 53 49 5a 45 5f 54 20 75 42 79 74  ,..  SIZE_T uByt
78a0: 65 73 2c 0d 0a 20 20 55 49 4e 54 20 75 46 6c 61  es,..  UINT uFla
78b0: 67 73 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57  gs);....extern(W
78c0: 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 4c  indows) export L
78d0: 50 56 4f 49 44 20 4c 6f 63 61 6c 4c 6f 63 6b 28  PVOID LocalLock(
78e0: 0d 0a 20 20 48 4c 4f 43 41 4c 20 68 4d 65 6d 29  ..  HLOCAL hMem)
78f0: 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  ;....extern(Wind
7900: 6f 77 73 29 20 65 78 70 6f 72 74 20 48 4c 4f 43  ows) export HLOC
7910: 41 4c 20 4c 6f 63 61 6c 48 61 6e 64 6c 65 28 0d  AL LocalHandle(.
7920: 0a 20 20 4c 50 43 56 4f 49 44 20 70 4d 65 6d 29  .  LPCVOID pMem)
7930: 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  ;....extern(Wind
7940: 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c  ows) export BOOL
7950: 20 4c 6f 63 61 6c 55 6e 6c 6f 63 6b 28 0d 0a 20   LocalUnlock(.. 
7960: 20 48 4c 4f 43 41 4c 20 68 4d 65 6d 29 3b 0d 0a   HLOCAL hMem);..
7970: 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
7980: 29 20 65 78 70 6f 72 74 20 53 49 5a 45 5f 54 20  ) export SIZE_T 
7990: 4c 6f 63 61 6c 53 69 7a 65 28 0d 0a 20 20 48 4c  LocalSize(..  HL
79a0: 4f 43 41 4c 20 68 4d 65 6d 29 3b 0d 0a 0d 0a 65  OCAL hMem);....e
79b0: 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
79c0: 78 70 6f 72 74 20 55 49 4e 54 20 4c 6f 63 61 6c  xport UINT Local
79d0: 46 6c 61 67 73 28 0d 0a 20 20 48 4c 4f 43 41 4c  Flags(..  HLOCAL
79e0: 20 68 4d 65 6d 29 3b 0d 0a 0d 0a 65 78 74 65 72   hMem);....exter
79f0: 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
7a00: 74 20 48 4c 4f 43 41 4c 20 4c 6f 63 61 6c 46 72  t HLOCAL LocalFr
7a10: 65 65 28 0d 0a 20 20 48 4c 4f 43 41 4c 20 68 4d  ee(..  HLOCAL hM
7a20: 65 6d 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57  em);....extern(W
7a30: 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 53  indows) export S
7a40: 49 5a 45 5f 54 20 4c 6f 63 61 6c 53 68 72 69 6e  IZE_T LocalShrin
7a50: 6b 28 0d 0a 20 20 48 4c 4f 43 41 4c 20 68 4d 65  k(..  HLOCAL hMe
7a60: 6d 2c 0d 0a 20 20 55 49 4e 54 20 63 62 4e 65 77  m,..  UINT cbNew
7a70: 53 69 7a 65 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e  Size);....extern
7a80: 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
7a90: 20 53 49 5a 45 5f 54 20 4c 6f 63 61 6c 43 6f 6d   SIZE_T LocalCom
7aa0: 70 61 63 74 28 0d 0a 20 20 55 49 4e 54 20 75 4d  pact(..  UINT uM
7ab0: 69 6e 46 72 65 65 29 3b 0d 0a 0d 0a 65 78 74 65  inFree);....exte
7ac0: 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
7ad0: 72 74 20 42 4f 4f 4c 20 46 6c 75 73 68 49 6e 73  rt BOOL FlushIns
7ae0: 74 72 75 63 74 69 6f 6e 43 61 63 68 65 28 0d 0a  tructionCache(..
7af0: 20 20 48 41 4e 44 4c 45 20 68 50 72 6f 63 65 73    HANDLE hProces
7b00: 73 2c 0d 0a 20 20 4c 50 43 56 4f 49 44 20 6c 70  s,..  LPCVOID lp
7b10: 42 61 73 65 41 64 64 72 65 73 73 2c 0d 0a 20 20  BaseAddress,..  
7b20: 53 49 5a 45 5f 54 20 64 77 53 69 7a 65 29 3b 0d  SIZE_T dwSize);.
7b30: 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ...extern(Window
7b40: 73 29 20 65 78 70 6f 72 74 20 4c 50 56 4f 49 44  s) export LPVOID
7b50: 20 56 69 72 74 75 61 6c 41 6c 6c 6f 63 28 0d 0a   VirtualAlloc(..
7b60: 20 20 4c 50 56 4f 49 44 20 6c 70 41 64 64 72 65    LPVOID lpAddre
7b70: 73 73 2c 0d 0a 20 20 53 49 5a 45 5f 54 20 64 77  ss,..  SIZE_T dw
7b80: 53 69 7a 65 2c 0d 0a 20 20 44 57 4f 52 44 20 66  Size,..  DWORD f
7b90: 6c 41 6c 6c 6f 63 61 74 69 6f 6e 54 79 70 65 2c  lAllocationType,
7ba0: 0d 0a 20 20 44 57 4f 52 44 20 66 6c 50 72 6f 74  ..  DWORD flProt
7bb0: 65 63 74 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28  ect);....extern(
7bc0: 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
7bd0: 42 4f 4f 4c 20 56 69 72 74 75 61 6c 46 72 65 65  BOOL VirtualFree
7be0: 28 0d 0a 20 20 4c 50 56 4f 49 44 20 6c 70 41 64  (..  LPVOID lpAd
7bf0: 64 72 65 73 73 2c 0d 0a 20 20 53 49 5a 45 5f 54  dress,..  SIZE_T
7c00: 20 64 77 53 69 7a 65 2c 0d 0a 20 20 44 57 4f 52   dwSize,..  DWOR
7c10: 44 20 64 77 46 72 65 65 54 79 70 65 29 3b 0d 0a  D dwFreeType);..
7c20: 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
7c30: 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 56 69  ) export BOOL Vi
7c40: 72 74 75 61 6c 50 72 6f 74 65 63 74 28 0d 0a 20  rtualProtect(.. 
7c50: 20 4c 50 56 4f 49 44 20 6c 70 41 64 64 72 65 73   LPVOID lpAddres
7c60: 73 2c 0d 0a 20 20 53 49 5a 45 5f 54 20 64 77 53  s,..  SIZE_T dwS
7c70: 69 7a 65 2c 0d 0a 20 20 44 57 4f 52 44 20 66 6c  ize,..  DWORD fl
7c80: 4e 65 77 50 72 6f 74 65 63 74 2c 0d 0a 20 20 50  NewProtect,..  P
7c90: 44 57 4f 52 44 20 6c 70 66 6c 4f 6c 64 50 72 6f  DWORD lpflOldPro
7ca0: 74 65 63 74 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e  tect);....extern
7cb0: 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
7cc0: 20 53 49 5a 45 5f 54 20 56 69 72 74 75 61 6c 51   SIZE_T VirtualQ
7cd0: 75 65 72 79 28 0d 0a 20 20 4c 50 43 56 4f 49 44  uery(..  LPCVOID
7ce0: 20 6c 70 41 64 64 72 65 73 73 2c 0d 0a 20 20 50   lpAddress,..  P
7cf0: 4d 45 4d 4f 52 59 5f 42 41 53 49 43 5f 49 4e 46  MEMORY_BASIC_INF
7d00: 4f 52 4d 41 54 49 4f 4e 20 6c 70 42 75 66 66 65  ORMATION lpBuffe
7d10: 72 2c 0d 0a 20 20 53 49 5a 45 5f 54 20 64 77 4c  r,..  SIZE_T dwL
7d20: 65 6e 67 74 68 29 3b 0d 0a 0d 0a 65 78 74 65 72  ength);....exter
7d30: 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
7d40: 74 20 4c 50 56 4f 49 44 20 56 69 72 74 75 61 6c  t LPVOID Virtual
7d50: 41 6c 6c 6f 63 45 78 28 0d 0a 20 20 48 41 4e 44  AllocEx(..  HAND
7d60: 4c 45 20 68 50 72 6f 63 65 73 73 2c 0d 0a 20 20  LE hProcess,..  
7d70: 4c 50 56 4f 49 44 20 6c 70 41 64 64 72 65 73 73  LPVOID lpAddress
7d80: 2c 0d 0a 20 20 53 49 5a 45 5f 54 20 64 77 53 69  ,..  SIZE_T dwSi
7d90: 7a 65 2c 0d 0a 20 20 44 57 4f 52 44 20 66 6c 41  ze,..  DWORD flA
7da0: 6c 6c 6f 63 61 74 69 6f 6e 54 79 70 65 2c 0d 0a  llocationType,..
7db0: 20 20 44 57 4f 52 44 20 66 6c 50 72 6f 74 65 63    DWORD flProtec
7dc0: 74 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69  t);....extern(Wi
7dd0: 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 55 49  ndows) export UI
7de0: 4e 54 20 47 65 74 57 72 69 74 65 57 61 74 63 68  NT GetWriteWatch
7df0: 28 0d 0a 20 20 44 57 4f 52 44 20 64 77 46 6c 61  (..  DWORD dwFla
7e00: 67 73 2c 0d 0a 20 20 50 56 4f 49 44 20 6c 70 42  gs,..  PVOID lpB
7e10: 61 73 65 41 64 64 72 65 73 73 2c 0d 0a 20 20 53  aseAddress,..  S
7e20: 49 5a 45 5f 54 20 64 77 52 65 67 69 6f 6e 53 69  IZE_T dwRegionSi
7e30: 7a 65 2c 0d 0a 20 20 50 56 4f 49 44 20 2a 6c 70  ze,..  PVOID *lp
7e40: 41 64 64 72 65 73 73 65 73 2c 0d 0a 20 20 50 55  Addresses,..  PU
7e50: 4c 4f 4e 47 5f 50 54 52 20 6c 70 64 77 43 6f 75  LONG_PTR lpdwCou
7e60: 6e 74 2c 0d 0a 20 20 50 55 4c 4f 4e 47 20 6c 70  nt,..  PULONG lp
7e70: 64 77 47 72 61 6e 75 6c 61 72 69 74 79 29 3b 0d  dwGranularity);.
7e80: 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ...extern(Window
7e90: 73 29 20 65 78 70 6f 72 74 20 55 49 4e 54 20 52  s) export UINT R
7ea0: 65 73 65 74 57 72 69 74 65 57 61 74 63 68 28 0d  esetWriteWatch(.
7eb0: 0a 20 20 4c 50 56 4f 49 44 20 6c 70 42 61 73 65  .  LPVOID lpBase
7ec0: 41 64 64 72 65 73 73 2c 0d 0a 20 20 53 49 5a 45  Address,..  SIZE
7ed0: 5f 54 20 64 77 52 65 67 69 6f 6e 53 69 7a 65 29  _T dwRegionSize)
7ee0: 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  ;....extern(Wind
7ef0: 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c  ows) export BOOL
7f00: 20 56 69 72 74 75 61 6c 46 72 65 65 45 78 28 0d   VirtualFreeEx(.
7f10: 0a 20 20 48 41 4e 44 4c 45 20 68 50 72 6f 63 65  .  HANDLE hProce
7f20: 73 73 2c 0d 0a 20 20 4c 50 56 4f 49 44 20 6c 70  ss,..  LPVOID lp
7f30: 41 64 64 72 65 73 73 2c 0d 0a 20 20 53 49 5a 45  Address,..  SIZE
7f40: 5f 54 20 64 77 53 69 7a 65 2c 0d 0a 20 20 44 57  _T dwSize,..  DW
7f50: 4f 52 44 20 64 77 46 72 65 65 54 79 70 65 29 3b  ORD dwFreeType);
7f60: 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f  ....extern(Windo
7f70: 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20  ws) export BOOL 
7f80: 56 69 72 74 75 61 6c 50 72 6f 74 65 63 74 45 78  VirtualProtectEx
7f90: 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68 50 72 6f  (..  HANDLE hPro
7fa0: 63 65 73 73 2c 0d 0a 20 20 4c 50 56 4f 49 44 20  cess,..  LPVOID 
7fb0: 6c 70 41 64 64 72 65 73 73 2c 0d 0a 20 20 53 49  lpAddress,..  SI
7fc0: 5a 45 5f 54 20 64 77 53 69 7a 65 2c 0d 0a 20 20  ZE_T dwSize,..  
7fd0: 44 57 4f 52 44 20 66 6c 4e 65 77 50 72 6f 74 65  DWORD flNewProte
7fe0: 63 74 2c 0d 0a 20 20 50 44 57 4f 52 44 20 6c 70  ct,..  PDWORD lp
7ff0: 66 6c 4f 6c 64 50 72 6f 74 65 63 74 29 3b 0d 0a  flOldProtect);..
8000: 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
8010: 29 20 65 78 70 6f 72 74 20 53 49 5a 45 5f 54 20  ) export SIZE_T 
8020: 56 69 72 74 75 61 6c 51 75 65 72 79 45 78 28 0d  VirtualQueryEx(.
8030: 0a 20 20 48 41 4e 44 4c 45 20 68 50 72 6f 63 65  .  HANDLE hProce
8040: 73 73 2c 0d 0a 20 20 4c 50 43 56 4f 49 44 20 6c  ss,..  LPCVOID l
8050: 70 41 64 64 72 65 73 73 2c 0d 0a 20 20 50 4d 45  pAddress,..  PME
8060: 4d 4f 52 59 5f 42 41 53 49 43 5f 49 4e 46 4f 52  MORY_BASIC_INFOR
8070: 4d 41 54 49 4f 4e 20 6c 70 42 75 66 66 65 72 2c  MATION lpBuffer,
8080: 0d 0a 20 20 53 49 5a 45 5f 54 20 64 77 4c 65 6e  ..  SIZE_T dwLen
8090: 67 74 68 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28  gth);....extern(
80a0: 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
80b0: 48 41 4e 44 4c 45 20 48 65 61 70 43 72 65 61 74  HANDLE HeapCreat
80c0: 65 28 0d 0a 20 20 44 57 4f 52 44 20 66 6c 4f 70  e(..  DWORD flOp
80d0: 74 69 6f 6e 73 2c 0d 0a 20 20 53 49 5a 45 5f 54  tions,..  SIZE_T
80e0: 20 64 77 49 6e 69 74 69 61 6c 53 69 7a 65 2c 0d   dwInitialSize,.
80f0: 0a 20 20 53 49 5a 45 5f 54 20 64 77 4d 61 78 69  .  SIZE_T dwMaxi
8100: 6d 75 6d 53 69 7a 65 29 3b 0d 0a 0d 0a 65 78 74  mumSize);....ext
8110: 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
8120: 6f 72 74 20 42 4f 4f 4c 20 48 65 61 70 44 65 73  ort BOOL HeapDes
8130: 74 72 6f 79 28 0d 0a 20 20 48 41 4e 44 4c 45 20  troy(..  HANDLE 
8140: 68 48 65 61 70 29 3b 0d 0a 0d 0a 65 78 74 65 72  hHeap);....exter
8150: 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
8160: 74 20 4c 50 56 4f 49 44 20 48 65 61 70 41 6c 6c  t LPVOID HeapAll
8170: 6f 63 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68 48  oc(..  HANDLE hH
8180: 65 61 70 2c 0d 0a 20 20 44 57 4f 52 44 20 64 77  eap,..  DWORD dw
8190: 46 6c 61 67 73 2c 0d 0a 20 20 53 49 5a 45 5f 54  Flags,..  SIZE_T
81a0: 20 64 77 42 79 74 65 73 29 3b 0d 0a 0d 0a 65 78   dwBytes);....ex
81b0: 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
81c0: 70 6f 72 74 20 4c 50 56 4f 49 44 20 48 65 61 70  port LPVOID Heap
81d0: 52 65 41 6c 6c 6f 63 28 0d 0a 20 20 48 41 4e 44  ReAlloc(..  HAND
81e0: 4c 45 20 68 48 65 61 70 2c 0d 0a 20 20 44 57 4f  LE hHeap,..  DWO
81f0: 52 44 20 64 77 46 6c 61 67 73 2c 0d 0a 20 20 4c  RD dwFlags,..  L
8200: 50 56 4f 49 44 20 6c 70 4d 65 6d 2c 0d 0a 20 20  PVOID lpMem,..  
8210: 53 49 5a 45 5f 54 20 64 77 42 79 74 65 73 29 3b  SIZE_T dwBytes);
8220: 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f  ....extern(Windo
8230: 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20  ws) export BOOL 
8240: 48 65 61 70 46 72 65 65 28 0d 0a 20 20 48 41 4e  HeapFree(..  HAN
8250: 44 4c 45 20 68 48 65 61 70 2c 0d 0a 20 20 44 57  DLE hHeap,..  DW
8260: 4f 52 44 20 64 77 46 6c 61 67 73 2c 0d 0a 20 20  ORD dwFlags,..  
8270: 4c 50 56 4f 49 44 20 6c 70 4d 65 6d 29 3b 0d 0a  LPVOID lpMem);..
8280: 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
8290: 29 20 65 78 70 6f 72 74 20 53 49 5a 45 5f 54 20  ) export SIZE_T 
82a0: 48 65 61 70 53 69 7a 65 28 0d 0a 20 20 48 41 4e  HeapSize(..  HAN
82b0: 44 4c 45 20 68 48 65 61 70 2c 0d 0a 20 20 44 57  DLE hHeap,..  DW
82c0: 4f 52 44 20 64 77 46 6c 61 67 73 2c 0d 0a 20 20  ORD dwFlags,..  
82d0: 4c 50 43 56 4f 49 44 20 6c 70 4d 65 6d 29 3b 0d  LPCVOID lpMem);.
82e0: 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ...extern(Window
82f0: 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 48  s) export BOOL H
8300: 65 61 70 56 61 6c 69 64 61 74 65 28 0d 0a 20 20  eapValidate(..  
8310: 48 41 4e 44 4c 45 20 68 48 65 61 70 2c 0d 0a 20  HANDLE hHeap,.. 
8320: 20 44 57 4f 52 44 20 64 77 46 6c 61 67 73 2c 0d   DWORD dwFlags,.
8330: 0a 20 20 4c 50 43 56 4f 49 44 20 6c 70 4d 65 6d  .  LPCVOID lpMem
8340: 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e  );....extern(Win
8350: 64 6f 77 73 29 20 65 78 70 6f 72 74 20 53 49 5a  dows) export SIZ
8360: 45 5f 54 20 48 65 61 70 43 6f 6d 70 61 63 74 28  E_T HeapCompact(
8370: 0d 0a 20 20 48 41 4e 44 4c 45 20 68 48 65 61 70  ..  HANDLE hHeap
8380: 2c 0d 0a 20 20 44 57 4f 52 44 20 64 77 46 6c 61  ,..  DWORD dwFla
8390: 67 73 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57  gs);....extern(W
83a0: 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 48  indows) export H
83b0: 41 4e 44 4c 45 20 47 65 74 50 72 6f 63 65 73 73  ANDLE GetProcess
83c0: 48 65 61 70 28 29 3b 0d 0a 0d 0a 65 78 74 65 72  Heap();....exter
83d0: 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
83e0: 74 20 44 57 4f 52 44 20 47 65 74 50 72 6f 63 65  t DWORD GetProce
83f0: 73 73 48 65 61 70 73 28 0d 0a 20 20 44 57 4f 52  ssHeaps(..  DWOR
8400: 44 20 4e 75 6d 62 65 72 4f 66 48 65 61 70 73 2c  D NumberOfHeaps,
8410: 0d 0a 20 20 50 48 41 4e 44 4c 45 20 50 72 6f 63  ..  PHANDLE Proc
8420: 65 73 73 48 65 61 70 73 29 3b 0d 0a 0d 0a 73 74  essHeaps);....st
8430: 72 75 63 74 20 5f 50 52 4f 43 45 53 53 5f 48 45  ruct _PROCESS_HE
8440: 41 50 5f 45 4e 54 52 59 20 7b 0d 0a 20 20 50 56  AP_ENTRY {..  PV
8450: 4f 49 44 20 6c 70 44 61 74 61 3b 0d 0a 20 20 44  OID lpData;..  D
8460: 57 4f 52 44 20 63 62 44 61 74 61 3b 0d 0a 20 20  WORD cbData;..  
8470: 42 59 54 45 20 63 62 4f 76 65 72 68 65 61 64 3b  BYTE cbOverhead;
8480: 0d 0a 20 20 42 59 54 45 20 69 52 65 67 69 6f 6e  ..  BYTE iRegion
8490: 49 6e 64 65 78 3b 0d 0a 20 20 57 4f 52 44 20 77  Index;..  WORD w
84a0: 46 6c 61 67 73 3b 0d 0a 75 6e 69 6f 6e 20 7b 0d  Flags;..union {.
84b0: 0a 73 74 72 75 63 74 20 7b 0d 0a 20 20 48 41 4e  .struct {..  HAN
84c0: 44 4c 45 20 68 4d 65 6d 3b 0d 0a 20 20 44 57 4f  DLE hMem;..  DWO
84d0: 52 44 20 64 77 52 65 73 65 72 76 65 64 5b 20 33  RD dwReserved[ 3
84e0: 20 5d 3b 0d 0a 7d 0d 0a 0d 0a 73 74 72 75 63 74   ];..}....struct
84f0: 20 7b 0d 0a 20 20 44 57 4f 52 44 20 64 77 43 6f   {..  DWORD dwCo
8500: 6d 6d 69 74 74 65 64 53 69 7a 65 3b 0d 0a 20 20  mmittedSize;..  
8510: 44 57 4f 52 44 20 64 77 55 6e 43 6f 6d 6d 69 74  DWORD dwUnCommit
8520: 74 65 64 53 69 7a 65 3b 0d 0a 20 20 4c 50 56 4f  tedSize;..  LPVO
8530: 49 44 20 6c 70 46 69 72 73 74 42 6c 6f 63 6b 3b  ID lpFirstBlock;
8540: 0d 0a 20 20 4c 50 56 4f 49 44 20 6c 70 4c 61 73  ..  LPVOID lpLas
8550: 74 42 6c 6f 63 6b 3b 0d 0a 7d 0d 0a 0d 0a 7d 0d  tBlock;..}....}.
8560: 0a 0d 0a 7d 0d 0a 61 6c 69 61 73 20 5f 50 52 4f  ...}..alias _PRO
8570: 43 45 53 53 5f 48 45 41 50 5f 45 4e 54 52 59 20  CESS_HEAP_ENTRY 
8580: 50 52 4f 43 45 53 53 5f 48 45 41 50 5f 45 4e 54  PROCESS_HEAP_ENT
8590: 52 59 3b 0d 0a 61 6c 69 61 73 20 5f 50 52 4f 43  RY;..alias _PROC
85a0: 45 53 53 5f 48 45 41 50 5f 45 4e 54 52 59 2a 20  ESS_HEAP_ENTRY* 
85b0: 4c 50 50 52 4f 43 45 53 53 5f 48 45 41 50 5f 45  LPPROCESS_HEAP_E
85c0: 4e 54 52 59 3b 0d 0a 61 6c 69 61 73 20 5f 50 52  NTRY;..alias _PR
85d0: 4f 43 45 53 53 5f 48 45 41 50 5f 45 4e 54 52 59  OCESS_HEAP_ENTRY
85e0: 2a 20 50 50 52 4f 43 45 53 53 5f 48 45 41 50 5f  * PPROCESS_HEAP_
85f0: 45 4e 54 52 59 3b 0d 0a 0d 0a 65 6e 75 6d 20 3a  ENTRY;....enum :
8600: 20 75 69 6e 74 20 7b 20 50 52 4f 43 45 53 53 5f   uint { PROCESS_
8610: 48 45 41 50 5f 52 45 47 49 4f 4e 20 3d 20 30 78  HEAP_REGION = 0x
8620: 30 30 30 31 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75  0001 }..enum : u
8630: 69 6e 74 20 7b 20 50 52 4f 43 45 53 53 5f 48 45  int { PROCESS_HE
8640: 41 50 5f 55 4e 43 4f 4d 4d 49 54 54 45 44 5f 52  AP_UNCOMMITTED_R
8650: 41 4e 47 45 20 3d 20 30 78 30 30 30 32 20 7d 0d  ANGE = 0x0002 }.
8660: 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 50  .enum : uint { P
8670: 52 4f 43 45 53 53 5f 48 45 41 50 5f 45 4e 54 52  ROCESS_HEAP_ENTR
8680: 59 5f 42 55 53 59 20 3d 20 30 78 30 30 30 34 20  Y_BUSY = 0x0004 
8690: 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b  }..enum : uint {
86a0: 20 50 52 4f 43 45 53 53 5f 48 45 41 50 5f 45 4e   PROCESS_HEAP_EN
86b0: 54 52 59 5f 4d 4f 56 45 41 42 4c 45 20 3d 20 30  TRY_MOVEABLE = 0
86c0: 78 30 30 31 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20  x0010 }..enum : 
86d0: 75 69 6e 74 20 7b 20 50 52 4f 43 45 53 53 5f 48  uint { PROCESS_H
86e0: 45 41 50 5f 45 4e 54 52 59 5f 44 44 45 53 48 41  EAP_ENTRY_DDESHA
86f0: 52 45 20 3d 20 30 78 30 30 32 30 20 7d 0d 0a 0d  RE = 0x0020 }...
8700: 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29  .extern(Windows)
8710: 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 48 65 61   export BOOL Hea
8720: 70 4c 6f 63 6b 28 0d 0a 20 20 48 41 4e 44 4c 45  pLock(..  HANDLE
8730: 20 68 48 65 61 70 29 3b 0d 0a 0d 0a 65 78 74 65   hHeap);....exte
8740: 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
8750: 72 74 20 42 4f 4f 4c 20 48 65 61 70 55 6e 6c 6f  rt BOOL HeapUnlo
8760: 63 6b 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68 48  ck(..  HANDLE hH
8770: 65 61 70 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28  eap);....extern(
8780: 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
8790: 42 4f 4f 4c 20 48 65 61 70 57 61 6c 6b 28 0d 0a  BOOL HeapWalk(..
87a0: 20 20 48 41 4e 44 4c 45 20 68 48 65 61 70 2c 0d    HANDLE hHeap,.
87b0: 0a 20 20 4c 50 50 52 4f 43 45 53 53 5f 48 45 41  .  LPPROCESS_HEA
87c0: 50 5f 45 4e 54 52 59 20 6c 70 45 6e 74 72 79 29  P_ENTRY lpEntry)
87d0: 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  ;....extern(Wind
87e0: 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c  ows) export BOOL
87f0: 20 48 65 61 70 53 65 74 49 6e 66 6f 72 6d 61 74   HeapSetInformat
8800: 69 6f 6e 28 0d 0a 20 20 50 56 4f 49 44 20 48 65  ion(..  PVOID He
8810: 61 70 48 61 6e 64 6c 65 2c 20 0d 0a 20 20 48 45  apHandle, ..  HE
8820: 41 50 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 5f 43  AP_INFORMATION_C
8830: 4c 41 53 53 20 48 65 61 70 49 6e 66 6f 72 6d 61  LASS HeapInforma
8840: 74 69 6f 6e 43 6c 61 73 73 2c 0d 0a 20 20 50 56  tionClass,..  PV
8850: 4f 49 44 20 48 65 61 70 49 6e 66 6f 72 6d 61 74  OID HeapInformat
8860: 69 6f 6e 20 2c 0d 0a 20 20 53 49 5a 45 5f 54 20  ion ,..  SIZE_T 
8870: 48 65 61 70 49 6e 66 6f 72 6d 61 74 69 6f 6e 4c  HeapInformationL
8880: 65 6e 67 74 68 20 29 3b 0d 0a 0d 0a 65 78 74 65  ength );....exte
8890: 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
88a0: 72 74 20 42 4f 4f 4c 20 48 65 61 70 51 75 65 72  rt BOOL HeapQuer
88b0: 79 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 0d 0a 20  yInformation(.. 
88c0: 20 50 56 4f 49 44 20 48 65 61 70 48 61 6e 64 6c   PVOID HeapHandl
88d0: 65 2c 20 0d 0a 20 20 48 45 41 50 5f 49 4e 46 4f  e, ..  HEAP_INFO
88e0: 52 4d 41 54 49 4f 4e 5f 43 4c 41 53 53 20 48 65  RMATION_CLASS He
88f0: 61 70 49 6e 66 6f 72 6d 61 74 69 6f 6e 43 6c 61  apInformationCla
8900: 73 73 2c 0d 0a 20 20 50 56 4f 49 44 20 48 65 61  ss,..  PVOID Hea
8910: 70 49 6e 66 6f 72 6d 61 74 69 6f 6e 20 2c 0d 0a  pInformation ,..
8920: 20 20 53 49 5a 45 5f 54 20 48 65 61 70 49 6e 66    SIZE_T HeapInf
8930: 6f 72 6d 61 74 69 6f 6e 4c 65 6e 67 74 68 20 2c  ormationLength ,
8940: 0d 0a 20 20 50 53 49 5a 45 5f 54 20 52 65 74 75  ..  PSIZE_T Retu
8950: 72 6e 4c 65 6e 67 74 68 20 29 3b 0d 0a 0d 0a 65  rnLength );....e
8960: 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 53 43 53  num : uint { SCS
8970: 5f 33 32 42 49 54 5f 42 49 4e 41 52 59 20 3d 20  _32BIT_BINARY = 
8980: 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  0 }..enum : uint
8990: 20 7b 20 53 43 53 5f 44 4f 53 5f 42 49 4e 41 52   { SCS_DOS_BINAR
89a0: 59 20 3d 20 31 20 7d 0d 0a 65 6e 75 6d 20 3a 20  Y = 1 }..enum : 
89b0: 75 69 6e 74 20 7b 20 53 43 53 5f 57 4f 57 5f 42  uint { SCS_WOW_B
89c0: 49 4e 41 52 59 20 3d 20 32 20 7d 0d 0a 65 6e 75  INARY = 2 }..enu
89d0: 6d 20 3a 20 75 69 6e 74 20 7b 20 53 43 53 5f 50  m : uint { SCS_P
89e0: 49 46 5f 42 49 4e 41 52 59 20 3d 20 33 20 7d 0d  IF_BINARY = 3 }.
89f0: 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 53  .enum : uint { S
8a00: 43 53 5f 50 4f 53 49 58 5f 42 49 4e 41 52 59 20  CS_POSIX_BINARY 
8a10: 3d 20 34 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69  = 4 }..enum : ui
8a20: 6e 74 20 7b 20 53 43 53 5f 4f 53 32 31 36 5f 42  nt { SCS_OS216_B
8a30: 49 4e 41 52 59 20 3d 20 35 20 7d 0d 0a 65 6e 75  INARY = 5 }..enu
8a40: 6d 20 3a 20 75 69 6e 74 20 7b 20 53 43 53 5f 36  m : uint { SCS_6
8a50: 34 42 49 54 5f 42 49 4e 41 52 59 20 3d 20 36 20  4BIT_BINARY = 6 
8a60: 7d 0d 0a 0d 0a 2f 2f 20 23 69 66 20 64 65 66 69  }....// #if defi
8a70: 6e 65 64 28 5f 57 49 4e 36 34 29 0d 0a 2f 2f 20  ned(_WIN64)..// 
8a80: 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a  #.....// #else..
8a90: 61 6c 69 61 73 20 53 43 53 5f 33 32 42 49 54 5f  alias SCS_32BIT_
8aa0: 42 49 4e 41 52 59 20 53 43 53 5f 54 48 49 53 5f  BINARY SCS_THIS_
8ab0: 50 4c 41 54 46 4f 52 4d 5f 42 49 4e 41 52 59 3b  PLATFORM_BINARY;
8ac0: 0d 0a 2f 2f 20 23 65 6e 64 69 66 0d 0a 0d 0a 65  ..// #endif....e
8ad0: 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
8ae0: 78 70 6f 72 74 20 42 4f 4f 4c 20 47 65 74 42 69  xport BOOL GetBi
8af0: 6e 61 72 79 54 79 70 65 41 28 0d 0a 20 20 4c 50  naryTypeA(..  LP
8b00: 43 53 54 52 20 6c 70 41 70 70 6c 69 63 61 74 69  CSTR lpApplicati
8b10: 6f 6e 4e 61 6d 65 2c 0d 0a 20 20 4c 50 44 57 4f  onName,..  LPDWO
8b20: 52 44 20 6c 70 42 69 6e 61 72 79 54 79 70 65 29  RD lpBinaryType)
8b30: 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ;..extern(Window
8b40: 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 47  s) export BOOL G
8b50: 65 74 42 69 6e 61 72 79 54 79 70 65 57 28 0d 0a  etBinaryTypeW(..
8b60: 20 20 4c 50 43 57 53 54 52 20 6c 70 41 70 70 6c    LPCWSTR lpAppl
8b70: 69 63 61 74 69 6f 6e 4e 61 6d 65 2c 0d 0a 20 20  icationName,..  
8b80: 4c 50 44 57 4f 52 44 20 6c 70 42 69 6e 61 72 79  LPDWORD lpBinary
8b90: 54 79 70 65 29 3b 0d 0a 2f 2f 20 23 69 66 64 65  Type);..// #ifde
8ba0: 66 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69 61 73  f UNICODE..alias
8bb0: 20 47 65 74 42 69 6e 61 72 79 54 79 70 65 57 20   GetBinaryTypeW 
8bc0: 47 65 74 42 69 6e 61 72 79 54 79 70 65 3b 0d 0a  GetBinaryType;..
8bd0: 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e  // #else..// #..
8be0: 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20  ...// #endif // 
8bf0: 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65  !UNICODE....exte
8c00: 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
8c10: 72 74 20 44 57 4f 52 44 20 47 65 74 53 68 6f 72  rt DWORD GetShor
8c20: 74 50 61 74 68 4e 61 6d 65 41 28 0d 0a 20 20 4c  tPathNameA(..  L
8c30: 50 43 53 54 52 20 6c 70 73 7a 4c 6f 6e 67 50 61  PCSTR lpszLongPa
8c40: 74 68 2c 0d 0a 20 20 4c 50 53 54 52 20 6c 70 73  th,..  LPSTR lps
8c50: 7a 53 68 6f 72 74 50 61 74 68 2c 0d 0a 20 20 44  zShortPath,..  D
8c60: 57 4f 52 44 20 63 63 68 42 75 66 66 65 72 29 3b  WORD cchBuffer);
8c70: 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
8c80: 29 20 65 78 70 6f 72 74 20 44 57 4f 52 44 20 47  ) export DWORD G
8c90: 65 74 53 68 6f 72 74 50 61 74 68 4e 61 6d 65 57  etShortPathNameW
8ca0: 28 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 73  (..  LPCWSTR lps
8cb0: 7a 4c 6f 6e 67 50 61 74 68 2c 0d 0a 20 20 4c 50  zLongPath,..  LP
8cc0: 57 53 54 52 20 6c 70 73 7a 53 68 6f 72 74 50 61  WSTR lpszShortPa
8cd0: 74 68 2c 0d 0a 20 20 44 57 4f 52 44 20 63 63 68  th,..  DWORD cch
8ce0: 42 75 66 66 65 72 29 3b 0d 0a 2f 2f 20 23 69 66  Buffer);..// #if
8cf0: 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69  def UNICODE..ali
8d00: 61 73 20 47 65 74 53 68 6f 72 74 50 61 74 68 4e  as GetShortPathN
8d10: 61 6d 65 57 20 47 65 74 53 68 6f 72 74 50 61 74  ameW GetShortPat
8d20: 68 4e 61 6d 65 3b 0d 0a 2f 2f 20 23 65 6c 73 65  hName;..// #else
8d30: 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65  ..// #.....// #e
8d40: 6e 64 69 66 20 2f 2f 20 21 55 4e 49 43 4f 44 45  ndif // !UNICODE
8d50: 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f  ....extern(Windo
8d60: 77 73 29 20 65 78 70 6f 72 74 20 44 57 4f 52 44  ws) export DWORD
8d70: 20 47 65 74 4c 6f 6e 67 50 61 74 68 4e 61 6d 65   GetLongPathName
8d80: 41 28 0d 0a 20 20 4c 50 43 53 54 52 20 6c 70 73  A(..  LPCSTR lps
8d90: 7a 53 68 6f 72 74 50 61 74 68 2c 0d 0a 20 20 4c  zShortPath,..  L
8da0: 50 53 54 52 20 6c 70 73 7a 4c 6f 6e 67 50 61 74  PSTR lpszLongPat
8db0: 68 2c 0d 0a 20 20 44 57 4f 52 44 20 63 63 68 42  h,..  DWORD cchB
8dc0: 75 66 66 65 72 29 3b 0d 0a 65 78 74 65 72 6e 28  uffer);..extern(
8dd0: 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
8de0: 44 57 4f 52 44 20 47 65 74 4c 6f 6e 67 50 61 74  DWORD GetLongPat
8df0: 68 4e 61 6d 65 57 28 0d 0a 20 20 4c 50 43 57 53  hNameW(..  LPCWS
8e00: 54 52 20 6c 70 73 7a 53 68 6f 72 74 50 61 74 68  TR lpszShortPath
8e10: 2c 0d 0a 20 20 4c 50 57 53 54 52 20 6c 70 73 7a  ,..  LPWSTR lpsz
8e20: 4c 6f 6e 67 50 61 74 68 2c 0d 0a 20 20 44 57 4f  LongPath,..  DWO
8e30: 52 44 20 63 63 68 42 75 66 66 65 72 29 3b 0d 0a  RD cchBuffer);..
8e40: 2f 2f 20 23 69 66 64 65 66 20 55 4e 49 43 4f 44  // #ifdef UNICOD
8e50: 45 0d 0a 61 6c 69 61 73 20 47 65 74 4c 6f 6e 67  E..alias GetLong
8e60: 50 61 74 68 4e 61 6d 65 57 20 47 65 74 4c 6f 6e  PathNameW GetLon
8e70: 67 50 61 74 68 4e 61 6d 65 3b 0d 0a 2f 2f 20 23  gPathName;..// #
8e80: 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f  else..// #...../
8e90: 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e 49  / #endif // !UNI
8ea0: 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72 6e 28 57  CODE....extern(W
8eb0: 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42  indows) export B
8ec0: 4f 4f 4c 20 47 65 74 50 72 6f 63 65 73 73 41 66  OOL GetProcessAf
8ed0: 66 69 6e 69 74 79 4d 61 73 6b 28 0d 0a 20 20 48  finityMask(..  H
8ee0: 41 4e 44 4c 45 20 68 50 72 6f 63 65 73 73 2c 0d  ANDLE hProcess,.
8ef0: 0a 20 20 50 44 57 4f 52 44 5f 50 54 52 20 6c 70  .  PDWORD_PTR lp
8f00: 50 72 6f 63 65 73 73 41 66 66 69 6e 69 74 79 4d  ProcessAffinityM
8f10: 61 73 6b 2c 0d 0a 20 20 50 44 57 4f 52 44 5f 50  ask,..  PDWORD_P
8f20: 54 52 20 6c 70 53 79 73 74 65 6d 41 66 66 69 6e  TR lpSystemAffin
8f30: 69 74 79 4d 61 73 6b 29 3b 0d 0a 0d 0a 65 78 74  ityMask);....ext
8f40: 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
8f50: 6f 72 74 20 42 4f 4f 4c 20 53 65 74 50 72 6f 63  ort BOOL SetProc
8f60: 65 73 73 41 66 66 69 6e 69 74 79 4d 61 73 6b 28  essAffinityMask(
8f70: 0d 0a 20 20 48 41 4e 44 4c 45 20 68 50 72 6f 63  ..  HANDLE hProc
8f80: 65 73 73 2c 0d 0a 20 20 44 57 4f 52 44 5f 50 54  ess,..  DWORD_PT
8f90: 52 20 64 77 50 72 6f 63 65 73 73 41 66 66 69 6e  R dwProcessAffin
8fa0: 69 74 79 4d 61 73 6b 29 3b 0d 0a 0d 0a 65 78 74  ityMask);....ext
8fb0: 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
8fc0: 6f 72 74 20 42 4f 4f 4c 20 47 65 74 50 72 6f 63  ort BOOL GetProc
8fd0: 65 73 73 54 69 6d 65 73 28 0d 0a 20 20 48 41 4e  essTimes(..  HAN
8fe0: 44 4c 45 20 68 50 72 6f 63 65 73 73 2c 0d 0a 20  DLE hProcess,.. 
8ff0: 20 4c 50 46 49 4c 45 54 49 4d 45 20 6c 70 43 72   LPFILETIME lpCr
9000: 65 61 74 69 6f 6e 54 69 6d 65 2c 0d 0a 20 20 4c  eationTime,..  L
9010: 50 46 49 4c 45 54 49 4d 45 20 6c 70 45 78 69 74  PFILETIME lpExit
9020: 54 69 6d 65 2c 0d 0a 20 20 4c 50 46 49 4c 45 54  Time,..  LPFILET
9030: 49 4d 45 20 6c 70 4b 65 72 6e 65 6c 54 69 6d 65  IME lpKernelTime
9040: 2c 0d 0a 20 20 4c 50 46 49 4c 45 54 49 4d 45 20  ,..  LPFILETIME 
9050: 6c 70 55 73 65 72 54 69 6d 65 29 3b 0d 0a 0d 0a  lpUserTime);....
9060: 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
9070: 65 78 70 6f 72 74 20 42 4f 4f 4c 20 47 65 74 50  export BOOL GetP
9080: 72 6f 63 65 73 73 49 6f 43 6f 75 6e 74 65 72 73  rocessIoCounters
9090: 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68 50 72 6f  (..  HANDLE hPro
90a0: 63 65 73 73 2c 0d 0a 20 20 50 49 4f 5f 43 4f 55  cess,..  PIO_COU
90b0: 4e 54 45 52 53 20 6c 70 49 6f 43 6f 75 6e 74 65  NTERS lpIoCounte
90c0: 72 73 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57  rs);....extern(W
90d0: 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42  indows) export B
90e0: 4f 4f 4c 20 47 65 74 50 72 6f 63 65 73 73 57 6f  OOL GetProcessWo
90f0: 72 6b 69 6e 67 53 65 74 53 69 7a 65 28 0d 0a 20  rkingSetSize(.. 
9100: 20 48 41 4e 44 4c 45 20 68 50 72 6f 63 65 73 73   HANDLE hProcess
9110: 2c 0d 0a 20 20 50 53 49 5a 45 5f 54 20 6c 70 4d  ,..  PSIZE_T lpM
9120: 69 6e 69 6d 75 6d 57 6f 72 6b 69 6e 67 53 65 74  inimumWorkingSet
9130: 53 69 7a 65 2c 0d 0a 20 20 50 53 49 5a 45 5f 54  Size,..  PSIZE_T
9140: 20 6c 70 4d 61 78 69 6d 75 6d 57 6f 72 6b 69 6e   lpMaximumWorkin
9150: 67 53 65 74 53 69 7a 65 29 3b 0d 0a 0d 0a 65 78  gSetSize);....ex
9160: 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
9170: 70 6f 72 74 20 42 4f 4f 4c 20 53 65 74 50 72 6f  port BOOL SetPro
9180: 63 65 73 73 57 6f 72 6b 69 6e 67 53 65 74 53 69  cessWorkingSetSi
9190: 7a 65 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68 50  ze(..  HANDLE hP
91a0: 72 6f 63 65 73 73 2c 0d 0a 20 20 53 49 5a 45 5f  rocess,..  SIZE_
91b0: 54 20 64 77 4d 69 6e 69 6d 75 6d 57 6f 72 6b 69  T dwMinimumWorki
91c0: 6e 67 53 65 74 53 69 7a 65 2c 0d 0a 20 20 53 49  ngSetSize,..  SI
91d0: 5a 45 5f 54 20 64 77 4d 61 78 69 6d 75 6d 57 6f  ZE_T dwMaximumWo
91e0: 72 6b 69 6e 67 53 65 74 53 69 7a 65 29 3b 0d 0a  rkingSetSize);..
91f0: 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
9200: 29 20 65 78 70 6f 72 74 20 48 41 4e 44 4c 45 20  ) export HANDLE 
9210: 4f 70 65 6e 50 72 6f 63 65 73 73 28 0d 0a 20 20  OpenProcess(..  
9220: 44 57 4f 52 44 20 64 77 44 65 73 69 72 65 64 41  DWORD dwDesiredA
9230: 63 63 65 73 73 2c 0d 0a 20 20 42 4f 4f 4c 20 62  ccess,..  BOOL b
9240: 49 6e 68 65 72 69 74 48 61 6e 64 6c 65 2c 0d 0a  InheritHandle,..
9250: 20 20 44 57 4f 52 44 20 64 77 50 72 6f 63 65 73    DWORD dwProces
9260: 73 49 64 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28  sId);....extern(
9270: 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
9280: 48 41 4e 44 4c 45 20 47 65 74 43 75 72 72 65 6e  HANDLE GetCurren
9290: 74 50 72 6f 63 65 73 73 28 29 3b 0d 0a 0d 0a 65  tProcess();....e
92a0: 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
92b0: 78 70 6f 72 74 20 44 57 4f 52 44 20 47 65 74 43  xport DWORD GetC
92c0: 75 72 72 65 6e 74 50 72 6f 63 65 73 73 49 64 28  urrentProcessId(
92d0: 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e  );....extern(Win
92e0: 64 6f 77 73 29 20 65 78 70 6f 72 74 20 56 4f 49  dows) export VOI
92f0: 44 20 45 78 69 74 50 72 6f 63 65 73 73 28 0d 0a  D ExitProcess(..
9300: 20 20 55 49 4e 54 20 75 45 78 69 74 43 6f 64 65    UINT uExitCode
9310: 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e  );....extern(Win
9320: 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f  dows) export BOO
9330: 4c 20 54 65 72 6d 69 6e 61 74 65 50 72 6f 63 65  L TerminateProce
9340: 73 73 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68 50  ss(..  HANDLE hP
9350: 72 6f 63 65 73 73 2c 0d 0a 20 20 55 49 4e 54 20  rocess,..  UINT 
9360: 75 45 78 69 74 43 6f 64 65 29 3b 0d 0a 0d 0a 65  uExitCode);....e
9370: 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
9380: 78 70 6f 72 74 20 42 4f 4f 4c 20 47 65 74 45 78  xport BOOL GetEx
9390: 69 74 43 6f 64 65 50 72 6f 63 65 73 73 28 0d 0a  itCodeProcess(..
93a0: 20 20 48 41 4e 44 4c 45 20 68 50 72 6f 63 65 73    HANDLE hProces
93b0: 73 2c 0d 0a 20 20 4c 50 44 57 4f 52 44 20 6c 70  s,..  LPDWORD lp
93c0: 45 78 69 74 43 6f 64 65 29 3b 0d 0a 0d 0a 65 78  ExitCode);....ex
93d0: 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
93e0: 70 6f 72 74 20 56 4f 49 44 20 46 61 74 61 6c 45  port VOID FatalE
93f0: 78 69 74 28 0d 0a 20 20 69 6e 74 20 45 78 69 74  xit(..  int Exit
9400: 43 6f 64 65 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e  Code);....extern
9410: 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
9420: 20 4c 50 53 54 52 20 47 65 74 45 6e 76 69 72 6f   LPSTR GetEnviro
9430: 6e 6d 65 6e 74 53 74 72 69 6e 67 73 28 29 3b 0d  nmentStrings();.
9440: 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ...extern(Window
9450: 73 29 20 65 78 70 6f 72 74 20 4c 50 57 53 54 52  s) export LPWSTR
9460: 20 47 65 74 45 6e 76 69 72 6f 6e 6d 65 6e 74 53   GetEnvironmentS
9470: 74 72 69 6e 67 73 57 28 29 3b 0d 0a 0d 0a 2f 2f  tringsW();....//
9480: 20 23 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d   #ifdef UNICODE.
9490: 0a 61 6c 69 61 73 20 47 65 74 45 6e 76 69 72 6f  .alias GetEnviro
94a0: 6e 6d 65 6e 74 53 74 72 69 6e 67 73 57 20 47 65  nmentStringsW Ge
94b0: 74 45 6e 76 69 72 6f 6e 6d 65 6e 74 53 74 72 69  tEnvironmentStri
94c0: 6e 67 73 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a  ngs;..// #else..
94d0: 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64  // #.....// #end
94e0: 69 66 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a  if // !UNICODE..
94f0: 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
9500: 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 46 72  ) export BOOL Fr
9510: 65 65 45 6e 76 69 72 6f 6e 6d 65 6e 74 53 74 72  eeEnvironmentStr
9520: 69 6e 67 73 41 28 0d 0a 20 20 4c 50 53 54 52 29  ingsA(..  LPSTR)
9530: 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ;..extern(Window
9540: 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 46  s) export BOOL F
9550: 72 65 65 45 6e 76 69 72 6f 6e 6d 65 6e 74 53 74  reeEnvironmentSt
9560: 72 69 6e 67 73 57 28 0d 0a 20 20 4c 50 57 53 54  ringsW(..  LPWST
9570: 52 29 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55  R);..// #ifdef U
9580: 4e 49 43 4f 44 45 0d 0a 61 6c 69 61 73 20 46 72  NICODE..alias Fr
9590: 65 65 45 6e 76 69 72 6f 6e 6d 65 6e 74 53 74 72  eeEnvironmentStr
95a0: 69 6e 67 73 57 20 46 72 65 65 45 6e 76 69 72 6f  ingsW FreeEnviro
95b0: 6e 6d 65 6e 74 53 74 72 69 6e 67 73 3b 0d 0a 2f  nmentStrings;../
95c0: 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e  / #else..// #...
95d0: 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21  ..// #endif // !
95e0: 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72  UNICODE....exter
95f0: 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
9600: 74 20 56 4f 49 44 20 52 61 69 73 65 45 78 63 65  t VOID RaiseExce
9610: 70 74 69 6f 6e 28 0d 0a 20 20 44 57 4f 52 44 20  ption(..  DWORD 
9620: 64 77 45 78 63 65 70 74 69 6f 6e 43 6f 64 65 2c  dwExceptionCode,
9630: 0d 0a 20 20 44 57 4f 52 44 20 64 77 45 78 63 65  ..  DWORD dwExce
9640: 70 74 69 6f 6e 46 6c 61 67 73 2c 0d 0a 20 20 44  ptionFlags,..  D
9650: 57 4f 52 44 20 6e 4e 75 6d 62 65 72 4f 66 41 72  WORD nNumberOfAr
9660: 67 75 6d 65 6e 74 73 2c 0d 0a 20 20 55 4c 4f 4e  guments,..  ULON
9670: 47 5f 50 54 52 20 2a 6c 70 41 72 67 75 6d 65 6e  G_PTR *lpArgumen
9680: 74 73 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57  ts);....extern(W
9690: 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 4c  indows) export L
96a0: 4f 4e 47 20 55 6e 68 61 6e 64 6c 65 64 45 78 63  ONG UnhandledExc
96b0: 65 70 74 69 6f 6e 46 69 6c 74 65 72 28 0d 0a 20  eptionFilter(.. 
96c0: 20 5f 45 58 43 45 50 54 49 4f 4e 5f 50 4f 49 4e   _EXCEPTION_POIN
96d0: 54 45 52 53 20 2a 45 78 63 65 70 74 69 6f 6e 49  TERS *ExceptionI
96e0: 6e 66 6f 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28  nfo);....extern(
96f0: 57 69 6e 64 6f 77 73 29 20 61 6c 69 61 73 20 4c  Windows) alias L
9700: 4f 4e 47 20 66 75 6e 63 74 69 6f 6e 28 20 20 5f  ONG function(  _
9710: 45 58 43 45 50 54 49 4f 4e 5f 50 4f 49 4e 54 45  EXCEPTION_POINTE
9720: 52 53 20 2a 45 78 63 65 70 74 69 6f 6e 49 6e 66  RS *ExceptionInf
9730: 6f 20 29 20 50 54 4f 50 5f 4c 45 56 45 4c 5f 45  o ) PTOP_LEVEL_E
9740: 58 43 45 50 54 49 4f 4e 5f 46 49 4c 54 45 52 3b  XCEPTION_FILTER;
9750: 0d 0a 61 6c 69 61 73 20 50 54 4f 50 5f 4c 45 56  ..alias PTOP_LEV
9760: 45 4c 5f 45 58 43 45 50 54 49 4f 4e 5f 46 49 4c  EL_EXCEPTION_FIL
9770: 54 45 52 20 4c 50 54 4f 50 5f 4c 45 56 45 4c 5f  TER LPTOP_LEVEL_
9780: 45 58 43 45 50 54 49 4f 4e 5f 46 49 4c 54 45 52  EXCEPTION_FILTER
9790: 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  ;....extern(Wind
97a0: 6f 77 73 29 20 65 78 70 6f 72 74 20 4c 50 54 4f  ows) export LPTO
97b0: 50 5f 4c 45 56 45 4c 5f 45 58 43 45 50 54 49 4f  P_LEVEL_EXCEPTIO
97c0: 4e 5f 46 49 4c 54 45 52 20 53 65 74 55 6e 68 61  N_FILTER SetUnha
97d0: 6e 64 6c 65 64 45 78 63 65 70 74 69 6f 6e 46 69  ndledExceptionFi
97e0: 6c 74 65 72 28 0d 0a 20 20 4c 50 54 4f 50 5f 4c  lter(..  LPTOP_L
97f0: 45 56 45 4c 5f 45 58 43 45 50 54 49 4f 4e 5f 46  EVEL_EXCEPTION_F
9800: 49 4c 54 45 52 20 6c 70 54 6f 70 4c 65 76 65 6c  ILTER lpTopLevel
9810: 45 78 63 65 70 74 69 6f 6e 46 69 6c 74 65 72 29  ExceptionFilter)
9820: 3b 0d 0a 0d 0a 2f 2f 20 23 69 66 28 5f 57 49 4e  ;....// #if(_WIN
9830: 33 32 5f 57 49 4e 4e 54 20 3e 3d 20 30 78 30 34  32_WINNT >= 0x04
9840: 30 30 29 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69  00)....extern(Wi
9850: 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 4c 50  ndows) export LP
9860: 56 4f 49 44 20 43 72 65 61 74 65 46 69 62 65 72  VOID CreateFiber
9870: 28 0d 0a 20 20 53 49 5a 45 5f 54 20 64 77 53 74  (..  SIZE_T dwSt
9880: 61 63 6b 53 69 7a 65 2c 0d 0a 20 20 4c 50 46 49  ackSize,..  LPFI
9890: 42 45 52 5f 53 54 41 52 54 5f 52 4f 55 54 49 4e  BER_START_ROUTIN
98a0: 45 20 6c 70 53 74 61 72 74 41 64 64 72 65 73 73  E lpStartAddress
98b0: 2c 0d 0a 20 20 4c 50 56 4f 49 44 20 6c 70 50 61  ,..  LPVOID lpPa
98c0: 72 61 6d 65 74 65 72 29 3b 0d 0a 0d 0a 65 78 74  rameter);....ext
98d0: 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
98e0: 6f 72 74 20 4c 50 56 4f 49 44 20 43 72 65 61 74  ort LPVOID Creat
98f0: 65 46 69 62 65 72 45 78 28 0d 0a 20 20 53 49 5a  eFiberEx(..  SIZ
9900: 45 5f 54 20 64 77 53 74 61 63 6b 43 6f 6d 6d 69  E_T dwStackCommi
9910: 74 53 69 7a 65 2c 0d 0a 20 20 53 49 5a 45 5f 54  tSize,..  SIZE_T
9920: 20 64 77 53 74 61 63 6b 52 65 73 65 72 76 65 53   dwStackReserveS
9930: 69 7a 65 2c 0d 0a 20 20 44 57 4f 52 44 20 64 77  ize,..  DWORD dw
9940: 46 6c 61 67 73 2c 0d 0a 20 20 4c 50 46 49 42 45  Flags,..  LPFIBE
9950: 52 5f 53 54 41 52 54 5f 52 4f 55 54 49 4e 45 20  R_START_ROUTINE 
9960: 6c 70 53 74 61 72 74 41 64 64 72 65 73 73 2c 0d  lpStartAddress,.
9970: 0a 20 20 4c 50 56 4f 49 44 20 6c 70 50 61 72 61  .  LPVOID lpPara
9980: 6d 65 74 65 72 29 3b 0d 0a 0d 0a 65 78 74 65 72  meter);....exter
9990: 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
99a0: 74 20 56 4f 49 44 20 44 65 6c 65 74 65 46 69 62  t VOID DeleteFib
99b0: 65 72 28 0d 0a 20 20 4c 50 56 4f 49 44 20 6c 70  er(..  LPVOID lp
99c0: 46 69 62 65 72 29 3b 0d 0a 0d 0a 65 78 74 65 72  Fiber);....exter
99d0: 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
99e0: 74 20 4c 50 56 4f 49 44 20 43 6f 6e 76 65 72 74  t LPVOID Convert
99f0: 54 68 72 65 61 64 54 6f 46 69 62 65 72 28 0d 0a  ThreadToFiber(..
9a00: 20 20 4c 50 56 4f 49 44 20 6c 70 50 61 72 61 6d    LPVOID lpParam
9a10: 65 74 65 72 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e  eter);....extern
9a20: 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
9a30: 20 42 4f 4f 4c 20 43 6f 6e 76 65 72 74 46 69 62   BOOL ConvertFib
9a40: 65 72 54 6f 54 68 72 65 61 64 28 29 3b 0d 0a 0d  erToThread();...
9a50: 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29  .extern(Windows)
9a60: 20 65 78 70 6f 72 74 20 56 4f 49 44 20 53 77 69   export VOID Swi
9a70: 74 63 68 54 6f 46 69 62 65 72 28 0d 0a 20 20 4c  tchToFiber(..  L
9a80: 50 56 4f 49 44 20 6c 70 46 69 62 65 72 29 3b 0d  PVOID lpFiber);.
9a90: 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ...extern(Window
9aa0: 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 53  s) export BOOL S
9ab0: 77 69 74 63 68 54 6f 54 68 72 65 61 64 28 29 3b  witchToThread();
9ac0: 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2a 20 5f  ..// #endif /* _
9ad0: 57 49 4e 33 32 5f 57 49 4e 4e 54 20 3e 3d 20 30  WIN32_WINNT >= 0
9ae0: 78 30 34 30 30 20 2a 2f 0d 0a 0d 0a 65 78 74 65  x0400 */....exte
9af0: 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
9b00: 72 74 20 48 41 4e 44 4c 45 20 43 72 65 61 74 65  rt HANDLE Create
9b10: 54 68 72 65 61 64 28 0d 0a 20 20 4c 50 53 45 43  Thread(..  LPSEC
9b20: 55 52 49 54 59 5f 41 54 54 52 49 42 55 54 45 53  URITY_ATTRIBUTES
9b30: 20 6c 70 54 68 72 65 61 64 41 74 74 72 69 62 75   lpThreadAttribu
9b40: 74 65 73 2c 0d 0a 20 20 53 49 5a 45 5f 54 20 64  tes,..  SIZE_T d
9b50: 77 53 74 61 63 6b 53 69 7a 65 2c 0d 0a 20 20 4c  wStackSize,..  L
9b60: 50 54 48 52 45 41 44 5f 53 54 41 52 54 5f 52 4f  PTHREAD_START_RO
9b70: 55 54 49 4e 45 20 6c 70 53 74 61 72 74 41 64 64  UTINE lpStartAdd
9b80: 72 65 73 73 2c 0d 0a 20 20 4c 50 56 4f 49 44 20  ress,..  LPVOID 
9b90: 6c 70 50 61 72 61 6d 65 74 65 72 2c 0d 0a 20 20  lpParameter,..  
9ba0: 44 57 4f 52 44 20 64 77 43 72 65 61 74 69 6f 6e  DWORD dwCreation
9bb0: 46 6c 61 67 73 2c 0d 0a 20 20 4c 50 44 57 4f 52  Flags,..  LPDWOR
9bc0: 44 20 6c 70 54 68 72 65 61 64 49 64 29 3b 0d 0a  D lpThreadId);..
9bd0: 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
9be0: 29 20 65 78 70 6f 72 74 20 48 41 4e 44 4c 45 20  ) export HANDLE 
9bf0: 43 72 65 61 74 65 52 65 6d 6f 74 65 54 68 72 65  CreateRemoteThre
9c00: 61 64 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68 50  ad(..  HANDLE hP
9c10: 72 6f 63 65 73 73 2c 0d 0a 20 20 4c 50 53 45 43  rocess,..  LPSEC
9c20: 55 52 49 54 59 5f 41 54 54 52 49 42 55 54 45 53  URITY_ATTRIBUTES
9c30: 20 6c 70 54 68 72 65 61 64 41 74 74 72 69 62 75   lpThreadAttribu
9c40: 74 65 73 2c 0d 0a 20 20 53 49 5a 45 5f 54 20 64  tes,..  SIZE_T d
9c50: 77 53 74 61 63 6b 53 69 7a 65 2c 0d 0a 20 20 4c  wStackSize,..  L
9c60: 50 54 48 52 45 41 44 5f 53 54 41 52 54 5f 52 4f  PTHREAD_START_RO
9c70: 55 54 49 4e 45 20 6c 70 53 74 61 72 74 41 64 64  UTINE lpStartAdd
9c80: 72 65 73 73 2c 0d 0a 20 20 4c 50 56 4f 49 44 20  ress,..  LPVOID 
9c90: 6c 70 50 61 72 61 6d 65 74 65 72 2c 0d 0a 20 20  lpParameter,..  
9ca0: 44 57 4f 52 44 20 64 77 43 72 65 61 74 69 6f 6e  DWORD dwCreation
9cb0: 46 6c 61 67 73 2c 0d 0a 20 20 4c 50 44 57 4f 52  Flags,..  LPDWOR
9cc0: 44 20 6c 70 54 68 72 65 61 64 49 64 29 3b 0d 0a  D lpThreadId);..
9cd0: 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
9ce0: 29 20 65 78 70 6f 72 74 20 48 41 4e 44 4c 45 20  ) export HANDLE 
9cf0: 47 65 74 43 75 72 72 65 6e 74 54 68 72 65 61 64  GetCurrentThread
9d00: 28 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69  ();....extern(Wi
9d10: 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 44 57  ndows) export DW
9d20: 4f 52 44 20 47 65 74 43 75 72 72 65 6e 74 54 68  ORD GetCurrentTh
9d30: 72 65 61 64 49 64 28 29 3b 0d 0a 0d 0a 65 78 74  readId();....ext
9d40: 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
9d50: 6f 72 74 20 44 57 4f 52 44 5f 50 54 52 20 53 65  ort DWORD_PTR Se
9d60: 74 54 68 72 65 61 64 41 66 66 69 6e 69 74 79 4d  tThreadAffinityM
9d70: 61 73 6b 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68  ask(..  HANDLE h
9d80: 54 68 72 65 61 64 2c 0d 0a 20 20 44 57 4f 52 44  Thread,..  DWORD
9d90: 5f 50 54 52 20 64 77 54 68 72 65 61 64 41 66 66  _PTR dwThreadAff
9da0: 69 6e 69 74 79 4d 61 73 6b 29 3b 0d 0a 0d 0a 2f  inityMask);..../
9db0: 2f 20 23 69 66 28 5f 57 49 4e 33 32 5f 57 49 4e  / #if(_WIN32_WIN
9dc0: 4e 54 20 3e 3d 20 30 78 30 34 30 30 29 0d 0a 65  NT >= 0x0400)..e
9dd0: 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
9de0: 78 70 6f 72 74 20 44 57 4f 52 44 20 53 65 74 54  xport DWORD SetT
9df0: 68 72 65 61 64 49 64 65 61 6c 50 72 6f 63 65 73  hreadIdealProces
9e00: 73 6f 72 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68  sor(..  HANDLE h
9e10: 54 68 72 65 61 64 2c 0d 0a 20 20 44 57 4f 52 44  Thread,..  DWORD
9e20: 20 64 77 49 64 65 61 6c 50 72 6f 63 65 73 73 6f   dwIdealProcesso
9e30: 72 29 3b 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f  r);..// #endif /
9e40: 2a 20 5f 57 49 4e 33 32 5f 57 49 4e 4e 54 20 3e  * _WIN32_WINNT >
9e50: 3d 20 30 78 30 34 30 30 20 2a 2f 0d 0a 0d 0a 65  = 0x0400 */....e
9e60: 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
9e70: 78 70 6f 72 74 20 42 4f 4f 4c 20 53 65 74 50 72  xport BOOL SetPr
9e80: 6f 63 65 73 73 50 72 69 6f 72 69 74 79 42 6f 6f  ocessPriorityBoo
9e90: 73 74 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68 50  st(..  HANDLE hP
9ea0: 72 6f 63 65 73 73 2c 0d 0a 20 20 42 4f 4f 4c 20  rocess,..  BOOL 
9eb0: 62 44 69 73 61 62 6c 65 50 72 69 6f 72 69 74 79  bDisablePriority
9ec0: 42 6f 6f 73 74 29 3b 0d 0a 0d 0a 65 78 74 65 72  Boost);....exter
9ed0: 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
9ee0: 74 20 42 4f 4f 4c 20 47 65 74 50 72 6f 63 65 73  t BOOL GetProces
9ef0: 73 50 72 69 6f 72 69 74 79 42 6f 6f 73 74 28 0d  sPriorityBoost(.
9f00: 0a 20 20 48 41 4e 44 4c 45 20 68 50 72 6f 63 65  .  HANDLE hProce
9f10: 73 73 2c 0d 0a 20 20 50 42 4f 4f 4c 20 70 44 69  ss,..  PBOOL pDi
9f20: 73 61 62 6c 65 50 72 69 6f 72 69 74 79 42 6f 6f  sablePriorityBoo
9f30: 73 74 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57  st);....extern(W
9f40: 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42  indows) export B
9f50: 4f 4f 4c 20 52 65 71 75 65 73 74 57 61 6b 65 75  OOL RequestWakeu
9f60: 70 4c 61 74 65 6e 63 79 28 0d 0a 20 20 4c 41 54  pLatency(..  LAT
9f70: 45 4e 43 59 5f 54 49 4d 45 20 6c 61 74 65 6e 63  ENCY_TIME latenc
9f80: 79 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69  y);....extern(Wi
9f90: 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f  ndows) export BO
9fa0: 4f 4c 20 49 73 53 79 73 74 65 6d 52 65 73 75 6d  OL IsSystemResum
9fb0: 65 41 75 74 6f 6d 61 74 69 63 28 29 3b 0d 0a 0d  eAutomatic();...
9fc0: 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29  .extern(Windows)
9fd0: 20 65 78 70 6f 72 74 20 48 41 4e 44 4c 45 20 4f   export HANDLE O
9fe0: 70 65 6e 54 68 72 65 61 64 28 0d 0a 20 20 44 57  penThread(..  DW
9ff0: 4f 52 44 20 64 77 44 65 73 69 72 65 64 41 63 63  ORD dwDesiredAcc
a000: 65 73 73 2c 0d 0a 20 20 42 4f 4f 4c 20 62 49 6e  ess,..  BOOL bIn
a010: 68 65 72 69 74 48 61 6e 64 6c 65 2c 0d 0a 20 20  heritHandle,..  
a020: 44 57 4f 52 44 20 64 77 54 68 72 65 61 64 49 64  DWORD dwThreadId
a030: 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e  );....extern(Win
a040: 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f  dows) export BOO
a050: 4c 20 53 65 74 54 68 72 65 61 64 50 72 69 6f 72  L SetThreadPrior
a060: 69 74 79 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68  ity(..  HANDLE h
a070: 54 68 72 65 61 64 2c 0d 0a 20 20 69 6e 74 20 6e  Thread,..  int n
a080: 50 72 69 6f 72 69 74 79 29 3b 0d 0a 0d 0a 65 78  Priority);....ex
a090: 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
a0a0: 70 6f 72 74 20 42 4f 4f 4c 20 53 65 74 54 68 72  port BOOL SetThr
a0b0: 65 61 64 50 72 69 6f 72 69 74 79 42 6f 6f 73 74  eadPriorityBoost
a0c0: 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68 54 68 72  (..  HANDLE hThr
a0d0: 65 61 64 2c 0d 0a 20 20 42 4f 4f 4c 20 62 44 69  ead,..  BOOL bDi
a0e0: 73 61 62 6c 65 50 72 69 6f 72 69 74 79 42 6f 6f  sablePriorityBoo
a0f0: 73 74 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57  st);....extern(W
a100: 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42  indows) export B
a110: 4f 4f 4c 20 47 65 74 54 68 72 65 61 64 50 72 69  OOL GetThreadPri
a120: 6f 72 69 74 79 42 6f 6f 73 74 28 0d 0a 20 20 48  orityBoost(..  H
a130: 41 4e 44 4c 45 20 68 54 68 72 65 61 64 2c 0d 0a  ANDLE hThread,..
a140: 20 20 50 42 4f 4f 4c 20 70 44 69 73 61 62 6c 65    PBOOL pDisable
a150: 50 72 69 6f 72 69 74 79 42 6f 6f 73 74 29 3b 0d  PriorityBoost);.
a160: 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ...extern(Window
a170: 73 29 20 65 78 70 6f 72 74 20 69 6e 74 20 47 65  s) export int Ge
a180: 74 54 68 72 65 61 64 50 72 69 6f 72 69 74 79 28  tThreadPriority(
a190: 0d 0a 20 20 48 41 4e 44 4c 45 20 68 54 68 72 65  ..  HANDLE hThre
a1a0: 61 64 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57  ad);....extern(W
a1b0: 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42  indows) export B
a1c0: 4f 4f 4c 20 47 65 74 54 68 72 65 61 64 54 69 6d  OOL GetThreadTim
a1d0: 65 73 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68 54  es(..  HANDLE hT
a1e0: 68 72 65 61 64 2c 0d 0a 20 20 4c 50 46 49 4c 45  hread,..  LPFILE
a1f0: 54 49 4d 45 20 6c 70 43 72 65 61 74 69 6f 6e 54  TIME lpCreationT
a200: 69 6d 65 2c 0d 0a 20 20 4c 50 46 49 4c 45 54 49  ime,..  LPFILETI
a210: 4d 45 20 6c 70 45 78 69 74 54 69 6d 65 2c 0d 0a  ME lpExitTime,..
a220: 20 20 4c 50 46 49 4c 45 54 49 4d 45 20 6c 70 4b    LPFILETIME lpK
a230: 65 72 6e 65 6c 54 69 6d 65 2c 0d 0a 20 20 4c 50  ernelTime,..  LP
a240: 46 49 4c 45 54 49 4d 45 20 6c 70 55 73 65 72 54  FILETIME lpUserT
a250: 69 6d 65 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28  ime);....extern(
a260: 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
a270: 56 4f 49 44 20 45 78 69 74 54 68 72 65 61 64 28  VOID ExitThread(
a280: 0d 0a 20 20 44 57 4f 52 44 20 64 77 45 78 69 74  ..  DWORD dwExit
a290: 43 6f 64 65 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e  Code);....extern
a2a0: 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
a2b0: 20 42 4f 4f 4c 20 54 65 72 6d 69 6e 61 74 65 54   BOOL TerminateT
a2c0: 68 72 65 61 64 28 0d 0a 20 20 48 41 4e 44 4c 45  hread(..  HANDLE
a2d0: 20 68 54 68 72 65 61 64 2c 0d 0a 20 20 44 57 4f   hThread,..  DWO
a2e0: 52 44 20 64 77 45 78 69 74 43 6f 64 65 29 3b 0d  RD dwExitCode);.
a2f0: 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ...extern(Window
a300: 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 47  s) export BOOL G
a310: 65 74 45 78 69 74 43 6f 64 65 54 68 72 65 61 64  etExitCodeThread
a320: 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68 54 68 72  (..  HANDLE hThr
a330: 65 61 64 2c 0d 0a 20 20 4c 50 44 57 4f 52 44 20  ead,..  LPDWORD 
a340: 6c 70 45 78 69 74 43 6f 64 65 29 3b 0d 0a 0d 0a  lpExitCode);....
a350: 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
a360: 65 78 70 6f 72 74 20 42 4f 4f 4c 20 47 65 74 54  export BOOL GetT
a370: 68 72 65 61 64 53 65 6c 65 63 74 6f 72 45 6e 74  hreadSelectorEnt
a380: 72 79 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68 54  ry(..  HANDLE hT
a390: 68 72 65 61 64 2c 0d 0a 20 20 44 57 4f 52 44 20  hread,..  DWORD 
a3a0: 64 77 53 65 6c 65 63 74 6f 72 2c 0d 0a 20 20 4c  dwSelector,..  L
a3b0: 50 4c 44 54 5f 45 4e 54 52 59 20 6c 70 53 65 6c  PLDT_ENTRY lpSel
a3c0: 65 63 74 6f 72 45 6e 74 72 79 29 3b 0d 0a 0d 0a  ectorEntry);....
a3d0: 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
a3e0: 65 78 70 6f 72 74 20 45 58 45 43 55 54 49 4f 4e  export EXECUTION
a3f0: 5f 53 54 41 54 45 20 53 65 74 54 68 72 65 61 64  _STATE SetThread
a400: 45 78 65 63 75 74 69 6f 6e 53 74 61 74 65 28 0d  ExecutionState(.
a410: 0a 20 20 45 58 45 43 55 54 49 4f 4e 5f 53 54 41  .  EXECUTION_STA
a420: 54 45 20 65 73 46 6c 61 67 73 29 3b 0d 0a 0d 0a  TE esFlags);....
a430: 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
a440: 65 78 70 6f 72 74 20 44 57 4f 52 44 20 47 65 74  export DWORD Get
a450: 4c 61 73 74 45 72 72 6f 72 28 29 3b 0d 0a 0d 0a  LastError();....
a460: 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
a470: 65 78 70 6f 72 74 20 56 4f 49 44 20 53 65 74 4c  export VOID SetL
a480: 61 73 74 45 72 72 6f 72 28 0d 0a 20 20 44 57 4f  astError(..  DWO
a490: 52 44 20 64 77 45 72 72 43 6f 64 65 29 3b 0d 0a  RD dwErrCode);..
a4a0: 0d 0a 2f 2f 20 23 69 66 20 21 64 65 66 69 6e 65  ..// #if !define
a4b0: 64 28 52 43 5f 49 4e 56 4f 4b 45 44 29 20 2f 2f  d(RC_INVOKED) //
a4c0: 20 52 43 20 77 61 72 6e 73 20 62 65 63 61 75 73   RC warns becaus
a4d0: 65 20 22 57 49 4e 42 41 53 45 5f 44 45 43 4c 41  e "WINBASE_DECLA
a4e0: 52 45 5f 52 45 53 54 4f 52 45 5f 4c 41 53 54 5f  RE_RESTORE_LAST_
a4f0: 45 52 52 4f 52 22 20 69 73 20 61 20 62 69 74 20  ERROR" is a bit 
a500: 6c 6f 6e 67 2e 0d 0a 0d 0a 2f 2f 20 23 69 66 20  long.....// #if 
a510: 64 65 66 69 6e 65 64 28 57 49 4e 42 41 53 45 5f  defined(WINBASE_
a520: 44 45 43 4c 41 52 45 5f 52 45 53 54 4f 52 45 5f  DECLARE_RESTORE_
a530: 4c 41 53 54 5f 45 52 52 4f 52 29 0d 0a 0d 0a 2f  LAST_ERROR)..../
a540: 2f 20 2e 2e 2e 0d 0a 0d 0a 2f 2f 20 2e 2e 2e 0d  / .......// ....
a550: 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 2e 2e  .// #.....// #..
a560: 2e 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 0d 0a 2f 2f  ...// #.......//
a570: 20 23 65 6e 64 69 66 0d 0a 2f 2f 20 23 65 6e 64   #endif..// #end
a580: 69 66 0d 0a 0d 0a 62 69 74 20 48 61 73 4f 76 65  if....bit HasOve
a590: 72 6c 61 70 70 65 64 49 6f 43 6f 6d 70 6c 65 74  rlappedIoComplet
a5a0: 65 64 28 4c 50 4f 56 45 52 4c 41 50 50 45 44 20  ed(LPOVERLAPPED 
a5b0: 6c 70 4f 76 65 72 6c 61 70 70 65 64 29 7b 20 72  lpOverlapped){ r
a5c0: 65 74 75 72 6e 20 28 2a 6c 70 4f 76 65 72 6c 61  eturn (*lpOverla
a5d0: 70 70 65 64 29 2e 49 6e 74 65 72 6e 61 6c 20 21  pped).Internal !
a5e0: 3d 20 53 54 41 54 55 53 5f 50 45 4e 44 49 4e 47  = STATUS_PENDING
a5f0: 3b 20 7d 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69  ; }....extern(Wi
a600: 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f  ndows) export BO
a610: 4f 4c 20 47 65 74 4f 76 65 72 6c 61 70 70 65 64  OL GetOverlapped
a620: 52 65 73 75 6c 74 28 0d 0a 20 20 48 41 4e 44 4c  Result(..  HANDL
a630: 45 20 68 46 69 6c 65 2c 0d 0a 20 20 4c 50 4f 56  E hFile,..  LPOV
a640: 45 52 4c 41 50 50 45 44 20 6c 70 4f 76 65 72 6c  ERLAPPED lpOverl
a650: 61 70 70 65 64 2c 0d 0a 20 20 4c 50 44 57 4f 52  apped,..  LPDWOR
a660: 44 20 6c 70 4e 75 6d 62 65 72 4f 66 42 79 74 65  D lpNumberOfByte
a670: 73 54 72 61 6e 73 66 65 72 72 65 64 2c 0d 0a 20  sTransferred,.. 
a680: 20 42 4f 4f 4c 20 62 57 61 69 74 29 3b 0d 0a 0d   BOOL bWait);...
a690: 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29  .extern(Windows)
a6a0: 20 65 78 70 6f 72 74 20 48 41 4e 44 4c 45 20 43   export HANDLE C
a6b0: 72 65 61 74 65 49 6f 43 6f 6d 70 6c 65 74 69 6f  reateIoCompletio
a6c0: 6e 50 6f 72 74 28 0d 0a 20 20 48 41 4e 44 4c 45  nPort(..  HANDLE
a6d0: 20 46 69 6c 65 48 61 6e 64 6c 65 2c 0d 0a 20 20   FileHandle,..  
a6e0: 48 41 4e 44 4c 45 20 45 78 69 73 74 69 6e 67 43  HANDLE ExistingC
a6f0: 6f 6d 70 6c 65 74 69 6f 6e 50 6f 72 74 2c 0d 0a  ompletionPort,..
a700: 20 20 55 4c 4f 4e 47 5f 50 54 52 20 43 6f 6d 70    ULONG_PTR Comp
a710: 6c 65 74 69 6f 6e 4b 65 79 2c 0d 0a 20 20 44 57  letionKey,..  DW
a720: 4f 52 44 20 4e 75 6d 62 65 72 4f 66 43 6f 6e 63  ORD NumberOfConc
a730: 75 72 72 65 6e 74 54 68 72 65 61 64 73 29 3b 0d  urrentThreads);.
a740: 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ...extern(Window
a750: 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 47  s) export BOOL G
a760: 65 74 51 75 65 75 65 64 43 6f 6d 70 6c 65 74 69  etQueuedCompleti
a770: 6f 6e 53 74 61 74 75 73 28 0d 0a 20 20 48 41 4e  onStatus(..  HAN
a780: 44 4c 45 20 43 6f 6d 70 6c 65 74 69 6f 6e 50 6f  DLE CompletionPo
a790: 72 74 2c 0d 0a 20 20 4c 50 44 57 4f 52 44 20 6c  rt,..  LPDWORD l
a7a0: 70 4e 75 6d 62 65 72 4f 66 42 79 74 65 73 54 72  pNumberOfBytesTr
a7b0: 61 6e 73 66 65 72 72 65 64 2c 0d 0a 20 20 50 55  ansferred,..  PU
a7c0: 4c 4f 4e 47 5f 50 54 52 20 6c 70 43 6f 6d 70 6c  LONG_PTR lpCompl
a7d0: 65 74 69 6f 6e 4b 65 79 2c 0d 0a 20 20 4c 50 4f  etionKey,..  LPO
a7e0: 56 45 52 4c 41 50 50 45 44 20 2a 6c 70 4f 76 65  VERLAPPED *lpOve
a7f0: 72 6c 61 70 70 65 64 2c 0d 0a 20 20 44 57 4f 52  rlapped,..  DWOR
a800: 44 20 64 77 4d 69 6c 6c 69 73 65 63 6f 6e 64 73  D dwMilliseconds
a810: 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e  );....extern(Win
a820: 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f  dows) export BOO
a830: 4c 20 50 6f 73 74 51 75 65 75 65 64 43 6f 6d 70  L PostQueuedComp
a840: 6c 65 74 69 6f 6e 53 74 61 74 75 73 28 0d 0a 20  letionStatus(.. 
a850: 20 48 41 4e 44 4c 45 20 43 6f 6d 70 6c 65 74 69   HANDLE Completi
a860: 6f 6e 50 6f 72 74 2c 0d 0a 20 20 44 57 4f 52 44  onPort,..  DWORD
a870: 20 64 77 4e 75 6d 62 65 72 4f 66 42 79 74 65 73   dwNumberOfBytes
a880: 54 72 61 6e 73 66 65 72 72 65 64 2c 0d 0a 20 20  Transferred,..  
a890: 55 4c 4f 4e 47 5f 50 54 52 20 64 77 43 6f 6d 70  ULONG_PTR dwComp
a8a0: 6c 65 74 69 6f 6e 4b 65 79 2c 0d 0a 20 20 4c 50  letionKey,..  LP
a8b0: 4f 56 45 52 4c 41 50 50 45 44 20 6c 70 4f 76 65  OVERLAPPED lpOve
a8c0: 72 6c 61 70 70 65 64 29 3b 0d 0a 0d 0a 65 6e 75  rlapped);....enu
a8d0: 6d 20 3a 20 75 69 6e 74 20 7b 20 53 45 4d 5f 46  m : uint { SEM_F
a8e0: 41 49 4c 43 52 49 54 49 43 41 4c 45 52 52 4f 52  AILCRITICALERROR
a8f0: 53 20 3d 20 30 78 30 30 30 31 20 7d 0d 0a 65 6e  S = 0x0001 }..en
a900: 75 6d 20 3a 20 75 69 6e 74 20 7b 20 53 45 4d 5f  um : uint { SEM_
a910: 4e 4f 47 50 46 41 55 4c 54 45 52 52 4f 52 42 4f  NOGPFAULTERRORBO
a920: 58 20 3d 20 30 78 30 30 30 32 20 7d 0d 0a 65 6e  X = 0x0002 }..en
a930: 75 6d 20 3a 20 75 69 6e 74 20 7b 20 53 45 4d 5f  um : uint { SEM_
a940: 4e 4f 41 4c 49 47 4e 4d 45 4e 54 46 41 55 4c 54  NOALIGNMENTFAULT
a950: 45 58 43 45 50 54 20 3d 20 30 78 30 30 30 34 20  EXCEPT = 0x0004 
a960: 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b  }..enum : uint {
a970: 20 53 45 4d 5f 4e 4f 4f 50 45 4e 46 49 4c 45 45   SEM_NOOPENFILEE
a980: 52 52 4f 52 42 4f 58 20 3d 20 30 78 38 30 30 30  RRORBOX = 0x8000
a990: 20 7d 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e   }....extern(Win
a9a0: 64 6f 77 73 29 20 65 78 70 6f 72 74 20 55 49 4e  dows) export UIN
a9b0: 54 20 53 65 74 45 72 72 6f 72 4d 6f 64 65 28 0d  T SetErrorMode(.
a9c0: 0a 20 20 55 49 4e 54 20 75 4d 6f 64 65 29 3b 0d  .  UINT uMode);.
a9d0: 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ...extern(Window
a9e0: 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 52  s) export BOOL R
a9f0: 65 61 64 50 72 6f 63 65 73 73 4d 65 6d 6f 72 79  eadProcessMemory
aa00: 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68 50 72 6f  (..  HANDLE hPro
aa10: 63 65 73 73 2c 0d 0a 20 20 4c 50 43 56 4f 49 44  cess,..  LPCVOID
aa20: 20 6c 70 42 61 73 65 41 64 64 72 65 73 73 2c 0d   lpBaseAddress,.
aa30: 0a 20 20 4c 50 56 4f 49 44 20 6c 70 42 75 66 66  .  LPVOID lpBuff
aa40: 65 72 2c 0d 0a 20 20 53 49 5a 45 5f 54 20 6e 53  er,..  SIZE_T nS
aa50: 69 7a 65 2c 0d 0a 20 20 53 49 5a 45 5f 54 20 2a  ize,..  SIZE_T *
aa60: 20 6c 70 4e 75 6d 62 65 72 4f 66 42 79 74 65 73   lpNumberOfBytes
aa70: 52 65 61 64 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e  Read);....extern
aa80: 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
aa90: 20 42 4f 4f 4c 20 57 72 69 74 65 50 72 6f 63 65   BOOL WriteProce
aaa0: 73 73 4d 65 6d 6f 72 79 28 0d 0a 20 20 48 41 4e  ssMemory(..  HAN
aab0: 44 4c 45 20 68 50 72 6f 63 65 73 73 2c 0d 0a 20  DLE hProcess,.. 
aac0: 20 4c 50 56 4f 49 44 20 6c 70 42 61 73 65 41 64   LPVOID lpBaseAd
aad0: 64 72 65 73 73 2c 0d 0a 20 20 4c 50 43 56 4f 49  dress,..  LPCVOI
aae0: 44 20 6c 70 42 75 66 66 65 72 2c 0d 0a 20 20 53  D lpBuffer,..  S
aaf0: 49 5a 45 5f 54 20 6e 53 69 7a 65 2c 0d 0a 20 20  IZE_T nSize,..  
ab00: 53 49 5a 45 5f 54 20 2a 20 6c 70 4e 75 6d 62 65  SIZE_T * lpNumbe
ab10: 72 4f 66 42 79 74 65 73 57 72 69 74 74 65 6e 29  rOfBytesWritten)
ab20: 3b 0d 0a 0d 0a 2f 2f 20 23 69 66 20 21 64 65 66  ;....// #if !def
ab30: 69 6e 65 64 28 4d 49 44 4c 5f 50 41 53 53 29 0d  ined(MIDL_PASS).
ab40: 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29  .extern(Windows)
ab50: 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 47 65 74   export BOOL Get
ab60: 54 68 72 65 61 64 43 6f 6e 74 65 78 74 28 0d 0a  ThreadContext(..
ab70: 20 20 48 41 4e 44 4c 45 20 68 54 68 72 65 61 64    HANDLE hThread
ab80: 2c 0d 0a 20 20 4c 50 43 4f 4e 54 45 58 54 20 6c  ,..  LPCONTEXT l
ab90: 70 43 6f 6e 74 65 78 74 29 3b 0d 0a 0d 0a 65 78  pContext);....ex
aba0: 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
abb0: 70 6f 72 74 20 42 4f 4f 4c 20 53 65 74 54 68 72  port BOOL SetThr
abc0: 65 61 64 43 6f 6e 74 65 78 74 28 0d 0a 20 20 48  eadContext(..  H
abd0: 41 4e 44 4c 45 20 68 54 68 72 65 61 64 2c 0d 0a  ANDLE hThread,..
abe0: 20 20 43 4f 4e 54 45 58 54 20 2a 6c 70 43 6f 6e    CONTEXT *lpCon
abf0: 74 65 78 74 29 3b 0d 0a 2f 2f 20 23 65 6e 64 69  text);..// #endi
ac00: 66 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  f....extern(Wind
ac10: 6f 77 73 29 20 65 78 70 6f 72 74 20 44 57 4f 52  ows) export DWOR
ac20: 44 20 53 75 73 70 65 6e 64 54 68 72 65 61 64 28  D SuspendThread(
ac30: 0d 0a 20 20 48 41 4e 44 4c 45 20 68 54 68 72 65  ..  HANDLE hThre
ac40: 61 64 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57  ad);....extern(W
ac50: 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 44  indows) export D
ac60: 57 4f 52 44 20 52 65 73 75 6d 65 54 68 72 65 61  WORD ResumeThrea
ac70: 64 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68 54 68  d(..  HANDLE hTh
ac80: 72 65 61 64 29 3b 0d 0a 0d 0a 2f 2f 20 23 69 66  read);....// #if
ac90: 28 5f 57 49 4e 33 32 5f 57 49 4e 4e 54 20 3e 3d  (_WIN32_WINNT >=
aca0: 20 30 78 30 34 30 30 29 20 7c 7c 20 28 5f 57 49   0x0400) || (_WI
acb0: 4e 33 32 5f 57 49 4e 44 4f 57 53 20 3e 20 30 78  N32_WINDOWS > 0x
acc0: 30 34 30 30 29 0d 0a 0d 0a 2f 2f 20 2e 2e 2e 0d  0400)....// ....
acd0: 0a 0d 0a 2f 2f 20 2e 2e 2e 0d 0a 0d 0a 2f 2f 20  ...// .......// 
ace0: 23 65 6e 64 69 66 20 2f 2a 20 5f 57 49 4e 33 32  #endif /* _WIN32
acf0: 5f 57 49 4e 4e 54 20 3e 3d 20 30 78 30 34 30 30  _WINNT >= 0x0400
ad00: 20 7c 7c 20 5f 57 49 4e 33 32 5f 57 49 4e 44 4f   || _WIN32_WINDO
ad10: 57 53 20 3e 20 30 78 30 34 30 30 20 2a 2f 0d 0a  WS > 0x0400 */..
ad20: 0d 0a 2f 2f 20 23 69 66 20 28 5f 57 49 4e 33 32  ..// #if (_WIN32
ad30: 5f 57 49 4e 4e 54 20 3e 3d 20 30 78 30 34 30 30  _WINNT >= 0x0400
ad40: 29 20 7c 7c 20 28 5f 57 49 4e 33 32 5f 57 49 4e  ) || (_WIN32_WIN
ad50: 44 4f 57 53 20 3e 20 30 78 30 34 30 30 29 0d 0a  DOWS > 0x0400)..
ad60: 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
ad70: 65 78 70 6f 72 74 20 42 4f 4f 4c 20 49 73 44 65  export BOOL IsDe
ad80: 62 75 67 67 65 72 50 72 65 73 65 6e 74 28 29 3b  buggerPresent();
ad90: 0d 0a 2f 2f 20 23 65 6e 64 69 66 0d 0a 0d 0a 65  ..// #endif....e
ada0: 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
adb0: 78 70 6f 72 74 20 56 4f 49 44 20 44 65 62 75 67  xport VOID Debug
adc0: 42 72 65 61 6b 28 29 3b 0d 0a 0d 0a 65 78 74 65  Break();....exte
add0: 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
ade0: 72 74 20 42 4f 4f 4c 20 57 61 69 74 46 6f 72 44  rt BOOL WaitForD
adf0: 65 62 75 67 45 76 65 6e 74 28 0d 0a 20 20 4c 50  ebugEvent(..  LP
ae00: 44 45 42 55 47 5f 45 56 45 4e 54 20 6c 70 44 65  DEBUG_EVENT lpDe
ae10: 62 75 67 45 76 65 6e 74 2c 0d 0a 20 20 44 57 4f  bugEvent,..  DWO
ae20: 52 44 20 64 77 4d 69 6c 6c 69 73 65 63 6f 6e 64  RD dwMillisecond
ae30: 73 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69  s);....extern(Wi
ae40: 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f  ndows) export BO
ae50: 4f 4c 20 43 6f 6e 74 69 6e 75 65 44 65 62 75 67  OL ContinueDebug
ae60: 45 76 65 6e 74 28 0d 0a 20 20 44 57 4f 52 44 20  Event(..  DWORD 
ae70: 64 77 50 72 6f 63 65 73 73 49 64 2c 0d 0a 20 20  dwProcessId,..  
ae80: 44 57 4f 52 44 20 64 77 54 68 72 65 61 64 49 64  DWORD dwThreadId
ae90: 2c 0d 0a 20 20 44 57 4f 52 44 20 64 77 43 6f 6e  ,..  DWORD dwCon
aea0: 74 69 6e 75 65 53 74 61 74 75 73 29 3b 0d 0a 0d  tinueStatus);...
aeb0: 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29  .extern(Windows)
aec0: 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 44 65 62   export BOOL Deb
aed0: 75 67 41 63 74 69 76 65 50 72 6f 63 65 73 73 28  ugActiveProcess(
aee0: 0d 0a 20 20 44 57 4f 52 44 20 64 77 50 72 6f 63  ..  DWORD dwProc
aef0: 65 73 73 49 64 29 3b 0d 0a 0d 0a 65 78 74 65 72  essId);....exter
af00: 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
af10: 74 20 42 4f 4f 4c 20 44 65 62 75 67 41 63 74 69  t BOOL DebugActi
af20: 76 65 50 72 6f 63 65 73 73 53 74 6f 70 28 0d 0a  veProcessStop(..
af30: 20 20 44 57 4f 52 44 20 64 77 50 72 6f 63 65 73    DWORD dwProces
af40: 73 49 64 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28  sId);....extern(
af50: 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
af60: 42 4f 4f 4c 20 44 65 62 75 67 53 65 74 50 72 6f  BOOL DebugSetPro
af70: 63 65 73 73 4b 69 6c 6c 4f 6e 45 78 69 74 28 0d  cessKillOnExit(.
af80: 0a 20 20 42 4f 4f 4c 20 4b 69 6c 6c 4f 6e 45 78  .  BOOL KillOnEx
af90: 69 74 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57  it);....extern(W
afa0: 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42  indows) export B
afb0: 4f 4f 4c 20 44 65 62 75 67 42 72 65 61 6b 50 72  OOL DebugBreakPr
afc0: 6f 63 65 73 73 28 0d 0a 20 20 48 41 4e 44 4c 45  ocess(..  HANDLE
afd0: 20 50 72 6f 63 65 73 73 29 3b 0d 0a 0d 0a 65 78   Process);....ex
afe0: 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
aff0: 70 6f 72 74 20 56 4f 49 44 20 49 6e 69 74 69 61  port VOID Initia
b000: 6c 69 7a 65 43 72 69 74 69 63 61 6c 53 65 63 74  lizeCriticalSect
b010: 69 6f 6e 28 0d 0a 20 20 4c 50 43 52 49 54 49 43  ion(..  LPCRITIC
b020: 41 4c 5f 53 45 43 54 49 4f 4e 20 6c 70 43 72 69  AL_SECTION lpCri
b030: 74 69 63 61 6c 53 65 63 74 69 6f 6e 29 3b 0d 0a  ticalSection);..
b040: 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
b050: 29 20 65 78 70 6f 72 74 20 56 4f 49 44 20 45 6e  ) export VOID En
b060: 74 65 72 43 72 69 74 69 63 61 6c 53 65 63 74 69  terCriticalSecti
b070: 6f 6e 28 0d 0a 20 20 4c 50 43 52 49 54 49 43 41  on(..  LPCRITICA
b080: 4c 5f 53 45 43 54 49 4f 4e 20 6c 70 43 72 69 74  L_SECTION lpCrit
b090: 69 63 61 6c 53 65 63 74 69 6f 6e 29 3b 0d 0a 0d  icalSection);...
b0a0: 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29  .extern(Windows)
b0b0: 20 65 78 70 6f 72 74 20 56 4f 49 44 20 4c 65 61   export VOID Lea
b0c0: 76 65 43 72 69 74 69 63 61 6c 53 65 63 74 69 6f  veCriticalSectio
b0d0: 6e 28 0d 0a 20 20 4c 50 43 52 49 54 49 43 41 4c  n(..  LPCRITICAL
b0e0: 5f 53 45 43 54 49 4f 4e 20 6c 70 43 72 69 74 69  _SECTION lpCriti
b0f0: 63 61 6c 53 65 63 74 69 6f 6e 29 3b 0d 0a 0d 0a  calSection);....
b100: 2f 2f 20 23 69 66 20 28 5f 57 49 4e 33 32 5f 57  // #if (_WIN32_W
b110: 49 4e 4e 54 20 3e 3d 20 30 78 30 34 30 33 29 0d  INNT >= 0x0403).
b120: 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29  .extern(Windows)
b130: 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 49 6e 69   export BOOL Ini
b140: 74 69 61 6c 69 7a 65 43 72 69 74 69 63 61 6c 53  tializeCriticalS
b150: 65 63 74 69 6f 6e 41 6e 64 53 70 69 6e 43 6f 75  ectionAndSpinCou
b160: 6e 74 28 0d 0a 20 20 4c 50 43 52 49 54 49 43 41  nt(..  LPCRITICA
b170: 4c 5f 53 45 43 54 49 4f 4e 20 6c 70 43 72 69 74  L_SECTION lpCrit
b180: 69 63 61 6c 53 65 63 74 69 6f 6e 2c 0d 0a 20 20  icalSection,..  
b190: 44 57 4f 52 44 20 64 77 53 70 69 6e 43 6f 75 6e  DWORD dwSpinCoun
b1a0: 74 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69  t);....extern(Wi
b1b0: 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 44 57  ndows) export DW
b1c0: 4f 52 44 20 53 65 74 43 72 69 74 69 63 61 6c 53  ORD SetCriticalS
b1d0: 65 63 74 69 6f 6e 53 70 69 6e 43 6f 75 6e 74 28  ectionSpinCount(
b1e0: 0d 0a 20 20 4c 50 43 52 49 54 49 43 41 4c 5f 53  ..  LPCRITICAL_S
b1f0: 45 43 54 49 4f 4e 20 6c 70 43 72 69 74 69 63 61  ECTION lpCritica
b200: 6c 53 65 63 74 69 6f 6e 2c 0d 0a 20 20 44 57 4f  lSection,..  DWO
b210: 52 44 20 64 77 53 70 69 6e 43 6f 75 6e 74 29 3b  RD dwSpinCount);
b220: 0d 0a 2f 2f 20 23 65 6e 64 69 66 0d 0a 0d 0a 2f  ..// #endif..../
b230: 2f 20 23 69 66 28 5f 57 49 4e 33 32 5f 57 49 4e  / #if(_WIN32_WIN
b240: 4e 54 20 3e 3d 20 30 78 30 34 30 30 29 0d 0a 65  NT >= 0x0400)..e
b250: 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
b260: 78 70 6f 72 74 20 42 4f 4f 4c 20 54 72 79 45 6e  xport BOOL TryEn
b270: 74 65 72 43 72 69 74 69 63 61 6c 53 65 63 74 69  terCriticalSecti
b280: 6f 6e 28 0d 0a 20 20 4c 50 43 52 49 54 49 43 41  on(..  LPCRITICA
b290: 4c 5f 53 45 43 54 49 4f 4e 20 6c 70 43 72 69 74  L_SECTION lpCrit
b2a0: 69 63 61 6c 53 65 63 74 69 6f 6e 29 3b 0d 0a 2f  icalSection);../
b2b0: 2f 20 23 65 6e 64 69 66 20 2f 2a 20 5f 57 49 4e  / #endif /* _WIN
b2c0: 33 32 5f 57 49 4e 4e 54 20 3e 3d 20 30 78 30 34  32_WINNT >= 0x04
b2d0: 30 30 20 2a 2f 0d 0a 0d 0a 65 78 74 65 72 6e 28  00 */....extern(
b2e0: 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
b2f0: 56 4f 49 44 20 44 65 6c 65 74 65 43 72 69 74 69  VOID DeleteCriti
b300: 63 61 6c 53 65 63 74 69 6f 6e 28 0d 0a 20 20 4c  calSection(..  L
b310: 50 43 52 49 54 49 43 41 4c 5f 53 45 43 54 49 4f  PCRITICAL_SECTIO
b320: 4e 20 6c 70 43 72 69 74 69 63 61 6c 53 65 63 74  N lpCriticalSect
b330: 69 6f 6e 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28  ion);....extern(
b340: 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
b350: 42 4f 4f 4c 20 53 65 74 45 76 65 6e 74 28 0d 0a  BOOL SetEvent(..
b360: 20 20 48 41 4e 44 4c 45 20 68 45 76 65 6e 74 29    HANDLE hEvent)
b370: 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  ;....extern(Wind
b380: 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c  ows) export BOOL
b390: 20 52 65 73 65 74 45 76 65 6e 74 28 0d 0a 20 20   ResetEvent(..  
b3a0: 48 41 4e 44 4c 45 20 68 45 76 65 6e 74 29 3b 0d  HANDLE hEvent);.
b3b0: 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ...extern(Window
b3c0: 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 50  s) export BOOL P
b3d0: 75 6c 73 65 45 76 65 6e 74 28 0d 0a 20 20 48 41  ulseEvent(..  HA
b3e0: 4e 44 4c 45 20 68 45 76 65 6e 74 29 3b 0d 0a 0d  NDLE hEvent);...
b3f0: 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29  .extern(Windows)
b400: 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 52 65 6c   export BOOL Rel
b410: 65 61 73 65 53 65 6d 61 70 68 6f 72 65 28 0d 0a  easeSemaphore(..
b420: 20 20 48 41 4e 44 4c 45 20 68 53 65 6d 61 70 68    HANDLE hSemaph
b430: 6f 72 65 2c 0d 0a 20 20 4c 4f 4e 47 20 6c 52 65  ore,..  LONG lRe
b440: 6c 65 61 73 65 43 6f 75 6e 74 2c 0d 0a 20 20 4c  leaseCount,..  L
b450: 50 4c 4f 4e 47 20 6c 70 50 72 65 76 69 6f 75 73  PLONG lpPrevious
b460: 43 6f 75 6e 74 29 3b 0d 0a 0d 0a 65 78 74 65 72  Count);....exter
b470: 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
b480: 74 20 42 4f 4f 4c 20 52 65 6c 65 61 73 65 4d 75  t BOOL ReleaseMu
b490: 74 65 78 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68  tex(..  HANDLE h
b4a0: 4d 75 74 65 78 29 3b 0d 0a 0d 0a 65 78 74 65 72  Mutex);....exter
b4b0: 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
b4c0: 74 20 44 57 4f 52 44 20 57 61 69 74 46 6f 72 53  t DWORD WaitForS
b4d0: 69 6e 67 6c 65 4f 62 6a 65 63 74 28 0d 0a 20 20  ingleObject(..  
b4e0: 48 41 4e 44 4c 45 20 68 48 61 6e 64 6c 65 2c 0d  HANDLE hHandle,.
b4f0: 0a 20 20 44 57 4f 52 44 20 64 77 4d 69 6c 6c 69  .  DWORD dwMilli
b500: 73 65 63 6f 6e 64 73 29 3b 0d 0a 0d 0a 65 78 74  seconds);....ext
b510: 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
b520: 6f 72 74 20 44 57 4f 52 44 20 57 61 69 74 46 6f  ort DWORD WaitFo
b530: 72 4d 75 6c 74 69 70 6c 65 4f 62 6a 65 63 74 73  rMultipleObjects
b540: 28 0d 0a 20 20 44 57 4f 52 44 20 6e 43 6f 75 6e  (..  DWORD nCoun
b550: 74 2c 0d 0a 20 20 48 41 4e 44 4c 45 20 2a 6c 70  t,..  HANDLE *lp
b560: 48 61 6e 64 6c 65 73 2c 0d 0a 20 20 42 4f 4f 4c  Handles,..  BOOL
b570: 20 62 57 61 69 74 41 6c 6c 2c 0d 0a 20 20 44 57   bWaitAll,..  DW
b580: 4f 52 44 20 64 77 4d 69 6c 6c 69 73 65 63 6f 6e  ORD dwMillisecon
b590: 64 73 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57  ds);....extern(W
b5a0: 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 56  indows) export V
b5b0: 4f 49 44 20 53 6c 65 65 70 28 0d 0a 20 20 44 57  OID Sleep(..  DW
b5c0: 4f 52 44 20 64 77 4d 69 6c 6c 69 73 65 63 6f 6e  ORD dwMillisecon
b5d0: 64 73 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57  ds);....extern(W
b5e0: 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 48  indows) export H
b5f0: 47 4c 4f 42 41 4c 20 4c 6f 61 64 52 65 73 6f 75  GLOBAL LoadResou
b600: 72 63 65 28 0d 0a 20 20 48 4d 4f 44 55 4c 45 20  rce(..  HMODULE 
b610: 68 4d 6f 64 75 6c 65 2c 0d 0a 20 20 48 52 53 52  hModule,..  HRSR
b620: 43 20 68 52 65 73 49 6e 66 6f 29 3b 0d 0a 0d 0a  C hResInfo);....
b630: 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
b640: 65 78 70 6f 72 74 20 44 57 4f 52 44 20 53 69 7a  export DWORD Siz
b650: 65 6f 66 52 65 73 6f 75 72 63 65 28 0d 0a 20 20  eofResource(..  
b660: 48 4d 4f 44 55 4c 45 20 68 4d 6f 64 75 6c 65 2c  HMODULE hModule,
b670: 0d 0a 20 20 48 52 53 52 43 20 68 52 65 73 49 6e  ..  HRSRC hResIn
b680: 66 6f 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57  fo);....extern(W
b690: 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 41  indows) export A
b6a0: 54 4f 4d 20 47 6c 6f 62 61 6c 44 65 6c 65 74 65  TOM GlobalDelete
b6b0: 41 74 6f 6d 28 0d 0a 20 20 41 54 4f 4d 20 6e 41  Atom(..  ATOM nA
b6c0: 74 6f 6d 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28  tom);....extern(
b6d0: 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
b6e0: 42 4f 4f 4c 20 49 6e 69 74 41 74 6f 6d 54 61 62  BOOL InitAtomTab
b6f0: 6c 65 28 0d 0a 20 20 44 57 4f 52 44 20 6e 53 69  le(..  DWORD nSi
b700: 7a 65 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57  ze);....extern(W
b710: 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 41  indows) export A
b720: 54 4f 4d 20 44 65 6c 65 74 65 41 74 6f 6d 28 0d  TOM DeleteAtom(.
b730: 0a 20 20 41 54 4f 4d 20 6e 41 74 6f 6d 29 3b 0d  .  ATOM nAtom);.
b740: 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ...extern(Window
b750: 73 29 20 65 78 70 6f 72 74 20 55 49 4e 54 20 53  s) export UINT S
b760: 65 74 48 61 6e 64 6c 65 43 6f 75 6e 74 28 0d 0a  etHandleCount(..
b770: 20 20 55 49 4e 54 20 75 4e 75 6d 62 65 72 29 3b    UINT uNumber);
b780: 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f  ....extern(Windo
b790: 77 73 29 20 65 78 70 6f 72 74 20 44 57 4f 52 44  ws) export DWORD
b7a0: 20 47 65 74 4c 6f 67 69 63 61 6c 44 72 69 76 65   GetLogicalDrive
b7b0: 73 28 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57  s();....extern(W
b7c0: 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42  indows) export B
b7d0: 4f 4f 4c 20 4c 6f 63 6b 46 69 6c 65 28 0d 0a 20  OOL LockFile(.. 
b7e0: 20 48 41 4e 44 4c 45 20 68 46 69 6c 65 2c 0d 0a   HANDLE hFile,..
b7f0: 20 20 44 57 4f 52 44 20 64 77 46 69 6c 65 4f 66    DWORD dwFileOf
b800: 66 73 65 74 4c 6f 77 2c 0d 0a 20 20 44 57 4f 52  fsetLow,..  DWOR
b810: 44 20 64 77 46 69 6c 65 4f 66 66 73 65 74 48 69  D dwFileOffsetHi
b820: 67 68 2c 0d 0a 20 20 44 57 4f 52 44 20 6e 4e 75  gh,..  DWORD nNu
b830: 6d 62 65 72 4f 66 42 79 74 65 73 54 6f 4c 6f 63  mberOfBytesToLoc
b840: 6b 4c 6f 77 2c 0d 0a 20 20 44 57 4f 52 44 20 6e  kLow,..  DWORD n
b850: 4e 75 6d 62 65 72 4f 66 42 79 74 65 73 54 6f 4c  NumberOfBytesToL
b860: 6f 63 6b 48 69 67 68 29 3b 0d 0a 0d 0a 65 78 74  ockHigh);....ext
b870: 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
b880: 6f 72 74 20 42 4f 4f 4c 20 55 6e 6c 6f 63 6b 46  ort BOOL UnlockF
b890: 69 6c 65 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68  ile(..  HANDLE h
b8a0: 46 69 6c 65 2c 0d 0a 20 20 44 57 4f 52 44 20 64  File,..  DWORD d
b8b0: 77 46 69 6c 65 4f 66 66 73 65 74 4c 6f 77 2c 0d  wFileOffsetLow,.
b8c0: 0a 20 20 44 57 4f 52 44 20 64 77 46 69 6c 65 4f  .  DWORD dwFileO
b8d0: 66 66 73 65 74 48 69 67 68 2c 0d 0a 20 20 44 57  ffsetHigh,..  DW
b8e0: 4f 52 44 20 6e 4e 75 6d 62 65 72 4f 66 42 79 74  ORD nNumberOfByt
b8f0: 65 73 54 6f 55 6e 6c 6f 63 6b 4c 6f 77 2c 0d 0a  esToUnlockLow,..
b900: 20 20 44 57 4f 52 44 20 6e 4e 75 6d 62 65 72 4f    DWORD nNumberO
b910: 66 42 79 74 65 73 54 6f 55 6e 6c 6f 63 6b 48 69  fBytesToUnlockHi
b920: 67 68 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57  gh);....extern(W
b930: 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42  indows) export B
b940: 4f 4f 4c 20 4c 6f 63 6b 46 69 6c 65 45 78 28 0d  OOL LockFileEx(.
b950: 0a 20 20 48 41 4e 44 4c 45 20 68 46 69 6c 65 2c  .  HANDLE hFile,
b960: 0d 0a 20 20 44 57 4f 52 44 20 64 77 46 6c 61 67  ..  DWORD dwFlag
b970: 73 2c 0d 0a 20 20 44 57 4f 52 44 20 64 77 52 65  s,..  DWORD dwRe
b980: 73 65 72 76 65 64 2c 0d 0a 20 20 44 57 4f 52 44  served,..  DWORD
b990: 20 6e 4e 75 6d 62 65 72 4f 66 42 79 74 65 73 54   nNumberOfBytesT
b9a0: 6f 4c 6f 63 6b 4c 6f 77 2c 0d 0a 20 20 44 57 4f  oLockLow,..  DWO
b9b0: 52 44 20 6e 4e 75 6d 62 65 72 4f 66 42 79 74 65  RD nNumberOfByte
b9c0: 73 54 6f 4c 6f 63 6b 48 69 67 68 2c 0d 0a 20 20  sToLockHigh,..  
b9d0: 4c 50 4f 56 45 52 4c 41 50 50 45 44 20 6c 70 4f  LPOVERLAPPED lpO
b9e0: 76 65 72 6c 61 70 70 65 64 29 3b 0d 0a 0d 0a 65  verlapped);....e
b9f0: 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 4c 4f 43  num : uint { LOC
ba00: 4b 46 49 4c 45 5f 46 41 49 4c 5f 49 4d 4d 45 44  KFILE_FAIL_IMMED
ba10: 49 41 54 45 4c 59 20 3d 20 30 78 30 30 30 30 30  IATELY = 0x00000
ba20: 30 30 31 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69  001 }..enum : ui
ba30: 6e 74 20 7b 20 4c 4f 43 4b 46 49 4c 45 5f 45 58  nt { LOCKFILE_EX
ba40: 43 4c 55 53 49 56 45 5f 4c 4f 43 4b 20 3d 20 30  CLUSIVE_LOCK = 0
ba50: 78 30 30 30 30 30 30 30 32 20 7d 0d 0a 0d 0a 65  x00000002 }....e
ba60: 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
ba70: 78 70 6f 72 74 20 42 4f 4f 4c 20 55 6e 6c 6f 63  xport BOOL Unloc
ba80: 6b 46 69 6c 65 45 78 28 0d 0a 20 20 48 41 4e 44  kFileEx(..  HAND
ba90: 4c 45 20 68 46 69 6c 65 2c 0d 0a 20 20 44 57 4f  LE hFile,..  DWO
baa0: 52 44 20 64 77 52 65 73 65 72 76 65 64 2c 0d 0a  RD dwReserved,..
bab0: 20 20 44 57 4f 52 44 20 6e 4e 75 6d 62 65 72 4f    DWORD nNumberO
bac0: 66 42 79 74 65 73 54 6f 55 6e 6c 6f 63 6b 4c 6f  fBytesToUnlockLo
bad0: 77 2c 0d 0a 20 20 44 57 4f 52 44 20 6e 4e 75 6d  w,..  DWORD nNum
bae0: 62 65 72 4f 66 42 79 74 65 73 54 6f 55 6e 6c 6f  berOfBytesToUnlo
baf0: 63 6b 48 69 67 68 2c 0d 0a 20 20 4c 50 4f 56 45  ckHigh,..  LPOVE
bb00: 52 4c 41 50 50 45 44 20 6c 70 4f 76 65 72 6c 61  RLAPPED lpOverla
bb10: 70 70 65 64 29 3b 0d 0a 0d 0a 73 74 72 75 63 74  pped);....struct
bb20: 20 5f 42 59 5f 48 41 4e 44 4c 45 5f 46 49 4c 45   _BY_HANDLE_FILE
bb30: 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 20 7b 0d 0a  _INFORMATION {..
bb40: 20 20 44 57 4f 52 44 20 64 77 46 69 6c 65 41 74    DWORD dwFileAt
bb50: 74 72 69 62 75 74 65 73 3b 0d 0a 20 20 46 49 4c  tributes;..  FIL
bb60: 45 54 49 4d 45 20 66 74 43 72 65 61 74 69 6f 6e  ETIME ftCreation
bb70: 54 69 6d 65 3b 0d 0a 20 20 46 49 4c 45 54 49 4d  Time;..  FILETIM
bb80: 45 20 66 74 4c 61 73 74 41 63 63 65 73 73 54 69  E ftLastAccessTi
bb90: 6d 65 3b 0d 0a 20 20 46 49 4c 45 54 49 4d 45 20  me;..  FILETIME 
bba0: 66 74 4c 61 73 74 57 72 69 74 65 54 69 6d 65 3b  ftLastWriteTime;
bbb0: 0d 0a 20 20 44 57 4f 52 44 20 64 77 56 6f 6c 75  ..  DWORD dwVolu
bbc0: 6d 65 53 65 72 69 61 6c 4e 75 6d 62 65 72 3b 0d  meSerialNumber;.
bbd0: 0a 20 20 44 57 4f 52 44 20 6e 46 69 6c 65 53 69  .  DWORD nFileSi
bbe0: 7a 65 48 69 67 68 3b 0d 0a 20 20 44 57 4f 52 44  zeHigh;..  DWORD
bbf0: 20 6e 46 69 6c 65 53 69 7a 65 4c 6f 77 3b 0d 0a   nFileSizeLow;..
bc00: 20 20 44 57 4f 52 44 20 6e 4e 75 6d 62 65 72 4f    DWORD nNumberO
bc10: 66 4c 69 6e 6b 73 3b 0d 0a 20 20 44 57 4f 52 44  fLinks;..  DWORD
bc20: 20 6e 46 69 6c 65 49 6e 64 65 78 48 69 67 68 3b   nFileIndexHigh;
bc30: 0d 0a 20 20 44 57 4f 52 44 20 6e 46 69 6c 65 49  ..  DWORD nFileI
bc40: 6e 64 65 78 4c 6f 77 3b 0d 0a 7d 0d 0a 61 6c 69  ndexLow;..}..ali
bc50: 61 73 20 5f 42 59 5f 48 41 4e 44 4c 45 5f 46 49  as _BY_HANDLE_FI
bc60: 4c 45 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 20 42  LE_INFORMATION B
bc70: 59 5f 48 41 4e 44 4c 45 5f 46 49 4c 45 5f 49 4e  Y_HANDLE_FILE_IN
bc80: 46 4f 52 4d 41 54 49 4f 4e 3b 0d 0a 61 6c 69 61  FORMATION;..alia
bc90: 73 20 5f 42 59 5f 48 41 4e 44 4c 45 5f 46 49 4c  s _BY_HANDLE_FIL
bca0: 45 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 2a 20 50  E_INFORMATION* P
bcb0: 42 59 5f 48 41 4e 44 4c 45 5f 46 49 4c 45 5f 49  BY_HANDLE_FILE_I
bcc0: 4e 46 4f 52 4d 41 54 49 4f 4e 3b 0d 0a 61 6c 69  NFORMATION;..ali
bcd0: 61 73 20 5f 42 59 5f 48 41 4e 44 4c 45 5f 46 49  as _BY_HANDLE_FI
bce0: 4c 45 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 2a 20  LE_INFORMATION* 
bcf0: 4c 50 42 59 5f 48 41 4e 44 4c 45 5f 46 49 4c 45  LPBY_HANDLE_FILE
bd00: 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 3b 0d 0a 0d  _INFORMATION;...
bd10: 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29  .extern(Windows)
bd20: 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 47 65 74   export BOOL Get
bd30: 46 69 6c 65 49 6e 66 6f 72 6d 61 74 69 6f 6e 42  FileInformationB
bd40: 79 48 61 6e 64 6c 65 28 0d 0a 20 20 48 41 4e 44  yHandle(..  HAND
bd50: 4c 45 20 68 46 69 6c 65 2c 0d 0a 20 20 4c 50 42  LE hFile,..  LPB
bd60: 59 5f 48 41 4e 44 4c 45 5f 46 49 4c 45 5f 49 4e  Y_HANDLE_FILE_IN
bd70: 46 4f 52 4d 41 54 49 4f 4e 20 6c 70 46 69 6c 65  FORMATION lpFile
bd80: 49 6e 66 6f 72 6d 61 74 69 6f 6e 29 3b 0d 0a 0d  Information);...
bd90: 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29  .extern(Windows)
bda0: 20 65 78 70 6f 72 74 20 44 57 4f 52 44 20 47 65   export DWORD Ge
bdb0: 74 46 69 6c 65 54 79 70 65 28 0d 0a 20 20 48 41  tFileType(..  HA
bdc0: 4e 44 4c 45 20 68 46 69 6c 65 29 3b 0d 0a 0d 0a  NDLE hFile);....
bdd0: 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
bde0: 65 78 70 6f 72 74 20 44 57 4f 52 44 20 47 65 74  export DWORD Get
bdf0: 46 69 6c 65 53 69 7a 65 28 0d 0a 20 20 48 41 4e  FileSize(..  HAN
be00: 44 4c 45 20 68 46 69 6c 65 2c 0d 0a 20 20 4c 50  DLE hFile,..  LP
be10: 44 57 4f 52 44 20 6c 70 46 69 6c 65 53 69 7a 65  DWORD lpFileSize
be20: 48 69 67 68 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e  High);....extern
be30: 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
be40: 20 42 4f 4f 4c 20 47 65 74 46 69 6c 65 53 69 7a   BOOL GetFileSiz
be50: 65 45 78 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68  eEx(..  HANDLE h
be60: 46 69 6c 65 2c 0d 0a 20 20 50 4c 41 52 47 45 5f  File,..  PLARGE_
be70: 49 4e 54 45 47 45 52 20 6c 70 46 69 6c 65 53 69  INTEGER lpFileSi
be80: 7a 65 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57  ze);....extern(W
be90: 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 48  indows) export H
bea0: 41 4e 44 4c 45 20 47 65 74 53 74 64 48 61 6e 64  ANDLE GetStdHand
beb0: 6c 65 28 0d 0a 20 20 44 57 4f 52 44 20 6e 53 74  le(..  DWORD nSt
bec0: 64 48 61 6e 64 6c 65 29 3b 0d 0a 0d 0a 65 78 74  dHandle);....ext
bed0: 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
bee0: 6f 72 74 20 42 4f 4f 4c 20 53 65 74 53 74 64 48  ort BOOL SetStdH
bef0: 61 6e 64 6c 65 28 0d 0a 20 20 44 57 4f 52 44 20  andle(..  DWORD 
bf00: 6e 53 74 64 48 61 6e 64 6c 65 2c 0d 0a 20 20 48  nStdHandle,..  H
bf10: 41 4e 44 4c 45 20 68 48 61 6e 64 6c 65 29 3b 0d  ANDLE hHandle);.
bf20: 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ...extern(Window
bf30: 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 57  s) export BOOL W
bf40: 72 69 74 65 46 69 6c 65 28 0d 0a 20 20 48 41 4e  riteFile(..  HAN
bf50: 44 4c 45 20 68 46 69 6c 65 2c 0d 0a 20 20 4c 50  DLE hFile,..  LP
bf60: 43 56 4f 49 44 20 6c 70 42 75 66 66 65 72 2c 0d  CVOID lpBuffer,.
bf70: 0a 20 20 44 57 4f 52 44 20 6e 4e 75 6d 62 65 72  .  DWORD nNumber
bf80: 4f 66 42 79 74 65 73 54 6f 57 72 69 74 65 2c 0d  OfBytesToWrite,.
bf90: 0a 20 20 4c 50 44 57 4f 52 44 20 6c 70 4e 75 6d  .  LPDWORD lpNum
bfa0: 62 65 72 4f 66 42 79 74 65 73 57 72 69 74 74 65  berOfBytesWritte
bfb0: 6e 2c 0d 0a 20 20 4c 50 4f 56 45 52 4c 41 50 50  n,..  LPOVERLAPP
bfc0: 45 44 20 6c 70 4f 76 65 72 6c 61 70 70 65 64 29  ED lpOverlapped)
bfd0: 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  ;....extern(Wind
bfe0: 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c  ows) export BOOL
bff0: 20 52 65 61 64 46 69 6c 65 28 0d 0a 20 20 48 41   ReadFile(..  HA
c000: 4e 44 4c 45 20 68 46 69 6c 65 2c 0d 0a 20 20 4c  NDLE hFile,..  L
c010: 50 56 4f 49 44 20 6c 70 42 75 66 66 65 72 2c 0d  PVOID lpBuffer,.
c020: 0a 20 20 44 57 4f 52 44 20 6e 4e 75 6d 62 65 72  .  DWORD nNumber
c030: 4f 66 42 79 74 65 73 54 6f 52 65 61 64 2c 0d 0a  OfBytesToRead,..
c040: 20 20 4c 50 44 57 4f 52 44 20 6c 70 4e 75 6d 62    LPDWORD lpNumb
c050: 65 72 4f 66 42 79 74 65 73 52 65 61 64 2c 0d 0a  erOfBytesRead,..
c060: 20 20 4c 50 4f 56 45 52 4c 41 50 50 45 44 20 6c    LPOVERLAPPED l
c070: 70 4f 76 65 72 6c 61 70 70 65 64 29 3b 0d 0a 0d  pOverlapped);...
c080: 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29  .extern(Windows)
c090: 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 46 6c 75   export BOOL Flu
c0a0: 73 68 46 69 6c 65 42 75 66 66 65 72 73 28 0d 0a  shFileBuffers(..
c0b0: 20 20 48 41 4e 44 4c 45 20 68 46 69 6c 65 29 3b    HANDLE hFile);
c0c0: 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f  ....extern(Windo
c0d0: 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20  ws) export BOOL 
c0e0: 44 65 76 69 63 65 49 6f 43 6f 6e 74 72 6f 6c 28  DeviceIoControl(
c0f0: 0d 0a 20 20 48 41 4e 44 4c 45 20 68 44 65 76 69  ..  HANDLE hDevi
c100: 63 65 2c 0d 0a 20 20 44 57 4f 52 44 20 64 77 49  ce,..  DWORD dwI
c110: 6f 43 6f 6e 74 72 6f 6c 43 6f 64 65 2c 0d 0a 20  oControlCode,.. 
c120: 20 4c 50 56 4f 49 44 20 6c 70 49 6e 42 75 66 66   LPVOID lpInBuff
c130: 65 72 2c 0d 0a 20 20 44 57 4f 52 44 20 6e 49 6e  er,..  DWORD nIn
c140: 42 75 66 66 65 72 53 69 7a 65 2c 0d 0a 20 20 4c  BufferSize,..  L
c150: 50 56 4f 49 44 20 6c 70 4f 75 74 42 75 66 66 65  PVOID lpOutBuffe
c160: 72 2c 0d 0a 20 20 44 57 4f 52 44 20 6e 4f 75 74  r,..  DWORD nOut
c170: 42 75 66 66 65 72 53 69 7a 65 2c 0d 0a 20 20 4c  BufferSize,..  L
c180: 50 44 57 4f 52 44 20 6c 70 42 79 74 65 73 52 65  PDWORD lpBytesRe
c190: 74 75 72 6e 65 64 2c 0d 0a 20 20 4c 50 4f 56 45  turned,..  LPOVE
c1a0: 52 4c 41 50 50 45 44 20 6c 70 4f 76 65 72 6c 61  RLAPPED lpOverla
c1b0: 70 70 65 64 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e  pped);....extern
c1c0: 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
c1d0: 20 42 4f 4f 4c 20 52 65 71 75 65 73 74 44 65 76   BOOL RequestDev
c1e0: 69 63 65 57 61 6b 65 75 70 28 0d 0a 20 20 48 41  iceWakeup(..  HA
c1f0: 4e 44 4c 45 20 68 44 65 76 69 63 65 29 3b 0d 0a  NDLE hDevice);..
c200: 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
c210: 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 43 61  ) export BOOL Ca
c220: 6e 63 65 6c 44 65 76 69 63 65 57 61 6b 65 75 70  ncelDeviceWakeup
c230: 52 65 71 75 65 73 74 28 0d 0a 20 20 48 41 4e 44  Request(..  HAND
c240: 4c 45 20 68 44 65 76 69 63 65 29 3b 0d 0a 0d 0a  LE hDevice);....
c250: 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
c260: 65 78 70 6f 72 74 20 42 4f 4f 4c 20 47 65 74 44  export BOOL GetD
c270: 65 76 69 63 65 50 6f 77 65 72 53 74 61 74 65 28  evicePowerState(
c280: 0d 0a 20 20 48 41 4e 44 4c 45 20 68 44 65 76 69  ..  HANDLE hDevi
c290: 63 65 2c 0d 0a 20 20 42 4f 4f 4c 20 2a 70 66 4f  ce,..  BOOL *pfO
c2a0: 6e 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69  n);....extern(Wi
c2b0: 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f  ndows) export BO
c2c0: 4f 4c 20 53 65 74 4d 65 73 73 61 67 65 57 61 69  OL SetMessageWai
c2d0: 74 69 6e 67 49 6e 64 69 63 61 74 6f 72 28 0d 0a  tingIndicator(..
c2e0: 20 20 48 41 4e 44 4c 45 20 68 4d 73 67 49 6e 64    HANDLE hMsgInd
c2f0: 69 63 61 74 6f 72 2c 0d 0a 20 20 55 4c 4f 4e 47  icator,..  ULONG
c300: 20 75 6c 4d 73 67 43 6f 75 6e 74 29 3b 0d 0a 0d   ulMsgCount);...
c310: 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29  .extern(Windows)
c320: 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 53 65 74   export BOOL Set
c330: 45 6e 64 4f 66 46 69 6c 65 28 0d 0a 20 20 48 41  EndOfFile(..  HA
c340: 4e 44 4c 45 20 68 46 69 6c 65 29 3b 0d 0a 0d 0a  NDLE hFile);....
c350: 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
c360: 65 78 70 6f 72 74 20 44 57 4f 52 44 20 53 65 74  export DWORD Set
c370: 46 69 6c 65 50 6f 69 6e 74 65 72 28 0d 0a 20 20  FilePointer(..  
c380: 48 41 4e 44 4c 45 20 68 46 69 6c 65 2c 0d 0a 20  HANDLE hFile,.. 
c390: 20 4c 4f 4e 47 20 6c 44 69 73 74 61 6e 63 65 54   LONG lDistanceT
c3a0: 6f 4d 6f 76 65 2c 0d 0a 20 20 50 4c 4f 4e 47 20  oMove,..  PLONG 
c3b0: 6c 70 44 69 73 74 61 6e 63 65 54 6f 4d 6f 76 65  lpDistanceToMove
c3c0: 48 69 67 68 2c 0d 0a 20 20 44 57 4f 52 44 20 64  High,..  DWORD d
c3d0: 77 4d 6f 76 65 4d 65 74 68 6f 64 29 3b 0d 0a 0d  wMoveMethod);...
c3e0: 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29  .extern(Windows)
c3f0: 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 53 65 74   export BOOL Set
c400: 46 69 6c 65 50 6f 69 6e 74 65 72 45 78 28 0d 0a  FilePointerEx(..
c410: 20 20 48 41 4e 44 4c 45 20 68 46 69 6c 65 2c 0d    HANDLE hFile,.
c420: 0a 20 20 4c 41 52 47 45 5f 49 4e 54 45 47 45 52  .  LARGE_INTEGER
c430: 20 6c 69 44 69 73 74 61 6e 63 65 54 6f 4d 6f 76   liDistanceToMov
c440: 65 2c 0d 0a 20 20 50 4c 41 52 47 45 5f 49 4e 54  e,..  PLARGE_INT
c450: 45 47 45 52 20 6c 70 4e 65 77 46 69 6c 65 50 6f  EGER lpNewFilePo
c460: 69 6e 74 65 72 2c 0d 0a 20 20 44 57 4f 52 44 20  inter,..  DWORD 
c470: 64 77 4d 6f 76 65 4d 65 74 68 6f 64 29 3b 0d 0a  dwMoveMethod);..
c480: 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
c490: 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 46 69  ) export BOOL Fi
c4a0: 6e 64 43 6c 6f 73 65 28 0d 0a 20 20 48 41 4e 44  ndClose(..  HAND
c4b0: 4c 45 20 68 46 69 6e 64 46 69 6c 65 29 3b 0d 0a  LE hFindFile);..
c4c0: 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
c4d0: 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 47 65  ) export BOOL Ge
c4e0: 74 46 69 6c 65 54 69 6d 65 28 0d 0a 20 20 48 41  tFileTime(..  HA
c4f0: 4e 44 4c 45 20 68 46 69 6c 65 2c 0d 0a 20 20 4c  NDLE hFile,..  L
c500: 50 46 49 4c 45 54 49 4d 45 20 6c 70 43 72 65 61  PFILETIME lpCrea
c510: 74 69 6f 6e 54 69 6d 65 2c 0d 0a 20 20 4c 50 46  tionTime,..  LPF
c520: 49 4c 45 54 49 4d 45 20 6c 70 4c 61 73 74 41 63  ILETIME lpLastAc
c530: 63 65 73 73 54 69 6d 65 2c 0d 0a 20 20 4c 50 46  cessTime,..  LPF
c540: 49 4c 45 54 49 4d 45 20 6c 70 4c 61 73 74 57 72  ILETIME lpLastWr
c550: 69 74 65 54 69 6d 65 29 3b 0d 0a 0d 0a 65 78 74  iteTime);....ext
c560: 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
c570: 6f 72 74 20 42 4f 4f 4c 20 53 65 74 46 69 6c 65  ort BOOL SetFile
c580: 54 69 6d 65 28 0d 0a 20 20 48 41 4e 44 4c 45 20  Time(..  HANDLE 
c590: 68 46 69 6c 65 2c 0d 0a 20 20 46 49 4c 45 54 49  hFile,..  FILETI
c5a0: 4d 45 20 2a 6c 70 43 72 65 61 74 69 6f 6e 54 69  ME *lpCreationTi
c5b0: 6d 65 2c 0d 0a 20 20 46 49 4c 45 54 49 4d 45 20  me,..  FILETIME 
c5c0: 2a 6c 70 4c 61 73 74 41 63 63 65 73 73 54 69 6d  *lpLastAccessTim
c5d0: 65 2c 0d 0a 20 20 46 49 4c 45 54 49 4d 45 20 2a  e,..  FILETIME *
c5e0: 6c 70 4c 61 73 74 57 72 69 74 65 54 69 6d 65 29  lpLastWriteTime)
c5f0: 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  ;....extern(Wind
c600: 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c  ows) export BOOL
c610: 20 53 65 74 46 69 6c 65 56 61 6c 69 64 44 61 74   SetFileValidDat
c620: 61 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68 46 69  a(..  HANDLE hFi
c630: 6c 65 2c 0d 0a 20 20 4c 4f 4e 47 4c 4f 4e 47 20  le,..  LONGLONG 
c640: 56 61 6c 69 64 44 61 74 61 4c 65 6e 67 74 68 29  ValidDataLength)
c650: 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  ;....extern(Wind
c660: 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c  ows) export BOOL
c670: 20 53 65 74 46 69 6c 65 53 68 6f 72 74 4e 61 6d   SetFileShortNam
c680: 65 41 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68 46  eA(..  HANDLE hF
c690: 69 6c 65 2c 0d 0a 20 20 4c 50 43 53 54 52 20 6c  ile,..  LPCSTR l
c6a0: 70 53 68 6f 72 74 4e 61 6d 65 29 3b 0d 0a 65 78  pShortName);..ex
c6b0: 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
c6c0: 70 6f 72 74 20 42 4f 4f 4c 20 53 65 74 46 69 6c  port BOOL SetFil
c6d0: 65 53 68 6f 72 74 4e 61 6d 65 57 28 0d 0a 20 20  eShortNameW(..  
c6e0: 48 41 4e 44 4c 45 20 68 46 69 6c 65 2c 0d 0a 20  HANDLE hFile,.. 
c6f0: 20 4c 50 43 57 53 54 52 20 6c 70 53 68 6f 72 74   LPCWSTR lpShort
c700: 4e 61 6d 65 29 3b 0d 0a 2f 2f 20 23 69 66 64 65  Name);..// #ifde
c710: 66 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69 61 73  f UNICODE..alias
c720: 20 53 65 74 46 69 6c 65 53 68 6f 72 74 4e 61 6d   SetFileShortNam
c730: 65 57 20 53 65 74 46 69 6c 65 53 68 6f 72 74 4e  eW SetFileShortN
c740: 61 6d 65 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a  ame;..// #else..
c750: 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64  // #.....// #end
c760: 69 66 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a  if // !UNICODE..
c770: 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
c780: 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 43 6c  ) export BOOL Cl
c790: 6f 73 65 48 61 6e 64 6c 65 28 0d 0a 20 20 48 41  oseHandle(..  HA
c7a0: 4e 44 4c 45 20 68 4f 62 6a 65 63 74 29 3b 0d 0a  NDLE hObject);..
c7b0: 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
c7c0: 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 44 75  ) export BOOL Du
c7d0: 70 6c 69 63 61 74 65 48 61 6e 64 6c 65 28 0d 0a  plicateHandle(..
c7e0: 20 20 48 41 4e 44 4c 45 20 68 53 6f 75 72 63 65    HANDLE hSource
c7f0: 50 72 6f 63 65 73 73 48 61 6e 64 6c 65 2c 0d 0a  ProcessHandle,..
c800: 20 20 48 41 4e 44 4c 45 20 68 53 6f 75 72 63 65    HANDLE hSource
c810: 48 61 6e 64 6c 65 2c 0d 0a 20 20 48 41 4e 44 4c  Handle,..  HANDL
c820: 45 20 68 54 61 72 67 65 74 50 72 6f 63 65 73 73  E hTargetProcess
c830: 48 61 6e 64 6c 65 2c 0d 0a 20 20 4c 50 48 41 4e  Handle,..  LPHAN
c840: 44 4c 45 20 6c 70 54 61 72 67 65 74 48 61 6e 64  DLE lpTargetHand
c850: 6c 65 2c 0d 0a 20 20 44 57 4f 52 44 20 64 77 44  le,..  DWORD dwD
c860: 65 73 69 72 65 64 41 63 63 65 73 73 2c 0d 0a 20  esiredAccess,.. 
c870: 20 42 4f 4f 4c 20 62 49 6e 68 65 72 69 74 48 61   BOOL bInheritHa
c880: 6e 64 6c 65 2c 0d 0a 20 20 44 57 4f 52 44 20 64  ndle,..  DWORD d
c890: 77 4f 70 74 69 6f 6e 73 29 3b 0d 0a 0d 0a 65 78  wOptions);....ex
c8a0: 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
c8b0: 70 6f 72 74 20 42 4f 4f 4c 20 47 65 74 48 61 6e  port BOOL GetHan
c8c0: 64 6c 65 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 0d  dleInformation(.
c8d0: 0a 20 20 48 41 4e 44 4c 45 20 68 4f 62 6a 65 63  .  HANDLE hObjec
c8e0: 74 2c 0d 0a 20 20 4c 50 44 57 4f 52 44 20 6c 70  t,..  LPDWORD lp
c8f0: 64 77 46 6c 61 67 73 29 3b 0d 0a 0d 0a 65 78 74  dwFlags);....ext
c900: 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
c910: 6f 72 74 20 42 4f 4f 4c 20 53 65 74 48 61 6e 64  ort BOOL SetHand
c920: 6c 65 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 0d 0a  leInformation(..
c930: 20 20 48 41 4e 44 4c 45 20 68 4f 62 6a 65 63 74    HANDLE hObject
c940: 2c 0d 0a 20 20 44 57 4f 52 44 20 64 77 4d 61 73  ,..  DWORD dwMas
c950: 6b 2c 0d 0a 20 20 44 57 4f 52 44 20 64 77 46 6c  k,..  DWORD dwFl
c960: 61 67 73 29 3b 0d 0a 0d 0a 65 6e 75 6d 20 3a 20  ags);....enum : 
c970: 75 69 6e 74 20 7b 20 48 41 4e 44 4c 45 5f 46 4c  uint { HANDLE_FL
c980: 41 47 5f 49 4e 48 45 52 49 54 20 3d 20 30 78 30  AG_INHERIT = 0x0
c990: 30 30 30 30 30 30 31 20 7d 0d 0a 65 6e 75 6d 20  0000001 }..enum 
c9a0: 3a 20 75 69 6e 74 20 7b 20 48 41 4e 44 4c 45 5f  : uint { HANDLE_
c9b0: 46 4c 41 47 5f 50 52 4f 54 45 43 54 5f 46 52 4f  FLAG_PROTECT_FRO
c9c0: 4d 5f 43 4c 4f 53 45 20 3d 20 30 78 30 30 30 30  M_CLOSE = 0x0000
c9d0: 30 30 30 32 20 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a  0002 }....enum :
c9e0: 20 75 69 6e 74 20 7b 20 48 49 4e 53 54 41 4e 43   uint { HINSTANC
c9f0: 45 5f 45 52 52 4f 52 20 3d 20 33 32 20 7d 0d 0a  E_ERROR = 32 }..
ca00: 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
ca10: 29 20 65 78 70 6f 72 74 20 44 57 4f 52 44 20 4c  ) export DWORD L
ca20: 6f 61 64 4d 6f 64 75 6c 65 28 0d 0a 20 20 4c 50  oadModule(..  LP
ca30: 43 53 54 52 20 6c 70 4d 6f 64 75 6c 65 4e 61 6d  CSTR lpModuleNam
ca40: 65 2c 0d 0a 20 20 4c 50 56 4f 49 44 20 6c 70 50  e,..  LPVOID lpP
ca50: 61 72 61 6d 65 74 65 72 42 6c 6f 63 6b 29 3b 0d  arameterBlock);.
ca60: 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ...extern(Window
ca70: 73 29 20 65 78 70 6f 72 74 20 55 49 4e 54 20 57  s) export UINT W
ca80: 69 6e 45 78 65 63 28 0d 0a 20 20 4c 50 43 53 54  inExec(..  LPCST
ca90: 52 20 6c 70 43 6d 64 4c 69 6e 65 2c 0d 0a 20 20  R lpCmdLine,..  
caa0: 55 49 4e 54 20 75 43 6d 64 53 68 6f 77 29 3b 0d  UINT uCmdShow);.
cab0: 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ...extern(Window
cac0: 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 43  s) export BOOL C
cad0: 6c 65 61 72 43 6f 6d 6d 42 72 65 61 6b 28 0d 0a  learCommBreak(..
cae0: 20 20 48 41 4e 44 4c 45 20 68 46 69 6c 65 29 3b    HANDLE hFile);
caf0: 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f  ....extern(Windo
cb00: 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20  ws) export BOOL 
cb10: 43 6c 65 61 72 43 6f 6d 6d 45 72 72 6f 72 28 0d  ClearCommError(.
cb20: 0a 20 20 48 41 4e 44 4c 45 20 68 46 69 6c 65 2c  .  HANDLE hFile,
cb30: 0d 0a 20 20 4c 50 44 57 4f 52 44 20 6c 70 45 72  ..  LPDWORD lpEr
cb40: 72 6f 72 73 2c 0d 0a 20 20 4c 50 43 4f 4d 53 54  rors,..  LPCOMST
cb50: 41 54 20 6c 70 53 74 61 74 29 3b 0d 0a 0d 0a 65  AT lpStat);....e
cb60: 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
cb70: 78 70 6f 72 74 20 42 4f 4f 4c 20 53 65 74 75 70  xport BOOL Setup
cb80: 43 6f 6d 6d 28 0d 0a 20 20 48 41 4e 44 4c 45 20  Comm(..  HANDLE 
cb90: 68 46 69 6c 65 2c 0d 0a 20 20 44 57 4f 52 44 20  hFile,..  DWORD 
cba0: 64 77 49 6e 51 75 65 75 65 2c 0d 0a 20 20 44 57  dwInQueue,..  DW
cbb0: 4f 52 44 20 64 77 4f 75 74 51 75 65 75 65 29 3b  ORD dwOutQueue);
cbc0: 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f  ....extern(Windo
cbd0: 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20  ws) export BOOL 
cbe0: 45 73 63 61 70 65 43 6f 6d 6d 46 75 6e 63 74 69  EscapeCommFuncti
cbf0: 6f 6e 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68 46  on(..  HANDLE hF
cc00: 69 6c 65 2c 0d 0a 20 20 44 57 4f 52 44 20 64 77  ile,..  DWORD dw
cc10: 46 75 6e 63 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e  Func);....extern
cc20: 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
cc30: 20 42 4f 4f 4c 20 47 65 74 43 6f 6d 6d 43 6f 6e   BOOL GetCommCon
cc40: 66 69 67 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68  fig(..  HANDLE h
cc50: 43 6f 6d 6d 44 65 76 2c 0d 0a 20 20 4c 50 43 4f  CommDev,..  LPCO
cc60: 4d 4d 43 4f 4e 46 49 47 20 6c 70 43 43 2c 0d 0a  MMCONFIG lpCC,..
cc70: 20 20 4c 50 44 57 4f 52 44 20 6c 70 64 77 53 69    LPDWORD lpdwSi
cc80: 7a 65 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57  ze);....extern(W
cc90: 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42  indows) export B
cca0: 4f 4f 4c 20 47 65 74 43 6f 6d 6d 4d 61 73 6b 28  OOL GetCommMask(
ccb0: 0d 0a 20 20 48 41 4e 44 4c 45 20 68 46 69 6c 65  ..  HANDLE hFile
ccc0: 2c 0d 0a 20 20 4c 50 44 57 4f 52 44 20 6c 70 45  ,..  LPDWORD lpE
ccd0: 76 74 4d 61 73 6b 29 3b 0d 0a 0d 0a 65 78 74 65  vtMask);....exte
cce0: 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
ccf0: 72 74 20 42 4f 4f 4c 20 47 65 74 43 6f 6d 6d 50  rt BOOL GetCommP
cd00: 72 6f 70 65 72 74 69 65 73 28 0d 0a 20 20 48 41  roperties(..  HA
cd10: 4e 44 4c 45 20 68 46 69 6c 65 2c 0d 0a 20 20 4c  NDLE hFile,..  L
cd20: 50 43 4f 4d 4d 50 52 4f 50 20 6c 70 43 6f 6d 6d  PCOMMPROP lpComm
cd30: 50 72 6f 70 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e  Prop);....extern
cd40: 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
cd50: 20 42 4f 4f 4c 20 47 65 74 43 6f 6d 6d 4d 6f 64   BOOL GetCommMod
cd60: 65 6d 53 74 61 74 75 73 28 0d 0a 20 20 48 41 4e  emStatus(..  HAN
cd70: 44 4c 45 20 68 46 69 6c 65 2c 0d 0a 20 20 4c 50  DLE hFile,..  LP
cd80: 44 57 4f 52 44 20 6c 70 4d 6f 64 65 6d 53 74 61  DWORD lpModemSta
cd90: 74 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69  t);....extern(Wi
cda0: 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f  ndows) export BO
cdb0: 4f 4c 20 47 65 74 43 6f 6d 6d 53 74 61 74 65 28  OL GetCommState(
cdc0: 0d 0a 20 20 48 41 4e 44 4c 45 20 68 46 69 6c 65  ..  HANDLE hFile
cdd0: 2c 0d 0a 20 20 4c 50 44 43 42 20 6c 70 44 43 42  ,..  LPDCB lpDCB
cde0: 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e  );....extern(Win
cdf0: 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f  dows) export BOO
ce00: 4c 20 47 65 74 43 6f 6d 6d 54 69 6d 65 6f 75 74  L GetCommTimeout
ce10: 73 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68 46 69  s(..  HANDLE hFi
ce20: 6c 65 2c 0d 0a 20 20 4c 50 43 4f 4d 4d 54 49 4d  le,..  LPCOMMTIM
ce30: 45 4f 55 54 53 20 6c 70 43 6f 6d 6d 54 69 6d 65  EOUTS lpCommTime
ce40: 6f 75 74 73 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e  outs);....extern
ce50: 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
ce60: 20 42 4f 4f 4c 20 50 75 72 67 65 43 6f 6d 6d 28   BOOL PurgeComm(
ce70: 0d 0a 20 20 48 41 4e 44 4c 45 20 68 46 69 6c 65  ..  HANDLE hFile
ce80: 2c 0d 0a 20 20 44 57 4f 52 44 20 64 77 46 6c 61  ,..  DWORD dwFla
ce90: 67 73 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57  gs);....extern(W
cea0: 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42  indows) export B
ceb0: 4f 4f 4c 20 53 65 74 43 6f 6d 6d 42 72 65 61 6b  OOL SetCommBreak
cec0: 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68 46 69 6c  (..  HANDLE hFil
ced0: 65 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69  e);....extern(Wi
cee0: 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f  ndows) export BO
cef0: 4f 4c 20 53 65 74 43 6f 6d 6d 43 6f 6e 66 69 67  OL SetCommConfig
cf00: 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68 43 6f 6d  (..  HANDLE hCom
cf10: 6d 44 65 76 2c 0d 0a 20 20 4c 50 43 4f 4d 4d 43  mDev,..  LPCOMMC
cf20: 4f 4e 46 49 47 20 6c 70 43 43 2c 0d 0a 20 20 44  ONFIG lpCC,..  D
cf30: 57 4f 52 44 20 64 77 53 69 7a 65 29 3b 0d 0a 0d  WORD dwSize);...
cf40: 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29  .extern(Windows)
cf50: 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 53 65 74   export BOOL Set
cf60: 43 6f 6d 6d 4d 61 73 6b 28 0d 0a 20 20 48 41 4e  CommMask(..  HAN
cf70: 44 4c 45 20 68 46 69 6c 65 2c 0d 0a 20 20 44 57  DLE hFile,..  DW
cf80: 4f 52 44 20 64 77 45 76 74 4d 61 73 6b 29 3b 0d  ORD dwEvtMask);.
cf90: 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ...extern(Window
cfa0: 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 53  s) export BOOL S
cfb0: 65 74 43 6f 6d 6d 53 74 61 74 65 28 0d 0a 20 20  etCommState(..  
cfc0: 48 41 4e 44 4c 45 20 68 46 69 6c 65 2c 0d 0a 20  HANDLE hFile,.. 
cfd0: 20 4c 50 44 43 42 20 6c 70 44 43 42 29 3b 0d 0a   LPDCB lpDCB);..
cfe0: 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
cff0: 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 53 65  ) export BOOL Se
d000: 74 43 6f 6d 6d 54 69 6d 65 6f 75 74 73 28 0d 0a  tCommTimeouts(..
d010: 20 20 48 41 4e 44 4c 45 20 68 46 69 6c 65 2c 0d    HANDLE hFile,.
d020: 0a 20 20 4c 50 43 4f 4d 4d 54 49 4d 45 4f 55 54  .  LPCOMMTIMEOUT
d030: 53 20 6c 70 43 6f 6d 6d 54 69 6d 65 6f 75 74 73  S lpCommTimeouts
d040: 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e  );....extern(Win
d050: 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f  dows) export BOO
d060: 4c 20 54 72 61 6e 73 6d 69 74 43 6f 6d 6d 43 68  L TransmitCommCh
d070: 61 72 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68 46  ar(..  HANDLE hF
d080: 69 6c 65 2c 0d 0a 20 20 63 68 61 72 20 63 43 68  ile,..  char cCh
d090: 61 72 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57  ar);....extern(W
d0a0: 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42  indows) export B
d0b0: 4f 4f 4c 20 57 61 69 74 43 6f 6d 6d 45 76 65 6e  OOL WaitCommEven
d0c0: 74 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68 46 69  t(..  HANDLE hFi
d0d0: 6c 65 2c 0d 0a 20 20 4c 50 44 57 4f 52 44 20 6c  le,..  LPDWORD l
d0e0: 70 45 76 74 4d 61 73 6b 2c 0d 0a 20 20 4c 50 4f  pEvtMask,..  LPO
d0f0: 56 45 52 4c 41 50 50 45 44 20 6c 70 4f 76 65 72  VERLAPPED lpOver
d100: 6c 61 70 70 65 64 29 3b 0d 0a 0d 0a 65 78 74 65  lapped);....exte
d110: 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
d120: 72 74 20 44 57 4f 52 44 20 53 65 74 54 61 70 65  rt DWORD SetTape
d130: 50 6f 73 69 74 69 6f 6e 28 0d 0a 20 20 48 41 4e  Position(..  HAN
d140: 44 4c 45 20 68 44 65 76 69 63 65 2c 0d 0a 20 20  DLE hDevice,..  
d150: 44 57 4f 52 44 20 64 77 50 6f 73 69 74 69 6f 6e  DWORD dwPosition
d160: 4d 65 74 68 6f 64 2c 0d 0a 20 20 44 57 4f 52 44  Method,..  DWORD
d170: 20 64 77 50 61 72 74 69 74 69 6f 6e 2c 0d 0a 20   dwPartition,.. 
d180: 20 44 57 4f 52 44 20 64 77 4f 66 66 73 65 74 4c   DWORD dwOffsetL
d190: 6f 77 2c 0d 0a 20 20 44 57 4f 52 44 20 64 77 4f  ow,..  DWORD dwO
d1a0: 66 66 73 65 74 48 69 67 68 2c 0d 0a 20 20 42 4f  ffsetHigh,..  BO
d1b0: 4f 4c 20 62 49 6d 6d 65 64 69 61 74 65 29 3b 0d  OL bImmediate);.
d1c0: 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ...extern(Window
d1d0: 73 29 20 65 78 70 6f 72 74 20 44 57 4f 52 44 20  s) export DWORD 
d1e0: 47 65 74 54 61 70 65 50 6f 73 69 74 69 6f 6e 28  GetTapePosition(
d1f0: 0d 0a 20 20 48 41 4e 44 4c 45 20 68 44 65 76 69  ..  HANDLE hDevi
d200: 63 65 2c 0d 0a 20 20 44 57 4f 52 44 20 64 77 50  ce,..  DWORD dwP
d210: 6f 73 69 74 69 6f 6e 54 79 70 65 2c 0d 0a 20 20  ositionType,..  
d220: 4c 50 44 57 4f 52 44 20 6c 70 64 77 50 61 72 74  LPDWORD lpdwPart
d230: 69 74 69 6f 6e 2c 0d 0a 20 20 4c 50 44 57 4f 52  ition,..  LPDWOR
d240: 44 20 6c 70 64 77 4f 66 66 73 65 74 4c 6f 77 2c  D lpdwOffsetLow,
d250: 0d 0a 20 20 4c 50 44 57 4f 52 44 20 6c 70 64 77  ..  LPDWORD lpdw
d260: 4f 66 66 73 65 74 48 69 67 68 29 3b 0d 0a 0d 0a  OffsetHigh);....
d270: 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
d280: 65 78 70 6f 72 74 20 44 57 4f 52 44 20 50 72 65  export DWORD Pre
d290: 70 61 72 65 54 61 70 65 28 0d 0a 20 20 48 41 4e  pareTape(..  HAN
d2a0: 44 4c 45 20 68 44 65 76 69 63 65 2c 0d 0a 20 20  DLE hDevice,..  
d2b0: 44 57 4f 52 44 20 64 77 4f 70 65 72 61 74 69 6f  DWORD dwOperatio
d2c0: 6e 2c 0d 0a 20 20 42 4f 4f 4c 20 62 49 6d 6d 65  n,..  BOOL bImme
d2d0: 64 69 61 74 65 29 3b 0d 0a 0d 0a 65 78 74 65 72  diate);....exter
d2e0: 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
d2f0: 74 20 44 57 4f 52 44 20 45 72 61 73 65 54 61 70  t DWORD EraseTap
d300: 65 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68 44 65  e(..  HANDLE hDe
d310: 76 69 63 65 2c 0d 0a 20 20 44 57 4f 52 44 20 64  vice,..  DWORD d
d320: 77 45 72 61 73 65 54 79 70 65 2c 0d 0a 20 20 42  wEraseType,..  B
d330: 4f 4f 4c 20 62 49 6d 6d 65 64 69 61 74 65 29 3b  OOL bImmediate);
d340: 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f  ....extern(Windo
d350: 77 73 29 20 65 78 70 6f 72 74 20 44 57 4f 52 44  ws) export DWORD
d360: 20 43 72 65 61 74 65 54 61 70 65 50 61 72 74 69   CreateTapeParti
d370: 74 69 6f 6e 28 0d 0a 20 20 48 41 4e 44 4c 45 20  tion(..  HANDLE 
d380: 68 44 65 76 69 63 65 2c 0d 0a 20 20 44 57 4f 52  hDevice,..  DWOR
d390: 44 20 64 77 50 61 72 74 69 74 69 6f 6e 4d 65 74  D dwPartitionMet
d3a0: 68 6f 64 2c 0d 0a 20 20 44 57 4f 52 44 20 64 77  hod,..  DWORD dw
d3b0: 43 6f 75 6e 74 2c 0d 0a 20 20 44 57 4f 52 44 20  Count,..  DWORD 
d3c0: 64 77 53 69 7a 65 29 3b 0d 0a 0d 0a 65 78 74 65  dwSize);....exte
d3d0: 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
d3e0: 72 74 20 44 57 4f 52 44 20 57 72 69 74 65 54 61  rt DWORD WriteTa
d3f0: 70 65 6d 61 72 6b 28 0d 0a 20 20 48 41 4e 44 4c  pemark(..  HANDL
d400: 45 20 68 44 65 76 69 63 65 2c 0d 0a 20 20 44 57  E hDevice,..  DW
d410: 4f 52 44 20 64 77 54 61 70 65 6d 61 72 6b 54 79  ORD dwTapemarkTy
d420: 70 65 2c 0d 0a 20 20 44 57 4f 52 44 20 64 77 54  pe,..  DWORD dwT
d430: 61 70 65 6d 61 72 6b 43 6f 75 6e 74 2c 0d 0a 20  apemarkCount,.. 
d440: 20 42 4f 4f 4c 20 62 49 6d 6d 65 64 69 61 74 65   BOOL bImmediate
d450: 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e  );....extern(Win
d460: 64 6f 77 73 29 20 65 78 70 6f 72 74 20 44 57 4f  dows) export DWO
d470: 52 44 20 47 65 74 54 61 70 65 53 74 61 74 75 73  RD GetTapeStatus
d480: 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68 44 65 76  (..  HANDLE hDev
d490: 69 63 65 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28  ice);....extern(
d4a0: 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
d4b0: 44 57 4f 52 44 20 47 65 74 54 61 70 65 50 61 72  DWORD GetTapePar
d4c0: 61 6d 65 74 65 72 73 28 0d 0a 20 20 48 41 4e 44  ameters(..  HAND
d4d0: 4c 45 20 68 44 65 76 69 63 65 2c 0d 0a 20 20 44  LE hDevice,..  D
d4e0: 57 4f 52 44 20 64 77 4f 70 65 72 61 74 69 6f 6e  WORD dwOperation
d4f0: 2c 0d 0a 20 20 4c 50 44 57 4f 52 44 20 6c 70 64  ,..  LPDWORD lpd
d500: 77 53 69 7a 65 2c 0d 0a 20 20 4c 50 56 4f 49 44  wSize,..  LPVOID
d510: 20 6c 70 54 61 70 65 49 6e 66 6f 72 6d 61 74 69   lpTapeInformati
d520: 6f 6e 29 3b 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 75  on);....enum : u
d530: 69 6e 74 20 7b 20 47 45 54 5f 54 41 50 45 5f 4d  int { GET_TAPE_M
d540: 45 44 49 41 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e  EDIA_INFORMATION
d550: 20 3d 20 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75   = 0 }..enum : u
d560: 69 6e 74 20 7b 20 47 45 54 5f 54 41 50 45 5f 44  int { GET_TAPE_D
d570: 52 49 56 45 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e  RIVE_INFORMATION
d580: 20 3d 20 31 20 7d 0d 0a 0d 0a 65 78 74 65 72 6e   = 1 }....extern
d590: 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
d5a0: 20 44 57 4f 52 44 20 53 65 74 54 61 70 65 50 61   DWORD SetTapePa
d5b0: 72 61 6d 65 74 65 72 73 28 0d 0a 20 20 48 41 4e  rameters(..  HAN
d5c0: 44 4c 45 20 68 44 65 76 69 63 65 2c 0d 0a 20 20  DLE hDevice,..  
d5d0: 44 57 4f 52 44 20 64 77 4f 70 65 72 61 74 69 6f  DWORD dwOperatio
d5e0: 6e 2c 0d 0a 20 20 4c 50 56 4f 49 44 20 6c 70 54  n,..  LPVOID lpT
d5f0: 61 70 65 49 6e 66 6f 72 6d 61 74 69 6f 6e 29 3b  apeInformation);
d600: 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20  ....enum : uint 
d610: 7b 20 53 45 54 5f 54 41 50 45 5f 4d 45 44 49 41  { SET_TAPE_MEDIA
d620: 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 20 3d 20 30  _INFORMATION = 0
d630: 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20   }..enum : uint 
d640: 7b 20 53 45 54 5f 54 41 50 45 5f 44 52 49 56 45  { SET_TAPE_DRIVE
d650: 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 20 3d 20 31  _INFORMATION = 1
d660: 20 7d 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e   }....extern(Win
d670: 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f  dows) export BOO
d680: 4c 20 42 65 65 70 28 0d 0a 20 20 44 57 4f 52 44  L Beep(..  DWORD
d690: 20 64 77 46 72 65 71 2c 0d 0a 20 20 44 57 4f 52   dwFreq,..  DWOR
d6a0: 44 20 64 77 44 75 72 61 74 69 6f 6e 29 3b 0d 0a  D dwDuration);..
d6b0: 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
d6c0: 29 20 65 78 70 6f 72 74 20 69 6e 74 20 4d 75 6c  ) export int Mul
d6d0: 44 69 76 28 0d 0a 20 20 69 6e 74 20 6e 4e 75 6d  Div(..  int nNum
d6e0: 62 65 72 2c 0d 0a 20 20 69 6e 74 20 6e 4e 75 6d  ber,..  int nNum
d6f0: 65 72 61 74 6f 72 2c 0d 0a 20 20 69 6e 74 20 6e  erator,..  int n
d700: 44 65 6e 6f 6d 69 6e 61 74 6f 72 29 3b 0d 0a 0d  Denominator);...
d710: 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29  .extern(Windows)
d720: 20 65 78 70 6f 72 74 20 56 4f 49 44 20 47 65 74   export VOID Get
d730: 53 79 73 74 65 6d 54 69 6d 65 28 0d 0a 20 20 4c  SystemTime(..  L
d740: 50 53 59 53 54 45 4d 54 49 4d 45 20 6c 70 53 79  PSYSTEMTIME lpSy
d750: 73 74 65 6d 54 69 6d 65 29 3b 0d 0a 0d 0a 65 78  stemTime);....ex
d760: 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
d770: 70 6f 72 74 20 56 4f 49 44 20 47 65 74 53 79 73  port VOID GetSys
d780: 74 65 6d 54 69 6d 65 41 73 46 69 6c 65 54 69 6d  temTimeAsFileTim
d790: 65 28 0d 0a 20 20 4c 50 46 49 4c 45 54 49 4d 45  e(..  LPFILETIME
d7a0: 20 6c 70 53 79 73 74 65 6d 54 69 6d 65 41 73 46   lpSystemTimeAsF
d7b0: 69 6c 65 54 69 6d 65 29 3b 0d 0a 0d 0a 65 78 74  ileTime);....ext
d7c0: 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
d7d0: 6f 72 74 20 42 4f 4f 4c 20 53 65 74 53 79 73 74  ort BOOL SetSyst
d7e0: 65 6d 54 69 6d 65 28 0d 0a 20 20 53 59 53 54 45  emTime(..  SYSTE
d7f0: 4d 54 49 4d 45 20 2a 6c 70 53 79 73 74 65 6d 54  MTIME *lpSystemT
d800: 69 6d 65 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28  ime);....extern(
d810: 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
d820: 56 4f 49 44 20 47 65 74 4c 6f 63 61 6c 54 69 6d  VOID GetLocalTim
d830: 65 28 0d 0a 20 20 4c 50 53 59 53 54 45 4d 54 49  e(..  LPSYSTEMTI
d840: 4d 45 20 6c 70 53 79 73 74 65 6d 54 69 6d 65 29  ME lpSystemTime)
d850: 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  ;....extern(Wind
d860: 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c  ows) export BOOL
d870: 20 53 65 74 4c 6f 63 61 6c 54 69 6d 65 28 0d 0a   SetLocalTime(..
d880: 20 20 53 59 53 54 45 4d 54 49 4d 45 20 2a 6c 70    SYSTEMTIME *lp
d890: 53 79 73 74 65 6d 54 69 6d 65 29 3b 0d 0a 0d 0a  SystemTime);....
d8a0: 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
d8b0: 65 78 70 6f 72 74 20 56 4f 49 44 20 47 65 74 53  export VOID GetS
d8c0: 79 73 74 65 6d 49 6e 66 6f 28 0d 0a 20 20 4c 50  ystemInfo(..  LP
d8d0: 53 59 53 54 45 4d 5f 49 4e 46 4f 20 6c 70 53 79  SYSTEM_INFO lpSy
d8e0: 73 74 65 6d 49 6e 66 6f 29 3b 0d 0a 0d 0a 2f 2f  stemInfo);....//
d8f0: 20 23 69 66 20 5f 57 49 4e 33 32 5f 57 49 4e 4e   #if _WIN32_WINN
d900: 54 20 3e 3d 20 30 78 30 35 30 31 0d 0a 65 78 74  T >= 0x0501..ext
d910: 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
d920: 6f 72 74 20 56 4f 49 44 20 47 65 74 4e 61 74 69  ort VOID GetNati
d930: 76 65 53 79 73 74 65 6d 49 6e 66 6f 28 0d 0a 20  veSystemInfo(.. 
d940: 20 4c 50 53 59 53 54 45 4d 5f 49 4e 46 4f 20 6c   LPSYSTEM_INFO l
d950: 70 53 79 73 74 65 6d 49 6e 66 6f 29 3b 0d 0a 2f  pSystemInfo);../
d960: 2f 20 23 65 6e 64 69 66 0d 0a 0d 0a 65 78 74 65  / #endif....exte
d970: 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
d980: 72 74 20 42 4f 4f 4c 20 49 73 50 72 6f 63 65 73  rt BOOL IsProces
d990: 73 6f 72 46 65 61 74 75 72 65 50 72 65 73 65 6e  sorFeaturePresen
d9a0: 74 28 0d 0a 20 20 44 57 4f 52 44 20 50 72 6f 63  t(..  DWORD Proc
d9b0: 65 73 73 6f 72 46 65 61 74 75 72 65 29 3b 0d 0a  essorFeature);..
d9c0: 0d 0a 73 74 72 75 63 74 20 5f 54 49 4d 45 5f 5a  ..struct _TIME_Z
d9d0: 4f 4e 45 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 20  ONE_INFORMATION 
d9e0: 7b 0d 0a 20 20 4c 4f 4e 47 20 42 69 61 73 3b 0d  {..  LONG Bias;.
d9f0: 0a 20 20 57 43 48 41 52 20 53 74 61 6e 64 61 72  .  WCHAR Standar
da00: 64 4e 61 6d 65 5b 20 33 32 20 5d 3b 0d 0a 20 20  dName[ 32 ];..  
da10: 53 59 53 54 45 4d 54 49 4d 45 20 53 74 61 6e 64  SYSTEMTIME Stand
da20: 61 72 64 44 61 74 65 3b 0d 0a 20 20 4c 4f 4e 47  ardDate;..  LONG
da30: 20 53 74 61 6e 64 61 72 64 42 69 61 73 3b 0d 0a   StandardBias;..
da40: 20 20 57 43 48 41 52 20 44 61 79 6c 69 67 68 74    WCHAR Daylight
da50: 4e 61 6d 65 5b 20 33 32 20 5d 3b 0d 0a 20 20 53  Name[ 32 ];..  S
da60: 59 53 54 45 4d 54 49 4d 45 20 44 61 79 6c 69 67  YSTEMTIME Daylig
da70: 68 74 44 61 74 65 3b 0d 0a 20 20 4c 4f 4e 47 20  htDate;..  LONG 
da80: 44 61 79 6c 69 67 68 74 42 69 61 73 3b 0d 0a 7d  DaylightBias;..}
da90: 0d 0a 61 6c 69 61 73 20 5f 54 49 4d 45 5f 5a 4f  ..alias _TIME_ZO
daa0: 4e 45 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 20 54  NE_INFORMATION T
dab0: 49 4d 45 5f 5a 4f 4e 45 5f 49 4e 46 4f 52 4d 41  IME_ZONE_INFORMA
dac0: 54 49 4f 4e 3b 0d 0a 61 6c 69 61 73 20 5f 54 49  TION;..alias _TI
dad0: 4d 45 5f 5a 4f 4e 45 5f 49 4e 46 4f 52 4d 41 54  ME_ZONE_INFORMAT
dae0: 49 4f 4e 2a 20 50 54 49 4d 45 5f 5a 4f 4e 45 5f  ION* PTIME_ZONE_
daf0: 49 4e 46 4f 52 4d 41 54 49 4f 4e 3b 0d 0a 61 6c  INFORMATION;..al
db00: 69 61 73 20 5f 54 49 4d 45 5f 5a 4f 4e 45 5f 49  ias _TIME_ZONE_I
db10: 4e 46 4f 52 4d 41 54 49 4f 4e 2a 20 4c 50 54 49  NFORMATION* LPTI
db20: 4d 45 5f 5a 4f 4e 45 5f 49 4e 46 4f 52 4d 41 54  ME_ZONE_INFORMAT
db30: 49 4f 4e 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57  ION;....extern(W
db40: 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42  indows) export B
db50: 4f 4f 4c 20 53 79 73 74 65 6d 54 69 6d 65 54 6f  OOL SystemTimeTo
db60: 54 7a 53 70 65 63 69 66 69 63 4c 6f 63 61 6c 54  TzSpecificLocalT
db70: 69 6d 65 28 0d 0a 20 20 4c 50 54 49 4d 45 5f 5a  ime(..  LPTIME_Z
db80: 4f 4e 45 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 20  ONE_INFORMATION 
db90: 6c 70 54 69 6d 65 5a 6f 6e 65 49 6e 66 6f 72 6d  lpTimeZoneInform
dba0: 61 74 69 6f 6e 2c 0d 0a 20 20 4c 50 53 59 53 54  ation,..  LPSYST
dbb0: 45 4d 54 49 4d 45 20 6c 70 55 6e 69 76 65 72 73  EMTIME lpUnivers
dbc0: 61 6c 54 69 6d 65 2c 0d 0a 20 20 4c 50 53 59 53  alTime,..  LPSYS
dbd0: 54 45 4d 54 49 4d 45 20 6c 70 4c 6f 63 61 6c 54  TEMTIME lpLocalT
dbe0: 69 6d 65 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28  ime);....extern(
dbf0: 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
dc00: 42 4f 4f 4c 20 54 7a 53 70 65 63 69 66 69 63 4c  BOOL TzSpecificL
dc10: 6f 63 61 6c 54 69 6d 65 54 6f 53 79 73 74 65 6d  ocalTimeToSystem
dc20: 54 69 6d 65 28 0d 0a 20 20 4c 50 54 49 4d 45 5f  Time(..  LPTIME_
dc30: 5a 4f 4e 45 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e  ZONE_INFORMATION
dc40: 20 6c 70 54 69 6d 65 5a 6f 6e 65 49 6e 66 6f 72   lpTimeZoneInfor
dc50: 6d 61 74 69 6f 6e 2c 0d 0a 20 20 4c 50 53 59 53  mation,..  LPSYS
dc60: 54 45 4d 54 49 4d 45 20 6c 70 4c 6f 63 61 6c 54  TEMTIME lpLocalT
dc70: 69 6d 65 2c 0d 0a 20 20 4c 50 53 59 53 54 45 4d  ime,..  LPSYSTEM
dc80: 54 49 4d 45 20 6c 70 55 6e 69 76 65 72 73 61 6c  TIME lpUniversal
dc90: 54 69 6d 65 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e  Time);....extern
dca0: 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
dcb0: 20 44 57 4f 52 44 20 47 65 74 54 69 6d 65 5a 6f   DWORD GetTimeZo
dcc0: 6e 65 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 0d 0a  neInformation(..
dcd0: 20 20 4c 50 54 49 4d 45 5f 5a 4f 4e 45 5f 49 4e    LPTIME_ZONE_IN
dce0: 46 4f 52 4d 41 54 49 4f 4e 20 6c 70 54 69 6d 65  FORMATION lpTime
dcf0: 5a 6f 6e 65 49 6e 66 6f 72 6d 61 74 69 6f 6e 29  ZoneInformation)
dd00: 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  ;....extern(Wind
dd10: 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c  ows) export BOOL
dd20: 20 53 65 74 54 69 6d 65 5a 6f 6e 65 49 6e 66 6f   SetTimeZoneInfo
dd30: 72 6d 61 74 69 6f 6e 28 0d 0a 20 20 54 49 4d 45  rmation(..  TIME
dd40: 5f 5a 4f 4e 45 5f 49 4e 46 4f 52 4d 41 54 49 4f  _ZONE_INFORMATIO
dd50: 4e 20 2a 6c 70 54 69 6d 65 5a 6f 6e 65 49 6e 66  N *lpTimeZoneInf
dd60: 6f 72 6d 61 74 69 6f 6e 29 3b 0d 0a 0d 0a 65 78  ormation);....ex
dd70: 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
dd80: 70 6f 72 74 20 42 4f 4f 4c 20 53 79 73 74 65 6d  port BOOL System
dd90: 54 69 6d 65 54 6f 46 69 6c 65 54 69 6d 65 28 0d  TimeToFileTime(.
dda0: 0a 20 20 53 59 53 54 45 4d 54 49 4d 45 20 2a 6c  .  SYSTEMTIME *l
ddb0: 70 53 79 73 74 65 6d 54 69 6d 65 2c 0d 0a 20 20  pSystemTime,..  
ddc0: 4c 50 46 49 4c 45 54 49 4d 45 20 6c 70 46 69 6c  LPFILETIME lpFil
ddd0: 65 54 69 6d 65 29 3b 0d 0a 0d 0a 65 78 74 65 72  eTime);....exter
dde0: 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
ddf0: 74 20 42 4f 4f 4c 20 46 69 6c 65 54 69 6d 65 54  t BOOL FileTimeT
de00: 6f 4c 6f 63 61 6c 46 69 6c 65 54 69 6d 65 28 0d  oLocalFileTime(.
de10: 0a 20 20 46 49 4c 45 54 49 4d 45 20 2a 6c 70 46  .  FILETIME *lpF
de20: 69 6c 65 54 69 6d 65 2c 0d 0a 20 20 4c 50 46 49  ileTime,..  LPFI
de30: 4c 45 54 49 4d 45 20 6c 70 4c 6f 63 61 6c 46 69  LETIME lpLocalFi
de40: 6c 65 54 69 6d 65 29 3b 0d 0a 0d 0a 65 78 74 65  leTime);....exte
de50: 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
de60: 72 74 20 42 4f 4f 4c 20 4c 6f 63 61 6c 46 69 6c  rt BOOL LocalFil
de70: 65 54 69 6d 65 54 6f 46 69 6c 65 54 69 6d 65 28  eTimeToFileTime(
de80: 0d 0a 20 20 46 49 4c 45 54 49 4d 45 20 2a 6c 70  ..  FILETIME *lp
de90: 4c 6f 63 61 6c 46 69 6c 65 54 69 6d 65 2c 0d 0a  LocalFileTime,..
dea0: 20 20 4c 50 46 49 4c 45 54 49 4d 45 20 6c 70 46    LPFILETIME lpF
deb0: 69 6c 65 54 69 6d 65 29 3b 0d 0a 0d 0a 65 78 74  ileTime);....ext
dec0: 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
ded0: 6f 72 74 20 42 4f 4f 4c 20 46 69 6c 65 54 69 6d  ort BOOL FileTim
dee0: 65 54 6f 53 79 73 74 65 6d 54 69 6d 65 28 0d 0a  eToSystemTime(..
def0: 20 20 46 49 4c 45 54 49 4d 45 20 2a 6c 70 46 69    FILETIME *lpFi
df00: 6c 65 54 69 6d 65 2c 0d 0a 20 20 4c 50 53 59 53  leTime,..  LPSYS
df10: 54 45 4d 54 49 4d 45 20 6c 70 53 79 73 74 65 6d  TEMTIME lpSystem
df20: 54 69 6d 65 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e  Time);....extern
df30: 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
df40: 20 4c 4f 4e 47 20 43 6f 6d 70 61 72 65 46 69 6c   LONG CompareFil
df50: 65 54 69 6d 65 28 0d 0a 20 20 46 49 4c 45 54 49  eTime(..  FILETI
df60: 4d 45 20 2a 6c 70 46 69 6c 65 54 69 6d 65 31 2c  ME *lpFileTime1,
df70: 0d 0a 20 20 46 49 4c 45 54 49 4d 45 20 2a 6c 70  ..  FILETIME *lp
df80: 46 69 6c 65 54 69 6d 65 32 29 3b 0d 0a 0d 0a 65  FileTime2);....e
df90: 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
dfa0: 78 70 6f 72 74 20 42 4f 4f 4c 20 46 69 6c 65 54  xport BOOL FileT
dfb0: 69 6d 65 54 6f 44 6f 73 44 61 74 65 54 69 6d 65  imeToDosDateTime
dfc0: 28 0d 0a 20 20 46 49 4c 45 54 49 4d 45 20 2a 6c  (..  FILETIME *l
dfd0: 70 46 69 6c 65 54 69 6d 65 2c 0d 0a 20 20 4c 50  pFileTime,..  LP
dfe0: 57 4f 52 44 20 6c 70 46 61 74 44 61 74 65 2c 0d  WORD lpFatDate,.
dff0: 0a 20 20 4c 50 57 4f 52 44 20 6c 70 46 61 74 54  .  LPWORD lpFatT
e000: 69 6d 65 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28  ime);....extern(
e010: 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
e020: 42 4f 4f 4c 20 44 6f 73 44 61 74 65 54 69 6d 65  BOOL DosDateTime
e030: 54 6f 46 69 6c 65 54 69 6d 65 28 0d 0a 20 20 57  ToFileTime(..  W
e040: 4f 52 44 20 77 46 61 74 44 61 74 65 2c 0d 0a 20  ORD wFatDate,.. 
e050: 20 57 4f 52 44 20 77 46 61 74 54 69 6d 65 2c 0d   WORD wFatTime,.
e060: 0a 20 20 4c 50 46 49 4c 45 54 49 4d 45 20 6c 70  .  LPFILETIME lp
e070: 46 69 6c 65 54 69 6d 65 29 3b 0d 0a 0d 0a 65 78  FileTime);....ex
e080: 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
e090: 70 6f 72 74 20 44 57 4f 52 44 20 47 65 74 54 69  port DWORD GetTi
e0a0: 63 6b 43 6f 75 6e 74 28 29 3b 0d 0a 0d 0a 65 78  ckCount();....ex
e0b0: 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
e0c0: 70 6f 72 74 20 42 4f 4f 4c 20 53 65 74 53 79 73  port BOOL SetSys
e0d0: 74 65 6d 54 69 6d 65 41 64 6a 75 73 74 6d 65 6e  temTimeAdjustmen
e0e0: 74 28 0d 0a 20 20 44 57 4f 52 44 20 64 77 54 69  t(..  DWORD dwTi
e0f0: 6d 65 41 64 6a 75 73 74 6d 65 6e 74 2c 0d 0a 20  meAdjustment,.. 
e100: 20 42 4f 4f 4c 20 62 54 69 6d 65 41 64 6a 75 73   BOOL bTimeAdjus
e110: 74 6d 65 6e 74 44 69 73 61 62 6c 65 64 29 3b 0d  tmentDisabled);.
e120: 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ...extern(Window
e130: 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 47  s) export BOOL G
e140: 65 74 53 79 73 74 65 6d 54 69 6d 65 41 64 6a 75  etSystemTimeAdju
e150: 73 74 6d 65 6e 74 28 0d 0a 20 20 50 44 57 4f 52  stment(..  PDWOR
e160: 44 20 6c 70 54 69 6d 65 41 64 6a 75 73 74 6d 65  D lpTimeAdjustme
e170: 6e 74 2c 0d 0a 20 20 50 44 57 4f 52 44 20 6c 70  nt,..  PDWORD lp
e180: 54 69 6d 65 49 6e 63 72 65 6d 65 6e 74 2c 0d 0a  TimeIncrement,..
e190: 20 20 50 42 4f 4f 4c 20 6c 70 54 69 6d 65 41 64    PBOOL lpTimeAd
e1a0: 6a 75 73 74 6d 65 6e 74 44 69 73 61 62 6c 65 64  justmentDisabled
e1b0: 29 3b 0d 0a 0d 0a 2f 2f 20 23 69 66 20 21 64 65  );....// #if !de
e1c0: 66 69 6e 65 64 28 4d 49 44 4c 5f 50 41 53 53 29  fined(MIDL_PASS)
e1d0: 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
e1e0: 29 20 65 78 70 6f 72 74 20 44 57 4f 52 44 20 46  ) export DWORD F
e1f0: 6f 72 6d 61 74 4d 65 73 73 61 67 65 41 28 0d 0a  ormatMessageA(..
e200: 20 20 44 57 4f 52 44 20 64 77 46 6c 61 67 73 2c    DWORD dwFlags,
e210: 0d 0a 20 20 4c 50 43 56 4f 49 44 20 6c 70 53 6f  ..  LPCVOID lpSo
e220: 75 72 63 65 2c 0d 0a 20 20 44 57 4f 52 44 20 64  urce,..  DWORD d
e230: 77 4d 65 73 73 61 67 65 49 64 2c 0d 0a 20 20 44  wMessageId,..  D
e240: 57 4f 52 44 20 64 77 4c 61 6e 67 75 61 67 65 49  WORD dwLanguageI
e250: 64 2c 0d 0a 20 20 4c 50 53 54 52 20 6c 70 42 75  d,..  LPSTR lpBu
e260: 66 66 65 72 2c 0d 0a 20 20 44 57 4f 52 44 20 6e  ffer,..  DWORD n
e270: 53 69 7a 65 2c 0d 0a 20 20 76 61 5f 6c 69 73 74  Size,..  va_list
e280: 20 2a 41 72 67 75 6d 65 6e 74 73 29 3b 0d 0a 65   *Arguments);..e
e290: 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
e2a0: 78 70 6f 72 74 20 44 57 4f 52 44 20 46 6f 72 6d  xport DWORD Form
e2b0: 61 74 4d 65 73 73 61 67 65 57 28 0d 0a 20 20 44  atMessageW(..  D
e2c0: 57 4f 52 44 20 64 77 46 6c 61 67 73 2c 0d 0a 20  WORD dwFlags,.. 
e2d0: 20 4c 50 43 56 4f 49 44 20 6c 70 53 6f 75 72 63   LPCVOID lpSourc
e2e0: 65 2c 0d 0a 20 20 44 57 4f 52 44 20 64 77 4d 65  e,..  DWORD dwMe
e2f0: 73 73 61 67 65 49 64 2c 0d 0a 20 20 44 57 4f 52  ssageId,..  DWOR
e300: 44 20 64 77 4c 61 6e 67 75 61 67 65 49 64 2c 0d  D dwLanguageId,.
e310: 0a 20 20 4c 50 57 53 54 52 20 6c 70 42 75 66 66  .  LPWSTR lpBuff
e320: 65 72 2c 0d 0a 20 20 44 57 4f 52 44 20 6e 53 69  er,..  DWORD nSi
e330: 7a 65 2c 0d 0a 20 20 76 61 5f 6c 69 73 74 20 2a  ze,..  va_list *
e340: 41 72 67 75 6d 65 6e 74 73 29 3b 0d 0a 2f 2f 20  Arguments);..// 
e350: 23 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a  #ifdef UNICODE..
e360: 61 6c 69 61 73 20 46 6f 72 6d 61 74 4d 65 73 73  alias FormatMess
e370: 61 67 65 57 20 46 6f 72 6d 61 74 4d 65 73 73 61  ageW FormatMessa
e380: 67 65 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f  ge;..// #else../
e390: 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69  / #.....// #endi
e3a0: 66 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 2f  f // !UNICODE../
e3b0: 2f 20 23 65 6e 64 69 66 0d 0a 0d 0a 65 6e 75 6d  / #endif....enum
e3c0: 20 3a 20 75 69 6e 74 20 7b 20 46 4f 52 4d 41 54   : uint { FORMAT
e3d0: 5f 4d 45 53 53 41 47 45 5f 41 4c 4c 4f 43 41 54  _MESSAGE_ALLOCAT
e3e0: 45 5f 42 55 46 46 45 52 20 3d 20 30 78 30 30 30  E_BUFFER = 0x000
e3f0: 30 30 31 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20  00100 }..enum : 
e400: 75 69 6e 74 20 7b 20 46 4f 52 4d 41 54 5f 4d 45  uint { FORMAT_ME
e410: 53 53 41 47 45 5f 49 47 4e 4f 52 45 5f 49 4e 53  SSAGE_IGNORE_INS
e420: 45 52 54 53 20 3d 20 30 78 30 30 30 30 30 32 30  ERTS = 0x0000020
e430: 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  0 }..enum : uint
e440: 20 7b 20 46 4f 52 4d 41 54 5f 4d 45 53 53 41 47   { FORMAT_MESSAG
e450: 45 5f 46 52 4f 4d 5f 53 54 52 49 4e 47 20 3d 20  E_FROM_STRING = 
e460: 30 78 30 30 30 30 30 34 30 30 20 7d 0d 0a 65 6e  0x00000400 }..en
e470: 75 6d 20 3a 20 75 69 6e 74 20 7b 20 46 4f 52 4d  um : uint { FORM
e480: 41 54 5f 4d 45 53 53 41 47 45 5f 46 52 4f 4d 5f  AT_MESSAGE_FROM_
e490: 48 4d 4f 44 55 4c 45 20 3d 20 30 78 30 30 30 30  HMODULE = 0x0000
e4a0: 30 38 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75  0800 }..enum : u
e4b0: 69 6e 74 20 7b 20 46 4f 52 4d 41 54 5f 4d 45 53  int { FORMAT_MES
e4c0: 53 41 47 45 5f 46 52 4f 4d 5f 53 59 53 54 45 4d  SAGE_FROM_SYSTEM
e4d0: 20 3d 20 30 78 30 30 30 30 31 30 30 30 20 7d 0d   = 0x00001000 }.
e4e0: 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 46  .enum : uint { F
e4f0: 4f 52 4d 41 54 5f 4d 45 53 53 41 47 45 5f 41 52  ORMAT_MESSAGE_AR
e500: 47 55 4d 45 4e 54 5f 41 52 52 41 59 20 3d 20 30  GUMENT_ARRAY = 0
e510: 78 30 30 30 30 32 30 30 30 20 7d 0d 0a 65 6e 75  x00002000 }..enu
e520: 6d 20 3a 20 75 69 6e 74 20 7b 20 46 4f 52 4d 41  m : uint { FORMA
e530: 54 5f 4d 45 53 53 41 47 45 5f 4d 41 58 5f 57 49  T_MESSAGE_MAX_WI
e540: 44 54 48 5f 4d 41 53 4b 20 3d 20 30 78 30 30 30  DTH_MASK = 0x000
e550: 30 30 30 46 46 20 7d 0d 0a 0d 0a 65 78 74 65 72  000FF }....exter
e560: 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
e570: 74 20 42 4f 4f 4c 20 43 72 65 61 74 65 50 69 70  t BOOL CreatePip
e580: 65 28 0d 0a 20 20 50 48 41 4e 44 4c 45 20 68 52  e(..  PHANDLE hR
e590: 65 61 64 50 69 70 65 2c 0d 0a 20 20 50 48 41 4e  eadPipe,..  PHAN
e5a0: 44 4c 45 20 68 57 72 69 74 65 50 69 70 65 2c 0d  DLE hWritePipe,.
e5b0: 0a 20 20 4c 50 53 45 43 55 52 49 54 59 5f 41 54  .  LPSECURITY_AT
e5c0: 54 52 49 42 55 54 45 53 20 6c 70 50 69 70 65 41  TRIBUTES lpPipeA
e5d0: 74 74 72 69 62 75 74 65 73 2c 0d 0a 20 20 44 57  ttributes,..  DW
e5e0: 4f 52 44 20 6e 53 69 7a 65 29 3b 0d 0a 0d 0a 65  ORD nSize);....e
e5f0: 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
e600: 78 70 6f 72 74 20 42 4f 4f 4c 20 43 6f 6e 6e 65  xport BOOL Conne
e610: 63 74 4e 61 6d 65 64 50 69 70 65 28 0d 0a 20 20  ctNamedPipe(..  
e620: 48 41 4e 44 4c 45 20 68 4e 61 6d 65 64 50 69 70  HANDLE hNamedPip
e630: 65 2c 0d 0a 20 20 4c 50 4f 56 45 52 4c 41 50 50  e,..  LPOVERLAPP
e640: 45 44 20 6c 70 4f 76 65 72 6c 61 70 70 65 64 29  ED lpOverlapped)
e650: 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  ;....extern(Wind
e660: 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c  ows) export BOOL
e670: 20 44 69 73 63 6f 6e 6e 65 63 74 4e 61 6d 65 64   DisconnectNamed
e680: 50 69 70 65 28 0d 0a 20 20 48 41 4e 44 4c 45 20  Pipe(..  HANDLE 
e690: 68 4e 61 6d 65 64 50 69 70 65 29 3b 0d 0a 0d 0a  hNamedPipe);....
e6a0: 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
e6b0: 65 78 70 6f 72 74 20 42 4f 4f 4c 20 53 65 74 4e  export BOOL SetN
e6c0: 61 6d 65 64 50 69 70 65 48 61 6e 64 6c 65 53 74  amedPipeHandleSt
e6d0: 61 74 65 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68  ate(..  HANDLE h
e6e0: 4e 61 6d 65 64 50 69 70 65 2c 0d 0a 20 20 4c 50  NamedPipe,..  LP
e6f0: 44 57 4f 52 44 20 6c 70 4d 6f 64 65 2c 0d 0a 20  DWORD lpMode,.. 
e700: 20 4c 50 44 57 4f 52 44 20 6c 70 4d 61 78 43 6f   LPDWORD lpMaxCo
e710: 6c 6c 65 63 74 69 6f 6e 43 6f 75 6e 74 2c 0d 0a  llectionCount,..
e720: 20 20 4c 50 44 57 4f 52 44 20 6c 70 43 6f 6c 6c    LPDWORD lpColl
e730: 65 63 74 44 61 74 61 54 69 6d 65 6f 75 74 29 3b  ectDataTimeout);
e740: 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f  ....extern(Windo
e750: 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20  ws) export BOOL 
e760: 47 65 74 4e 61 6d 65 64 50 69 70 65 49 6e 66 6f  GetNamedPipeInfo
e770: 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68 4e 61 6d  (..  HANDLE hNam
e780: 65 64 50 69 70 65 2c 0d 0a 20 20 4c 50 44 57 4f  edPipe,..  LPDWO
e790: 52 44 20 6c 70 46 6c 61 67 73 2c 0d 0a 20 20 4c  RD lpFlags,..  L
e7a0: 50 44 57 4f 52 44 20 6c 70 4f 75 74 42 75 66 66  PDWORD lpOutBuff
e7b0: 65 72 53 69 7a 65 2c 0d 0a 20 20 4c 50 44 57 4f  erSize,..  LPDWO
e7c0: 52 44 20 6c 70 49 6e 42 75 66 66 65 72 53 69 7a  RD lpInBufferSiz
e7d0: 65 2c 0d 0a 20 20 4c 50 44 57 4f 52 44 20 6c 70  e,..  LPDWORD lp
e7e0: 4d 61 78 49 6e 73 74 61 6e 63 65 73 29 3b 0d 0a  MaxInstances);..
e7f0: 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
e800: 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 50 65  ) export BOOL Pe
e810: 65 6b 4e 61 6d 65 64 50 69 70 65 28 0d 0a 20 20  ekNamedPipe(..  
e820: 48 41 4e 44 4c 45 20 68 4e 61 6d 65 64 50 69 70  HANDLE hNamedPip
e830: 65 2c 0d 0a 20 20 4c 50 56 4f 49 44 20 6c 70 42  e,..  LPVOID lpB
e840: 75 66 66 65 72 2c 0d 0a 20 20 44 57 4f 52 44 20  uffer,..  DWORD 
e850: 6e 42 75 66 66 65 72 53 69 7a 65 2c 0d 0a 20 20  nBufferSize,..  
e860: 4c 50 44 57 4f 52 44 20 6c 70 42 79 74 65 73 52  LPDWORD lpBytesR
e870: 65 61 64 2c 0d 0a 20 20 4c 50 44 57 4f 52 44 20  ead,..  LPDWORD 
e880: 6c 70 54 6f 74 61 6c 42 79 74 65 73 41 76 61 69  lpTotalBytesAvai
e890: 6c 2c 0d 0a 20 20 4c 50 44 57 4f 52 44 20 6c 70  l,..  LPDWORD lp
e8a0: 42 79 74 65 73 4c 65 66 74 54 68 69 73 4d 65 73  BytesLeftThisMes
e8b0: 73 61 67 65 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e  sage);....extern
e8c0: 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
e8d0: 20 42 4f 4f 4c 20 54 72 61 6e 73 61 63 74 4e 61   BOOL TransactNa
e8e0: 6d 65 64 50 69 70 65 28 0d 0a 20 20 48 41 4e 44  medPipe(..  HAND
e8f0: 4c 45 20 68 4e 61 6d 65 64 50 69 70 65 2c 0d 0a  LE hNamedPipe,..
e900: 20 20 4c 50 56 4f 49 44 20 6c 70 49 6e 42 75 66    LPVOID lpInBuf
e910: 66 65 72 2c 0d 0a 20 20 44 57 4f 52 44 20 6e 49  fer,..  DWORD nI
e920: 6e 42 75 66 66 65 72 53 69 7a 65 2c 0d 0a 20 20  nBufferSize,..  
e930: 4c 50 56 4f 49 44 20 6c 70 4f 75 74 42 75 66 66  LPVOID lpOutBuff
e940: 65 72 2c 0d 0a 20 20 44 57 4f 52 44 20 6e 4f 75  er,..  DWORD nOu
e950: 74 42 75 66 66 65 72 53 69 7a 65 2c 0d 0a 20 20  tBufferSize,..  
e960: 4c 50 44 57 4f 52 44 20 6c 70 42 79 74 65 73 52  LPDWORD lpBytesR
e970: 65 61 64 2c 0d 0a 20 20 4c 50 4f 56 45 52 4c 41  ead,..  LPOVERLA
e980: 50 50 45 44 20 6c 70 4f 76 65 72 6c 61 70 70 65  PPED lpOverlappe
e990: 64 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69  d);....extern(Wi
e9a0: 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 48 41  ndows) export HA
e9b0: 4e 44 4c 45 20 43 72 65 61 74 65 4d 61 69 6c 73  NDLE CreateMails
e9c0: 6c 6f 74 41 28 0d 0a 20 20 4c 50 43 53 54 52 20  lotA(..  LPCSTR 
e9d0: 6c 70 4e 61 6d 65 2c 0d 0a 20 20 44 57 4f 52 44  lpName,..  DWORD
e9e0: 20 6e 4d 61 78 4d 65 73 73 61 67 65 53 69 7a 65   nMaxMessageSize
e9f0: 2c 0d 0a 20 20 44 57 4f 52 44 20 6c 52 65 61 64  ,..  DWORD lRead
ea00: 54 69 6d 65 6f 75 74 2c 0d 0a 20 20 4c 50 53 45  Timeout,..  LPSE
ea10: 43 55 52 49 54 59 5f 41 54 54 52 49 42 55 54 45  CURITY_ATTRIBUTE
ea20: 53 20 6c 70 53 65 63 75 72 69 74 79 41 74 74 72  S lpSecurityAttr
ea30: 69 62 75 74 65 73 29 3b 0d 0a 65 78 74 65 72 6e  ibutes);..extern
ea40: 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
ea50: 20 48 41 4e 44 4c 45 20 43 72 65 61 74 65 4d 61   HANDLE CreateMa
ea60: 69 6c 73 6c 6f 74 57 28 0d 0a 20 20 4c 50 43 57  ilslotW(..  LPCW
ea70: 53 54 52 20 6c 70 4e 61 6d 65 2c 0d 0a 20 20 44  STR lpName,..  D
ea80: 57 4f 52 44 20 6e 4d 61 78 4d 65 73 73 61 67 65  WORD nMaxMessage
ea90: 53 69 7a 65 2c 0d 0a 20 20 44 57 4f 52 44 20 6c  Size,..  DWORD l
eaa0: 52 65 61 64 54 69 6d 65 6f 75 74 2c 0d 0a 20 20  ReadTimeout,..  
eab0: 4c 50 53 45 43 55 52 49 54 59 5f 41 54 54 52 49  LPSECURITY_ATTRI
eac0: 42 55 54 45 53 20 6c 70 53 65 63 75 72 69 74 79  BUTES lpSecurity
ead0: 41 74 74 72 69 62 75 74 65 73 29 3b 0d 0a 2f 2f  Attributes);..//
eae0: 20 23 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d   #ifdef UNICODE.
eaf0: 0a 61 6c 69 61 73 20 43 72 65 61 74 65 4d 61 69  .alias CreateMai
eb00: 6c 73 6c 6f 74 57 20 43 72 65 61 74 65 4d 61 69  lslotW CreateMai
eb10: 6c 73 6c 6f 74 3b 0d 0a 2f 2f 20 23 65 6c 73 65  lslot;..// #else
eb20: 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65  ..// #.....// #e
eb30: 6e 64 69 66 20 2f 2f 20 21 55 4e 49 43 4f 44 45  ndif // !UNICODE
eb40: 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f  ....extern(Windo
eb50: 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20  ws) export BOOL 
eb60: 47 65 74 4d 61 69 6c 73 6c 6f 74 49 6e 66 6f 28  GetMailslotInfo(
eb70: 0d 0a 20 20 48 41 4e 44 4c 45 20 68 4d 61 69 6c  ..  HANDLE hMail
eb80: 73 6c 6f 74 2c 0d 0a 20 20 4c 50 44 57 4f 52 44  slot,..  LPDWORD
eb90: 20 6c 70 4d 61 78 4d 65 73 73 61 67 65 53 69 7a   lpMaxMessageSiz
eba0: 65 2c 0d 0a 20 20 4c 50 44 57 4f 52 44 20 6c 70  e,..  LPDWORD lp
ebb0: 4e 65 78 74 53 69 7a 65 2c 0d 0a 20 20 4c 50 44  NextSize,..  LPD
ebc0: 57 4f 52 44 20 6c 70 4d 65 73 73 61 67 65 43 6f  WORD lpMessageCo
ebd0: 75 6e 74 2c 0d 0a 20 20 4c 50 44 57 4f 52 44 20  unt,..  LPDWORD 
ebe0: 6c 70 52 65 61 64 54 69 6d 65 6f 75 74 29 3b 0d  lpReadTimeout);.
ebf0: 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ...extern(Window
ec00: 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 53  s) export BOOL S
ec10: 65 74 4d 61 69 6c 73 6c 6f 74 49 6e 66 6f 28 0d  etMailslotInfo(.
ec20: 0a 20 20 48 41 4e 44 4c 45 20 68 4d 61 69 6c 73  .  HANDLE hMails
ec30: 6c 6f 74 2c 0d 0a 20 20 44 57 4f 52 44 20 6c 52  lot,..  DWORD lR
ec40: 65 61 64 54 69 6d 65 6f 75 74 29 3b 0d 0a 0d 0a  eadTimeout);....
ec50: 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
ec60: 65 78 70 6f 72 74 20 4c 50 56 4f 49 44 20 4d 61  export LPVOID Ma
ec70: 70 56 69 65 77 4f 66 46 69 6c 65 28 0d 0a 20 20  pViewOfFile(..  
ec80: 48 41 4e 44 4c 45 20 68 46 69 6c 65 4d 61 70 70  HANDLE hFileMapp
ec90: 69 6e 67 4f 62 6a 65 63 74 2c 0d 0a 20 20 44 57  ingObject,..  DW
eca0: 4f 52 44 20 64 77 44 65 73 69 72 65 64 41 63 63  ORD dwDesiredAcc
ecb0: 65 73 73 2c 0d 0a 20 20 44 57 4f 52 44 20 64 77  ess,..  DWORD dw
ecc0: 46 69 6c 65 4f 66 66 73 65 74 48 69 67 68 2c 0d  FileOffsetHigh,.
ecd0: 0a 20 20 44 57 4f 52 44 20 64 77 46 69 6c 65 4f  .  DWORD dwFileO
ece0: 66 66 73 65 74 4c 6f 77 2c 0d 0a 20 20 53 49 5a  ffsetLow,..  SIZ
ecf0: 45 5f 54 20 64 77 4e 75 6d 62 65 72 4f 66 42 79  E_T dwNumberOfBy
ed00: 74 65 73 54 6f 4d 61 70 29 3b 0d 0a 0d 0a 65 78  tesToMap);....ex
ed10: 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
ed20: 70 6f 72 74 20 42 4f 4f 4c 20 46 6c 75 73 68 56  port BOOL FlushV
ed30: 69 65 77 4f 66 46 69 6c 65 28 0d 0a 20 20 4c 50  iewOfFile(..  LP
ed40: 43 56 4f 49 44 20 6c 70 42 61 73 65 41 64 64 72  CVOID lpBaseAddr
ed50: 65 73 73 2c 0d 0a 20 20 53 49 5a 45 5f 54 20 64  ess,..  SIZE_T d
ed60: 77 4e 75 6d 62 65 72 4f 66 42 79 74 65 73 54 6f  wNumberOfBytesTo
ed70: 46 6c 75 73 68 29 3b 0d 0a 0d 0a 65 78 74 65 72  Flush);....exter
ed80: 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
ed90: 74 20 42 4f 4f 4c 20 55 6e 6d 61 70 56 69 65 77  t BOOL UnmapView
eda0: 4f 66 46 69 6c 65 28 0d 0a 20 20 4c 50 43 56 4f  OfFile(..  LPCVO
edb0: 49 44 20 6c 70 42 61 73 65 41 64 64 72 65 73 73  ID lpBaseAddress
edc0: 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e  );....extern(Win
edd0: 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f  dows) export BOO
ede0: 4c 20 45 6e 63 72 79 70 74 46 69 6c 65 41 28 0d  L EncryptFileA(.
edf0: 0a 20 20 4c 50 43 53 54 52 20 6c 70 46 69 6c 65  .  LPCSTR lpFile
ee00: 4e 61 6d 65 29 3b 0d 0a 65 78 74 65 72 6e 28 57  Name);..extern(W
ee10: 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42  indows) export B
ee20: 4f 4f 4c 20 45 6e 63 72 79 70 74 46 69 6c 65 57  OOL EncryptFileW
ee30: 28 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 46  (..  LPCWSTR lpF
ee40: 69 6c 65 4e 61 6d 65 29 3b 0d 0a 2f 2f 20 23 69  ileName);..// #i
ee50: 66 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61 6c  fdef UNICODE..al
ee60: 69 61 73 20 45 6e 63 72 79 70 74 46 69 6c 65 57  ias EncryptFileW
ee70: 20 45 6e 63 72 79 70 74 46 69 6c 65 3b 0d 0a 2f   EncryptFile;../
ee80: 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e  / #else..// #...
ee90: 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21  ..// #endif // !
eea0: 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72  UNICODE....exter
eeb0: 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
eec0: 74 20 42 4f 4f 4c 20 44 65 63 72 79 70 74 46 69  t BOOL DecryptFi
eed0: 6c 65 41 28 0d 0a 20 20 4c 50 43 53 54 52 20 6c  leA(..  LPCSTR l
eee0: 70 46 69 6c 65 4e 61 6d 65 2c 0d 0a 20 20 44 57  pFileName,..  DW
eef0: 4f 52 44 20 64 77 52 65 73 65 72 76 65 64 29 3b  ORD dwReserved);
ef00: 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
ef10: 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 44 65  ) export BOOL De
ef20: 63 72 79 70 74 46 69 6c 65 57 28 0d 0a 20 20 4c  cryptFileW(..  L
ef30: 50 43 57 53 54 52 20 6c 70 46 69 6c 65 4e 61 6d  PCWSTR lpFileNam
ef40: 65 2c 0d 0a 20 20 44 57 4f 52 44 20 64 77 52 65  e,..  DWORD dwRe
ef50: 73 65 72 76 65 64 29 3b 0d 0a 2f 2f 20 23 69 66  served);..// #if
ef60: 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69  def UNICODE..ali
ef70: 61 73 20 44 65 63 72 79 70 74 46 69 6c 65 57 20  as DecryptFileW 
ef80: 44 65 63 72 79 70 74 46 69 6c 65 3b 0d 0a 2f 2f  DecryptFile;..//
ef90: 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d   #else..// #....
efa0: 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55  .// #endif // !U
efb0: 4e 49 43 4f 44 45 0d 0a 0d 0a 65 6e 75 6d 20 3a  NICODE....enum :
efc0: 20 75 69 6e 74 20 7b 20 46 49 4c 45 5f 45 4e 43   uint { FILE_ENC
efd0: 52 59 50 54 41 42 4c 45 20 3d 20 30 20 7d 0d 0a  RYPTABLE = 0 }..
efe0: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 46 49  enum : uint { FI
eff0: 4c 45 5f 49 53 5f 45 4e 43 52 59 50 54 45 44 20  LE_IS_ENCRYPTED 
f000: 3d 20 31 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69  = 1 }..enum : ui
f010: 6e 74 20 7b 20 46 49 4c 45 5f 53 59 53 54 45 4d  nt { FILE_SYSTEM
f020: 5f 41 54 54 52 20 3d 20 32 20 7d 0d 0a 65 6e 75  _ATTR = 2 }..enu
f030: 6d 20 3a 20 75 69 6e 74 20 7b 20 46 49 4c 45 5f  m : uint { FILE_
f040: 52 4f 4f 54 5f 44 49 52 20 3d 20 33 20 7d 0d 0a  ROOT_DIR = 3 }..
f050: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 46 49  enum : uint { FI
f060: 4c 45 5f 53 59 53 54 45 4d 5f 44 49 52 20 3d 20  LE_SYSTEM_DIR = 
f070: 34 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  4 }..enum : uint
f080: 20 7b 20 46 49 4c 45 5f 55 4e 4b 4e 4f 57 4e 20   { FILE_UNKNOWN 
f090: 3d 20 35 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69  = 5 }..enum : ui
f0a0: 6e 74 20 7b 20 46 49 4c 45 5f 53 59 53 54 45 4d  nt { FILE_SYSTEM
f0b0: 5f 4e 4f 54 5f 53 55 50 50 4f 52 54 20 3d 20 36  _NOT_SUPPORT = 6
f0c0: 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20   }..enum : uint 
f0d0: 7b 20 46 49 4c 45 5f 55 53 45 52 5f 44 49 53 41  { FILE_USER_DISA
f0e0: 4c 4c 4f 57 45 44 20 3d 20 37 20 7d 0d 0a 65 6e  LLOWED = 7 }..en
f0f0: 75 6d 20 3a 20 75 69 6e 74 20 7b 20 46 49 4c 45  um : uint { FILE
f100: 5f 52 45 41 44 5f 4f 4e 4c 59 20 3d 20 38 20 7d  _READ_ONLY = 8 }
f110: 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20  ..enum : uint { 
f120: 46 49 4c 45 5f 44 49 52 5f 44 49 53 41 4c 4c 4f  FILE_DIR_DISALLO
f130: 57 45 44 20 3d 20 39 20 7d 0d 0a 0d 0a 65 78 74  WED = 9 }....ext
f140: 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
f150: 6f 72 74 20 42 4f 4f 4c 20 46 69 6c 65 45 6e 63  ort BOOL FileEnc
f160: 72 79 70 74 69 6f 6e 53 74 61 74 75 73 41 28 0d  ryptionStatusA(.
f170: 0a 20 20 4c 50 43 53 54 52 20 6c 70 46 69 6c 65  .  LPCSTR lpFile
f180: 4e 61 6d 65 2c 0d 0a 20 20 4c 50 44 57 4f 52 44  Name,..  LPDWORD
f190: 20 6c 70 53 74 61 74 75 73 29 3b 0d 0a 65 78 74   lpStatus);..ext
f1a0: 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
f1b0: 6f 72 74 20 42 4f 4f 4c 20 46 69 6c 65 45 6e 63  ort BOOL FileEnc
f1c0: 72 79 70 74 69 6f 6e 53 74 61 74 75 73 57 28 0d  ryptionStatusW(.
f1d0: 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 46 69 6c  .  LPCWSTR lpFil
f1e0: 65 4e 61 6d 65 2c 0d 0a 20 20 4c 50 44 57 4f 52  eName,..  LPDWOR
f1f0: 44 20 6c 70 53 74 61 74 75 73 29 3b 0d 0a 2f 2f  D lpStatus);..//
f200: 20 23 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d   #ifdef UNICODE.
f210: 0a 61 6c 69 61 73 20 46 69 6c 65 45 6e 63 72 79  .alias FileEncry
f220: 70 74 69 6f 6e 53 74 61 74 75 73 57 20 46 69 6c  ptionStatusW Fil
f230: 65 45 6e 63 72 79 70 74 69 6f 6e 53 74 61 74 75  eEncryptionStatu
f240: 73 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f  s;..// #else..//
f250: 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66   #.....// #endif
f260: 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a   // !UNICODE....
f270: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 45 46  enum : uint { EF
f280: 53 5f 55 53 45 5f 52 45 43 4f 56 45 52 59 5f 4b  S_USE_RECOVERY_K
f290: 45 59 53 20 3d 20 30 78 31 20 7d 0d 0a 0d 0a 65  EYS = 0x1 }....e
f2a0: 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 61  xtern(Windows) a
f2b0: 6c 69 61 73 20 44 57 4f 52 44 20 66 75 6e 63 74  lias DWORD funct
f2c0: 69 6f 6e 28 20 50 42 59 54 45 20 70 62 44 61 74  ion( PBYTE pbDat
f2d0: 61 2c 20 50 56 4f 49 44 20 70 76 43 61 6c 6c 62  a, PVOID pvCallb
f2e0: 61 63 6b 43 6f 6e 74 65 78 74 2c 20 55 4c 4f 4e  ackContext, ULON
f2f0: 47 20 75 6c 4c 65 6e 67 74 68 20 29 20 50 46 45  G ulLength ) PFE
f300: 5f 45 58 50 4f 52 54 5f 46 55 4e 43 3b 0d 0a 0d  _EXPORT_FUNC;...
f310: 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29  .extern(Windows)
f320: 20 61 6c 69 61 73 20 44 57 4f 52 44 20 66 75 6e   alias DWORD fun
f330: 63 74 69 6f 6e 28 20 50 42 59 54 45 20 70 62 44  ction( PBYTE pbD
f340: 61 74 61 2c 20 50 56 4f 49 44 20 70 76 43 61 6c  ata, PVOID pvCal
f350: 6c 62 61 63 6b 43 6f 6e 74 65 78 74 2c 20 50 55  lbackContext, PU
f360: 4c 4f 4e 47 20 75 6c 4c 65 6e 67 74 68 20 29 20  LONG ulLength ) 
f370: 50 46 45 5f 49 4d 50 4f 52 54 5f 46 55 4e 43 3b  PFE_IMPORT_FUNC;
f380: 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20  ....enum : uint 
f390: 7b 20 43 52 45 41 54 45 5f 46 4f 52 5f 49 4d 50  { CREATE_FOR_IMP
f3a0: 4f 52 54 20 3d 20 31 20 7d 0d 0a 65 6e 75 6d 20  ORT = 1 }..enum 
f3b0: 3a 20 75 69 6e 74 20 7b 20 43 52 45 41 54 45 5f  : uint { CREATE_
f3c0: 46 4f 52 5f 44 49 52 20 3d 20 32 20 7d 0d 0a 65  FOR_DIR = 2 }..e
f3d0: 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 4f 56 45  num : uint { OVE
f3e0: 52 57 52 49 54 45 5f 48 49 44 44 45 4e 20 3d 20  RWRITE_HIDDEN = 
f3f0: 34 20 7d 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69  4 }....extern(Wi
f400: 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 44 57  ndows) export DW
f410: 4f 52 44 20 4f 70 65 6e 45 6e 63 72 79 70 74 65  ORD OpenEncrypte
f420: 64 46 69 6c 65 52 61 77 41 28 0d 0a 20 20 4c 50  dFileRawA(..  LP
f430: 43 53 54 52 20 6c 70 46 69 6c 65 4e 61 6d 65 2c  CSTR lpFileName,
f440: 0d 0a 20 20 55 4c 4f 4e 47 20 75 6c 46 6c 61 67  ..  ULONG ulFlag
f450: 73 2c 0d 0a 20 20 50 56 4f 49 44 20 2a 20 70 76  s,..  PVOID * pv
f460: 43 6f 6e 74 65 78 74 29 3b 0d 0a 65 78 74 65 72  Context);..exter
f470: 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
f480: 74 20 44 57 4f 52 44 20 4f 70 65 6e 45 6e 63 72  t DWORD OpenEncr
f490: 79 70 74 65 64 46 69 6c 65 52 61 77 57 28 0d 0a  yptedFileRawW(..
f4a0: 20 20 4c 50 43 57 53 54 52 20 6c 70 46 69 6c 65    LPCWSTR lpFile
f4b0: 4e 61 6d 65 2c 0d 0a 20 20 55 4c 4f 4e 47 20 75  Name,..  ULONG u
f4c0: 6c 46 6c 61 67 73 2c 0d 0a 20 20 50 56 4f 49 44  lFlags,..  PVOID
f4d0: 20 2a 20 70 76 43 6f 6e 74 65 78 74 29 3b 0d 0a   * pvContext);..
f4e0: 2f 2f 20 23 69 66 64 65 66 20 55 4e 49 43 4f 44  // #ifdef UNICOD
f4f0: 45 0d 0a 61 6c 69 61 73 20 4f 70 65 6e 45 6e 63  E..alias OpenEnc
f500: 72 79 70 74 65 64 46 69 6c 65 52 61 77 57 20 4f  ryptedFileRawW O
f510: 70 65 6e 45 6e 63 72 79 70 74 65 64 46 69 6c 65  penEncryptedFile
f520: 52 61 77 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a  Raw;..// #else..
f530: 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64  // #.....// #end
f540: 69 66 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a  if // !UNICODE..
f550: 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
f560: 29 20 65 78 70 6f 72 74 20 44 57 4f 52 44 20 52  ) export DWORD R
f570: 65 61 64 45 6e 63 72 79 70 74 65 64 46 69 6c 65  eadEncryptedFile
f580: 52 61 77 28 0d 0a 20 20 50 46 45 5f 45 58 50 4f  Raw(..  PFE_EXPO
f590: 52 54 5f 46 55 4e 43 20 70 66 45 78 70 6f 72 74  RT_FUNC pfExport
f5a0: 43 61 6c 6c 62 61 63 6b 2c 0d 0a 20 20 50 56 4f  Callback,..  PVO
f5b0: 49 44 20 70 76 43 61 6c 6c 62 61 63 6b 43 6f 6e  ID pvCallbackCon
f5c0: 74 65 78 74 2c 0d 0a 20 20 50 56 4f 49 44 20 70  text,..  PVOID p
f5d0: 76 43 6f 6e 74 65 78 74 29 3b 0d 0a 0d 0a 65 78  vContext);....ex
f5e0: 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
f5f0: 70 6f 72 74 20 44 57 4f 52 44 20 57 72 69 74 65  port DWORD Write
f600: 45 6e 63 72 79 70 74 65 64 46 69 6c 65 52 61 77  EncryptedFileRaw
f610: 28 0d 0a 20 20 50 46 45 5f 49 4d 50 4f 52 54 5f  (..  PFE_IMPORT_
f620: 46 55 4e 43 20 70 66 49 6d 70 6f 72 74 43 61 6c  FUNC pfImportCal
f630: 6c 62 61 63 6b 2c 0d 0a 20 20 50 56 4f 49 44 20  lback,..  PVOID 
f640: 70 76 43 61 6c 6c 62 61 63 6b 43 6f 6e 74 65 78  pvCallbackContex
f650: 74 2c 0d 0a 20 20 50 56 4f 49 44 20 70 76 43 6f  t,..  PVOID pvCo
f660: 6e 74 65 78 74 29 3b 0d 0a 0d 0a 65 78 74 65 72  ntext);....exter
f670: 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
f680: 74 20 56 4f 49 44 20 43 6c 6f 73 65 45 6e 63 72  t VOID CloseEncr
f690: 79 70 74 65 64 46 69 6c 65 52 61 77 28 0d 0a 20  yptedFileRaw(.. 
f6a0: 20 50 56 4f 49 44 20 70 76 43 6f 6e 74 65 78 74   PVOID pvContext
f6b0: 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e  );....extern(Win
f6c0: 64 6f 77 73 29 20 65 78 70 6f 72 74 20 69 6e 74  dows) export int
f6d0: 20 6c 73 74 72 63 6d 70 41 28 0d 0a 20 20 4c 50   lstrcmpA(..  LP
f6e0: 43 53 54 52 20 6c 70 53 74 72 69 6e 67 31 2c 0d  CSTR lpString1,.
f6f0: 0a 20 20 4c 50 43 53 54 52 20 6c 70 53 74 72 69  .  LPCSTR lpStri
f700: 6e 67 32 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69  ng2);..extern(Wi
f710: 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 69 6e  ndows) export in
f720: 74 20 6c 73 74 72 63 6d 70 57 28 0d 0a 20 20 4c  t lstrcmpW(..  L
f730: 50 43 57 53 54 52 20 6c 70 53 74 72 69 6e 67 31  PCWSTR lpString1
f740: 2c 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 53  ,..  LPCWSTR lpS
f750: 74 72 69 6e 67 32 29 3b 0d 0a 2f 2f 20 23 69 66  tring2);..// #if
f760: 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69  def UNICODE..ali
f770: 61 73 20 6c 73 74 72 63 6d 70 57 20 6c 73 74 72  as lstrcmpW lstr
f780: 63 6d 70 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a  cmp;..// #else..
f790: 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64  // #.....// #end
f7a0: 69 66 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a  if // !UNICODE..
f7b0: 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
f7c0: 29 20 65 78 70 6f 72 74 20 69 6e 74 20 6c 73 74  ) export int lst
f7d0: 72 63 6d 70 69 41 28 0d 0a 20 20 4c 50 43 53 54  rcmpiA(..  LPCST
f7e0: 52 20 6c 70 53 74 72 69 6e 67 31 2c 0d 0a 20 20  R lpString1,..  
f7f0: 4c 50 43 53 54 52 20 6c 70 53 74 72 69 6e 67 32  LPCSTR lpString2
f800: 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f  );..extern(Windo
f810: 77 73 29 20 65 78 70 6f 72 74 20 69 6e 74 20 6c  ws) export int l
f820: 73 74 72 63 6d 70 69 57 28 0d 0a 20 20 4c 50 43  strcmpiW(..  LPC
f830: 57 53 54 52 20 6c 70 53 74 72 69 6e 67 31 2c 0d  WSTR lpString1,.
f840: 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 53 74 72  .  LPCWSTR lpStr
f850: 69 6e 67 32 29 3b 0d 0a 2f 2f 20 23 69 66 64 65  ing2);..// #ifde
f860: 66 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69 61 73  f UNICODE..alias
f870: 20 6c 73 74 72 63 6d 70 69 57 20 6c 73 74 72 63   lstrcmpiW lstrc
f880: 6d 70 69 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a  mpi;..// #else..
f890: 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64  // #.....// #end
f8a0: 69 66 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a  if // !UNICODE..
f8b0: 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
f8c0: 29 20 65 78 70 6f 72 74 20 4c 50 53 54 52 20 6c  ) export LPSTR l
f8d0: 73 74 72 63 70 79 6e 41 28 0d 0a 20 20 4c 50 53  strcpynA(..  LPS
f8e0: 54 52 20 6c 70 53 74 72 69 6e 67 31 2c 0d 0a 20  TR lpString1,.. 
f8f0: 20 4c 50 43 53 54 52 20 6c 70 53 74 72 69 6e 67   LPCSTR lpString
f900: 32 2c 0d 0a 20 20 69 6e 74 20 69 4d 61 78 4c 65  2,..  int iMaxLe
f910: 6e 67 74 68 29 3b 0d 0a 65 78 74 65 72 6e 28 57  ngth);..extern(W
f920: 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 4c  indows) export L
f930: 50 57 53 54 52 20 6c 73 74 72 63 70 79 6e 57 28  PWSTR lstrcpynW(
f940: 0d 0a 20 20 4c 50 57 53 54 52 20 6c 70 53 74 72  ..  LPWSTR lpStr
f950: 69 6e 67 31 2c 0d 0a 20 20 4c 50 43 57 53 54 52  ing1,..  LPCWSTR
f960: 20 6c 70 53 74 72 69 6e 67 32 2c 0d 0a 20 20 69   lpString2,..  i
f970: 6e 74 20 69 4d 61 78 4c 65 6e 67 74 68 29 3b 0d  nt iMaxLength);.
f980: 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e 49 43 4f  .// #ifdef UNICO
f990: 44 45 0d 0a 61 6c 69 61 73 20 6c 73 74 72 63 70  DE..alias lstrcp
f9a0: 79 6e 57 20 6c 73 74 72 63 70 79 6e 3b 0d 0a 2f  ynW lstrcpyn;../
f9b0: 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e  / #else..// #...
f9c0: 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21  ..// #endif // !
f9d0: 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72  UNICODE....exter
f9e0: 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
f9f0: 74 20 4c 50 53 54 52 20 6c 73 74 72 63 70 79 41  t LPSTR lstrcpyA
fa00: 28 0d 0a 20 20 4c 50 53 54 52 20 6c 70 53 74 72  (..  LPSTR lpStr
fa10: 69 6e 67 31 2c 0d 0a 20 20 4c 50 43 53 54 52 20  ing1,..  LPCSTR 
fa20: 6c 70 53 74 72 69 6e 67 32 29 3b 0d 0a 65 78 74  lpString2);..ext
fa30: 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
fa40: 6f 72 74 20 4c 50 57 53 54 52 20 6c 73 74 72 63  ort LPWSTR lstrc
fa50: 70 79 57 28 0d 0a 20 20 4c 50 57 53 54 52 20 6c  pyW(..  LPWSTR l
fa60: 70 53 74 72 69 6e 67 31 2c 0d 0a 20 20 4c 50 43  pString1,..  LPC
fa70: 57 53 54 52 20 6c 70 53 74 72 69 6e 67 32 29 3b  WSTR lpString2);
fa80: 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e 49 43  ..// #ifdef UNIC
fa90: 4f 44 45 0d 0a 61 6c 69 61 73 20 6c 73 74 72 63  ODE..alias lstrc
faa0: 70 79 57 20 6c 73 74 72 63 70 79 3b 0d 0a 2f 2f  pyW lstrcpy;..//
fab0: 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d   #else..// #....
fac0: 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55  .// #endif // !U
fad0: 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72 6e  NICODE....extern
fae0: 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
faf0: 20 4c 50 53 54 52 20 6c 73 74 72 63 61 74 41 28   LPSTR lstrcatA(
fb00: 0d 0a 20 20 4c 50 53 54 52 20 6c 70 53 74 72 69  ..  LPSTR lpStri
fb10: 6e 67 31 2c 0d 0a 20 20 4c 50 43 53 54 52 20 6c  ng1,..  LPCSTR l
fb20: 70 53 74 72 69 6e 67 32 29 3b 0d 0a 65 78 74 65  pString2);..exte
fb30: 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
fb40: 72 74 20 4c 50 57 53 54 52 20 6c 73 74 72 63 61  rt LPWSTR lstrca
fb50: 74 57 28 0d 0a 20 20 4c 50 57 53 54 52 20 6c 70  tW(..  LPWSTR lp
fb60: 53 74 72 69 6e 67 31 2c 0d 0a 20 20 4c 50 43 57  String1,..  LPCW
fb70: 53 54 52 20 6c 70 53 74 72 69 6e 67 32 29 3b 0d  STR lpString2);.
fb80: 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e 49 43 4f  .// #ifdef UNICO
fb90: 44 45 0d 0a 61 6c 69 61 73 20 6c 73 74 72 63 61  DE..alias lstrca
fba0: 74 57 20 6c 73 74 72 63 61 74 3b 0d 0a 2f 2f 20  tW lstrcat;..// 
fbb0: 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a  #else..// #.....
fbc0: 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e  // #endif // !UN
fbd0: 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72 6e 28  ICODE....extern(
fbe0: 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
fbf0: 69 6e 74 20 6c 73 74 72 6c 65 6e 41 28 0d 0a 20  int lstrlenA(.. 
fc00: 20 4c 50 43 53 54 52 20 6c 70 53 74 72 69 6e 67   LPCSTR lpString
fc10: 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f  );..extern(Windo
fc20: 77 73 29 20 65 78 70 6f 72 74 20 69 6e 74 20 6c  ws) export int l
fc30: 73 74 72 6c 65 6e 57 28 0d 0a 20 20 4c 50 43 57  strlenW(..  LPCW
fc40: 53 54 52 20 6c 70 53 74 72 69 6e 67 29 3b 0d 0a  STR lpString);..
fc50: 2f 2f 20 23 69 66 64 65 66 20 55 4e 49 43 4f 44  // #ifdef UNICOD
fc60: 45 0d 0a 61 6c 69 61 73 20 6c 73 74 72 6c 65 6e  E..alias lstrlen
fc70: 57 20 6c 73 74 72 6c 65 6e 3b 0d 0a 2f 2f 20 23  W lstrlen;..// #
fc80: 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f  else..// #...../
fc90: 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e 49  / #endif // !UNI
fca0: 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72 6e 28 57  CODE....extern(W
fcb0: 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 48  indows) export H
fcc0: 46 49 4c 45 20 4f 70 65 6e 46 69 6c 65 28 0d 0a  FILE OpenFile(..
fcd0: 20 20 4c 50 43 53 54 52 20 6c 70 46 69 6c 65 4e    LPCSTR lpFileN
fce0: 61 6d 65 2c 0d 0a 20 20 4c 50 4f 46 53 54 52 55  ame,..  LPOFSTRU
fcf0: 43 54 20 6c 70 52 65 4f 70 65 6e 42 75 66 66 2c  CT lpReOpenBuff,
fd00: 0d 0a 20 20 55 49 4e 54 20 75 53 74 79 6c 65 29  ..  UINT uStyle)
fd10: 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  ;....extern(Wind
fd20: 6f 77 73 29 20 65 78 70 6f 72 74 20 48 46 49 4c  ows) export HFIL
fd30: 45 20 5f 6c 6f 70 65 6e 28 0d 0a 20 20 4c 50 43  E _lopen(..  LPC
fd40: 53 54 52 20 6c 70 50 61 74 68 4e 61 6d 65 2c 0d  STR lpPathName,.
fd50: 0a 20 20 69 6e 74 20 69 52 65 61 64 57 72 69 74  .  int iReadWrit
fd60: 65 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69  e);....extern(Wi
fd70: 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 48 46  ndows) export HF
fd80: 49 4c 45 20 5f 6c 63 72 65 61 74 28 0d 0a 20 20  ILE _lcreat(..  
fd90: 4c 50 43 53 54 52 20 6c 70 50 61 74 68 4e 61 6d  LPCSTR lpPathNam
fda0: 65 2c 0d 0a 20 20 69 6e 74 20 69 41 74 74 72 69  e,..  int iAttri
fdb0: 62 75 74 65 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e  bute);....extern
fdc0: 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
fdd0: 20 55 49 4e 54 20 5f 6c 72 65 61 64 28 0d 0a 20   UINT _lread(.. 
fde0: 20 48 46 49 4c 45 20 68 46 69 6c 65 2c 0d 0a 20   HFILE hFile,.. 
fdf0: 20 4c 50 56 4f 49 44 20 6c 70 42 75 66 66 65 72   LPVOID lpBuffer
fe00: 2c 0d 0a 20 20 55 49 4e 54 20 75 42 79 74 65 73  ,..  UINT uBytes
fe10: 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e  );....extern(Win
fe20: 64 6f 77 73 29 20 65 78 70 6f 72 74 20 55 49 4e  dows) export UIN
fe30: 54 20 5f 6c 77 72 69 74 65 28 0d 0a 20 20 48 46  T _lwrite(..  HF
fe40: 49 4c 45 20 68 46 69 6c 65 2c 0d 0a 20 20 4c 50  ILE hFile,..  LP
fe50: 43 53 54 52 20 6c 70 42 75 66 66 65 72 2c 0d 0a  CSTR lpBuffer,..
fe60: 20 20 55 49 4e 54 20 75 42 79 74 65 73 29 3b 0d    UINT uBytes);.
fe70: 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ...extern(Window
fe80: 73 29 20 65 78 70 6f 72 74 20 69 6e 74 20 5f 68  s) export int _h
fe90: 72 65 61 64 28 0d 0a 20 20 48 46 49 4c 45 20 68  read(..  HFILE h
fea0: 46 69 6c 65 2c 0d 0a 20 20 4c 50 56 4f 49 44 20  File,..  LPVOID 
feb0: 6c 70 42 75 66 66 65 72 2c 0d 0a 20 20 69 6e 74  lpBuffer,..  int
fec0: 20 6c 42 79 74 65 73 29 3b 0d 0a 0d 0a 65 78 74   lBytes);....ext
fed0: 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
fee0: 6f 72 74 20 69 6e 74 20 5f 68 77 72 69 74 65 28  ort int _hwrite(
fef0: 0d 0a 20 20 48 46 49 4c 45 20 68 46 69 6c 65 2c  ..  HFILE hFile,
ff00: 0d 0a 20 20 4c 50 43 53 54 52 20 6c 70 42 75 66  ..  LPCSTR lpBuf
ff10: 66 65 72 2c 0d 0a 20 20 69 6e 74 20 6c 42 79 74  fer,..  int lByt
ff20: 65 73 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57  es);....extern(W
ff30: 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 48  indows) export H
ff40: 46 49 4c 45 20 5f 6c 63 6c 6f 73 65 28 0d 0a 20  FILE _lclose(.. 
ff50: 20 48 46 49 4c 45 20 68 46 69 6c 65 29 3b 0d 0a   HFILE hFile);..
ff60: 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
ff70: 29 20 65 78 70 6f 72 74 20 4c 4f 4e 47 20 5f 6c  ) export LONG _l
ff80: 6c 73 65 65 6b 28 0d 0a 20 20 48 46 49 4c 45 20  lseek(..  HFILE 
ff90: 68 46 69 6c 65 2c 0d 0a 20 20 4c 4f 4e 47 20 6c  hFile,..  LONG l
ffa0: 4f 66 66 73 65 74 2c 0d 0a 20 20 69 6e 74 20 69  Offset,..  int i
ffb0: 4f 72 69 67 69 6e 29 3b 0d 0a 0d 0a 65 78 74 65  Origin);....exte
ffc0: 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
ffd0: 72 74 20 42 4f 4f 4c 20 49 73 54 65 78 74 55 6e  rt BOOL IsTextUn
ffe0: 69 63 6f 64 65 28 0d 0a 20 20 56 4f 49 44 2a 20  icode(..  VOID* 
fff0: 6c 70 42 75 66 66 65 72 2c 0d 0a 20 20 69 6e 74  lpBuffer,..  int
10000 20 63 62 2c 0d 0a 20 20 4c 50 49 4e 54 20 6c 70   cb,..  LPINT lp
10010 69 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69  i);....extern(Wi
10020 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 44 57  ndows) export DW
10030 4f 52 44 20 54 6c 73 41 6c 6c 6f 63 28 29 3b 0d  ORD TlsAlloc();.
10040 0a 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b  ...enum : uint {
10050 20 54 4c 53 5f 4f 55 54 5f 4f 46 5f 49 4e 44 45   TLS_OUT_OF_INDE
10060 58 45 53 20 3d 20 63 61 73 74 28 44 57 4f 52 44  XES = cast(DWORD
10070 29 30 78 46 46 46 46 46 46 46 46 20 7d 0d 0a 0d  )0xFFFFFFFF }...
10080 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29  .extern(Windows)
10090 20 65 78 70 6f 72 74 20 4c 50 56 4f 49 44 20 54   export LPVOID T
100a0 6c 73 47 65 74 56 61 6c 75 65 28 0d 0a 20 20 44  lsGetValue(..  D
100b0 57 4f 52 44 20 64 77 54 6c 73 49 6e 64 65 78 29  WORD dwTlsIndex)
100c0 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  ;....extern(Wind
100d0 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c  ows) export BOOL
100e0 20 54 6c 73 53 65 74 56 61 6c 75 65 28 0d 0a 20   TlsSetValue(.. 
100f0 20 44 57 4f 52 44 20 64 77 54 6c 73 49 6e 64 65   DWORD dwTlsInde
10100 78 2c 0d 0a 20 20 4c 50 56 4f 49 44 20 6c 70 54  x,..  LPVOID lpT
10110 6c 73 56 61 6c 75 65 29 3b 0d 0a 0d 0a 65 78 74  lsValue);....ext
10120 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
10130 6f 72 74 20 42 4f 4f 4c 20 54 6c 73 46 72 65 65  ort BOOL TlsFree
10140 28 0d 0a 20 20 44 57 4f 52 44 20 64 77 54 6c 73  (..  DWORD dwTls
10150 49 6e 64 65 78 29 3b 0d 0a 0d 0a 65 78 74 65 72  Index);....exter
10160 6e 28 57 69 6e 64 6f 77 73 29 20 61 6c 69 61 73  n(Windows) alias
10170 20 56 4f 49 44 20 66 75 6e 63 74 69 6f 6e 28 20   VOID function( 
10180 44 57 4f 52 44 20 64 77 45 72 72 6f 72 43 6f 64  DWORD dwErrorCod
10190 65 2c 20 44 57 4f 52 44 20 64 77 4e 75 6d 62 65  e, DWORD dwNumbe
101a0 72 4f 66 42 79 74 65 73 54 72 61 6e 73 66 65 72  rOfBytesTransfer
101b0 65 64 2c 20 4c 50 4f 56 45 52 4c 41 50 50 45 44  ed, LPOVERLAPPED
101c0 20 6c 70 4f 76 65 72 6c 61 70 70 65 64 20 29 20   lpOverlapped ) 
101d0 4c 50 4f 56 45 52 4c 41 50 50 45 44 5f 43 4f 4d  LPOVERLAPPED_COM
101e0 50 4c 45 54 49 4f 4e 5f 52 4f 55 54 49 4e 45 3b  PLETION_ROUTINE;
101f0 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f  ....extern(Windo
10200 77 73 29 20 65 78 70 6f 72 74 20 44 57 4f 52 44  ws) export DWORD
10210 20 53 6c 65 65 70 45 78 28 0d 0a 20 20 44 57 4f   SleepEx(..  DWO
10220 52 44 20 64 77 4d 69 6c 6c 69 73 65 63 6f 6e 64  RD dwMillisecond
10230 73 2c 0d 0a 20 20 42 4f 4f 4c 20 62 41 6c 65 72  s,..  BOOL bAler
10240 74 61 62 6c 65 29 3b 0d 0a 0d 0a 65 78 74 65 72  table);....exter
10250 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
10260 74 20 44 57 4f 52 44 20 57 61 69 74 46 6f 72 53  t DWORD WaitForS
10270 69 6e 67 6c 65 4f 62 6a 65 63 74 45 78 28 0d 0a  ingleObjectEx(..
10280 20 20 48 41 4e 44 4c 45 20 68 48 61 6e 64 6c 65    HANDLE hHandle
10290 2c 0d 0a 20 20 44 57 4f 52 44 20 64 77 4d 69 6c  ,..  DWORD dwMil
102a0 6c 69 73 65 63 6f 6e 64 73 2c 0d 0a 20 20 42 4f  liseconds,..  BO
102b0 4f 4c 20 62 41 6c 65 72 74 61 62 6c 65 29 3b 0d  OL bAlertable);.
102c0 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ...extern(Window
102d0 73 29 20 65 78 70 6f 72 74 20 44 57 4f 52 44 20  s) export DWORD 
102e0 57 61 69 74 46 6f 72 4d 75 6c 74 69 70 6c 65 4f  WaitForMultipleO
102f0 62 6a 65 63 74 73 45 78 28 0d 0a 20 20 44 57 4f  bjectsEx(..  DWO
10300 52 44 20 6e 43 6f 75 6e 74 2c 0d 0a 20 20 48 41  RD nCount,..  HA
10310 4e 44 4c 45 20 2a 6c 70 48 61 6e 64 6c 65 73 2c  NDLE *lpHandles,
10320 0d 0a 20 20 42 4f 4f 4c 20 62 57 61 69 74 41 6c  ..  BOOL bWaitAl
10330 6c 2c 0d 0a 20 20 44 57 4f 52 44 20 64 77 4d 69  l,..  DWORD dwMi
10340 6c 6c 69 73 65 63 6f 6e 64 73 2c 0d 0a 20 20 42  lliseconds,..  B
10350 4f 4f 4c 20 62 41 6c 65 72 74 61 62 6c 65 29 3b  OOL bAlertable);
10360 0d 0a 0d 0a 2f 2f 20 23 69 66 28 5f 57 49 4e 33  ....// #if(_WIN3
10370 32 5f 57 49 4e 4e 54 20 3e 3d 20 30 78 30 34 30  2_WINNT >= 0x040
10380 30 29 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f  0)..extern(Windo
10390 77 73 29 20 65 78 70 6f 72 74 20 44 57 4f 52 44  ws) export DWORD
103a0 20 53 69 67 6e 61 6c 4f 62 6a 65 63 74 41 6e 64   SignalObjectAnd
103b0 57 61 69 74 28 0d 0a 20 20 48 41 4e 44 4c 45 20  Wait(..  HANDLE 
103c0 68 4f 62 6a 65 63 74 54 6f 53 69 67 6e 61 6c 2c  hObjectToSignal,
103d0 0d 0a 20 20 48 41 4e 44 4c 45 20 68 4f 62 6a 65  ..  HANDLE hObje
103e0 63 74 54 6f 57 61 69 74 4f 6e 2c 0d 0a 20 20 44  ctToWaitOn,..  D
103f0 57 4f 52 44 20 64 77 4d 69 6c 6c 69 73 65 63 6f  WORD dwMilliseco
10400 6e 64 73 2c 0d 0a 20 20 42 4f 4f 4c 20 62 41 6c  nds,..  BOOL bAl
10410 65 72 74 61 62 6c 65 29 3b 0d 0a 2f 2f 20 23 65  ertable);..// #e
10420 6e 64 69 66 20 2f 2a 20 5f 57 49 4e 33 32 5f 57  ndif /* _WIN32_W
10430 49 4e 4e 54 20 3e 3d 20 30 78 30 34 30 30 20 2a  INNT >= 0x0400 *
10440 2f 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  /....extern(Wind
10450 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c  ows) export BOOL
10460 20 52 65 61 64 46 69 6c 65 45 78 28 0d 0a 20 20   ReadFileEx(..  
10470 48 41 4e 44 4c 45 20 68 46 69 6c 65 2c 0d 0a 20  HANDLE hFile,.. 
10480 20 4c 50 56 4f 49 44 20 6c 70 42 75 66 66 65 72   LPVOID lpBuffer
10490 2c 0d 0a 20 20 44 57 4f 52 44 20 6e 4e 75 6d 62  ,..  DWORD nNumb
104a0 65 72 4f 66 42 79 74 65 73 54 6f 52 65 61 64 2c  erOfBytesToRead,
104b0 0d 0a 20 20 4c 50 4f 56 45 52 4c 41 50 50 45 44  ..  LPOVERLAPPED
104c0 20 6c 70 4f 76 65 72 6c 61 70 70 65 64 2c 0d 0a   lpOverlapped,..
104d0 20 20 4c 50 4f 56 45 52 4c 41 50 50 45 44 5f 43    LPOVERLAPPED_C
104e0 4f 4d 50 4c 45 54 49 4f 4e 5f 52 4f 55 54 49 4e  OMPLETION_ROUTIN
104f0 45 20 6c 70 43 6f 6d 70 6c 65 74 69 6f 6e 52 6f  E lpCompletionRo
10500 75 74 69 6e 65 29 3b 0d 0a 0d 0a 65 78 74 65 72  utine);....exter
10510 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
10520 74 20 42 4f 4f 4c 20 57 72 69 74 65 46 69 6c 65  t BOOL WriteFile
10530 45 78 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68 46  Ex(..  HANDLE hF
10540 69 6c 65 2c 0d 0a 20 20 4c 50 43 56 4f 49 44 20  ile,..  LPCVOID 
10550 6c 70 42 75 66 66 65 72 2c 0d 0a 20 20 44 57 4f  lpBuffer,..  DWO
10560 52 44 20 6e 4e 75 6d 62 65 72 4f 66 42 79 74 65  RD nNumberOfByte
10570 73 54 6f 57 72 69 74 65 2c 0d 0a 20 20 4c 50 4f  sToWrite,..  LPO
10580 56 45 52 4c 41 50 50 45 44 20 6c 70 4f 76 65 72  VERLAPPED lpOver
10590 6c 61 70 70 65 64 2c 0d 0a 20 20 4c 50 4f 56 45  lapped,..  LPOVE
105a0 52 4c 41 50 50 45 44 5f 43 4f 4d 50 4c 45 54 49  RLAPPED_COMPLETI
105b0 4f 4e 5f 52 4f 55 54 49 4e 45 20 6c 70 43 6f 6d  ON_ROUTINE lpCom
105c0 70 6c 65 74 69 6f 6e 52 6f 75 74 69 6e 65 29 3b  pletionRoutine);
105d0 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f  ....extern(Windo
105e0 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20  ws) export BOOL 
105f0 42 61 63 6b 75 70 52 65 61 64 28 0d 0a 20 20 48  BackupRead(..  H
10600 41 4e 44 4c 45 20 68 46 69 6c 65 2c 0d 0a 20 20  ANDLE hFile,..  
10610 4c 50 42 59 54 45 20 6c 70 42 75 66 66 65 72 2c  LPBYTE lpBuffer,
10620 0d 0a 20 20 44 57 4f 52 44 20 6e 4e 75 6d 62 65  ..  DWORD nNumbe
10630 72 4f 66 42 79 74 65 73 54 6f 52 65 61 64 2c 0d  rOfBytesToRead,.
10640 0a 20 20 4c 50 44 57 4f 52 44 20 6c 70 4e 75 6d  .  LPDWORD lpNum
10650 62 65 72 4f 66 42 79 74 65 73 52 65 61 64 2c 0d  berOfBytesRead,.
10660 0a 20 20 42 4f 4f 4c 20 62 41 62 6f 72 74 2c 0d  .  BOOL bAbort,.
10670 0a 20 20 42 4f 4f 4c 20 62 50 72 6f 63 65 73 73  .  BOOL bProcess
10680 53 65 63 75 72 69 74 79 2c 0d 0a 20 20 4c 50 56  Security,..  LPV
10690 4f 49 44 20 2a 6c 70 43 6f 6e 74 65 78 74 29 3b  OID *lpContext);
106a0 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f  ....extern(Windo
106b0 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20  ws) export BOOL 
106c0 42 61 63 6b 75 70 53 65 65 6b 28 0d 0a 20 20 48  BackupSeek(..  H
106d0 41 4e 44 4c 45 20 68 46 69 6c 65 2c 0d 0a 20 20  ANDLE hFile,..  
106e0 44 57 4f 52 44 20 64 77 4c 6f 77 42 79 74 65 73  DWORD dwLowBytes
106f0 54 6f 53 65 65 6b 2c 0d 0a 20 20 44 57 4f 52 44  ToSeek,..  DWORD
10700 20 64 77 48 69 67 68 42 79 74 65 73 54 6f 53 65   dwHighBytesToSe
10710 65 6b 2c 0d 0a 20 20 4c 50 44 57 4f 52 44 20 6c  ek,..  LPDWORD l
10720 70 64 77 4c 6f 77 42 79 74 65 53 65 65 6b 65 64  pdwLowByteSeeked
10730 2c 0d 0a 20 20 4c 50 44 57 4f 52 44 20 6c 70 64  ,..  LPDWORD lpd
10740 77 48 69 67 68 42 79 74 65 53 65 65 6b 65 64 2c  wHighByteSeeked,
10750 0d 0a 20 20 4c 50 56 4f 49 44 20 2a 6c 70 43 6f  ..  LPVOID *lpCo
10760 6e 74 65 78 74 29 3b 0d 0a 0d 0a 65 78 74 65 72  ntext);....exter
10770 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
10780 74 20 42 4f 4f 4c 20 42 61 63 6b 75 70 57 72 69  t BOOL BackupWri
10790 74 65 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68 46  te(..  HANDLE hF
107a0 69 6c 65 2c 0d 0a 20 20 4c 50 42 59 54 45 20 6c  ile,..  LPBYTE l
107b0 70 42 75 66 66 65 72 2c 0d 0a 20 20 44 57 4f 52  pBuffer,..  DWOR
107c0 44 20 6e 4e 75 6d 62 65 72 4f 66 42 79 74 65 73  D nNumberOfBytes
107d0 54 6f 57 72 69 74 65 2c 0d 0a 20 20 4c 50 44 57  ToWrite,..  LPDW
107e0 4f 52 44 20 6c 70 4e 75 6d 62 65 72 4f 66 42 79  ORD lpNumberOfBy
107f0 74 65 73 57 72 69 74 74 65 6e 2c 0d 0a 20 20 42  tesWritten,..  B
10800 4f 4f 4c 20 62 41 62 6f 72 74 2c 0d 0a 20 20 42  OOL bAbort,..  B
10810 4f 4f 4c 20 62 50 72 6f 63 65 73 73 53 65 63 75  OOL bProcessSecu
10820 72 69 74 79 2c 0d 0a 20 20 4c 50 56 4f 49 44 20  rity,..  LPVOID 
10830 2a 6c 70 43 6f 6e 74 65 78 74 29 3b 0d 0a 0d 0a  *lpContext);....
10840 73 74 72 75 63 74 20 5f 57 49 4e 33 32 5f 53 54  struct _WIN32_ST
10850 52 45 41 4d 5f 49 44 20 7b 0d 0a 20 20 44 57 4f  REAM_ID {..  DWO
10860 52 44 20 64 77 53 74 72 65 61 6d 49 64 20 3b 0d  RD dwStreamId ;.
10870 0a 20 20 44 57 4f 52 44 20 64 77 53 74 72 65 61  .  DWORD dwStrea
10880 6d 41 74 74 72 69 62 75 74 65 73 20 3b 0d 0a 20  mAttributes ;.. 
10890 20 4c 41 52 47 45 5f 49 4e 54 45 47 45 52 20 53   LARGE_INTEGER S
108a0 69 7a 65 20 3b 0d 0a 20 20 44 57 4f 52 44 20 64  ize ;..  DWORD d
108b0 77 53 74 72 65 61 6d 4e 61 6d 65 53 69 7a 65 20  wStreamNameSize 
108c0 3b 0d 0a 20 20 57 43 48 41 52 20 63 53 74 72 65  ;..  WCHAR cStre
108d0 61 6d 4e 61 6d 65 5b 20 41 4e 59 53 49 5a 45 5f  amName[ ANYSIZE_
108e0 41 52 52 41 59 20 5d 20 3b 0d 0a 7d 0d 0a 61 6c  ARRAY ] ;..}..al
108f0 69 61 73 20 5f 57 49 4e 33 32 5f 53 54 52 45 41  ias _WIN32_STREA
10900 4d 5f 49 44 20 57 49 4e 33 32 5f 53 54 52 45 41  M_ID WIN32_STREA
10910 4d 5f 49 44 3b 0d 0a 61 6c 69 61 73 20 5f 57 49  M_ID;..alias _WI
10920 4e 33 32 5f 53 54 52 45 41 4d 5f 49 44 2a 20 4c  N32_STREAM_ID* L
10930 50 57 49 4e 33 32 5f 53 54 52 45 41 4d 5f 49 44  PWIN32_STREAM_ID
10940 3b 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  ;....enum : uint
10950 20 7b 20 42 41 43 4b 55 50 5f 49 4e 56 41 4c 49   { BACKUP_INVALI
10960 44 20 3d 20 30 78 30 30 30 30 30 30 30 30 20 7d  D = 0x00000000 }
10970 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20  ..enum : uint { 
10980 42 41 43 4b 55 50 5f 44 41 54 41 20 3d 20 30 78  BACKUP_DATA = 0x
10990 30 30 30 30 30 30 30 31 20 7d 0d 0a 65 6e 75 6d  00000001 }..enum
109a0 20 3a 20 75 69 6e 74 20 7b 20 42 41 43 4b 55 50   : uint { BACKUP
109b0 5f 45 41 5f 44 41 54 41 20 3d 20 30 78 30 30 30  _EA_DATA = 0x000
109c0 30 30 30 30 32 20 7d 0d 0a 65 6e 75 6d 20 3a 20  00002 }..enum : 
109d0 75 69 6e 74 20 7b 20 42 41 43 4b 55 50 5f 53 45  uint { BACKUP_SE
109e0 43 55 52 49 54 59 5f 44 41 54 41 20 3d 20 30 78  CURITY_DATA = 0x
109f0 30 30 30 30 30 30 30 33 20 7d 0d 0a 65 6e 75 6d  00000003 }..enum
10a00 20 3a 20 75 69 6e 74 20 7b 20 42 41 43 4b 55 50   : uint { BACKUP
10a10 5f 41 4c 54 45 52 4e 41 54 45 5f 44 41 54 41 20  _ALTERNATE_DATA 
10a20 3d 20 30 78 30 30 30 30 30 30 30 34 20 7d 0d 0a  = 0x00000004 }..
10a30 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 42 41  enum : uint { BA
10a40 43 4b 55 50 5f 4c 49 4e 4b 20 3d 20 30 78 30 30  CKUP_LINK = 0x00
10a50 30 30 30 30 30 35 20 7d 0d 0a 65 6e 75 6d 20 3a  000005 }..enum :
10a60 20 75 69 6e 74 20 7b 20 42 41 43 4b 55 50 5f 50   uint { BACKUP_P
10a70 52 4f 50 45 52 54 59 5f 44 41 54 41 20 3d 20 30  ROPERTY_DATA = 0
10a80 78 30 30 30 30 30 30 30 36 20 7d 0d 0a 65 6e 75  x00000006 }..enu
10a90 6d 20 3a 20 75 69 6e 74 20 7b 20 42 41 43 4b 55  m : uint { BACKU
10aa0 50 5f 4f 42 4a 45 43 54 5f 49 44 20 3d 20 30 78  P_OBJECT_ID = 0x
10ab0 30 30 30 30 30 30 30 37 20 7d 0d 0a 65 6e 75 6d  00000007 }..enum
10ac0 20 3a 20 75 69 6e 74 20 7b 20 42 41 43 4b 55 50   : uint { BACKUP
10ad0 5f 52 45 50 41 52 53 45 5f 44 41 54 41 20 3d 20  _REPARSE_DATA = 
10ae0 30 78 30 30 30 30 30 30 30 38 20 7d 0d 0a 65 6e  0x00000008 }..en
10af0 75 6d 20 3a 20 75 69 6e 74 20 7b 20 42 41 43 4b  um : uint { BACK
10b00 55 50 5f 53 50 41 52 53 45 5f 42 4c 4f 43 4b 20  UP_SPARSE_BLOCK 
10b10 3d 20 30 78 30 30 30 30 30 30 30 39 20 7d 0d 0a  = 0x00000009 }..
10b20 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20  ..enum : uint { 
10b30 53 54 52 45 41 4d 5f 4e 4f 52 4d 41 4c 5f 41 54  STREAM_NORMAL_AT
10b40 54 52 49 42 55 54 45 20 3d 20 30 78 30 30 30 30  TRIBUTE = 0x0000
10b50 30 30 30 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75  0000 }..enum : u
10b60 69 6e 74 20 7b 20 53 54 52 45 41 4d 5f 4d 4f 44  int { STREAM_MOD
10b70 49 46 49 45 44 5f 57 48 45 4e 5f 52 45 41 44 20  IFIED_WHEN_READ 
10b80 3d 20 30 78 30 30 30 30 30 30 30 31 20 7d 0d 0a  = 0x00000001 }..
10b90 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 53 54  enum : uint { ST
10ba0 52 45 41 4d 5f 43 4f 4e 54 41 49 4e 53 5f 53 45  REAM_CONTAINS_SE
10bb0 43 55 52 49 54 59 20 3d 20 30 78 30 30 30 30 30  CURITY = 0x00000
10bc0 30 30 32 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69  002 }..enum : ui
10bd0 6e 74 20 7b 20 53 54 52 45 41 4d 5f 43 4f 4e 54  nt { STREAM_CONT
10be0 41 49 4e 53 5f 50 52 4f 50 45 52 54 49 45 53 20  AINS_PROPERTIES 
10bf0 3d 20 30 78 30 30 30 30 30 30 30 34 20 7d 0d 0a  = 0x00000004 }..
10c00 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 53 54  enum : uint { ST
10c10 52 45 41 4d 5f 53 50 41 52 53 45 5f 41 54 54 52  REAM_SPARSE_ATTR
10c20 49 42 55 54 45 20 3d 20 30 78 30 30 30 30 30 30  IBUTE = 0x000000
10c30 30 38 20 7d 0d 0a 0d 0a 65 78 74 65 72 6e 28 57  08 }....extern(W
10c40 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42  indows) export B
10c50 4f 4f 4c 20 52 65 61 64 46 69 6c 65 53 63 61 74  OOL ReadFileScat
10c60 74 65 72 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68  ter(..  HANDLE h
10c70 46 69 6c 65 2c 0d 0a 20 20 46 49 4c 45 5f 53 45  File,..  FILE_SE
10c80 47 4d 45 4e 54 5f 45 4c 45 4d 45 4e 54 20 61 53  GMENT_ELEMENT aS
10c90 65 67 6d 65 6e 74 41 72 72 61 79 5b 5d 2c 0d 0a  egmentArray[],..
10ca0 20 20 44 57 4f 52 44 20 6e 4e 75 6d 62 65 72 4f    DWORD nNumberO
10cb0 66 42 79 74 65 73 54 6f 52 65 61 64 2c 0d 0a 20  fBytesToRead,.. 
10cc0 20 4c 50 44 57 4f 52 44 20 6c 70 52 65 73 65 72   LPDWORD lpReser
10cd0 76 65 64 2c 0d 0a 20 20 4c 50 4f 56 45 52 4c 41  ved,..  LPOVERLA
10ce0 50 50 45 44 20 6c 70 4f 76 65 72 6c 61 70 70 65  PPED lpOverlappe
10cf0 64 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69  d);....extern(Wi
10d00 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f  ndows) export BO
10d10 4f 4c 20 57 72 69 74 65 46 69 6c 65 47 61 74 68  OL WriteFileGath
10d20 65 72 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68 46  er(..  HANDLE hF
10d30 69 6c 65 2c 0d 0a 20 20 46 49 4c 45 5f 53 45 47  ile,..  FILE_SEG
10d40 4d 45 4e 54 5f 45 4c 45 4d 45 4e 54 20 61 53 65  MENT_ELEMENT aSe
10d50 67 6d 65 6e 74 41 72 72 61 79 5b 5d 2c 0d 0a 20  gmentArray[],.. 
10d60 20 44 57 4f 52 44 20 6e 4e 75 6d 62 65 72 4f 66   DWORD nNumberOf
10d70 42 79 74 65 73 54 6f 57 72 69 74 65 2c 0d 0a 20  BytesToWrite,.. 
10d80 20 4c 50 44 57 4f 52 44 20 6c 70 52 65 73 65 72   LPDWORD lpReser
10d90 76 65 64 2c 0d 0a 20 20 4c 50 4f 56 45 52 4c 41  ved,..  LPOVERLA
10da0 50 50 45 44 20 6c 70 4f 76 65 72 6c 61 70 70 65  PPED lpOverlappe
10db0 64 29 3b 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 75 69  d);....enum : ui
10dc0 6e 74 20 7b 20 53 54 41 52 54 46 5f 55 53 45 53  nt { STARTF_USES
10dd0 48 4f 57 57 49 4e 44 4f 57 20 3d 20 30 78 30 30  HOWWINDOW = 0x00
10de0 30 30 30 30 30 31 20 7d 0d 0a 65 6e 75 6d 20 3a  000001 }..enum :
10df0 20 75 69 6e 74 20 7b 20 53 54 41 52 54 46 5f 55   uint { STARTF_U
10e00 53 45 53 49 5a 45 20 3d 20 30 78 30 30 30 30 30  SESIZE = 0x00000
10e10 30 30 32 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69  002 }..enum : ui
10e20 6e 74 20 7b 20 53 54 41 52 54 46 5f 55 53 45 50  nt { STARTF_USEP
10e30 4f 53 49 54 49 4f 4e 20 3d 20 30 78 30 30 30 30  OSITION = 0x0000
10e40 30 30 30 34 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75  0004 }..enum : u
10e50 69 6e 74 20 7b 20 53 54 41 52 54 46 5f 55 53 45  int { STARTF_USE
10e60 43 4f 55 4e 54 43 48 41 52 53 20 3d 20 30 78 30  COUNTCHARS = 0x0
10e70 30 30 30 30 30 30 38 20 7d 0d 0a 65 6e 75 6d 20  0000008 }..enum 
10e80 3a 20 75 69 6e 74 20 7b 20 53 54 41 52 54 46 5f  : uint { STARTF_
10e90 55 53 45 46 49 4c 4c 41 54 54 52 49 42 55 54 45  USEFILLATTRIBUTE
10ea0 20 3d 20 30 78 30 30 30 30 30 30 31 30 20 7d 0d   = 0x00000010 }.
10eb0 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 53  .enum : uint { S
10ec0 54 41 52 54 46 5f 52 55 4e 46 55 4c 4c 53 43 52  TARTF_RUNFULLSCR
10ed0 45 45 4e 20 3d 20 30 78 30 30 30 30 30 30 32 30  EEN = 0x00000020
10ee0 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20   }..enum : uint 
10ef0 7b 20 53 54 41 52 54 46 5f 46 4f 52 43 45 4f 4e  { STARTF_FORCEON
10f00 46 45 45 44 42 41 43 4b 20 3d 20 30 78 30 30 30  FEEDBACK = 0x000
10f10 30 30 30 34 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20  00040 }..enum : 
10f20 75 69 6e 74 20 7b 20 53 54 41 52 54 46 5f 46 4f  uint { STARTF_FO
10f30 52 43 45 4f 46 46 46 45 45 44 42 41 43 4b 20 3d  RCEOFFFEEDBACK =
10f40 20 30 78 30 30 30 30 30 30 38 30 20 7d 0d 0a 65   0x00000080 }..e
10f50 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 53 54 41  num : uint { STA
10f60 52 54 46 5f 55 53 45 53 54 44 48 41 4e 44 4c 45  RTF_USESTDHANDLE
10f70 53 20 3d 20 30 78 30 30 30 30 30 31 30 30 20 7d  S = 0x00000100 }
10f80 0d 0a 0d 0a 2f 2f 20 23 69 66 28 57 49 4e 56 45  ....// #if(WINVE
10f90 52 20 3e 3d 20 30 78 30 34 30 30 29 0d 0a 0d 0a  R >= 0x0400)....
10fa0 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 53 54  enum : uint { ST
10fb0 41 52 54 46 5f 55 53 45 48 4f 54 4b 45 59 20 3d  ARTF_USEHOTKEY =
10fc0 20 30 78 30 30 30 30 30 32 30 30 20 7d 0d 0a 2f   0x00000200 }../
10fd0 2f 20 23 65 6e 64 69 66 20 2f 2a 20 57 49 4e 56  / #endif /* WINV
10fe0 45 52 20 3e 3d 20 30 78 30 34 30 30 20 2a 2f 0d  ER >= 0x0400 */.
10ff0 0a 0d 0a 73 74 72 75 63 74 20 5f 53 54 41 52 54  ...struct _START
11000 55 50 49 4e 46 4f 41 20 7b 0d 0a 20 20 44 57 4f  UPINFOA {..  DWO
11010 52 44 20 63 62 3b 0d 0a 20 20 4c 50 53 54 52 20  RD cb;..  LPSTR 
11020 6c 70 52 65 73 65 72 76 65 64 3b 0d 0a 20 20 4c  lpReserved;..  L
11030 50 53 54 52 20 6c 70 44 65 73 6b 74 6f 70 3b 0d  PSTR lpDesktop;.
11040 0a 20 20 4c 50 53 54 52 20 6c 70 54 69 74 6c 65  .  LPSTR lpTitle
11050 3b 0d 0a 20 20 44 57 4f 52 44 20 64 77 58 3b 0d  ;..  DWORD dwX;.
11060 0a 20 20 44 57 4f 52 44 20 64 77 59 3b 0d 0a 20  .  DWORD dwY;.. 
11070 20 44 57 4f 52 44 20 64 77 58 53 69 7a 65 3b 0d   DWORD dwXSize;.
11080 0a 20 20 44 57 4f 52 44 20 64 77 59 53 69 7a 65  .  DWORD dwYSize
11090 3b 0d 0a 20 20 44 57 4f 52 44 20 64 77 58 43 6f  ;..  DWORD dwXCo
110a0 75 6e 74 43 68 61 72 73 3b 0d 0a 20 20 44 57 4f  untChars;..  DWO
110b0 52 44 20 64 77 59 43 6f 75 6e 74 43 68 61 72 73  RD dwYCountChars
110c0 3b 0d 0a 20 20 44 57 4f 52 44 20 64 77 46 69 6c  ;..  DWORD dwFil
110d0 6c 41 74 74 72 69 62 75 74 65 3b 0d 0a 20 20 44  lAttribute;..  D
110e0 57 4f 52 44 20 64 77 46 6c 61 67 73 3b 0d 0a 20  WORD dwFlags;.. 
110f0 20 57 4f 52 44 20 77 53 68 6f 77 57 69 6e 64 6f   WORD wShowWindo
11100 77 3b 0d 0a 20 20 57 4f 52 44 20 63 62 52 65 73  w;..  WORD cbRes
11110 65 72 76 65 64 32 3b 0d 0a 20 20 4c 50 42 59 54  erved2;..  LPBYT
11120 45 20 6c 70 52 65 73 65 72 76 65 64 32 3b 0d 0a  E lpReserved2;..
11130 20 20 48 41 4e 44 4c 45 20 68 53 74 64 49 6e 70    HANDLE hStdInp
11140 75 74 3b 0d 0a 20 20 48 41 4e 44 4c 45 20 68 53  ut;..  HANDLE hS
11150 74 64 4f 75 74 70 75 74 3b 0d 0a 20 20 48 41 4e  tdOutput;..  HAN
11160 44 4c 45 20 68 53 74 64 45 72 72 6f 72 3b 0d 0a  DLE hStdError;..
11170 7d 0d 0a 61 6c 69 61 73 20 5f 53 54 41 52 54 55  }..alias _STARTU
11180 50 49 4e 46 4f 41 20 53 54 41 52 54 55 50 49 4e  PINFOA STARTUPIN
11190 46 4f 41 3b 0d 0a 61 6c 69 61 73 20 5f 53 54 41  FOA;..alias _STA
111a0 52 54 55 50 49 4e 46 4f 41 2a 20 4c 50 53 54 41  RTUPINFOA* LPSTA
111b0 52 54 55 50 49 4e 46 4f 41 3b 0d 0a 0d 0a 73 74  RTUPINFOA;....st
111c0 72 75 63 74 20 5f 53 54 41 52 54 55 50 49 4e 46  ruct _STARTUPINF
111d0 4f 57 20 7b 0d 0a 20 20 44 57 4f 52 44 20 63 62  OW {..  DWORD cb
111e0 3b 0d 0a 20 20 4c 50 57 53 54 52 20 6c 70 52 65  ;..  LPWSTR lpRe
111f0 73 65 72 76 65 64 3b 0d 0a 20 20 4c 50 57 53 54  served;..  LPWST
11200 52 20 6c 70 44 65 73 6b 74 6f 70 3b 0d 0a 20 20  R lpDesktop;..  
11210 4c 50 57 53 54 52 20 6c 70 54 69 74 6c 65 3b 0d  LPWSTR lpTitle;.
11220 0a 20 20 44 57 4f 52 44 20 64 77 58 3b 0d 0a 20  .  DWORD dwX;.. 
11230 20 44 57 4f 52 44 20 64 77 59 3b 0d 0a 20 20 44   DWORD dwY;..  D
11240 57 4f 52 44 20 64 77 58 53 69 7a 65 3b 0d 0a 20  WORD dwXSize;.. 
11250 20 44 57 4f 52 44 20 64 77 59 53 69 7a 65 3b 0d   DWORD dwYSize;.
11260 0a 20 20 44 57 4f 52 44 20 64 77 58 43 6f 75 6e  .  DWORD dwXCoun
11270 74 43 68 61 72 73 3b 0d 0a 20 20 44 57 4f 52 44  tChars;..  DWORD
11280 20 64 77 59 43 6f 75 6e 74 43 68 61 72 73 3b 0d   dwYCountChars;.
11290 0a 20 20 44 57 4f 52 44 20 64 77 46 69 6c 6c 41  .  DWORD dwFillA
112a0 74 74 72 69 62 75 74 65 3b 0d 0a 20 20 44 57 4f  ttribute;..  DWO
112b0 52 44 20 64 77 46 6c 61 67 73 3b 0d 0a 20 20 57  RD dwFlags;..  W
112c0 4f 52 44 20 77 53 68 6f 77 57 69 6e 64 6f 77 3b  ORD wShowWindow;
112d0 0d 0a 20 20 57 4f 52 44 20 63 62 52 65 73 65 72  ..  WORD cbReser
112e0 76 65 64 32 3b 0d 0a 20 20 4c 50 42 59 54 45 20  ved2;..  LPBYTE 
112f0 6c 70 52 65 73 65 72 76 65 64 32 3b 0d 0a 20 20  lpReserved2;..  
11300 48 41 4e 44 4c 45 20 68 53 74 64 49 6e 70 75 74  HANDLE hStdInput
11310 3b 0d 0a 20 20 48 41 4e 44 4c 45 20 68 53 74 64  ;..  HANDLE hStd
11320 4f 75 74 70 75 74 3b 0d 0a 20 20 48 41 4e 44 4c  Output;..  HANDL
11330 45 20 68 53 74 64 45 72 72 6f 72 3b 0d 0a 7d 0d  E hStdError;..}.
11340 0a 61 6c 69 61 73 20 5f 53 54 41 52 54 55 50 49  .alias _STARTUPI
11350 4e 46 4f 57 20 53 54 41 52 54 55 50 49 4e 46 4f  NFOW STARTUPINFO
11360 57 3b 0d 0a 61 6c 69 61 73 20 5f 53 54 41 52 54  W;..alias _START
11370 55 50 49 4e 46 4f 57 2a 20 4c 50 53 54 41 52 54  UPINFOW* LPSTART
11380 55 50 49 4e 46 4f 57 3b 0d 0a 0d 0a 2f 2f 20 23  UPINFOW;....// #
11390 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61  ifdef UNICODE..a
113a0 6c 69 61 73 20 53 54 41 52 54 55 50 49 4e 46 4f  lias STARTUPINFO
113b0 57 20 53 54 41 52 54 55 50 49 4e 46 4f 3b 0d 0a  W STARTUPINFO;..
113c0 61 6c 69 61 73 20 4c 50 53 54 41 52 54 55 50 49  alias LPSTARTUPI
113d0 4e 46 4f 57 20 4c 50 53 54 41 52 54 55 50 49 4e  NFOW LPSTARTUPIN
113e0 46 4f 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f  FO;..// #else../
113f0 2f 20 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66  / .....// #endif
11400 20 2f 2f 20 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65   // UNICODE....e
11410 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 53 48 55  num : uint { SHU
11420 54 44 4f 57 4e 5f 4e 4f 52 45 54 52 59 20 3d 20  TDOWN_NORETRY = 
11430 30 78 30 30 30 30 30 30 30 31 20 7d 0d 0a 0d 0a  0x00000001 }....
11440 73 74 72 75 63 74 20 5f 57 49 4e 33 32 5f 46 49  struct _WIN32_FI
11450 4e 44 5f 44 41 54 41 41 20 7b 0d 0a 20 20 44 57  ND_DATAA {..  DW
11460 4f 52 44 20 64 77 46 69 6c 65 41 74 74 72 69 62  ORD dwFileAttrib
11470 75 74 65 73 3b 0d 0a 20 20 46 49 4c 45 54 49 4d  utes;..  FILETIM
11480 45 20 66 74 43 72 65 61 74 69 6f 6e 54 69 6d 65  E ftCreationTime
11490 3b 0d 0a 20 20 46 49 4c 45 54 49 4d 45 20 66 74  ;..  FILETIME ft
114a0 4c 61 73 74 41 63 63 65 73 73 54 69 6d 65 3b 0d  LastAccessTime;.
114b0 0a 20 20 46 49 4c 45 54 49 4d 45 20 66 74 4c 61  .  FILETIME ftLa
114c0 73 74 57 72 69 74 65 54 69 6d 65 3b 0d 0a 20 20  stWriteTime;..  
114d0 44 57 4f 52 44 20 6e 46 69 6c 65 53 69 7a 65 48  DWORD nFileSizeH
114e0 69 67 68 3b 0d 0a 20 20 44 57 4f 52 44 20 6e 46  igh;..  DWORD nF
114f0 69 6c 65 53 69 7a 65 4c 6f 77 3b 0d 0a 20 20 44  ileSizeLow;..  D
11500 57 4f 52 44 20 64 77 52 65 73 65 72 76 65 64 30  WORD dwReserved0
11510 3b 0d 0a 20 20 44 57 4f 52 44 20 64 77 52 65 73  ;..  DWORD dwRes
11520 65 72 76 65 64 31 3b 0d 0a 20 20 43 48 41 52 20  erved1;..  CHAR 
11530 63 46 69 6c 65 4e 61 6d 65 5b 20 4d 41 58 5f 50  cFileName[ MAX_P
11540 41 54 48 20 5d 3b 0d 0a 20 20 43 48 41 52 20 63  ATH ];..  CHAR c
11550 41 6c 74 65 72 6e 61 74 65 46 69 6c 65 4e 61 6d  AlternateFileNam
11560 65 5b 20 31 34 20 5d 3b 0d 0a 2f 2f 20 23 69 66  e[ 14 ];..// #if
11570 64 65 66 20 5f 4d 41 43 0d 0a 2f 2f 20 2e 2e 2e  def _MAC..// ...
11580 0d 0a 2f 2f 20 23 65 6e 64 69 66 0d 0a 7d 0d 0a  ..// #endif..}..
11590 61 6c 69 61 73 20 5f 57 49 4e 33 32 5f 46 49 4e  alias _WIN32_FIN
115a0 44 5f 44 41 54 41 41 20 57 49 4e 33 32 5f 46 49  D_DATAA WIN32_FI
115b0 4e 44 5f 44 41 54 41 41 3b 0d 0a 61 6c 69 61 73  ND_DATAA;..alias
115c0 20 5f 57 49 4e 33 32 5f 46 49 4e 44 5f 44 41 54   _WIN32_FIND_DAT
115d0 41 41 2a 20 50 57 49 4e 33 32 5f 46 49 4e 44 5f  AA* PWIN32_FIND_
115e0 44 41 54 41 41 3b 0d 0a 61 6c 69 61 73 20 5f 57  DATAA;..alias _W
115f0 49 4e 33 32 5f 46 49 4e 44 5f 44 41 54 41 41 2a  IN32_FIND_DATAA*
11600 20 4c 50 57 49 4e 33 32 5f 46 49 4e 44 5f 44 41   LPWIN32_FIND_DA
11610 54 41 41 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 5f  TAA;....struct _
11620 57 49 4e 33 32 5f 46 49 4e 44 5f 44 41 54 41 57  WIN32_FIND_DATAW
11630 20 7b 0d 0a 20 20 44 57 4f 52 44 20 64 77 46 69   {..  DWORD dwFi
11640 6c 65 41 74 74 72 69 62 75 74 65 73 3b 0d 0a 20  leAttributes;.. 
11650 20 46 49 4c 45 54 49 4d 45 20 66 74 43 72 65 61   FILETIME ftCrea
11660 74 69 6f 6e 54 69 6d 65 3b 0d 0a 20 20 46 49 4c  tionTime;..  FIL
11670 45 54 49 4d 45 20 66 74 4c 61 73 74 41 63 63 65  ETIME ftLastAcce
11680 73 73 54 69 6d 65 3b 0d 0a 20 20 46 49 4c 45 54  ssTime;..  FILET
11690 49 4d 45 20 66 74 4c 61 73 74 57 72 69 74 65 54  IME ftLastWriteT
116a0 69 6d 65 3b 0d 0a 20 20 44 57 4f 52 44 20 6e 46  ime;..  DWORD nF
116b0 69 6c 65 53 69 7a 65 48 69 67 68 3b 0d 0a 20 20  ileSizeHigh;..  
116c0 44 57 4f 52 44 20 6e 46 69 6c 65 53 69 7a 65 4c  DWORD nFileSizeL
116d0 6f 77 3b 0d 0a 20 20 44 57 4f 52 44 20 64 77 52  ow;..  DWORD dwR
116e0 65 73 65 72 76 65 64 30 3b 0d 0a 20 20 44 57 4f  eserved0;..  DWO
116f0 52 44 20 64 77 52 65 73 65 72 76 65 64 31 3b 0d  RD dwReserved1;.
11700 0a 20 20 57 43 48 41 52 20 63 46 69 6c 65 4e 61  .  WCHAR cFileNa
11710 6d 65 5b 20 4d 41 58 5f 50 41 54 48 20 5d 3b 0d  me[ MAX_PATH ];.
11720 0a 20 20 57 43 48 41 52 20 63 41 6c 74 65 72 6e  .  WCHAR cAltern
11730 61 74 65 46 69 6c 65 4e 61 6d 65 5b 20 31 34 20  ateFileName[ 14 
11740 5d 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20 5f 4d  ];..// #ifdef _M
11750 41 43 0d 0a 2f 2f 20 2e 2e 2e 0d 0a 2f 2f 20 23  AC..// .....// #
11760 65 6e 64 69 66 0d 0a 7d 0d 0a 61 6c 69 61 73 20  endif..}..alias 
11770 5f 57 49 4e 33 32 5f 46 49 4e 44 5f 44 41 54 41  _WIN32_FIND_DATA
11780 57 20 57 49 4e 33 32 5f 46 49 4e 44 5f 44 41 54  W WIN32_FIND_DAT
11790 41 57 3b 0d 0a 61 6c 69 61 73 20 5f 57 49 4e 33  AW;..alias _WIN3
117a0 32 5f 46 49 4e 44 5f 44 41 54 41 57 2a 20 50 57  2_FIND_DATAW* PW
117b0 49 4e 33 32 5f 46 49 4e 44 5f 44 41 54 41 57 3b  IN32_FIND_DATAW;
117c0 0d 0a 61 6c 69 61 73 20 5f 57 49 4e 33 32 5f 46  ..alias _WIN32_F
117d0 49 4e 44 5f 44 41 54 41 57 2a 20 4c 50 57 49 4e  IND_DATAW* LPWIN
117e0 33 32 5f 46 49 4e 44 5f 44 41 54 41 57 3b 0d 0a  32_FIND_DATAW;..
117f0 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e 49 43  ..// #ifdef UNIC
11800 4f 44 45 0d 0a 61 6c 69 61 73 20 57 49 4e 33 32  ODE..alias WIN32
11810 5f 46 49 4e 44 5f 44 41 54 41 57 20 57 49 4e 33  _FIND_DATAW WIN3
11820 32 5f 46 49 4e 44 5f 44 41 54 41 3b 0d 0a 61 6c  2_FIND_DATA;..al
11830 69 61 73 20 50 57 49 4e 33 32 5f 46 49 4e 44 5f  ias PWIN32_FIND_
11840 44 41 54 41 57 20 50 57 49 4e 33 32 5f 46 49 4e  DATAW PWIN32_FIN
11850 44 5f 44 41 54 41 3b 0d 0a 61 6c 69 61 73 20 4c  D_DATA;..alias L
11860 50 57 49 4e 33 32 5f 46 49 4e 44 5f 44 41 54 41  PWIN32_FIND_DATA
11870 57 20 4c 50 57 49 4e 33 32 5f 46 49 4e 44 5f 44  W LPWIN32_FIND_D
11880 41 54 41 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a  ATA;..// #else..
11890 2f 2f 20 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69  // .....// #endi
118a0 66 20 2f 2f 20 55 4e 49 43 4f 44 45 0d 0a 0d 0a  f // UNICODE....
118b0 73 74 72 75 63 74 20 5f 57 49 4e 33 32 5f 46 49  struct _WIN32_FI
118c0 4c 45 5f 41 54 54 52 49 42 55 54 45 5f 44 41 54  LE_ATTRIBUTE_DAT
118d0 41 20 7b 0d 0a 20 20 44 57 4f 52 44 20 64 77 46  A {..  DWORD dwF
118e0 69 6c 65 41 74 74 72 69 62 75 74 65 73 3b 0d 0a  ileAttributes;..
118f0 20 20 46 49 4c 45 54 49 4d 45 20 66 74 43 72 65    FILETIME ftCre
11900 61 74 69 6f 6e 54 69 6d 65 3b 0d 0a 20 20 46 49  ationTime;..  FI
11910 4c 45 54 49 4d 45 20 66 74 4c 61 73 74 41 63 63  LETIME ftLastAcc
11920 65 73 73 54 69 6d 65 3b 0d 0a 20 20 46 49 4c 45  essTime;..  FILE
11930 54 49 4d 45 20 66 74 4c 61 73 74 57 72 69 74 65  TIME ftLastWrite
11940 54 69 6d 65 3b 0d 0a 20 20 44 57 4f 52 44 20 6e  Time;..  DWORD n
11950 46 69 6c 65 53 69 7a 65 48 69 67 68 3b 0d 0a 20  FileSizeHigh;.. 
11960 20 44 57 4f 52 44 20 6e 46 69 6c 65 53 69 7a 65   DWORD nFileSize
11970 4c 6f 77 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 5f  Low;..}..alias _
11980 57 49 4e 33 32 5f 46 49 4c 45 5f 41 54 54 52 49  WIN32_FILE_ATTRI
11990 42 55 54 45 5f 44 41 54 41 20 57 49 4e 33 32 5f  BUTE_DATA WIN32_
119a0 46 49 4c 45 5f 41 54 54 52 49 42 55 54 45 5f 44  FILE_ATTRIBUTE_D
119b0 41 54 41 3b 0d 0a 61 6c 69 61 73 20 5f 57 49 4e  ATA;..alias _WIN
119c0 33 32 5f 46 49 4c 45 5f 41 54 54 52 49 42 55 54  32_FILE_ATTRIBUT
119d0 45 5f 44 41 54 41 2a 20 4c 50 57 49 4e 33 32 5f  E_DATA* LPWIN32_
119e0 46 49 4c 45 5f 41 54 54 52 49 42 55 54 45 5f 44  FILE_ATTRIBUTE_D
119f0 41 54 41 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57  ATA;....extern(W
11a00 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 48  indows) export H
11a10 41 4e 44 4c 45 20 43 72 65 61 74 65 4d 75 74 65  ANDLE CreateMute
11a20 78 41 28 0d 0a 20 20 4c 50 53 45 43 55 52 49 54  xA(..  LPSECURIT
11a30 59 5f 41 54 54 52 49 42 55 54 45 53 20 6c 70 4d  Y_ATTRIBUTES lpM
11a40 75 74 65 78 41 74 74 72 69 62 75 74 65 73 2c 0d  utexAttributes,.
11a50 0a 20 20 42 4f 4f 4c 20 62 49 6e 69 74 69 61 6c  .  BOOL bInitial
11a60 4f 77 6e 65 72 2c 0d 0a 20 20 4c 50 43 53 54 52  Owner,..  LPCSTR
11a70 20 6c 70 4e 61 6d 65 29 3b 0d 0a 65 78 74 65 72   lpName);..exter
11a80 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
11a90 74 20 48 41 4e 44 4c 45 20 43 72 65 61 74 65 4d  t HANDLE CreateM
11aa0 75 74 65 78 57 28 0d 0a 20 20 4c 50 53 45 43 55  utexW(..  LPSECU
11ab0 52 49 54 59 5f 41 54 54 52 49 42 55 54 45 53 20  RITY_ATTRIBUTES 
11ac0 6c 70 4d 75 74 65 78 41 74 74 72 69 62 75 74 65  lpMutexAttribute
11ad0 73 2c 0d 0a 20 20 42 4f 4f 4c 20 62 49 6e 69 74  s,..  BOOL bInit
11ae0 69 61 6c 4f 77 6e 65 72 2c 0d 0a 20 20 4c 50 43  ialOwner,..  LPC
11af0 57 53 54 52 20 6c 70 4e 61 6d 65 29 3b 0d 0a 2f  WSTR lpName);../
11b00 2f 20 23 69 66 64 65 66 20 55 4e 49 43 4f 44 45  / #ifdef UNICODE
11b10 0d 0a 61 6c 69 61 73 20 43 72 65 61 74 65 4d 75  ..alias CreateMu
11b20 74 65 78 57 20 43 72 65 61 74 65 4d 75 74 65 78  texW CreateMutex
11b30 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20  ;..// #else..// 
11b40 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20  #.....// #endif 
11b50 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65  // !UNICODE....e
11b60 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
11b70 78 70 6f 72 74 20 48 41 4e 44 4c 45 20 4f 70 65  xport HANDLE Ope
11b80 6e 4d 75 74 65 78 41 28 0d 0a 20 20 44 57 4f 52  nMutexA(..  DWOR
11b90 44 20 64 77 44 65 73 69 72 65 64 41 63 63 65 73  D dwDesiredAcces
11ba0 73 2c 0d 0a 20 20 42 4f 4f 4c 20 62 49 6e 68 65  s,..  BOOL bInhe
11bb0 72 69 74 48 61 6e 64 6c 65 2c 0d 0a 20 20 4c 50  ritHandle,..  LP
11bc0 43 53 54 52 20 6c 70 4e 61 6d 65 29 3b 0d 0a 65  CSTR lpName);..e
11bd0 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
11be0 78 70 6f 72 74 20 48 41 4e 44 4c 45 20 4f 70 65  xport HANDLE Ope
11bf0 6e 4d 75 74 65 78 57 28 0d 0a 20 20 44 57 4f 52  nMutexW(..  DWOR
11c00 44 20 64 77 44 65 73 69 72 65 64 41 63 63 65 73  D dwDesiredAcces
11c10 73 2c 0d 0a 20 20 42 4f 4f 4c 20 62 49 6e 68 65  s,..  BOOL bInhe
11c20 72 69 74 48 61 6e 64 6c 65 2c 0d 0a 20 20 4c 50  ritHandle,..  LP
11c30 43 57 53 54 52 20 6c 70 4e 61 6d 65 29 3b 0d 0a  CWSTR lpName);..
11c40 2f 2f 20 23 69 66 64 65 66 20 55 4e 49 43 4f 44  // #ifdef UNICOD
11c50 45 0d 0a 61 6c 69 61 73 20 4f 70 65 6e 4d 75 74  E..alias OpenMut
11c60 65 78 57 20 4f 70 65 6e 4d 75 74 65 78 3b 0d 0a  exW OpenMutex;..
11c70 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e  // #else..// #..
11c80 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20  ...// #endif // 
11c90 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65  !UNICODE....exte
11ca0 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
11cb0 72 74 20 48 41 4e 44 4c 45 20 43 72 65 61 74 65  rt HANDLE Create
11cc0 45 76 65 6e 74 41 28 0d 0a 20 20 4c 50 53 45 43  EventA(..  LPSEC
11cd0 55 52 49 54 59 5f 41 54 54 52 49 42 55 54 45 53  URITY_ATTRIBUTES
11ce0 20 6c 70 45 76 65 6e 74 41 74 74 72 69 62 75 74   lpEventAttribut
11cf0 65 73 2c 0d 0a 20 20 42 4f 4f 4c 20 62 4d 61 6e  es,..  BOOL bMan
11d00 75 61 6c 52 65 73 65 74 2c 0d 0a 20 20 42 4f 4f  ualReset,..  BOO
11d10 4c 20 62 49 6e 69 74 69 61 6c 53 74 61 74 65 2c  L bInitialState,
11d20 0d 0a 20 20 4c 50 43 53 54 52 20 6c 70 4e 61 6d  ..  LPCSTR lpNam
11d30 65 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  e);..extern(Wind
11d40 6f 77 73 29 20 65 78 70 6f 72 74 20 48 41 4e 44  ows) export HAND
11d50 4c 45 20 43 72 65 61 74 65 45 76 65 6e 74 57 28  LE CreateEventW(
11d60 0d 0a 20 20 4c 50 53 45 43 55 52 49 54 59 5f 41  ..  LPSECURITY_A
11d70 54 54 52 49 42 55 54 45 53 20 6c 70 45 76 65 6e  TTRIBUTES lpEven
11d80 74 41 74 74 72 69 62 75 74 65 73 2c 0d 0a 20 20  tAttributes,..  
11d90 42 4f 4f 4c 20 62 4d 61 6e 75 61 6c 52 65 73 65  BOOL bManualRese
11da0 74 2c 0d 0a 20 20 42 4f 4f 4c 20 62 49 6e 69 74  t,..  BOOL bInit
11db0 69 61 6c 53 74 61 74 65 2c 0d 0a 20 20 4c 50 43  ialState,..  LPC
11dc0 57 53 54 52 20 6c 70 4e 61 6d 65 29 3b 0d 0a 2f  WSTR lpName);../
11dd0 2f 20 23 69 66 64 65 66 20 55 4e 49 43 4f 44 45  / #ifdef UNICODE
11de0 0d 0a 61 6c 69 61 73 20 43 72 65 61 74 65 45 76  ..alias CreateEv
11df0 65 6e 74 57 20 43 72 65 61 74 65 45 76 65 6e 74  entW CreateEvent
11e00 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20  ;..// #else..// 
11e10 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20  #.....// #endif 
11e20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65  // !UNICODE....e
11e30 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
11e40 78 70 6f 72 74 20 48 41 4e 44 4c 45 20 4f 70 65  xport HANDLE Ope
11e50 6e 45 76 65 6e 74 41 28 0d 0a 20 20 44 57 4f 52  nEventA(..  DWOR
11e60 44 20 64 77 44 65 73 69 72 65 64 41 63 63 65 73  D dwDesiredAcces
11e70 73 2c 0d 0a 20 20 42 4f 4f 4c 20 62 49 6e 68 65  s,..  BOOL bInhe
11e80 72 69 74 48 61 6e 64 6c 65 2c 0d 0a 20 20 4c 50  ritHandle,..  LP
11e90 43 53 54 52 20 6c 70 4e 61 6d 65 29 3b 0d 0a 65  CSTR lpName);..e
11ea0 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
11eb0 78 70 6f 72 74 20 48 41 4e 44 4c 45 20 4f 70 65  xport HANDLE Ope
11ec0 6e 45 76 65 6e 74 57 28 0d 0a 20 20 44 57 4f 52  nEventW(..  DWOR
11ed0 44 20 64 77 44 65 73 69 72 65 64 41 63 63 65 73  D dwDesiredAcces
11ee0 73 2c 0d 0a 20 20 42 4f 4f 4c 20 62 49 6e 68 65  s,..  BOOL bInhe
11ef0 72 69 74 48 61 6e 64 6c 65 2c 0d 0a 20 20 4c 50  ritHandle,..  LP
11f00 43 57 53 54 52 20 6c 70 4e 61 6d 65 29 3b 0d 0a  CWSTR lpName);..
11f10 2f 2f 20 23 69 66 64 65 66 20 55 4e 49 43 4f 44  // #ifdef UNICOD
11f20 45 0d 0a 61 6c 69 61 73 20 4f 70 65 6e 45 76 65  E..alias OpenEve
11f30 6e 74 57 20 4f 70 65 6e 45 76 65 6e 74 3b 0d 0a  ntW OpenEvent;..
11f40 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e  // #else..// #..
11f50 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20  ...// #endif // 
11f60 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65  !UNICODE....exte
11f70 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
11f80 72 74 20 48 41 4e 44 4c 45 20 43 72 65 61 74 65  rt HANDLE Create
11f90 53 65 6d 61 70 68 6f 72 65 41 28 0d 0a 20 20 4c  SemaphoreA(..  L
11fa0 50 53 45 43 55 52 49 54 59 5f 41 54 54 52 49 42  PSECURITY_ATTRIB
11fb0 55 54 45 53 20 6c 70 53 65 6d 61 70 68 6f 72 65  UTES lpSemaphore
11fc0 41 74 74 72 69 62 75 74 65 73 2c 0d 0a 20 20 4c  Attributes,..  L
11fd0 4f 4e 47 20 6c 49 6e 69 74 69 61 6c 43 6f 75 6e  ONG lInitialCoun
11fe0 74 2c 0d 0a 20 20 4c 4f 4e 47 20 6c 4d 61 78 69  t,..  LONG lMaxi
11ff0 6d 75 6d 43 6f 75 6e 74 2c 0d 0a 20 20 4c 50 43  mumCount,..  LPC
12000 53 54 52 20 6c 70 4e 61 6d 65 29 3b 0d 0a 65 78  STR lpName);..ex
12010 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
12020 70 6f 72 74 20 48 41 4e 44 4c 45 20 43 72 65 61  port HANDLE Crea
12030 74 65 53 65 6d 61 70 68 6f 72 65 57 28 0d 0a 20  teSemaphoreW(.. 
12040 20 4c 50 53 45 43 55 52 49 54 59 5f 41 54 54 52   LPSECURITY_ATTR
12050 49 42 55 54 45 53 20 6c 70 53 65 6d 61 70 68 6f  IBUTES lpSemapho
12060 72 65 41 74 74 72 69 62 75 74 65 73 2c 0d 0a 20  reAttributes,.. 
12070 20 4c 4f 4e 47 20 6c 49 6e 69 74 69 61 6c 43 6f   LONG lInitialCo
12080 75 6e 74 2c 0d 0a 20 20 4c 4f 4e 47 20 6c 4d 61  unt,..  LONG lMa
12090 78 69 6d 75 6d 43 6f 75 6e 74 2c 0d 0a 20 20 4c  ximumCount,..  L
120a0 50 43 57 53 54 52 20 6c 70 4e 61 6d 65 29 3b 0d  PCWSTR lpName);.
120b0 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e 49 43 4f  .// #ifdef UNICO
120c0 44 45 0d 0a 61 6c 69 61 73 20 43 72 65 61 74 65  DE..alias Create
120d0 53 65 6d 61 70 68 6f 72 65 57 20 43 72 65 61 74  SemaphoreW Creat
120e0 65 53 65 6d 61 70 68 6f 72 65 3b 0d 0a 2f 2f 20  eSemaphore;..// 
120f0 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a  #else..// #.....
12100 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e  // #endif // !UN
12110 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72 6e 28  ICODE....extern(
12120 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
12130 48 41 4e 44 4c 45 20 4f 70 65 6e 53 65 6d 61 70  HANDLE OpenSemap
12140 68 6f 72 65 41 28 0d 0a 20 20 44 57 4f 52 44 20  horeA(..  DWORD 
12150 64 77 44 65 73 69 72 65 64 41 63 63 65 73 73 2c  dwDesiredAccess,
12160 0d 0a 20 20 42 4f 4f 4c 20 62 49 6e 68 65 72 69  ..  BOOL bInheri
12170 74 48 61 6e 64 6c 65 2c 0d 0a 20 20 4c 50 43 53  tHandle,..  LPCS
12180 54 52 20 6c 70 4e 61 6d 65 29 3b 0d 0a 65 78 74  TR lpName);..ext
12190 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
121a0 6f 72 74 20 48 41 4e 44 4c 45 20 4f 70 65 6e 53  ort HANDLE OpenS
121b0 65 6d 61 70 68 6f 72 65 57 28 0d 0a 20 20 44 57  emaphoreW(..  DW
121c0 4f 52 44 20 64 77 44 65 73 69 72 65 64 41 63 63  ORD dwDesiredAcc
121d0 65 73 73 2c 0d 0a 20 20 42 4f 4f 4c 20 62 49 6e  ess,..  BOOL bIn
121e0 68 65 72 69 74 48 61 6e 64 6c 65 2c 0d 0a 20 20  heritHandle,..  
121f0 4c 50 43 57 53 54 52 20 6c 70 4e 61 6d 65 29 3b  LPCWSTR lpName);
12200 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e 49 43  ..// #ifdef UNIC
12210 4f 44 45 0d 0a 61 6c 69 61 73 20 4f 70 65 6e 53  ODE..alias OpenS
12220 65 6d 61 70 68 6f 72 65 57 20 4f 70 65 6e 53 65  emaphoreW OpenSe
12230 6d 61 70 68 6f 72 65 3b 0d 0a 2f 2f 20 23 65 6c  maphore;..// #el
12240 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20  se..// #.....// 
12250 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e 49 43 4f  #endif // !UNICO
12260 44 45 0d 0a 0d 0a 2f 2f 20 23 69 66 20 28 5f 57  DE....// #if (_W
12270 49 4e 33 32 5f 57 49 4e 4e 54 20 3e 3d 20 30 78  IN32_WINNT >= 0x
12280 30 34 30 30 29 20 7c 7c 20 28 5f 57 49 4e 33 32  0400) || (_WIN32
12290 5f 57 49 4e 44 4f 57 53 20 3e 20 30 78 30 34 30  _WINDOWS > 0x040
122a0 30 29 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f  0)..extern(Windo
122b0 77 73 29 20 61 6c 69 61 73 20 56 4f 49 44 20 66  ws) alias VOID f
122c0 75 6e 63 74 69 6f 6e 28 20 4c 50 56 4f 49 44 20  unction( LPVOID 
122d0 6c 70 41 72 67 54 6f 43 6f 6d 70 6c 65 74 69 6f  lpArgToCompletio
122e0 6e 52 6f 75 74 69 6e 65 2c 20 44 57 4f 52 44 20  nRoutine, DWORD 
122f0 64 77 54 69 6d 65 72 4c 6f 77 56 61 6c 75 65 2c  dwTimerLowValue,
12300 20 44 57 4f 52 44 20 64 77 54 69 6d 65 72 48 69   DWORD dwTimerHi
12310 67 68 56 61 6c 75 65 20 29 20 50 54 49 4d 45 52  ghValue ) PTIMER
12320 41 50 43 52 4f 55 54 49 4e 45 3b 0d 0a 0d 0a 65  APCROUTINE;....e
12330 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
12340 78 70 6f 72 74 20 48 41 4e 44 4c 45 20 43 72 65  xport HANDLE Cre
12350 61 74 65 57 61 69 74 61 62 6c 65 54 69 6d 65 72  ateWaitableTimer
12360 41 28 0d 0a 20 20 4c 50 53 45 43 55 52 49 54 59  A(..  LPSECURITY
12370 5f 41 54 54 52 49 42 55 54 45 53 20 6c 70 54 69  _ATTRIBUTES lpTi
12380 6d 65 72 41 74 74 72 69 62 75 74 65 73 2c 0d 0a  merAttributes,..
12390 20 20 42 4f 4f 4c 20 62 4d 61 6e 75 61 6c 52 65    BOOL bManualRe
123a0 73 65 74 2c 0d 0a 20 20 4c 50 43 53 54 52 20 6c  set,..  LPCSTR l
123b0 70 54 69 6d 65 72 4e 61 6d 65 29 3b 0d 0a 65 78  pTimerName);..ex
123c0 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
123d0 70 6f 72 74 20 48 41 4e 44 4c 45 20 43 72 65 61  port HANDLE Crea
123e0 74 65 57 61 69 74 61 62 6c 65 54 69 6d 65 72 57  teWaitableTimerW
123f0 28 0d 0a 20 20 4c 50 53 45 43 55 52 49 54 59 5f  (..  LPSECURITY_
12400 41 54 54 52 49 42 55 54 45 53 20 6c 70 54 69 6d  ATTRIBUTES lpTim
12410 65 72 41 74 74 72 69 62 75 74 65 73 2c 0d 0a 20  erAttributes,.. 
12420 20 42 4f 4f 4c 20 62 4d 61 6e 75 61 6c 52 65 73   BOOL bManualRes
12430 65 74 2c 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c  et,..  LPCWSTR l
12440 70 54 69 6d 65 72 4e 61 6d 65 29 3b 0d 0a 2f 2f  pTimerName);..//
12450 20 23 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d   #ifdef UNICODE.
12460 0a 61 6c 69 61 73 20 43 72 65 61 74 65 57 61 69  .alias CreateWai
12470 74 61 62 6c 65 54 69 6d 65 72 57 20 43 72 65 61  tableTimerW Crea
12480 74 65 57 61 69 74 61 62 6c 65 54 69 6d 65 72 3b  teWaitableTimer;
12490 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23  ..// #else..// #
124a0 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f  .....// #endif /
124b0 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78  / !UNICODE....ex
124c0 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
124d0 70 6f 72 74 20 48 41 4e 44 4c 45 20 4f 70 65 6e  port HANDLE Open
124e0 57 61 69 74 61 62 6c 65 54 69 6d 65 72 41 28 0d  WaitableTimerA(.
124f0 0a 20 20 44 57 4f 52 44 20 64 77 44 65 73 69 72  .  DWORD dwDesir
12500 65 64 41 63 63 65 73 73 2c 0d 0a 20 20 42 4f 4f  edAccess,..  BOO
12510 4c 20 62 49 6e 68 65 72 69 74 48 61 6e 64 6c 65  L bInheritHandle
12520 2c 0d 0a 20 20 4c 50 43 53 54 52 20 6c 70 54 69  ,..  LPCSTR lpTi
12530 6d 65 72 4e 61 6d 65 29 3b 0d 0a 65 78 74 65 72  merName);..exter
12540 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
12550 74 20 48 41 4e 44 4c 45 20 4f 70 65 6e 57 61 69  t HANDLE OpenWai
12560 74 61 62 6c 65 54 69 6d 65 72 57 28 0d 0a 20 20  tableTimerW(..  
12570 44 57 4f 52 44 20 64 77 44 65 73 69 72 65 64 41  DWORD dwDesiredA
12580 63 63 65 73 73 2c 0d 0a 20 20 42 4f 4f 4c 20 62  ccess,..  BOOL b
12590 49 6e 68 65 72 69 74 48 61 6e 64 6c 65 2c 0d 0a  InheritHandle,..
125a0 20 20 4c 50 43 57 53 54 52 20 6c 70 54 69 6d 65    LPCWSTR lpTime
125b0 72 4e 61 6d 65 29 3b 0d 0a 2f 2f 20 23 69 66 64  rName);..// #ifd
125c0 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69 61  ef UNICODE..alia
125d0 73 20 4f 70 65 6e 57 61 69 74 61 62 6c 65 54 69  s OpenWaitableTi
125e0 6d 65 72 57 20 4f 70 65 6e 57 61 69 74 61 62 6c  merW OpenWaitabl
125f0 65 54 69 6d 65 72 3b 0d 0a 2f 2f 20 23 65 6c 73  eTimer;..// #els
12600 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23  e..// #.....// #
12610 65 6e 64 69 66 20 2f 2f 20 21 55 4e 49 43 4f 44  endif // !UNICOD
12620 45 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  E....extern(Wind
12630 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c  ows) export BOOL
12640 20 53 65 74 57 61 69 74 61 62 6c 65 54 69 6d 65   SetWaitableTime
12650 72 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68 54 69  r(..  HANDLE hTi
12660 6d 65 72 2c 0d 0a 20 20 4c 41 52 47 45 5f 49 4e  mer,..  LARGE_IN
12670 54 45 47 45 52 20 2a 6c 70 44 75 65 54 69 6d 65  TEGER *lpDueTime
12680 2c 0d 0a 20 20 4c 4f 4e 47 20 6c 50 65 72 69 6f  ,..  LONG lPerio
12690 64 2c 0d 0a 20 20 50 54 49 4d 45 52 41 50 43 52  d,..  PTIMERAPCR
126a0 4f 55 54 49 4e 45 20 70 66 6e 43 6f 6d 70 6c 65  OUTINE pfnComple
126b0 74 69 6f 6e 52 6f 75 74 69 6e 65 2c 0d 0a 20 20  tionRoutine,..  
126c0 4c 50 56 4f 49 44 20 6c 70 41 72 67 54 6f 43 6f  LPVOID lpArgToCo
126d0 6d 70 6c 65 74 69 6f 6e 52 6f 75 74 69 6e 65 2c  mpletionRoutine,
126e0 0d 0a 20 20 42 4f 4f 4c 20 66 52 65 73 75 6d 65  ..  BOOL fResume
126f0 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e  );....extern(Win
12700 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f  dows) export BOO
12710 4c 20 43 61 6e 63 65 6c 57 61 69 74 61 62 6c 65  L CancelWaitable
12720 54 69 6d 65 72 28 0d 0a 20 20 48 41 4e 44 4c 45  Timer(..  HANDLE
12730 20 68 54 69 6d 65 72 29 3b 0d 0a 2f 2f 20 23 65   hTimer);..// #e
12740 6e 64 69 66 20 2f 2a 20 28 5f 57 49 4e 33 32 5f  ndif /* (_WIN32_
12750 57 49 4e 4e 54 20 3e 3d 20 30 78 30 34 30 30 29  WINNT >= 0x0400)
12760 20 7c 7c 20 28 5f 57 49 4e 33 32 5f 57 49 4e 44   || (_WIN32_WIND
12770 4f 57 53 20 3e 20 30 78 30 34 30 30 29 20 2a 2f  OWS > 0x0400) */
12780 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f  ....extern(Windo
12790 77 73 29 20 65 78 70 6f 72 74 20 48 41 4e 44 4c  ws) export HANDL
127a0 45 20 43 72 65 61 74 65 46 69 6c 65 4d 61 70 70  E CreateFileMapp
127b0 69 6e 67 41 28 0d 0a 20 20 48 41 4e 44 4c 45 20  ingA(..  HANDLE 
127c0 68 46 69 6c 65 2c 0d 0a 20 20 4c 50 53 45 43 55  hFile,..  LPSECU
127d0 52 49 54 59 5f 41 54 54 52 49 42 55 54 45 53 20  RITY_ATTRIBUTES 
127e0 6c 70 46 69 6c 65 4d 61 70 70 69 6e 67 41 74 74  lpFileMappingAtt
127f0 72 69 62 75 74 65 73 2c 0d 0a 20 20 44 57 4f 52  ributes,..  DWOR
12800 44 20 66 6c 50 72 6f 74 65 63 74 2c 0d 0a 20 20  D flProtect,..  
12810 44 57 4f 52 44 20 64 77 4d 61 78 69 6d 75 6d 53  DWORD dwMaximumS
12820 69 7a 65 48 69 67 68 2c 0d 0a 20 20 44 57 4f 52  izeHigh,..  DWOR
12830 44 20 64 77 4d 61 78 69 6d 75 6d 53 69 7a 65 4c  D dwMaximumSizeL
12840 6f 77 2c 0d 0a 20 20 4c 50 43 53 54 52 20 6c 70  ow,..  LPCSTR lp
12850 4e 61 6d 65 29 3b 0d 0a 65 78 74 65 72 6e 28 57  Name);..extern(W
12860 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 48  indows) export H
12870 41 4e 44 4c 45 20 43 72 65 61 74 65 46 69 6c 65  ANDLE CreateFile
12880 4d 61 70 70 69 6e 67 57 28 0d 0a 20 20 48 41 4e  MappingW(..  HAN
12890 44 4c 45 20 68 46 69 6c 65 2c 0d 0a 20 20 4c 50  DLE hFile,..  LP
128a0 53 45 43 55 52 49 54 59 5f 41 54 54 52 49 42 55  SECURITY_ATTRIBU
128b0 54 45 53 20 6c 70 46 69 6c 65 4d 61 70 70 69 6e  TES lpFileMappin
128c0 67 41 74 74 72 69 62 75 74 65 73 2c 0d 0a 20 20  gAttributes,..  
128d0 44 57 4f 52 44 20 66 6c 50 72 6f 74 65 63 74 2c  DWORD flProtect,
128e0 0d 0a 20 20 44 57 4f 52 44 20 64 77 4d 61 78 69  ..  DWORD dwMaxi
128f0 6d 75 6d 53 69 7a 65 48 69 67 68 2c 0d 0a 20 20  mumSizeHigh,..  
12900 44 57 4f 52 44 20 64 77 4d 61 78 69 6d 75 6d 53  DWORD dwMaximumS
12910 69 7a 65 4c 6f 77 2c 0d 0a 20 20 4c 50 43 57 53  izeLow,..  LPCWS
12920 54 52 20 6c 70 4e 61 6d 65 29 3b 0d 0a 2f 2f 20  TR lpName);..// 
12930 23 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a  #ifdef UNICODE..
12940 61 6c 69 61 73 20 43 72 65 61 74 65 46 69 6c 65  alias CreateFile
12950 4d 61 70 70 69 6e 67 57 20 43 72 65 61 74 65 46  MappingW CreateF
12960 69 6c 65 4d 61 70 70 69 6e 67 3b 0d 0a 2f 2f 20  ileMapping;..// 
12970 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a  #else..// #.....
12980 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e  // #endif // !UN
12990 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72 6e 28  ICODE....extern(
129a0 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
129b0 48 41 4e 44 4c 45 20 4f 70 65 6e 46 69 6c 65 4d  HANDLE OpenFileM
129c0 61 70 70 69 6e 67 41 28 0d 0a 20 20 44 57 4f 52  appingA(..  DWOR
129d0 44 20 64 77 44 65 73 69 72 65 64 41 63 63 65 73  D dwDesiredAcces
129e0 73 2c 0d 0a 20 20 42 4f 4f 4c 20 62 49 6e 68 65  s,..  BOOL bInhe
129f0 72 69 74 48 61 6e 64 6c 65 2c 0d 0a 20 20 4c 50  ritHandle,..  LP
12a00 43 53 54 52 20 6c 70 4e 61 6d 65 29 3b 0d 0a 65  CSTR lpName);..e
12a10 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
12a20 78 70 6f 72 74 20 48 41 4e 44 4c 45 20 4f 70 65  xport HANDLE Ope
12a30 6e 46 69 6c 65 4d 61 70 70 69 6e 67 57 28 0d 0a  nFileMappingW(..
12a40 20 20 44 57 4f 52 44 20 64 77 44 65 73 69 72 65    DWORD dwDesire
12a50 64 41 63 63 65 73 73 2c 0d 0a 20 20 42 4f 4f 4c  dAccess,..  BOOL
12a60 20 62 49 6e 68 65 72 69 74 48 61 6e 64 6c 65 2c   bInheritHandle,
12a70 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 4e 61  ..  LPCWSTR lpNa
12a80 6d 65 29 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20  me);..// #ifdef 
12a90 55 4e 49 43 4f 44 45 0d 0a 61 6c 69 61 73 20 4f  UNICODE..alias O
12aa0 70 65 6e 46 69 6c 65 4d 61 70 70 69 6e 67 57 20  penFileMappingW 
12ab0 4f 70 65 6e 46 69 6c 65 4d 61 70 70 69 6e 67 3b  OpenFileMapping;
12ac0 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23  ..// #else..// #
12ad0 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f  .....// #endif /
12ae0 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78  / !UNICODE....ex
12af0 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
12b00 70 6f 72 74 20 44 57 4f 52 44 20 47 65 74 4c 6f  port DWORD GetLo
12b10 67 69 63 61 6c 44 72 69 76 65 53 74 72 69 6e 67  gicalDriveString
12b20 73 41 28 0d 0a 20 20 44 57 4f 52 44 20 6e 42 75  sA(..  DWORD nBu
12b30 66 66 65 72 4c 65 6e 67 74 68 2c 0d 0a 20 20 4c  fferLength,..  L
12b40 50 53 54 52 20 6c 70 42 75 66 66 65 72 29 3b 0d  PSTR lpBuffer);.
12b50 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29  .extern(Windows)
12b60 20 65 78 70 6f 72 74 20 44 57 4f 52 44 20 47 65   export DWORD Ge
12b70 74 4c 6f 67 69 63 61 6c 44 72 69 76 65 53 74 72  tLogicalDriveStr
12b80 69 6e 67 73 57 28 0d 0a 20 20 44 57 4f 52 44 20  ingsW(..  DWORD 
12b90 6e 42 75 66 66 65 72 4c 65 6e 67 74 68 2c 0d 0a  nBufferLength,..
12ba0 20 20 4c 50 57 53 54 52 20 6c 70 42 75 66 66 65    LPWSTR lpBuffe
12bb0 72 29 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55  r);..// #ifdef U
12bc0 4e 49 43 4f 44 45 0d 0a 61 6c 69 61 73 20 47 65  NICODE..alias Ge
12bd0 74 4c 6f 67 69 63 61 6c 44 72 69 76 65 53 74 72  tLogicalDriveStr
12be0 69 6e 67 73 57 20 47 65 74 4c 6f 67 69 63 61 6c  ingsW GetLogical
12bf0 44 72 69 76 65 53 74 72 69 6e 67 73 3b 0d 0a 2f  DriveStrings;../
12c00 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e  / #else..// #...
12c10 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21  ..// #endif // !
12c20 55 4e 49 43 4f 44 45 0d 0a 0d 0a 2f 2f 20 23 69  UNICODE....// #i
12c30 66 20 5f 57 49 4e 33 32 5f 57 49 4e 4e 54 20 3e  f _WIN32_WINNT >
12c40 3d 20 30 78 30 35 30 31 0d 0a 0d 0a 61 6c 69 61  = 0x0501....alia
12c50 73 20 69 6e 74 20 5f 4d 45 4d 4f 52 59 5f 52 45  s int _MEMORY_RE
12c60 53 4f 55 52 43 45 5f 4e 4f 54 49 46 49 43 41 54  SOURCE_NOTIFICAT
12c70 49 4f 4e 5f 54 59 50 45 3b 0d 0a 65 6e 75 6d 20  ION_TYPE;..enum 
12c80 7b 0d 0a 20 20 4c 6f 77 4d 65 6d 6f 72 79 52 65  {..  LowMemoryRe
12c90 73 6f 75 72 63 65 4e 6f 74 69 66 69 63 61 74 69  sourceNotificati
12ca0 6f 6e 2c 0d 0a 20 20 48 69 67 68 4d 65 6d 6f 72  on,..  HighMemor
12cb0 79 52 65 73 6f 75 72 63 65 4e 6f 74 69 66 69 63  yResourceNotific
12cc0 61 74 69 6f 6e 2c 0d 0a 7d 0d 0a 61 6c 69 61 73  ation,..}..alias
12cd0 20 5f 4d 45 4d 4f 52 59 5f 52 45 53 4f 55 52 43   _MEMORY_RESOURC
12ce0 45 5f 4e 4f 54 49 46 49 43 41 54 49 4f 4e 5f 54  E_NOTIFICATION_T
12cf0 59 50 45 20 4d 45 4d 4f 52 59 5f 52 45 53 4f 55  YPE MEMORY_RESOU
12d00 52 43 45 5f 4e 4f 54 49 46 49 43 41 54 49 4f 4e  RCE_NOTIFICATION
12d10 5f 54 59 50 45 3b 0d 0a 0d 0a 65 78 74 65 72 6e  _TYPE;....extern
12d20 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
12d30 20 48 41 4e 44 4c 45 20 43 72 65 61 74 65 4d 65   HANDLE CreateMe
12d40 6d 6f 72 79 52 65 73 6f 75 72 63 65 4e 6f 74 69  moryResourceNoti
12d50 66 69 63 61 74 69 6f 6e 28 0d 0a 20 20 4d 45 4d  fication(..  MEM
12d60 4f 52 59 5f 52 45 53 4f 55 52 43 45 5f 4e 4f 54  ORY_RESOURCE_NOT
12d70 49 46 49 43 41 54 49 4f 4e 5f 54 59 50 45 20 4e  IFICATION_TYPE N
12d80 6f 74 69 66 69 63 61 74 69 6f 6e 54 79 70 65 29  otificationType)
12d90 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  ;....extern(Wind
12da0 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c  ows) export BOOL
12db0 20 51 75 65 72 79 4d 65 6d 6f 72 79 52 65 73 6f   QueryMemoryReso
12dc0 75 72 63 65 4e 6f 74 69 66 69 63 61 74 69 6f 6e  urceNotification
12dd0 28 0d 0a 20 20 48 41 4e 44 4c 45 20 52 65 73 6f  (..  HANDLE Reso
12de0 75 72 63 65 4e 6f 74 69 66 69 63 61 74 69 6f 6e  urceNotification
12df0 48 61 6e 64 6c 65 2c 0d 0a 20 20 50 42 4f 4f 4c  Handle,..  PBOOL
12e00 20 52 65 73 6f 75 72 63 65 53 74 61 74 65 29 3b   ResourceState);
12e10 0d 0a 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f  ....// #endif //
12e20 20 5f 57 49 4e 33 32 5f 57 49 4e 4e 54 20 3e 3d   _WIN32_WINNT >=
12e30 20 30 78 30 35 30 31 0d 0a 0d 0a 65 78 74 65 72   0x0501....exter
12e40 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
12e50 74 20 48 4d 4f 44 55 4c 45 20 4c 6f 61 64 4c 69  t HMODULE LoadLi
12e60 62 72 61 72 79 41 28 0d 0a 20 20 4c 50 43 53 54  braryA(..  LPCST
12e70 52 20 6c 70 4c 69 62 46 69 6c 65 4e 61 6d 65 29  R lpLibFileName)
12e80 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ;..extern(Window
12e90 73 29 20 65 78 70 6f 72 74 20 48 4d 4f 44 55 4c  s) export HMODUL
12ea0 45 20 4c 6f 61 64 4c 69 62 72 61 72 79 57 28 0d  E LoadLibraryW(.
12eb0 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 4c 69 62  .  LPCWSTR lpLib
12ec0 46 69 6c 65 4e 61 6d 65 29 3b 0d 0a 2f 2f 20 23  FileName);..// #
12ed0 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61  ifdef UNICODE..a
12ee0 6c 69 61 73 20 4c 6f 61 64 4c 69 62 72 61 72 79  lias LoadLibrary
12ef0 57 20 4c 6f 61 64 4c 69 62 72 61 72 79 3b 0d 0a  W LoadLibrary;..
12f00 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e  // #else..// #..
12f10 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20  ...// #endif // 
12f20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65  !UNICODE....exte
12f30 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
12f40 72 74 20 48 4d 4f 44 55 4c 45 20 4c 6f 61 64 4c  rt HMODULE LoadL
12f50 69 62 72 61 72 79 45 78 41 28 0d 0a 20 20 4c 50  ibraryExA(..  LP
12f60 43 53 54 52 20 6c 70 4c 69 62 46 69 6c 65 4e 61  CSTR lpLibFileNa
12f70 6d 65 2c 0d 0a 20 20 48 41 4e 44 4c 45 20 68 46  me,..  HANDLE hF
12f80 69 6c 65 2c 0d 0a 20 20 44 57 4f 52 44 20 64 77  ile,..  DWORD dw
12f90 46 6c 61 67 73 29 3b 0d 0a 65 78 74 65 72 6e 28  Flags);..extern(
12fa0 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
12fb0 48 4d 4f 44 55 4c 45 20 4c 6f 61 64 4c 69 62 72  HMODULE LoadLibr
12fc0 61 72 79 45 78 57 28 0d 0a 20 20 4c 50 43 57 53  aryExW(..  LPCWS
12fd0 54 52 20 6c 70 4c 69 62 46 69 6c 65 4e 61 6d 65  TR lpLibFileName
12fe0 2c 0d 0a 20 20 48 41 4e 44 4c 45 20 68 46 69 6c  ,..  HANDLE hFil
12ff0 65 2c 0d 0a 20 20 44 57 4f 52 44 20 64 77 46 6c  e,..  DWORD dwFl
13000 61 67 73 29 3b 0d 0a 2f 2f 20 23 69 66 64 65 66  ags);..// #ifdef
13010 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69 61 73 20   UNICODE..alias 
13020 4c 6f 61 64 4c 69 62 72 61 72 79 45 78 57 20 4c  LoadLibraryExW L
13030 6f 61 64 4c 69 62 72 61 72 79 45 78 3b 0d 0a 2f  oadLibraryEx;../
13040 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e  / #else..// #...
13050 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21  ..// #endif // !
13060 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 6e 75 6d 20  UNICODE....enum 
13070 3a 20 75 69 6e 74 20 7b 20 44 4f 4e 54 5f 52 45  : uint { DONT_RE
13080 53 4f 4c 56 45 5f 44 4c 4c 5f 52 45 46 45 52 45  SOLVE_DLL_REFERE
13090 4e 43 45 53 20 3d 20 30 78 30 30 30 30 30 30 30  NCES = 0x0000000
130a0 31 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  1 }..enum : uint
130b0 20 7b 20 4c 4f 41 44 5f 4c 49 42 52 41 52 59 5f   { LOAD_LIBRARY_
130c0 41 53 5f 44 41 54 41 46 49 4c 45 20 3d 20 30 78  AS_DATAFILE = 0x
130d0 30 30 30 30 30 30 30 32 20 7d 0d 0a 65 6e 75 6d  00000002 }..enum
130e0 20 3a 20 75 69 6e 74 20 7b 20 4c 4f 41 44 5f 57   : uint { LOAD_W
130f0 49 54 48 5f 41 4c 54 45 52 45 44 5f 53 45 41 52  ITH_ALTERED_SEAR
13100 43 48 5f 50 41 54 48 20 3d 20 30 78 30 30 30 30  CH_PATH = 0x0000
13110 30 30 30 38 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75  0008 }..enum : u
13120 69 6e 74 20 7b 20 4c 4f 41 44 5f 49 47 4e 4f 52  int { LOAD_IGNOR
13130 45 5f 43 4f 44 45 5f 41 55 54 48 5a 5f 4c 45 56  E_CODE_AUTHZ_LEV
13140 45 4c 20 3d 20 30 78 30 30 30 30 30 30 31 30 20  EL = 0x00000010 
13150 7d 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  }....extern(Wind
13160 6f 77 73 29 20 65 78 70 6f 72 74 20 44 57 4f 52  ows) export DWOR
13170 44 20 47 65 74 4d 6f 64 75 6c 65 46 69 6c 65 4e  D GetModuleFileN
13180 61 6d 65 41 28 0d 0a 20 20 48 4d 4f 44 55 4c 45  ameA(..  HMODULE
13190 20 68 4d 6f 64 75 6c 65 2c 0d 0a 20 20 4c 50 53   hModule,..  LPS
131a0 54 52 20 6c 70 46 69 6c 65 6e 61 6d 65 2c 0d 0a  TR lpFilename,..
131b0 20 20 44 57 4f 52 44 20 6e 53 69 7a 65 29 3b 0d    DWORD nSize);.
131c0 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29  .extern(Windows)
131d0 20 65 78 70 6f 72 74 20 44 57 4f 52 44 20 47 65   export DWORD Ge
131e0 74 4d 6f 64 75 6c 65 46 69 6c 65 4e 61 6d 65 57  tModuleFileNameW
131f0 28 0d 0a 20 20 48 4d 4f 44 55 4c 45 20 68 4d 6f  (..  HMODULE hMo
13200 64 75 6c 65 2c 0d 0a 20 20 4c 50 57 53 54 52 20  dule,..  LPWSTR 
13210 6c 70 46 69 6c 65 6e 61 6d 65 2c 0d 0a 20 20 44  lpFilename,..  D
13220 57 4f 52 44 20 6e 53 69 7a 65 29 3b 0d 0a 2f 2f  WORD nSize);..//
13230 20 23 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d   #ifdef UNICODE.
13240 0a 61 6c 69 61 73 20 47 65 74 4d 6f 64 75 6c 65  .alias GetModule
13250 46 69 6c 65 4e 61 6d 65 57 20 47 65 74 4d 6f 64  FileNameW GetMod
13260 75 6c 65 46 69 6c 65 4e 61 6d 65 3b 0d 0a 2f 2f  uleFileName;..//
13270 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d   #else..// #....
13280 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55  .// #endif // !U
13290 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72 6e  NICODE....extern
132a0 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
132b0 20 48 4d 4f 44 55 4c 45 20 47 65 74 4d 6f 64 75   HMODULE GetModu
132c0 6c 65 48 61 6e 64 6c 65 41 28 0d 0a 20 20 4c 50  leHandleA(..  LP
132d0 43 53 54 52 20 6c 70 4d 6f 64 75 6c 65 4e 61 6d  CSTR lpModuleNam
132e0 65 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  e);..extern(Wind
132f0 6f 77 73 29 20 65 78 70 6f 72 74 20 48 4d 4f 44  ows) export HMOD
13300 55 4c 45 20 47 65 74 4d 6f 64 75 6c 65 48 61 6e  ULE GetModuleHan
13310 64 6c 65 57 28 0d 0a 20 20 4c 50 43 57 53 54 52  dleW(..  LPCWSTR
13320 20 6c 70 4d 6f 64 75 6c 65 4e 61 6d 65 29 3b 0d   lpModuleName);.
13330 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e 49 43 4f  .// #ifdef UNICO
13340 44 45 0d 0a 61 6c 69 61 73 20 47 65 74 4d 6f 64  DE..alias GetMod
13350 75 6c 65 48 61 6e 64 6c 65 57 20 47 65 74 4d 6f  uleHandleW GetMo
13360 64 75 6c 65 48 61 6e 64 6c 65 3b 0d 0a 2f 2f 20  duleHandle;..// 
13370 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a  #else..// #.....
13380 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e  // #endif // !UN
13390 49 43 4f 44 45 0d 0a 0d 0a 2f 2f 20 23 69 66 20  ICODE....// #if 
133a0 21 64 65 66 69 6e 65 64 28 52 43 5f 49 4e 56 4f  !defined(RC_INVO
133b0 4b 45 44 29 0d 0a 2f 2f 20 23 69 66 20 5f 57 49  KED)..// #if _WI
133c0 4e 33 32 5f 57 49 4e 4e 54 20 3e 20 30 78 30 35  N32_WINNT > 0x05
133d0 30 30 20 7c 7c 20 64 65 66 69 6e 65 64 28 57 49  00 || defined(WI
133e0 4e 42 41 53 45 5f 44 45 43 4c 41 52 45 5f 47 45  NBASE_DECLARE_GE
133f0 54 5f 4d 4f 44 55 4c 45 5f 48 41 4e 44 4c 45 5f  T_MODULE_HANDLE_
13400 45 58 29 20 7c 7c 20 49 53 4f 4c 41 54 49 4f 4e  EX) || ISOLATION
13410 5f 41 57 41 52 45 5f 45 4e 41 42 4c 45 44 0d 0a  _AWARE_ENABLED..
13420 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20  ..enum : uint { 
13430 47 45 54 5f 4d 4f 44 55 4c 45 5f 48 41 4e 44 4c  GET_MODULE_HANDL
13440 45 5f 45 58 5f 46 4c 41 47 5f 50 49 4e 20 3d 20  E_EX_FLAG_PIN = 
13450 30 78 30 30 30 30 30 30 30 31 20 7d 0d 0a 65 6e  0x00000001 }..en
13460 75 6d 20 3a 20 75 69 6e 74 20 7b 20 47 45 54 5f  um : uint { GET_
13470 4d 4f 44 55 4c 45 5f 48 41 4e 44 4c 45 5f 45 58  MODULE_HANDLE_EX
13480 5f 46 4c 41 47 5f 55 4e 43 48 41 4e 47 45 44 5f  _FLAG_UNCHANGED_
13490 52 45 46 43 4f 55 4e 54 20 3d 20 30 78 30 30 30  REFCOUNT = 0x000
134a0 30 30 30 30 32 20 7d 0d 0a 65 6e 75 6d 20 3a 20  00002 }..enum : 
134b0 75 69 6e 74 20 7b 20 47 45 54 5f 4d 4f 44 55 4c  uint { GET_MODUL
134c0 45 5f 48 41 4e 44 4c 45 5f 45 58 5f 46 4c 41 47  E_HANDLE_EX_FLAG
134d0 5f 46 52 4f 4d 5f 41 44 44 52 45 53 53 20 3d 20  _FROM_ADDRESS = 
134e0 30 78 30 30 30 30 30 30 30 34 20 7d 0d 0a 0d 0a  0x00000004 }....
134f0 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
13500 61 6c 69 61 73 20 42 4f 4f 4c 20 66 75 6e 63 74  alias BOOL funct
13510 69 6f 6e 28 20 20 44 57 4f 52 44 20 64 77 46 6c  ion(  DWORD dwFl
13520 61 67 73 2c 20 20 4c 50 43 53 54 52 20 6c 70 4d  ags,  LPCSTR lpM
13530 6f 64 75 6c 65 4e 61 6d 65 2c 20 20 48 4d 4f 44  oduleName,  HMOD
13540 55 4c 45 2a 20 70 68 4d 6f 64 75 6c 65 20 29 20  ULE* phModule ) 
13550 50 47 45 54 5f 4d 4f 44 55 4c 45 5f 48 41 4e 44  PGET_MODULE_HAND
13560 4c 45 5f 45 58 41 3b 0d 0a 65 78 74 65 72 6e 28  LE_EXA;..extern(
13570 57 69 6e 64 6f 77 73 29 20 61 6c 69 61 73 20 42  Windows) alias B
13580 4f 4f 4c 20 66 75 6e 63 74 69 6f 6e 28 20 20 44  OOL function(  D
13590 57 4f 52 44 20 64 77 46 6c 61 67 73 2c 20 20 4c  WORD dwFlags,  L
135a0 50 43 57 53 54 52 20 6c 70 4d 6f 64 75 6c 65 4e  PCWSTR lpModuleN
135b0 61 6d 65 2c 20 20 48 4d 4f 44 55 4c 45 2a 20 70  ame,  HMODULE* p
135c0 68 4d 6f 64 75 6c 65 20 29 20 50 47 45 54 5f 4d  hModule ) PGET_M
135d0 4f 44 55 4c 45 5f 48 41 4e 44 4c 45 5f 45 58 57  ODULE_HANDLE_EXW
135e0 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e 49  ;..// #ifdef UNI
135f0 43 4f 44 45 0d 0a 61 6c 69 61 73 20 50 47 45 54  CODE..alias PGET
13600 5f 4d 4f 44 55 4c 45 5f 48 41 4e 44 4c 45 5f 45  _MODULE_HANDLE_E
13610 58 57 20 50 47 45 54 5f 4d 4f 44 55 4c 45 5f 48  XW PGET_MODULE_H
13620 41 4e 44 4c 45 5f 45 58 3b 0d 0a 2f 2f 20 23 65  ANDLE_EX;..// #e
13630 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f  lse..// #.....//
13640 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e 49 43   #endif // !UNIC
13650 4f 44 45 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69  ODE....extern(Wi
13660 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f  ndows) export BO
13670 4f 4c 20 47 65 74 4d 6f 64 75 6c 65 48 61 6e 64  OL GetModuleHand
13680 6c 65 45 78 41 28 0d 0a 20 20 44 57 4f 52 44 20  leExA(..  DWORD 
13690 64 77 46 6c 61 67 73 2c 0d 0a 20 20 4c 50 43 53  dwFlags,..  LPCS
136a0 54 52 20 6c 70 4d 6f 64 75 6c 65 4e 61 6d 65 2c  TR lpModuleName,
136b0 0d 0a 20 20 48 4d 4f 44 55 4c 45 2a 20 70 68 4d  ..  HMODULE* phM
136c0 6f 64 75 6c 65 29 3b 0d 0a 65 78 74 65 72 6e 28  odule);..extern(
136d0 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
136e0 42 4f 4f 4c 20 47 65 74 4d 6f 64 75 6c 65 48 61  BOOL GetModuleHa
136f0 6e 64 6c 65 45 78 57 28 0d 0a 20 20 44 57 4f 52  ndleExW(..  DWOR
13700 44 20 64 77 46 6c 61 67 73 2c 0d 0a 20 20 4c 50  D dwFlags,..  LP
13710 43 57 53 54 52 20 6c 70 4d 6f 64 75 6c 65 4e 61  CWSTR lpModuleNa
13720 6d 65 2c 0d 0a 20 20 48 4d 4f 44 55 4c 45 2a 20  me,..  HMODULE* 
13730 70 68 4d 6f 64 75 6c 65 29 3b 0d 0a 2f 2f 20 23  phModule);..// #
13740 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61  ifdef UNICODE..a
13750 6c 69 61 73 20 47 65 74 4d 6f 64 75 6c 65 48 61  lias GetModuleHa
13760 6e 64 6c 65 45 78 57 20 47 65 74 4d 6f 64 75 6c  ndleExW GetModul
13770 65 48 61 6e 64 6c 65 45 78 3b 0d 0a 2f 2f 20 23  eHandleEx;..// #
13780 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f  else..// #...../
13790 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e 49  / #endif // !UNI
137a0 43 4f 44 45 0d 0a 0d 0a 2f 2f 20 23 65 6e 64 69  CODE....// #endi
137b0 66 0d 0a 2f 2f 20 23 65 6e 64 69 66 0d 0a 0d 0a  f..// #endif....
137c0 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
137d0 65 78 70 6f 72 74 20 42 4f 4f 4c 20 43 72 65 61  export BOOL Crea
137e0 74 65 50 72 6f 63 65 73 73 41 28 0d 0a 20 20 4c  teProcessA(..  L
137f0 50 43 53 54 52 20 6c 70 41 70 70 6c 69 63 61 74  PCSTR lpApplicat
13800 69 6f 6e 4e 61 6d 65 2c 0d 0a 20 20 4c 50 53 54  ionName,..  LPST
13810 52 20 6c 70 43 6f 6d 6d 61 6e 64 4c 69 6e 65 2c  R lpCommandLine,
13820 0d 0a 20 20 4c 50 53 45 43 55 52 49 54 59 5f 41  ..  LPSECURITY_A
13830 54 54 52 49 42 55 54 45 53 20 6c 70 50 72 6f 63  TTRIBUTES lpProc
13840 65 73 73 41 74 74 72 69 62 75 74 65 73 2c 0d 0a  essAttributes,..
13850 20 20 4c 50 53 45 43 55 52 49 54 59 5f 41 54 54    LPSECURITY_ATT
13860 52 49 42 55 54 45 53 20 6c 70 54 68 72 65 61 64  RIBUTES lpThread
13870 41 74 74 72 69 62 75 74 65 73 2c 0d 0a 20 20 42  Attributes,..  B
13880 4f 4f 4c 20 62 49 6e 68 65 72 69 74 48 61 6e 64  OOL bInheritHand
13890 6c 65 73 2c 0d 0a 20 20 44 57 4f 52 44 20 64 77  les,..  DWORD dw
138a0 43 72 65 61 74 69 6f 6e 46 6c 61 67 73 2c 0d 0a  CreationFlags,..
138b0 20 20 4c 50 56 4f 49 44 20 6c 70 45 6e 76 69 72    LPVOID lpEnvir
138c0 6f 6e 6d 65 6e 74 2c 0d 0a 20 20 4c 50 43 53 54  onment,..  LPCST
138d0 52 20 6c 70 43 75 72 72 65 6e 74 44 69 72 65 63  R lpCurrentDirec
138e0 74 6f 72 79 2c 0d 0a 20 20 4c 50 53 54 41 52 54  tory,..  LPSTART
138f0 55 50 49 4e 46 4f 41 20 6c 70 53 74 61 72 74 75  UPINFOA lpStartu
13900 70 49 6e 66 6f 2c 0d 0a 20 20 4c 50 50 52 4f 43  pInfo,..  LPPROC
13910 45 53 53 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 20  ESS_INFORMATION 
13920 6c 70 50 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61  lpProcessInforma
13930 74 69 6f 6e 29 3b 0d 0a 65 78 74 65 72 6e 28 57  tion);..extern(W
13940 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42  indows) export B
13950 4f 4f 4c 20 43 72 65 61 74 65 50 72 6f 63 65 73  OOL CreateProces
13960 73 57 28 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c  sW(..  LPCWSTR l
13970 70 41 70 70 6c 69 63 61 74 69 6f 6e 4e 61 6d 65  pApplicationName
13980 2c 0d 0a 20 20 4c 50 57 53 54 52 20 6c 70 43 6f  ,..  LPWSTR lpCo
13990 6d 6d 61 6e 64 4c 69 6e 65 2c 0d 0a 20 20 4c 50  mmandLine,..  LP
139a0 53 45 43 55 52 49 54 59 5f 41 54 54 52 49 42 55  SECURITY_ATTRIBU
139b0 54 45 53 20 6c 70 50 72 6f 63 65 73 73 41 74 74  TES lpProcessAtt
139c0 72 69 62 75 74 65 73 2c 0d 0a 20 20 4c 50 53 45  ributes,..  LPSE
139d0 43 55 52 49 54 59 5f 41 54 54 52 49 42 55 54 45  CURITY_ATTRIBUTE
139e0 53 20 6c 70 54 68 72 65 61 64 41 74 74 72 69 62  S lpThreadAttrib
139f0 75 74 65 73 2c 0d 0a 20 20 42 4f 4f 4c 20 62 49  utes,..  BOOL bI
13a00 6e 68 65 72 69 74 48 61 6e 64 6c 65 73 2c 0d 0a  nheritHandles,..
13a10 20 20 44 57 4f 52 44 20 64 77 43 72 65 61 74 69    DWORD dwCreati
13a20 6f 6e 46 6c 61 67 73 2c 0d 0a 20 20 4c 50 56 4f  onFlags,..  LPVO
13a30 49 44 20 6c 70 45 6e 76 69 72 6f 6e 6d 65 6e 74  ID lpEnvironment
13a40 2c 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 43  ,..  LPCWSTR lpC
13a50 75 72 72 65 6e 74 44 69 72 65 63 74 6f 72 79 2c  urrentDirectory,
13a60 0d 0a 20 20 4c 50 53 54 41 52 54 55 50 49 4e 46  ..  LPSTARTUPINF
13a70 4f 57 20 6c 70 53 74 61 72 74 75 70 49 6e 66 6f  OW lpStartupInfo
13a80 2c 0d 0a 20 20 4c 50 50 52 4f 43 45 53 53 5f 49  ,..  LPPROCESS_I
13a90 4e 46 4f 52 4d 41 54 49 4f 4e 20 6c 70 50 72 6f  NFORMATION lpPro
13aa0 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 29  cessInformation)
13ab0 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e 49  ;..// #ifdef UNI
13ac0 43 4f 44 45 0d 0a 61 6c 69 61 73 20 43 72 65 61  CODE..alias Crea
13ad0 74 65 50 72 6f 63 65 73 73 57 20 43 72 65 61 74  teProcessW Creat
13ae0 65 50 72 6f 63 65 73 73 3b 0d 0a 2f 2f 20 23 65  eProcess;..// #e
13af0 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f  lse..// #.....//
13b00 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e 49 43   #endif // !UNIC
13b10 4f 44 45 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69  ODE....extern(Wi
13b20 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f  ndows) export BO
13b30 4f 4c 20 53 65 74 50 72 6f 63 65 73 73 53 68 75  OL SetProcessShu
13b40 74 64 6f 77 6e 50 61 72 61 6d 65 74 65 72 73 28  tdownParameters(
13b50 0d 0a 20 20 44 57 4f 52 44 20 64 77 4c 65 76 65  ..  DWORD dwLeve
13b60 6c 2c 0d 0a 20 20 44 57 4f 52 44 20 64 77 46 6c  l,..  DWORD dwFl
13b70 61 67 73 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28  ags);....extern(
13b80 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
13b90 42 4f 4f 4c 20 47 65 74 50 72 6f 63 65 73 73 53  BOOL GetProcessS
13ba0 68 75 74 64 6f 77 6e 50 61 72 61 6d 65 74 65 72  hutdownParameter
13bb0 73 28 0d 0a 20 20 4c 50 44 57 4f 52 44 20 6c 70  s(..  LPDWORD lp
13bc0 64 77 4c 65 76 65 6c 2c 0d 0a 20 20 4c 50 44 57  dwLevel,..  LPDW
13bd0 4f 52 44 20 6c 70 64 77 46 6c 61 67 73 29 3b 0d  ORD lpdwFlags);.
13be0 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ...extern(Window
13bf0 73 29 20 65 78 70 6f 72 74 20 44 57 4f 52 44 20  s) export DWORD 
13c00 47 65 74 50 72 6f 63 65 73 73 56 65 72 73 69 6f  GetProcessVersio
13c10 6e 28 0d 0a 20 20 44 57 4f 52 44 20 50 72 6f 63  n(..  DWORD Proc
13c20 65 73 73 49 64 29 3b 0d 0a 0d 0a 65 78 74 65 72  essId);....exter
13c30 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
13c40 74 20 56 4f 49 44 20 46 61 74 61 6c 41 70 70 45  t VOID FatalAppE
13c50 78 69 74 41 28 0d 0a 20 20 55 49 4e 54 20 75 41  xitA(..  UINT uA
13c60 63 74 69 6f 6e 2c 0d 0a 20 20 4c 50 43 53 54 52  ction,..  LPCSTR
13c70 20 6c 70 4d 65 73 73 61 67 65 54 65 78 74 29 3b   lpMessageText);
13c80 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
13c90 29 20 65 78 70 6f 72 74 20 56 4f 49 44 20 46 61  ) export VOID Fa
13ca0 74 61 6c 41 70 70 45 78 69 74 57 28 0d 0a 20 20  talAppExitW(..  
13cb0 55 49 4e 54 20 75 41 63 74 69 6f 6e 2c 0d 0a 20  UINT uAction,.. 
13cc0 20 4c 50 43 57 53 54 52 20 6c 70 4d 65 73 73 61   LPCWSTR lpMessa
13cd0 67 65 54 65 78 74 29 3b 0d 0a 2f 2f 20 23 69 66  geText);..// #if
13ce0 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69  def UNICODE..ali
13cf0 61 73 20 46 61 74 61 6c 41 70 70 45 78 69 74 57  as FatalAppExitW
13d00 20 46 61 74 61 6c 41 70 70 45 78 69 74 3b 0d 0a   FatalAppExit;..
13d10 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e  // #else..// #..
13d20 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20  ...// #endif // 
13d30 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65  !UNICODE....exte
13d40 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
13d50 72 74 20 56 4f 49 44 20 47 65 74 53 74 61 72 74  rt VOID GetStart
13d60 75 70 49 6e 66 6f 41 28 0d 0a 20 20 4c 50 53 54  upInfoA(..  LPST
13d70 41 52 54 55 50 49 4e 46 4f 41 20 6c 70 53 74 61  ARTUPINFOA lpSta
13d80 72 74 75 70 49 6e 66 6f 29 3b 0d 0a 65 78 74 65  rtupInfo);..exte
13d90 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
13da0 72 74 20 56 4f 49 44 20 47 65 74 53 74 61 72 74  rt VOID GetStart
13db0 75 70 49 6e 66 6f 57 28 0d 0a 20 20 4c 50 53 54  upInfoW(..  LPST
13dc0 41 52 54 55 50 49 4e 46 4f 57 20 6c 70 53 74 61  ARTUPINFOW lpSta
13dd0 72 74 75 70 49 6e 66 6f 29 3b 0d 0a 2f 2f 20 23  rtupInfo);..// #
13de0 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61  ifdef UNICODE..a
13df0 6c 69 61 73 20 47 65 74 53 74 61 72 74 75 70 49  lias GetStartupI
13e00 6e 66 6f 57 20 47 65 74 53 74 61 72 74 75 70 49  nfoW GetStartupI
13e10 6e 66 6f 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a  nfo;..// #else..
13e20 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64  // #.....// #end
13e30 69 66 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a  if // !UNICODE..
13e40 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
13e50 29 20 65 78 70 6f 72 74 20 4c 50 53 54 52 20 47  ) export LPSTR G
13e60 65 74 43 6f 6d 6d 61 6e 64 4c 69 6e 65 41 28 29  etCommandLineA()
13e70 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ;..extern(Window
13e80 73 29 20 65 78 70 6f 72 74 20 4c 50 57 53 54 52  s) export LPWSTR
13e90 20 47 65 74 43 6f 6d 6d 61 6e 64 4c 69 6e 65 57   GetCommandLineW
13ea0 28 29 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55  ();..// #ifdef U
13eb0 4e 49 43 4f 44 45 0d 0a 61 6c 69 61 73 20 47 65  NICODE..alias Ge
13ec0 74 43 6f 6d 6d 61 6e 64 4c 69 6e 65 57 20 47 65  tCommandLineW Ge
13ed0 74 43 6f 6d 6d 61 6e 64 4c 69 6e 65 3b 0d 0a 2f  tCommandLine;../
13ee0 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e  / #else..// #...
13ef0 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21  ..// #endif // !
13f00 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72  UNICODE....exter
13f10 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
13f20 74 20 44 57 4f 52 44 20 47 65 74 45 6e 76 69 72  t DWORD GetEnvir
13f30 6f 6e 6d 65 6e 74 56 61 72 69 61 62 6c 65 41 28  onmentVariableA(
13f40 0d 0a 20 20 4c 50 43 53 54 52 20 6c 70 4e 61 6d  ..  LPCSTR lpNam
13f50 65 2c 0d 0a 20 20 4c 50 53 54 52 20 6c 70 42 75  e,..  LPSTR lpBu
13f60 66 66 65 72 2c 0d 0a 20 20 44 57 4f 52 44 20 6e  ffer,..  DWORD n
13f70 53 69 7a 65 29 3b 0d 0a 65 78 74 65 72 6e 28 57  Size);..extern(W
13f80 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 44  indows) export D
13f90 57 4f 52 44 20 47 65 74 45 6e 76 69 72 6f 6e 6d  WORD GetEnvironm
13fa0 65 6e 74 56 61 72 69 61 62 6c 65 57 28 0d 0a 20  entVariableW(.. 
13fb0 20 4c 50 43 57 53 54 52 20 6c 70 4e 61 6d 65 2c   LPCWSTR lpName,
13fc0 0d 0a 20 20 4c 50 57 53 54 52 20 6c 70 42 75 66  ..  LPWSTR lpBuf
13fd0 66 65 72 2c 0d 0a 20 20 44 57 4f 52 44 20 6e 53  fer,..  DWORD nS
13fe0 69 7a 65 29 3b 0d 0a 2f 2f 20 23 69 66 64 65 66  ize);..// #ifdef
13ff0 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69 61 73 20   UNICODE..alias 
14000 47 65 74 45 6e 76 69 72 6f 6e 6d 65 6e 74 56 61  GetEnvironmentVa
14010 72 69 61 62 6c 65 57 20 47 65 74 45 6e 76 69 72  riableW GetEnvir
14020 6f 6e 6d 65 6e 74 56 61 72 69 61 62 6c 65 3b 0d  onmentVariable;.
14030 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e  .// #else..// #.
14040 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f  ....// #endif //
14050 20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78 74   !UNICODE....ext
14060 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
14070 6f 72 74 20 42 4f 4f 4c 20 53 65 74 45 6e 76 69  ort BOOL SetEnvi
14080 72 6f 6e 6d 65 6e 74 56 61 72 69 61 62 6c 65 41  ronmentVariableA
14090 28 0d 0a 20 20 4c 50 43 53 54 52 20 6c 70 4e 61  (..  LPCSTR lpNa
140a0 6d 65 2c 0d 0a 20 20 4c 50 43 53 54 52 20 6c 70  me,..  LPCSTR lp
140b0 56 61 6c 75 65 29 3b 0d 0a 65 78 74 65 72 6e 28  Value);..extern(
140c0 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
140d0 42 4f 4f 4c 20 53 65 74 45 6e 76 69 72 6f 6e 6d  BOOL SetEnvironm
140e0 65 6e 74 56 61 72 69 61 62 6c 65 57 28 0d 0a 20  entVariableW(.. 
140f0 20 4c 50 43 57 53 54 52 20 6c 70 4e 61 6d 65 2c   LPCWSTR lpName,
14100 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 56 61  ..  LPCWSTR lpVa
14110 6c 75 65 29 3b 0d 0a 2f 2f 20 23 69 66 64 65 66  lue);..// #ifdef
14120 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69 61 73 20   UNICODE..alias 
14130 53 65 74 45 6e 76 69 72 6f 6e 6d 65 6e 74 56 61  SetEnvironmentVa
14140 72 69 61 62 6c 65 57 20 53 65 74 45 6e 76 69 72  riableW SetEnvir
14150 6f 6e 6d 65 6e 74 56 61 72 69 61 62 6c 65 3b 0d  onmentVariable;.
14160 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e  .// #else..// #.
14170 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f  ....// #endif //
14180 20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78 74   !UNICODE....ext
14190 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
141a0 6f 72 74 20 44 57 4f 52 44 20 45 78 70 61 6e 64  ort DWORD Expand
141b0 45 6e 76 69 72 6f 6e 6d 65 6e 74 53 74 72 69 6e  EnvironmentStrin
141c0 67 73 41 28 0d 0a 20 20 4c 50 43 53 54 52 20 6c  gsA(..  LPCSTR l
141d0 70 53 72 63 2c 0d 0a 20 20 4c 50 53 54 52 20 6c  pSrc,..  LPSTR l
141e0 70 44 73 74 2c 0d 0a 20 20 44 57 4f 52 44 20 6e  pDst,..  DWORD n
141f0 53 69 7a 65 29 3b 0d 0a 65 78 74 65 72 6e 28 57  Size);..extern(W
14200 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 44  indows) export D
14210 57 4f 52 44 20 45 78 70 61 6e 64 45 6e 76 69 72  WORD ExpandEnvir
14220 6f 6e 6d 65 6e 74 53 74 72 69 6e 67 73 57 28 0d  onmentStringsW(.
14230 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 53 72 63  .  LPCWSTR lpSrc
14240 2c 0d 0a 20 20 4c 50 57 53 54 52 20 6c 70 44 73  ,..  LPWSTR lpDs
14250 74 2c 0d 0a 20 20 44 57 4f 52 44 20 6e 53 69 7a  t,..  DWORD nSiz
14260 65 29 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55  e);..// #ifdef U
14270 4e 49 43 4f 44 45 0d 0a 61 6c 69 61 73 20 45 78  NICODE..alias Ex
14280 70 61 6e 64 45 6e 76 69 72 6f 6e 6d 65 6e 74 53  pandEnvironmentS
14290 74 72 69 6e 67 73 57 20 45 78 70 61 6e 64 45 6e  tringsW ExpandEn
142a0 76 69 72 6f 6e 6d 65 6e 74 53 74 72 69 6e 67 73  vironmentStrings
142b0 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20  ;..// #else..// 
142c0 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20  #.....// #endif 
142d0 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65  // !UNICODE....e
142e0 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
142f0 78 70 6f 72 74 20 44 57 4f 52 44 20 47 65 74 46  xport DWORD GetF
14300 69 72 6d 77 61 72 65 45 6e 76 69 72 6f 6e 6d 65  irmwareEnvironme
14310 6e 74 56 61 72 69 61 62 6c 65 41 28 0d 0a 20 20  ntVariableA(..  
14320 4c 50 43 53 54 52 20 6c 70 4e 61 6d 65 2c 0d 0a  LPCSTR lpName,..
14330 20 20 4c 50 43 53 54 52 20 6c 70 47 75 69 64 2c    LPCSTR lpGuid,
14340 0d 0a 20 20 50 56 4f 49 44 20 70 42 75 66 66 65  ..  PVOID pBuffe
14350 72 2c 0d 0a 20 20 44 57 4f 52 44 20 6e 53 69 7a  r,..  DWORD nSiz
14360 65 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  e);..extern(Wind
14370 6f 77 73 29 20 65 78 70 6f 72 74 20 44 57 4f 52  ows) export DWOR
14380 44 20 47 65 74 46 69 72 6d 77 61 72 65 45 6e 76  D GetFirmwareEnv
14390 69 72 6f 6e 6d 65 6e 74 56 61 72 69 61 62 6c 65  ironmentVariable
143a0 57 28 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70  W(..  LPCWSTR lp
143b0 4e 61 6d 65 2c 0d 0a 20 20 4c 50 43 57 53 54 52  Name,..  LPCWSTR
143c0 20 6c 70 47 75 69 64 2c 0d 0a 20 20 50 56 4f 49   lpGuid,..  PVOI
143d0 44 20 70 42 75 66 66 65 72 2c 0d 0a 20 20 44 57  D pBuffer,..  DW
143e0 4f 52 44 20 6e 53 69 7a 65 29 3b 0d 0a 2f 2f 20  ORD nSize);..// 
143f0 23 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a  #ifdef UNICODE..
14400 61 6c 69 61 73 20 47 65 74 46 69 72 6d 77 61 72  alias GetFirmwar
14410 65 45 6e 76 69 72 6f 6e 6d 65 6e 74 56 61 72 69  eEnvironmentVari
14420 61 62 6c 65 57 20 47 65 74 46 69 72 6d 77 61 72  ableW GetFirmwar
14430 65 45 6e 76 69 72 6f 6e 6d 65 6e 74 56 61 72 69  eEnvironmentVari
14440 61 62 6c 65 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d  able;..// #else.
14450 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e  .// #.....// #en
14460 64 69 66 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d  dif // !UNICODE.
14470 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ...extern(Window
14480 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 53  s) export BOOL S
14490 65 74 46 69 72 6d 77 61 72 65 45 6e 76 69 72 6f  etFirmwareEnviro
144a0 6e 6d 65 6e 74 56 61 72 69 61 62 6c 65 41 28 0d  nmentVariableA(.
144b0 0a 20 20 4c 50 43 53 54 52 20 6c 70 4e 61 6d 65  .  LPCSTR lpName
144c0 2c 0d 0a 20 20 4c 50 43 53 54 52 20 6c 70 47 75  ,..  LPCSTR lpGu
144d0 69 64 2c 0d 0a 20 20 50 56 4f 49 44 20 70 56 61  id,..  PVOID pVa
144e0 6c 75 65 2c 0d 0a 20 20 44 57 4f 52 44 20 6e 53  lue,..  DWORD nS
144f0 69 7a 65 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69  ize);..extern(Wi
14500 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f  ndows) export BO
14510 4f 4c 20 53 65 74 46 69 72 6d 77 61 72 65 45 6e  OL SetFirmwareEn
14520 76 69 72 6f 6e 6d 65 6e 74 56 61 72 69 61 62 6c  vironmentVariabl
14530 65 57 28 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c  eW(..  LPCWSTR l
14540 70 4e 61 6d 65 2c 0d 0a 20 20 4c 50 43 57 53 54  pName,..  LPCWST
14550 52 20 6c 70 47 75 69 64 2c 0d 0a 20 20 50 56 4f  R lpGuid,..  PVO
14560 49 44 20 70 56 61 6c 75 65 2c 0d 0a 20 20 44 57  ID pValue,..  DW
14570 4f 52 44 20 6e 53 69 7a 65 29 3b 0d 0a 2f 2f 20  ORD nSize);..// 
14580 23 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a  #ifdef UNICODE..
14590 61 6c 69 61 73 20 53 65 74 46 69 72 6d 77 61 72  alias SetFirmwar
145a0 65 45 6e 76 69 72 6f 6e 6d 65 6e 74 56 61 72 69  eEnvironmentVari
145b0 61 62 6c 65 57 20 53 65 74 46 69 72 6d 77 61 72  ableW SetFirmwar
145c0 65 45 6e 76 69 72 6f 6e 6d 65 6e 74 56 61 72 69  eEnvironmentVari
145d0 61 62 6c 65 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d  able;..// #else.
145e0 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e  .// #.....// #en
145f0 64 69 66 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d  dif // !UNICODE.
14600 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ...extern(Window
14610 73 29 20 65 78 70 6f 72 74 20 56 4f 49 44 20 4f  s) export VOID O
14620 75 74 70 75 74 44 65 62 75 67 53 74 72 69 6e 67  utputDebugString
14630 41 28 0d 0a 20 20 4c 50 43 53 54 52 20 6c 70 4f  A(..  LPCSTR lpO
14640 75 74 70 75 74 53 74 72 69 6e 67 29 3b 0d 0a 65  utputString);..e
14650 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
14660 78 70 6f 72 74 20 56 4f 49 44 20 4f 75 74 70 75  xport VOID Outpu
14670 74 44 65 62 75 67 53 74 72 69 6e 67 57 28 0d 0a  tDebugStringW(..
14680 20 20 4c 50 43 57 53 54 52 20 6c 70 4f 75 74 70    LPCWSTR lpOutp
14690 75 74 53 74 72 69 6e 67 29 3b 0d 0a 2f 2f 20 23  utString);..// #
146a0 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61  ifdef UNICODE..a
146b0 6c 69 61 73 20 4f 75 74 70 75 74 44 65 62 75 67  lias OutputDebug
146c0 53 74 72 69 6e 67 57 20 4f 75 74 70 75 74 44 65  StringW OutputDe
146d0 62 75 67 53 74 72 69 6e 67 3b 0d 0a 2f 2f 20 23  bugString;..// #
146e0 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f  else..// #...../
146f0 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e 49  / #endif // !UNI
14700 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72 6e 28 57  CODE....extern(W
14710 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 48  indows) export H
14720 52 53 52 43 20 46 69 6e 64 52 65 73 6f 75 72 63  RSRC FindResourc
14730 65 41 28 0d 0a 20 20 48 4d 4f 44 55 4c 45 20 68  eA(..  HMODULE h
14740 4d 6f 64 75 6c 65 2c 0d 0a 20 20 4c 50 43 53 54  Module,..  LPCST
14750 52 20 6c 70 4e 61 6d 65 2c 0d 0a 20 20 4c 50 43  R lpName,..  LPC
14760 53 54 52 20 6c 70 54 79 70 65 29 3b 0d 0a 65 78  STR lpType);..ex
14770 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
14780 70 6f 72 74 20 48 52 53 52 43 20 46 69 6e 64 52  port HRSRC FindR
14790 65 73 6f 75 72 63 65 57 28 0d 0a 20 20 48 4d 4f  esourceW(..  HMO
147a0 44 55 4c 45 20 68 4d 6f 64 75 6c 65 2c 0d 0a 20  DULE hModule,.. 
147b0 20 4c 50 43 57 53 54 52 20 6c 70 4e 61 6d 65 2c   LPCWSTR lpName,
147c0 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 54 79  ..  LPCWSTR lpTy
147d0 70 65 29 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20  pe);..// #ifdef 
147e0 55 4e 49 43 4f 44 45 0d 0a 61 6c 69 61 73 20 46  UNICODE..alias F
147f0 69 6e 64 52 65 73 6f 75 72 63 65 57 20 46 69 6e  indResourceW Fin
14800 64 52 65 73 6f 75 72 63 65 3b 0d 0a 2f 2f 20 23  dResource;..// #
14810 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f  else..// #...../
14820 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e 49  / #endif // !UNI
14830 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72 6e 28 57  CODE....extern(W
14840 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 48  indows) export H
14850 52 53 52 43 20 46 69 6e 64 52 65 73 6f 75 72 63  RSRC FindResourc
14860 65 45 78 41 28 0d 0a 20 20 48 4d 4f 44 55 4c 45  eExA(..  HMODULE
14870 20 68 4d 6f 64 75 6c 65 2c 0d 0a 20 20 4c 50 43   hModule,..  LPC
14880 53 54 52 20 6c 70 54 79 70 65 2c 0d 0a 20 20 4c  STR lpType,..  L
14890 50 43 53 54 52 20 6c 70 4e 61 6d 65 2c 0d 0a 20  PCSTR lpName,.. 
148a0 20 57 4f 52 44 20 77 4c 61 6e 67 75 61 67 65 29   WORD wLanguage)
148b0 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ;..extern(Window
148c0 73 29 20 65 78 70 6f 72 74 20 48 52 53 52 43 20  s) export HRSRC 
148d0 46 69 6e 64 52 65 73 6f 75 72 63 65 45 78 57 28  FindResourceExW(
148e0 0d 0a 20 20 48 4d 4f 44 55 4c 45 20 68 4d 6f 64  ..  HMODULE hMod
148f0 75 6c 65 2c 0d 0a 20 20 4c 50 43 57 53 54 52 20  ule,..  LPCWSTR 
14900 6c 70 54 79 70 65 2c 0d 0a 20 20 4c 50 43 57 53  lpType,..  LPCWS
14910 54 52 20 6c 70 4e 61 6d 65 2c 0d 0a 20 20 57 4f  TR lpName,..  WO
14920 52 44 20 77 4c 61 6e 67 75 61 67 65 29 3b 0d 0a  RD wLanguage);..
14930 2f 2f 20 23 69 66 64 65 66 20 55 4e 49 43 4f 44  // #ifdef UNICOD
14940 45 0d 0a 61 6c 69 61 73 20 46 69 6e 64 52 65 73  E..alias FindRes
14950 6f 75 72 63 65 45 78 57 20 46 69 6e 64 52 65 73  ourceExW FindRes
14960 6f 75 72 63 65 45 78 3b 0d 0a 2f 2f 20 23 65 6c  ourceEx;..// #el
14970 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20  se..// #.....// 
14980 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e 49 43 4f  #endif // !UNICO
14990 44 45 0d 0a 0d 0a 2f 2f 20 23 69 66 64 65 66 20  DE....// #ifdef 
149a0 53 54 52 49 43 54 0d 0a 65 78 74 65 72 6e 28 57  STRICT..extern(W
149b0 69 6e 64 6f 77 73 29 20 61 6c 69 61 73 20 42 4f  indows) alias BO
149c0 4f 4c 20 66 75 6e 63 74 69 6f 6e 28 48 4d 4f 44  OL function(HMOD
149d0 55 4c 45 20 68 4d 6f 64 75 6c 65 2c 20 4c 50 53  ULE hModule, LPS
149e0 54 52 20 6c 70 54 79 70 65 2c 20 4c 4f 4e 47 5f  TR lpType, LONG_
149f0 50 54 52 20 6c 50 61 72 61 6d 29 20 45 4e 55 4d  PTR lParam) ENUM
14a00 52 45 53 54 59 50 45 50 52 4f 43 41 3b 0d 0a 65  RESTYPEPROCA;..e
14a10 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 61  xtern(Windows) a
14a20 6c 69 61 73 20 42 4f 4f 4c 20 66 75 6e 63 74 69  lias BOOL functi
14a30 6f 6e 28 48 4d 4f 44 55 4c 45 20 68 4d 6f 64 75  on(HMODULE hModu
14a40 6c 65 2c 20 4c 50 57 53 54 52 20 6c 70 54 79 70  le, LPWSTR lpTyp
14a50 65 2c 20 4c 4f 4e 47 5f 50 54 52 20 6c 50 61 72  e, LONG_PTR lPar
14a60 61 6d 29 20 45 4e 55 4d 52 45 53 54 59 50 45 50  am) ENUMRESTYPEP
14a70 52 4f 43 57 3b 0d 0a 2f 2f 20 23 69 66 64 65 66  ROCW;..// #ifdef
14a80 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69 61 73 20   UNICODE..alias 
14a90 45 4e 55 4d 52 45 53 54 59 50 45 50 52 4f 43 57  ENUMRESTYPEPROCW
14aa0 20 45 4e 55 4d 52 45 53 54 59 50 45 50 52 4f 43   ENUMRESTYPEPROC
14ab0 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20  ;..// #else..// 
14ac0 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20  #.....// #endif 
14ad0 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 65 78 74  // !UNICODE..ext
14ae0 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 61 6c 69  ern(Windows) ali
14af0 61 73 20 42 4f 4f 4c 20 66 75 6e 63 74 69 6f 6e  as BOOL function
14b00 28 48 4d 4f 44 55 4c 45 20 68 4d 6f 64 75 6c 65  (HMODULE hModule
14b10 2c 20 4c 50 43 53 54 52 20 6c 70 54 79 70 65 2c  , LPCSTR lpType,
14b20 20 4c 50 53 54 52 20 6c 70 4e 61 6d 65 2c 20 4c   LPSTR lpName, L
14b30 4f 4e 47 5f 50 54 52 20 6c 50 61 72 61 6d 29 20  ONG_PTR lParam) 
14b40 45 4e 55 4d 52 45 53 4e 41 4d 45 50 52 4f 43 41  ENUMRESNAMEPROCA
14b50 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ;..extern(Window
14b60 73 29 20 61 6c 69 61 73 20 42 4f 4f 4c 20 66 75  s) alias BOOL fu
14b70 6e 63 74 69 6f 6e 28 48 4d 4f 44 55 4c 45 20 68  nction(HMODULE h
14b80 4d 6f 64 75 6c 65 2c 20 4c 50 43 57 53 54 52 20  Module, LPCWSTR 
14b90 6c 70 54 79 70 65 2c 20 4c 50 57 53 54 52 20 6c  lpType, LPWSTR l
14ba0 70 4e 61 6d 65 2c 20 4c 4f 4e 47 5f 50 54 52 20  pName, LONG_PTR 
14bb0 6c 50 61 72 61 6d 29 20 45 4e 55 4d 52 45 53 4e  lParam) ENUMRESN
14bc0 41 4d 45 50 52 4f 43 57 3b 0d 0a 2f 2f 20 23 69  AMEPROCW;..// #i
14bd0 66 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61 6c  fdef UNICODE..al
14be0 69 61 73 20 45 4e 55 4d 52 45 53 4e 41 4d 45 50  ias ENUMRESNAMEP
14bf0 52 4f 43 57 20 45 4e 55 4d 52 45 53 4e 41 4d 45  ROCW ENUMRESNAME
14c00 50 52 4f 43 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d  PROC;..// #else.
14c10 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e  .// #.....// #en
14c20 64 69 66 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d  dif // !UNICODE.
14c30 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29  .extern(Windows)
14c40 20 61 6c 69 61 73 20 42 4f 4f 4c 20 66 75 6e 63   alias BOOL func
14c50 74 69 6f 6e 28 48 4d 4f 44 55 4c 45 20 68 4d 6f  tion(HMODULE hMo
14c60 64 75 6c 65 2c 20 4c 50 43 53 54 52 20 6c 70 54  dule, LPCSTR lpT
14c70 79 70 65 2c 20 4c 50 43 53 54 52 20 6c 70 4e 61  ype, LPCSTR lpNa
14c80 6d 65 2c 20 57 4f 52 44 20 77 4c 61 6e 67 75 61  me, WORD wLangua
14c90 67 65 2c 20 4c 4f 4e 47 5f 50 54 52 20 6c 50 61  ge, LONG_PTR lPa
14ca0 72 61 6d 29 20 45 4e 55 4d 52 45 53 4c 41 4e 47  ram) ENUMRESLANG
14cb0 50 52 4f 43 41 3b 0d 0a 65 78 74 65 72 6e 28 57  PROCA;..extern(W
14cc0 69 6e 64 6f 77 73 29 20 61 6c 69 61 73 20 42 4f  indows) alias BO
14cd0 4f 4c 20 66 75 6e 63 74 69 6f 6e 28 48 4d 4f 44  OL function(HMOD
14ce0 55 4c 45 20 68 4d 6f 64 75 6c 65 2c 20 4c 50 43  ULE hModule, LPC
14cf0 57 53 54 52 20 6c 70 54 79 70 65 2c 20 4c 50 43  WSTR lpType, LPC
14d00 57 53 54 52 20 6c 70 4e 61 6d 65 2c 20 57 4f 52  WSTR lpName, WOR
14d10 44 20 77 4c 61 6e 67 75 61 67 65 2c 20 4c 4f 4e  D wLanguage, LON
14d20 47 5f 50 54 52 20 6c 50 61 72 61 6d 29 20 45 4e  G_PTR lParam) EN
14d30 55 4d 52 45 53 4c 41 4e 47 50 52 4f 43 57 3b 0d  UMRESLANGPROCW;.
14d40 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e 49 43 4f  .// #ifdef UNICO
14d50 44 45 0d 0a 61 6c 69 61 73 20 45 4e 55 4d 52 45  DE..alias ENUMRE
14d60 53 4c 41 4e 47 50 52 4f 43 57 20 45 4e 55 4d 52  SLANGPROCW ENUMR
14d70 45 53 4c 41 4e 47 50 52 4f 43 3b 0d 0a 2f 2f 20  ESLANGPROC;..// 
14d80 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a  #else..// #.....
14d90 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e  // #endif // !UN
14da0 49 43 4f 44 45 0d 0a 2f 2f 20 23 65 6c 73 65 0d  ICODE..// #else.
14db0 0a 2f 2f 20 2e 2e 2e 0d 0a 2f 2f 20 23 69 66 64  .// .....// #ifd
14dc0 65 66 20 55 4e 49 43 4f 44 45 0d 0a 2f 2f 20 2e  ef UNICODE..// .
14dd0 2e 2e 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f  ....// #else..//
14de0 20 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20   .....// #endif 
14df0 2f 2f 20 55 4e 49 43 4f 44 45 0d 0a 2f 2f 20 2e  // UNICODE..// .
14e00 2e 2e 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e  ....// #ifdef UN
14e10 49 43 4f 44 45 0d 0a 2f 2f 20 2e 2e 2e 0d 0a 2f  ICODE..// ...../
14e20 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 2e 2e 2e 0d  / #else..// ....
14e30 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 55 4e  .// #endif // UN
14e40 49 43 4f 44 45 0d 0a 2f 2f 20 2e 2e 2e 0d 0a 2f  ICODE..// ...../
14e50 2f 20 23 69 66 64 65 66 20 55 4e 49 43 4f 44 45  / #ifdef UNICODE
14e60 0d 0a 2f 2f 20 2e 2e 2e 0d 0a 2f 2f 20 23 65 6c  ..// .....// #el
14e70 73 65 0d 0a 2f 2f 20 2e 2e 2e 0d 0a 2f 2f 20 23  se..// .....// #
14e80 65 6e 64 69 66 20 2f 2f 20 55 4e 49 43 4f 44 45  endif // UNICODE
14e90 0d 0a 2f 2f 20 23 65 6e 64 69 66 0d 0a 0d 0a 65  ..// #endif....e
14ea0 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
14eb0 78 70 6f 72 74 20 42 4f 4f 4c 20 45 6e 75 6d 52  xport BOOL EnumR
14ec0 65 73 6f 75 72 63 65 54 79 70 65 73 41 28 0d 0a  esourceTypesA(..
14ed0 20 20 48 4d 4f 44 55 4c 45 20 68 4d 6f 64 75 6c    HMODULE hModul
14ee0 65 2c 0d 0a 20 20 45 4e 55 4d 52 45 53 54 59 50  e,..  ENUMRESTYP
14ef0 45 50 52 4f 43 41 20 6c 70 45 6e 75 6d 46 75 6e  EPROCA lpEnumFun
14f00 63 2c 0d 0a 20 20 4c 4f 4e 47 5f 50 54 52 20 6c  c,..  LONG_PTR l
14f10 50 61 72 61 6d 29 3b 0d 0a 65 78 74 65 72 6e 28  Param);..extern(
14f20 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
14f30 42 4f 4f 4c 20 45 6e 75 6d 52 65 73 6f 75 72 63  BOOL EnumResourc
14f40 65 54 79 70 65 73 57 28 0d 0a 20 20 48 4d 4f 44  eTypesW(..  HMOD
14f50 55 4c 45 20 68 4d 6f 64 75 6c 65 2c 0d 0a 20 20  ULE hModule,..  
14f60 45 4e 55 4d 52 45 53 54 59 50 45 50 52 4f 43 57  ENUMRESTYPEPROCW
14f70 20 6c 70 45 6e 75 6d 46 75 6e 63 2c 0d 0a 20 20   lpEnumFunc,..  
14f80 4c 4f 4e 47 5f 50 54 52 20 6c 50 61 72 61 6d 29  LONG_PTR lParam)
14f90 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e 49  ;..// #ifdef UNI
14fa0 43 4f 44 45 0d 0a 61 6c 69 61 73 20 45 6e 75 6d  CODE..alias Enum
14fb0 52 65 73 6f 75 72 63 65 54 79 70 65 73 57 20 45  ResourceTypesW E
14fc0 6e 75 6d 52 65 73 6f 75 72 63 65 54 79 70 65 73  numResourceTypes
14fd0 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20  ;..// #else..// 
14fe0 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20  #.....// #endif 
14ff0 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65  // !UNICODE....e
15000 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
15010 78 70 6f 72 74 20 42 4f 4f 4c 20 45 6e 75 6d 52  xport BOOL EnumR
15020 65 73 6f 75 72 63 65 4e 61 6d 65 73 41 28 0d 0a  esourceNamesA(..
15030 20 20 48 4d 4f 44 55 4c 45 20 68 4d 6f 64 75 6c    HMODULE hModul
15040 65 2c 0d 0a 20 20 4c 50 43 53 54 52 20 6c 70 54  e,..  LPCSTR lpT
15050 79 70 65 2c 0d 0a 20 20 45 4e 55 4d 52 45 53 4e  ype,..  ENUMRESN
15060 41 4d 45 50 52 4f 43 41 20 6c 70 45 6e 75 6d 46  AMEPROCA lpEnumF
15070 75 6e 63 2c 0d 0a 20 20 4c 4f 4e 47 5f 50 54 52  unc,..  LONG_PTR
15080 20 6c 50 61 72 61 6d 29 3b 0d 0a 65 78 74 65 72   lParam);..exter
15090 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
150a0 74 20 42 4f 4f 4c 20 45 6e 75 6d 52 65 73 6f 75  t BOOL EnumResou
150b0 72 63 65 4e 61 6d 65 73 57 28 0d 0a 20 20 48 4d  rceNamesW(..  HM
150c0 4f 44 55 4c 45 20 68 4d 6f 64 75 6c 65 2c 0d 0a  ODULE hModule,..
150d0 20 20 4c 50 43 57 53 54 52 20 6c 70 54 79 70 65    LPCWSTR lpType
150e0 2c 0d 0a 20 20 45 4e 55 4d 52 45 53 4e 41 4d 45  ,..  ENUMRESNAME
150f0 50 52 4f 43 57 20 6c 70 45 6e 75 6d 46 75 6e 63  PROCW lpEnumFunc
15100 2c 0d 0a 20 20 4c 4f 4e 47 5f 50 54 52 20 6c 50  ,..  LONG_PTR lP
15110 61 72 61 6d 29 3b 0d 0a 2f 2f 20 23 69 66 64 65  aram);..// #ifde
15120 66 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69 61 73  f UNICODE..alias
15130 20 45 6e 75 6d 52 65 73 6f 75 72 63 65 4e 61 6d   EnumResourceNam
15140 65 73 57 20 45 6e 75 6d 52 65 73 6f 75 72 63 65  esW EnumResource
15150 4e 61 6d 65 73 3b 0d 0a 2f 2f 20 23 65 6c 73 65  Names;..// #else
15160 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65  ..// #.....// #e
15170 6e 64 69 66 20 2f 2f 20 21 55 4e 49 43 4f 44 45  ndif // !UNICODE
15180 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f  ....extern(Windo
15190 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20  ws) export BOOL 
151a0 45 6e 75 6d 52 65 73 6f 75 72 63 65 4c 61 6e 67  EnumResourceLang
151b0 75 61 67 65 73 41 28 0d 0a 20 20 48 4d 4f 44 55  uagesA(..  HMODU
151c0 4c 45 20 68 4d 6f 64 75 6c 65 2c 0d 0a 20 20 4c  LE hModule,..  L
151d0 50 43 53 54 52 20 6c 70 54 79 70 65 2c 0d 0a 20  PCSTR lpType,.. 
151e0 20 4c 50 43 53 54 52 20 6c 70 4e 61 6d 65 2c 0d   LPCSTR lpName,.
151f0 0a 20 20 45 4e 55 4d 52 45 53 4c 41 4e 47 50 52  .  ENUMRESLANGPR
15200 4f 43 41 20 6c 70 45 6e 75 6d 46 75 6e 63 2c 0d  OCA lpEnumFunc,.
15210 0a 20 20 4c 4f 4e 47 5f 50 54 52 20 6c 50 61 72  .  LONG_PTR lPar
15220 61 6d 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e  am);..extern(Win
15230 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f  dows) export BOO
15240 4c 20 45 6e 75 6d 52 65 73 6f 75 72 63 65 4c 61  L EnumResourceLa
15250 6e 67 75 61 67 65 73 57 28 0d 0a 20 20 48 4d 4f  nguagesW(..  HMO
15260 44 55 4c 45 20 68 4d 6f 64 75 6c 65 2c 0d 0a 20  DULE hModule,.. 
15270 20 4c 50 43 57 53 54 52 20 6c 70 54 79 70 65 2c   LPCWSTR lpType,
15280 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 4e 61  ..  LPCWSTR lpNa
15290 6d 65 2c 0d 0a 20 20 45 4e 55 4d 52 45 53 4c 41  me,..  ENUMRESLA
152a0 4e 47 50 52 4f 43 57 20 6c 70 45 6e 75 6d 46 75  NGPROCW lpEnumFu
152b0 6e 63 2c 0d 0a 20 20 4c 4f 4e 47 5f 50 54 52 20  nc,..  LONG_PTR 
152c0 6c 50 61 72 61 6d 29 3b 0d 0a 2f 2f 20 23 69 66  lParam);..// #if
152d0 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69  def UNICODE..ali
152e0 61 73 20 45 6e 75 6d 52 65 73 6f 75 72 63 65 4c  as EnumResourceL
152f0 61 6e 67 75 61 67 65 73 57 20 45 6e 75 6d 52 65  anguagesW EnumRe
15300 73 6f 75 72 63 65 4c 61 6e 67 75 61 67 65 73 3b  sourceLanguages;
15310 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23  ..// #else..// #
15320 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f  .....// #endif /
15330 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78  / !UNICODE....ex
15340 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
15350 70 6f 72 74 20 48 41 4e 44 4c 45 20 42 65 67 69  port HANDLE Begi
15360 6e 55 70 64 61 74 65 52 65 73 6f 75 72 63 65 41  nUpdateResourceA
15370 28 0d 0a 20 20 4c 50 43 53 54 52 20 70 46 69 6c  (..  LPCSTR pFil
15380 65 4e 61 6d 65 2c 0d 0a 20 20 42 4f 4f 4c 20 62  eName,..  BOOL b
15390 44 65 6c 65 74 65 45 78 69 73 74 69 6e 67 52 65  DeleteExistingRe
153a0 73 6f 75 72 63 65 73 29 3b 0d 0a 65 78 74 65 72  sources);..exter
153b0 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
153c0 74 20 48 41 4e 44 4c 45 20 42 65 67 69 6e 55 70  t HANDLE BeginUp
153d0 64 61 74 65 52 65 73 6f 75 72 63 65 57 28 0d 0a  dateResourceW(..
153e0 20 20 4c 50 43 57 53 54 52 20 70 46 69 6c 65 4e    LPCWSTR pFileN
153f0 61 6d 65 2c 0d 0a 20 20 42 4f 4f 4c 20 62 44 65  ame,..  BOOL bDe
15400 6c 65 74 65 45 78 69 73 74 69 6e 67 52 65 73 6f  leteExistingReso
15410 75 72 63 65 73 29 3b 0d 0a 2f 2f 20 23 69 66 64  urces);..// #ifd
15420 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69 61  ef UNICODE..alia
15430 73 20 42 65 67 69 6e 55 70 64 61 74 65 52 65 73  s BeginUpdateRes
15440 6f 75 72 63 65 57 20 42 65 67 69 6e 55 70 64 61  ourceW BeginUpda
15450 74 65 52 65 73 6f 75 72 63 65 3b 0d 0a 2f 2f 20  teResource;..// 
15460 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a  #else..// #.....
15470 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e  // #endif // !UN
15480 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72 6e 28  ICODE....extern(
15490 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
154a0 42 4f 4f 4c 20 55 70 64 61 74 65 52 65 73 6f 75  BOOL UpdateResou
154b0 72 63 65 41 28 0d 0a 20 20 48 41 4e 44 4c 45 20  rceA(..  HANDLE 
154c0 68 55 70 64 61 74 65 2c 0d 0a 20 20 4c 50 43 53  hUpdate,..  LPCS
154d0 54 52 20 6c 70 54 79 70 65 2c 0d 0a 20 20 4c 50  TR lpType,..  LP
154e0 43 53 54 52 20 6c 70 4e 61 6d 65 2c 0d 0a 20 20  CSTR lpName,..  
154f0 57 4f 52 44 20 77 4c 61 6e 67 75 61 67 65 2c 0d  WORD wLanguage,.
15500 0a 20 20 4c 50 56 4f 49 44 20 6c 70 44 61 74 61  .  LPVOID lpData
15510 2c 0d 0a 20 20 44 57 4f 52 44 20 63 62 44 61 74  ,..  DWORD cbDat
15520 61 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  a);..extern(Wind
15530 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c  ows) export BOOL
15540 20 55 70 64 61 74 65 52 65 73 6f 75 72 63 65 57   UpdateResourceW
15550 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68 55 70 64  (..  HANDLE hUpd
15560 61 74 65 2c 0d 0a 20 20 4c 50 43 57 53 54 52 20  ate,..  LPCWSTR 
15570 6c 70 54 79 70 65 2c 0d 0a 20 20 4c 50 43 57 53  lpType,..  LPCWS
15580 54 52 20 6c 70 4e 61 6d 65 2c 0d 0a 20 20 57 4f  TR lpName,..  WO
15590 52 44 20 77 4c 61 6e 67 75 61 67 65 2c 0d 0a 20  RD wLanguage,.. 
155a0 20 4c 50 56 4f 49 44 20 6c 70 44 61 74 61 2c 0d   LPVOID lpData,.
155b0 0a 20 20 44 57 4f 52 44 20 63 62 44 61 74 61 29  .  DWORD cbData)
155c0 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e 49  ;..// #ifdef UNI
155d0 43 4f 44 45 0d 0a 61 6c 69 61 73 20 55 70 64 61  CODE..alias Upda
155e0 74 65 52 65 73 6f 75 72 63 65 57 20 55 70 64 61  teResourceW Upda
155f0 74 65 52 65 73 6f 75 72 63 65 3b 0d 0a 2f 2f 20  teResource;..// 
15600 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a  #else..// #.....
15610 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e  // #endif // !UN
15620 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72 6e 28  ICODE....extern(
15630 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
15640 42 4f 4f 4c 20 45 6e 64 55 70 64 61 74 65 52 65  BOOL EndUpdateRe
15650 73 6f 75 72 63 65 41 28 0d 0a 20 20 48 41 4e 44  sourceA(..  HAND
15660 4c 45 20 68 55 70 64 61 74 65 2c 0d 0a 20 20 42  LE hUpdate,..  B
15670 4f 4f 4c 20 66 44 69 73 63 61 72 64 29 3b 0d 0a  OOL fDiscard);..
15680 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
15690 65 78 70 6f 72 74 20 42 4f 4f 4c 20 45 6e 64 55  export BOOL EndU
156a0 70 64 61 74 65 52 65 73 6f 75 72 63 65 57 28 0d  pdateResourceW(.
156b0 0a 20 20 48 41 4e 44 4c 45 20 68 55 70 64 61 74  .  HANDLE hUpdat
156c0 65 2c 0d 0a 20 20 42 4f 4f 4c 20 66 44 69 73 63  e,..  BOOL fDisc
156d0 61 72 64 29 3b 0d 0a 2f 2f 20 23 69 66 64 65 66  ard);..// #ifdef
156e0 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69 61 73 20   UNICODE..alias 
156f0 45 6e 64 55 70 64 61 74 65 52 65 73 6f 75 72 63  EndUpdateResourc
15700 65 57 20 45 6e 64 55 70 64 61 74 65 52 65 73 6f  eW EndUpdateReso
15710 75 72 63 65 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d  urce;..// #else.
15720 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e  .// #.....// #en
15730 64 69 66 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d  dif // !UNICODE.
15740 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ...extern(Window
15750 73 29 20 65 78 70 6f 72 74 20 41 54 4f 4d 20 47  s) export ATOM G
15760 6c 6f 62 61 6c 41 64 64 41 74 6f 6d 41 28 0d 0a  lobalAddAtomA(..
15770 20 20 4c 50 43 53 54 52 20 6c 70 53 74 72 69 6e    LPCSTR lpStrin
15780 67 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  g);..extern(Wind
15790 6f 77 73 29 20 65 78 70 6f 72 74 20 41 54 4f 4d  ows) export ATOM
157a0 20 47 6c 6f 62 61 6c 41 64 64 41 74 6f 6d 57 28   GlobalAddAtomW(
157b0 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 53 74  ..  LPCWSTR lpSt
157c0 72 69 6e 67 29 3b 0d 0a 2f 2f 20 23 69 66 64 65  ring);..// #ifde
157d0 66 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69 61 73  f UNICODE..alias
157e0 20 47 6c 6f 62 61 6c 41 64 64 41 74 6f 6d 57 20   GlobalAddAtomW 
157f0 47 6c 6f 62 61 6c 41 64 64 41 74 6f 6d 3b 0d 0a  GlobalAddAtom;..
15800 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e  // #else..// #..
15810 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20  ...// #endif // 
15820 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65  !UNICODE....exte
15830 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
15840 72 74 20 41 54 4f 4d 20 47 6c 6f 62 61 6c 46 69  rt ATOM GlobalFi
15850 6e 64 41 74 6f 6d 41 28 0d 0a 20 20 4c 50 43 53  ndAtomA(..  LPCS
15860 54 52 20 6c 70 53 74 72 69 6e 67 29 3b 0d 0a 65  TR lpString);..e
15870 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
15880 78 70 6f 72 74 20 41 54 4f 4d 20 47 6c 6f 62 61  xport ATOM Globa
15890 6c 46 69 6e 64 41 74 6f 6d 57 28 0d 0a 20 20 4c  lFindAtomW(..  L
158a0 50 43 57 53 54 52 20 6c 70 53 74 72 69 6e 67 29  PCWSTR lpString)
158b0 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e 49  ;..// #ifdef UNI
158c0 43 4f 44 45 0d 0a 61 6c 69 61 73 20 47 6c 6f 62  CODE..alias Glob
158d0 61 6c 46 69 6e 64 41 74 6f 6d 57 20 47 6c 6f 62  alFindAtomW Glob
158e0 61 6c 46 69 6e 64 41 74 6f 6d 3b 0d 0a 2f 2f 20  alFindAtom;..// 
158f0 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a  #else..// #.....
15900 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e  // #endif // !UN
15910 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72 6e 28  ICODE....extern(
15920 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
15930 55 49 4e 54 20 47 6c 6f 62 61 6c 47 65 74 41 74  UINT GlobalGetAt
15940 6f 6d 4e 61 6d 65 41 28 0d 0a 20 20 41 54 4f 4d  omNameA(..  ATOM
15950 20 6e 41 74 6f 6d 2c 0d 0a 20 20 4c 50 53 54 52   nAtom,..  LPSTR
15960 20 6c 70 42 75 66 66 65 72 2c 0d 0a 20 20 69 6e   lpBuffer,..  in
15970 74 20 6e 53 69 7a 65 29 3b 0d 0a 65 78 74 65 72  t nSize);..exter
15980 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
15990 74 20 55 49 4e 54 20 47 6c 6f 62 61 6c 47 65 74  t UINT GlobalGet
159a0 41 74 6f 6d 4e 61 6d 65 57 28 0d 0a 20 20 41 54  AtomNameW(..  AT
159b0 4f 4d 20 6e 41 74 6f 6d 2c 0d 0a 20 20 4c 50 57  OM nAtom,..  LPW
159c0 53 54 52 20 6c 70 42 75 66 66 65 72 2c 0d 0a 20  STR lpBuffer,.. 
159d0 20 69 6e 74 20 6e 53 69 7a 65 29 3b 0d 0a 2f 2f   int nSize);..//
159e0 20 23 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d   #ifdef UNICODE.
159f0 0a 61 6c 69 61 73 20 47 6c 6f 62 61 6c 47 65 74  .alias GlobalGet
15a00 41 74 6f 6d 4e 61 6d 65 57 20 47 6c 6f 62 61 6c  AtomNameW Global
15a10 47 65 74 41 74 6f 6d 4e 61 6d 65 3b 0d 0a 2f 2f  GetAtomName;..//
15a20 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d   #else..// #....
15a30 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55  .// #endif // !U
15a40 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72 6e  NICODE....extern
15a50 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
15a60 20 41 54 4f 4d 20 41 64 64 41 74 6f 6d 41 28 0d   ATOM AddAtomA(.
15a70 0a 20 20 4c 50 43 53 54 52 20 6c 70 53 74 72 69  .  LPCSTR lpStri
15a80 6e 67 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e  ng);..extern(Win
15a90 64 6f 77 73 29 20 65 78 70 6f 72 74 20 41 54 4f  dows) export ATO
15aa0 4d 20 41 64 64 41 74 6f 6d 57 28 0d 0a 20 20 4c  M AddAtomW(..  L
15ab0 50 43 57 53 54 52 20 6c 70 53 74 72 69 6e 67 29  PCWSTR lpString)
15ac0 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e 49  ;..// #ifdef UNI
15ad0 43 4f 44 45 0d 0a 61 6c 69 61 73 20 41 64 64 41  CODE..alias AddA
15ae0 74 6f 6d 57 20 41 64 64 41 74 6f 6d 3b 0d 0a 2f  tomW AddAtom;../
15af0 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e  / #else..// #...
15b00 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21  ..// #endif // !
15b10 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72  UNICODE....exter
15b20 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
15b30 74 20 41 54 4f 4d 20 46 69 6e 64 41 74 6f 6d 41  t ATOM FindAtomA
15b40 28 0d 0a 20 20 4c 50 43 53 54 52 20 6c 70 53 74  (..  LPCSTR lpSt
15b50 72 69 6e 67 29 3b 0d 0a 65 78 74 65 72 6e 28 57  ring);..extern(W
15b60 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 41  indows) export A
15b70 54 4f 4d 20 46 69 6e 64 41 74 6f 6d 57 28 0d 0a  TOM FindAtomW(..
15b80 20 20 4c 50 43 57 53 54 52 20 6c 70 53 74 72 69    LPCWSTR lpStri
15b90 6e 67 29 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20  ng);..// #ifdef 
15ba0 55 4e 49 43 4f 44 45 0d 0a 61 6c 69 61 73 20 46  UNICODE..alias F
15bb0 69 6e 64 41 74 6f 6d 57 20 46 69 6e 64 41 74 6f  indAtomW FindAto
15bc0 6d 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f  m;..// #else..//
15bd0 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66   #.....// #endif
15be0 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a   // !UNICODE....
15bf0 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
15c00 65 78 70 6f 72 74 20 55 49 4e 54 20 47 65 74 41  export UINT GetA
15c10 74 6f 6d 4e 61 6d 65 41 28 0d 0a 20 20 41 54 4f  tomNameA(..  ATO
15c20 4d 20 6e 41 74 6f 6d 2c 0d 0a 20 20 4c 50 53 54  M nAtom,..  LPST
15c30 52 20 6c 70 42 75 66 66 65 72 2c 0d 0a 20 20 69  R lpBuffer,..  i
15c40 6e 74 20 6e 53 69 7a 65 29 3b 0d 0a 65 78 74 65  nt nSize);..exte
15c50 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
15c60 72 74 20 55 49 4e 54 20 47 65 74 41 74 6f 6d 4e  rt UINT GetAtomN
15c70 61 6d 65 57 28 0d 0a 20 20 41 54 4f 4d 20 6e 41  ameW(..  ATOM nA
15c80 74 6f 6d 2c 0d 0a 20 20 4c 50 57 53 54 52 20 6c  tom,..  LPWSTR l
15c90 70 42 75 66 66 65 72 2c 0d 0a 20 20 69 6e 74 20  pBuffer,..  int 
15ca0 6e 53 69 7a 65 29 3b 0d 0a 2f 2f 20 23 69 66 64  nSize);..// #ifd
15cb0 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69 61  ef UNICODE..alia
15cc0 73 20 47 65 74 41 74 6f 6d 4e 61 6d 65 57 20 47  s GetAtomNameW G
15cd0 65 74 41 74 6f 6d 4e 61 6d 65 3b 0d 0a 2f 2f 20  etAtomName;..// 
15ce0 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a  #else..// #.....
15cf0 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e  // #endif // !UN
15d00 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72 6e 28  ICODE....extern(
15d10 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
15d20 55 49 4e 54 20 47 65 74 50 72 6f 66 69 6c 65 49  UINT GetProfileI
15d30 6e 74 41 28 0d 0a 20 20 4c 50 43 53 54 52 20 6c  ntA(..  LPCSTR l
15d40 70 41 70 70 4e 61 6d 65 2c 0d 0a 20 20 4c 50 43  pAppName,..  LPC
15d50 53 54 52 20 6c 70 4b 65 79 4e 61 6d 65 2c 0d 0a  STR lpKeyName,..
15d60 20 20 49 4e 54 20 6e 44 65 66 61 75 6c 74 29 3b    INT nDefault);
15d70 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
15d80 29 20 65 78 70 6f 72 74 20 55 49 4e 54 20 47 65  ) export UINT Ge
15d90 74 50 72 6f 66 69 6c 65 49 6e 74 57 28 0d 0a 20  tProfileIntW(.. 
15da0 20 4c 50 43 57 53 54 52 20 6c 70 41 70 70 4e 61   LPCWSTR lpAppNa
15db0 6d 65 2c 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c  me,..  LPCWSTR l
15dc0 70 4b 65 79 4e 61 6d 65 2c 0d 0a 20 20 49 4e 54  pKeyName,..  INT
15dd0 20 6e 44 65 66 61 75 6c 74 29 3b 0d 0a 2f 2f 20   nDefault);..// 
15de0 23 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a  #ifdef UNICODE..
15df0 61 6c 69 61 73 20 47 65 74 50 72 6f 66 69 6c 65  alias GetProfile
15e00 49 6e 74 57 20 47 65 74 50 72 6f 66 69 6c 65 49  IntW GetProfileI
15e10 6e 74 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f  nt;..// #else../
15e20 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69  / #.....// #endi
15e30 66 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 0d  f // !UNICODE...
15e40 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29  .extern(Windows)
15e50 20 65 78 70 6f 72 74 20 44 57 4f 52 44 20 47 65   export DWORD Ge
15e60 74 50 72 6f 66 69 6c 65 53 74 72 69 6e 67 41 28  tProfileStringA(
15e70 0d 0a 20 20 4c 50 43 53 54 52 20 6c 70 41 70 70  ..  LPCSTR lpApp
15e80 4e 61 6d 65 2c 0d 0a 20 20 4c 50 43 53 54 52 20  Name,..  LPCSTR 
15e90 6c 70 4b 65 79 4e 61 6d 65 2c 0d 0a 20 20 4c 50  lpKeyName,..  LP
15ea0 43 53 54 52 20 6c 70 44 65 66 61 75 6c 74 2c 0d  CSTR lpDefault,.
15eb0 0a 20 20 4c 50 53 54 52 20 6c 70 52 65 74 75 72  .  LPSTR lpRetur
15ec0 6e 65 64 53 74 72 69 6e 67 2c 0d 0a 20 20 44 57  nedString,..  DW
15ed0 4f 52 44 20 6e 53 69 7a 65 29 3b 0d 0a 65 78 74  ORD nSize);..ext
15ee0 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
15ef0 6f 72 74 20 44 57 4f 52 44 20 47 65 74 50 72 6f  ort DWORD GetPro
15f00 66 69 6c 65 53 74 72 69 6e 67 57 28 0d 0a 20 20  fileStringW(..  
15f10 4c 50 43 57 53 54 52 20 6c 70 41 70 70 4e 61 6d  LPCWSTR lpAppNam
15f20 65 2c 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70  e,..  LPCWSTR lp
15f30 4b 65 79 4e 61 6d 65 2c 0d 0a 20 20 4c 50 43 57  KeyName,..  LPCW
15f40 53 54 52 20 6c 70 44 65 66 61 75 6c 74 2c 0d 0a  STR lpDefault,..
15f50 20 20 4c 50 57 53 54 52 20 6c 70 52 65 74 75 72    LPWSTR lpRetur
15f60 6e 65 64 53 74 72 69 6e 67 2c 0d 0a 20 20 44 57  nedString,..  DW
15f70 4f 52 44 20 6e 53 69 7a 65 29 3b 0d 0a 2f 2f 20  ORD nSize);..// 
15f80 23 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a  #ifdef UNICODE..
15f90 61 6c 69 61 73 20 47 65 74 50 72 6f 66 69 6c 65  alias GetProfile
15fa0 53 74 72 69 6e 67 57 20 47 65 74 50 72 6f 66 69  StringW GetProfi
15fb0 6c 65 53 74 72 69 6e 67 3b 0d 0a 2f 2f 20 23 65  leString;..// #e
15fc0 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f  lse..// #.....//
15fd0 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e 49 43   #endif // !UNIC
15fe0 4f 44 45 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69  ODE....extern(Wi
15ff0 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f  ndows) export BO
16000 4f 4c 20 57 72 69 74 65 50 72 6f 66 69 6c 65 53  OL WriteProfileS
16010 74 72 69 6e 67 41 28 0d 0a 20 20 4c 50 43 53 54  tringA(..  LPCST
16020 52 20 6c 70 41 70 70 4e 61 6d 65 2c 0d 0a 20 20  R lpAppName,..  
16030 4c 50 43 53 54 52 20 6c 70 4b 65 79 4e 61 6d 65  LPCSTR lpKeyName
16040 2c 0d 0a 20 20 4c 50 43 53 54 52 20 6c 70 53 74  ,..  LPCSTR lpSt
16050 72 69 6e 67 29 3b 0d 0a 65 78 74 65 72 6e 28 57  ring);..extern(W
16060 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42  indows) export B
16070 4f 4f 4c 20 57 72 69 74 65 50 72 6f 66 69 6c 65  OOL WriteProfile
16080 53 74 72 69 6e 67 57 28 0d 0a 20 20 4c 50 43 57  StringW(..  LPCW
16090 53 54 52 20 6c 70 41 70 70 4e 61 6d 65 2c 0d 0a  STR lpAppName,..
160a0 20 20 4c 50 43 57 53 54 52 20 6c 70 4b 65 79 4e    LPCWSTR lpKeyN
160b0 61 6d 65 2c 0d 0a 20 20 4c 50 43 57 53 54 52 20  ame,..  LPCWSTR 
160c0 6c 70 53 74 72 69 6e 67 29 3b 0d 0a 2f 2f 20 23  lpString);..// #
160d0 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61  ifdef UNICODE..a
160e0 6c 69 61 73 20 57 72 69 74 65 50 72 6f 66 69 6c  lias WriteProfil
160f0 65 53 74 72 69 6e 67 57 20 57 72 69 74 65 50 72  eStringW WritePr
16100 6f 66 69 6c 65 53 74 72 69 6e 67 3b 0d 0a 2f 2f  ofileString;..//
16110 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d   #else..// #....
16120 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55  .// #endif // !U
16130 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72 6e  NICODE....extern
16140 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
16150 20 44 57 4f 52 44 20 47 65 74 50 72 6f 66 69 6c   DWORD GetProfil
16160 65 53 65 63 74 69 6f 6e 41 28 0d 0a 20 20 4c 50  eSectionA(..  LP
16170 43 53 54 52 20 6c 70 41 70 70 4e 61 6d 65 2c 0d  CSTR lpAppName,.
16180 0a 20 20 4c 50 53 54 52 20 6c 70 52 65 74 75 72  .  LPSTR lpRetur
16190 6e 65 64 53 74 72 69 6e 67 2c 0d 0a 20 20 44 57  nedString,..  DW
161a0 4f 52 44 20 6e 53 69 7a 65 29 3b 0d 0a 65 78 74  ORD nSize);..ext
161b0 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
161c0 6f 72 74 20 44 57 4f 52 44 20 47 65 74 50 72 6f  ort DWORD GetPro
161d0 66 69 6c 65 53 65 63 74 69 6f 6e 57 28 0d 0a 20  fileSectionW(.. 
161e0 20 4c 50 43 57 53 54 52 20 6c 70 41 70 70 4e 61   LPCWSTR lpAppNa
161f0 6d 65 2c 0d 0a 20 20 4c 50 57 53 54 52 20 6c 70  me,..  LPWSTR lp
16200 52 65 74 75 72 6e 65 64 53 74 72 69 6e 67 2c 0d  ReturnedString,.
16210 0a 20 20 44 57 4f 52 44 20 6e 53 69 7a 65 29 3b  .  DWORD nSize);
16220 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e 49 43  ..// #ifdef UNIC
16230 4f 44 45 0d 0a 61 6c 69 61 73 20 47 65 74 50 72  ODE..alias GetPr
16240 6f 66 69 6c 65 53 65 63 74 69 6f 6e 57 20 47 65  ofileSectionW Ge
16250 74 50 72 6f 66 69 6c 65 53 65 63 74 69 6f 6e 3b  tProfileSection;
16260 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23  ..// #else..// #
16270 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f  .....// #endif /
16280 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78  / !UNICODE....ex
16290 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
162a0 70 6f 72 74 20 42 4f 4f 4c 20 57 72 69 74 65 50  port BOOL WriteP
162b0 72 6f 66 69 6c 65 53 65 63 74 69 6f 6e 41 28 0d  rofileSectionA(.
162c0 0a 20 20 4c 50 43 53 54 52 20 6c 70 41 70 70 4e  .  LPCSTR lpAppN
162d0 61 6d 65 2c 0d 0a 20 20 4c 50 43 53 54 52 20 6c  ame,..  LPCSTR l
162e0 70 53 74 72 69 6e 67 29 3b 0d 0a 65 78 74 65 72  pString);..exter
162f0 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
16300 74 20 42 4f 4f 4c 20 57 72 69 74 65 50 72 6f 66  t BOOL WriteProf
16310 69 6c 65 53 65 63 74 69 6f 6e 57 28 0d 0a 20 20  ileSectionW(..  
16320 4c 50 43 57 53 54 52 20 6c 70 41 70 70 4e 61 6d  LPCWSTR lpAppNam
16330 65 2c 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70  e,..  LPCWSTR lp
16340 53 74 72 69 6e 67 29 3b 0d 0a 2f 2f 20 23 69 66  String);..// #if
16350 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69  def UNICODE..ali
16360 61 73 20 57 72 69 74 65 50 72 6f 66 69 6c 65 53  as WriteProfileS
16370 65 63 74 69 6f 6e 57 20 57 72 69 74 65 50 72 6f  ectionW WritePro
16380 66 69 6c 65 53 65 63 74 69 6f 6e 3b 0d 0a 2f 2f  fileSection;..//
16390 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d   #else..// #....
163a0 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55  .// #endif // !U
163b0 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72 6e  NICODE....extern
163c0 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
163d0 20 55 49 4e 54 20 47 65 74 50 72 69 76 61 74 65   UINT GetPrivate
163e0 50 72 6f 66 69 6c 65 49 6e 74 41 28 0d 0a 20 20  ProfileIntA(..  
163f0 4c 50 43 53 54 52 20 6c 70 41 70 70 4e 61 6d 65  LPCSTR lpAppName
16400 2c 0d 0a 20 20 4c 50 43 53 54 52 20 6c 70 4b 65  ,..  LPCSTR lpKe
16410 79 4e 61 6d 65 2c 0d 0a 20 20 49 4e 54 20 6e 44  yName,..  INT nD
16420 65 66 61 75 6c 74 2c 0d 0a 20 20 4c 50 43 53 54  efault,..  LPCST
16430 52 20 6c 70 46 69 6c 65 4e 61 6d 65 29 3b 0d 0a  R lpFileName);..
16440 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
16450 65 78 70 6f 72 74 20 55 49 4e 54 20 47 65 74 50  export UINT GetP
16460 72 69 76 61 74 65 50 72 6f 66 69 6c 65 49 6e 74  rivateProfileInt
16470 57 28 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70  W(..  LPCWSTR lp
16480 41 70 70 4e 61 6d 65 2c 0d 0a 20 20 4c 50 43 57  AppName,..  LPCW
16490 53 54 52 20 6c 70 4b 65 79 4e 61 6d 65 2c 0d 0a  STR lpKeyName,..
164a0 20 20 49 4e 54 20 6e 44 65 66 61 75 6c 74 2c 0d    INT nDefault,.
164b0 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 46 69 6c  .  LPCWSTR lpFil
164c0 65 4e 61 6d 65 29 3b 0d 0a 2f 2f 20 23 69 66 64  eName);..// #ifd
164d0 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69 61  ef UNICODE..alia
164e0 73 20 47 65 74 50 72 69 76 61 74 65 50 72 6f 66  s GetPrivateProf
164f0 69 6c 65 49 6e 74 57 20 47 65 74 50 72 69 76 61  ileIntW GetPriva
16500 74 65 50 72 6f 66 69 6c 65 49 6e 74 3b 0d 0a 2f  teProfileInt;../
16510 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e  / #else..// #...
16520 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21  ..// #endif // !
16530 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72  UNICODE....exter
16540 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
16550 74 20 44 57 4f 52 44 20 47 65 74 50 72 69 76 61  t DWORD GetPriva
16560 74 65 50 72 6f 66 69 6c 65 53 74 72 69 6e 67 41  teProfileStringA
16570 28 0d 0a 20 20 4c 50 43 53 54 52 20 6c 70 41 70  (..  LPCSTR lpAp
16580 70 4e 61 6d 65 2c 0d 0a 20 20 4c 50 43 53 54 52  pName,..  LPCSTR
16590 20 6c 70 4b 65 79 4e 61 6d 65 2c 0d 0a 20 20 4c   lpKeyName,..  L
165a0 50 43 53 54 52 20 6c 70 44 65 66 61 75 6c 74 2c  PCSTR lpDefault,
165b0 0d 0a 20 20 4c 50 53 54 52 20 6c 70 52 65 74 75  ..  LPSTR lpRetu
165c0 72 6e 65 64 53 74 72 69 6e 67 2c 0d 0a 20 20 44  rnedString,..  D
165d0 57 4f 52 44 20 6e 53 69 7a 65 2c 0d 0a 20 20 4c  WORD nSize,..  L
165e0 50 43 53 54 52 20 6c 70 46 69 6c 65 4e 61 6d 65  PCSTR lpFileName
165f0 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f  );..extern(Windo
16600 77 73 29 20 65 78 70 6f 72 74 20 44 57 4f 52 44  ws) export DWORD
16610 20 47 65 74 50 72 69 76 61 74 65 50 72 6f 66 69   GetPrivateProfi
16620 6c 65 53 74 72 69 6e 67 57 28 0d 0a 20 20 4c 50  leStringW(..  LP
16630 43 57 53 54 52 20 6c 70 41 70 70 4e 61 6d 65 2c  CWSTR lpAppName,
16640 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 4b 65  ..  LPCWSTR lpKe
16650 79 4e 61 6d 65 2c 0d 0a 20 20 4c 50 43 57 53 54  yName,..  LPCWST
16660 52 20 6c 70 44 65 66 61 75 6c 74 2c 0d 0a 20 20  R lpDefault,..  
16670 4c 50 57 53 54 52 20 6c 70 52 65 74 75 72 6e 65  LPWSTR lpReturne
16680 64 53 74 72 69 6e 67 2c 0d 0a 20 20 44 57 4f 52  dString,..  DWOR
16690 44 20 6e 53 69 7a 65 2c 0d 0a 20 20 4c 50 43 57  D nSize,..  LPCW
166a0 53 54 52 20 6c 70 46 69 6c 65 4e 61 6d 65 29 3b  STR lpFileName);
166b0 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e 49 43  ..// #ifdef UNIC
166c0 4f 44 45 0d 0a 61 6c 69 61 73 20 47 65 74 50 72  ODE..alias GetPr
166d0 69 76 61 74 65 50 72 6f 66 69 6c 65 53 74 72 69  ivateProfileStri
166e0 6e 67 57 20 47 65 74 50 72 69 76 61 74 65 50 72  ngW GetPrivatePr
166f0 6f 66 69 6c 65 53 74 72 69 6e 67 3b 0d 0a 2f 2f  ofileString;..//
16700 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d   #else..// #....
16710 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55  .// #endif // !U
16720 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72 6e  NICODE....extern
16730 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
16740 20 42 4f 4f 4c 20 57 72 69 74 65 50 72 69 76 61   BOOL WritePriva
16750 74 65 50 72 6f 66 69 6c 65 53 74 72 69 6e 67 41  teProfileStringA
16760 28 0d 0a 20 20 4c 50 43 53 54 52 20 6c 70 41 70  (..  LPCSTR lpAp
16770 70 4e 61 6d 65 2c 0d 0a 20 20 4c 50 43 53 54 52  pName,..  LPCSTR
16780 20 6c 70 4b 65 79 4e 61 6d 65 2c 0d 0a 20 20 4c   lpKeyName,..  L
16790 50 43 53 54 52 20 6c 70 53 74 72 69 6e 67 2c 0d  PCSTR lpString,.
167a0 0a 20 20 4c 50 43 53 54 52 20 6c 70 46 69 6c 65  .  LPCSTR lpFile
167b0 4e 61 6d 65 29 3b 0d 0a 65 78 74 65 72 6e 28 57  Name);..extern(W
167c0 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42  indows) export B
167d0 4f 4f 4c 20 57 72 69 74 65 50 72 69 76 61 74 65  OOL WritePrivate
167e0 50 72 6f 66 69 6c 65 53 74 72 69 6e 67 57 28 0d  ProfileStringW(.
167f0 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 41 70 70  .  LPCWSTR lpApp
16800 4e 61 6d 65 2c 0d 0a 20 20 4c 50 43 57 53 54 52  Name,..  LPCWSTR
16810 20 6c 70 4b 65 79 4e 61 6d 65 2c 0d 0a 20 20 4c   lpKeyName,..  L
16820 50 43 57 53 54 52 20 6c 70 53 74 72 69 6e 67 2c  PCWSTR lpString,
16830 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 46 69  ..  LPCWSTR lpFi
16840 6c 65 4e 61 6d 65 29 3b 0d 0a 2f 2f 20 23 69 66  leName);..// #if
16850 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69  def UNICODE..ali
16860 61 73 20 57 72 69 74 65 50 72 69 76 61 74 65 50  as WritePrivateP
16870 72 6f 66 69 6c 65 53 74 72 69 6e 67 57 20 57 72  rofileStringW Wr
16880 69 74 65 50 72 69 76 61 74 65 50 72 6f 66 69 6c  itePrivateProfil
16890 65 53 74 72 69 6e 67 3b 0d 0a 2f 2f 20 23 65 6c  eString;..// #el
168a0 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20  se..// #.....// 
168b0 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e 49 43 4f  #endif // !UNICO
168c0 44 45 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e  DE....extern(Win
168d0 64 6f 77 73 29 20 65 78 70 6f 72 74 20 44 57 4f  dows) export DWO
168e0 52 44 20 47 65 74 50 72 69 76 61 74 65 50 72 6f  RD GetPrivatePro
168f0 66 69 6c 65 53 65 63 74 69 6f 6e 41 28 0d 0a 20  fileSectionA(.. 
16900 20 4c 50 43 53 54 52 20 6c 70 41 70 70 4e 61 6d   LPCSTR lpAppNam
16910 65 2c 0d 0a 20 20 4c 50 53 54 52 20 6c 70 52 65  e,..  LPSTR lpRe
16920 74 75 72 6e 65 64 53 74 72 69 6e 67 2c 0d 0a 20  turnedString,.. 
16930 20 44 57 4f 52 44 20 6e 53 69 7a 65 2c 0d 0a 20   DWORD nSize,.. 
16940 20 4c 50 43 53 54 52 20 6c 70 46 69 6c 65 4e 61   LPCSTR lpFileNa
16950 6d 65 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e  me);..extern(Win
16960 64 6f 77 73 29 20 65 78 70 6f 72 74 20 44 57 4f  dows) export DWO
16970 52 44 20 47 65 74 50 72 69 76 61 74 65 50 72 6f  RD GetPrivatePro
16980 66 69 6c 65 53 65 63 74 69 6f 6e 57 28 0d 0a 20  fileSectionW(.. 
16990 20 4c 50 43 57 53 54 52 20 6c 70 41 70 70 4e 61   LPCWSTR lpAppNa
169a0 6d 65 2c 0d 0a 20 20 4c 50 57 53 54 52 20 6c 70  me,..  LPWSTR lp
169b0 52 65 74 75 72 6e 65 64 53 74 72 69 6e 67 2c 0d  ReturnedString,.
169c0 0a 20 20 44 57 4f 52 44 20 6e 53 69 7a 65 2c 0d  .  DWORD nSize,.
169d0 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 46 69 6c  .  LPCWSTR lpFil
169e0 65 4e 61 6d 65 29 3b 0d 0a 2f 2f 20 23 69 66 64  eName);..// #ifd
169f0 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69 61  ef UNICODE..alia
16a00 73 20 47 65 74 50 72 69 76 61 74 65 50 72 6f 66  s GetPrivateProf
16a10 69 6c 65 53 65 63 74 69 6f 6e 57 20 47 65 74 50  ileSectionW GetP
16a20 72 69 76 61 74 65 50 72 6f 66 69 6c 65 53 65 63  rivateProfileSec
16a30 74 69 6f 6e 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d  tion;..// #else.
16a40 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e  .// #.....// #en
16a50 64 69 66 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d  dif // !UNICODE.
16a60 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ...extern(Window
16a70 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 57  s) export BOOL W
16a80 72 69 74 65 50 72 69 76 61 74 65 50 72 6f 66 69  ritePrivateProfi
16a90 6c 65 53 65 63 74 69 6f 6e 41 28 0d 0a 20 20 4c  leSectionA(..  L
16aa0 50 43 53 54 52 20 6c 70 41 70 70 4e 61 6d 65 2c  PCSTR lpAppName,
16ab0 0d 0a 20 20 4c 50 43 53 54 52 20 6c 70 53 74 72  ..  LPCSTR lpStr
16ac0 69 6e 67 2c 0d 0a 20 20 4c 50 43 53 54 52 20 6c  ing,..  LPCSTR l
16ad0 70 46 69 6c 65 4e 61 6d 65 29 3b 0d 0a 65 78 74  pFileName);..ext
16ae0 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
16af0 6f 72 74 20 42 4f 4f 4c 20 57 72 69 74 65 50 72  ort BOOL WritePr
16b00 69 76 61 74 65 50 72 6f 66 69 6c 65 53 65 63 74  ivateProfileSect
16b10 69 6f 6e 57 28 0d 0a 20 20 4c 50 43 57 53 54 52  ionW(..  LPCWSTR
16b20 20 6c 70 41 70 70 4e 61 6d 65 2c 0d 0a 20 20 4c   lpAppName,..  L
16b30 50 43 57 53 54 52 20 6c 70 53 74 72 69 6e 67 2c  PCWSTR lpString,
16b40 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 46 69  ..  LPCWSTR lpFi
16b50 6c 65 4e 61 6d 65 29 3b 0d 0a 2f 2f 20 23 69 66  leName);..// #if
16b60 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69  def UNICODE..ali
16b70 61 73 20 57 72 69 74 65 50 72 69 76 61 74 65 50  as WritePrivateP
16b80 72 6f 66 69 6c 65 53 65 63 74 69 6f 6e 57 20 57  rofileSectionW W
16b90 72 69 74 65 50 72 69 76 61 74 65 50 72 6f 66 69  ritePrivateProfi
16ba0 6c 65 53 65 63 74 69 6f 6e 3b 0d 0a 2f 2f 20 23  leSection;..// #
16bb0 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f  else..// #...../
16bc0 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e 49  / #endif // !UNI
16bd0 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72 6e 28 57  CODE....extern(W
16be0 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 44  indows) export D
16bf0 57 4f 52 44 20 47 65 74 50 72 69 76 61 74 65 50  WORD GetPrivateP
16c00 72 6f 66 69 6c 65 53 65 63 74 69 6f 6e 4e 61 6d  rofileSectionNam
16c10 65 73 41 28 0d 0a 20 20 4c 50 53 54 52 20 6c 70  esA(..  LPSTR lp
16c20 73 7a 52 65 74 75 72 6e 42 75 66 66 65 72 2c 0d  szReturnBuffer,.
16c30 0a 20 20 44 57 4f 52 44 20 6e 53 69 7a 65 2c 0d  .  DWORD nSize,.
16c40 0a 20 20 4c 50 43 53 54 52 20 6c 70 46 69 6c 65  .  LPCSTR lpFile
16c50 4e 61 6d 65 29 3b 0d 0a 65 78 74 65 72 6e 28 57  Name);..extern(W
16c60 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 44  indows) export D
16c70 57 4f 52 44 20 47 65 74 50 72 69 76 61 74 65 50  WORD GetPrivateP
16c80 72 6f 66 69 6c 65 53 65 63 74 69 6f 6e 4e 61 6d  rofileSectionNam
16c90 65 73 57 28 0d 0a 20 20 4c 50 57 53 54 52 20 6c  esW(..  LPWSTR l
16ca0 70 73 7a 52 65 74 75 72 6e 42 75 66 66 65 72 2c  pszReturnBuffer,
16cb0 0d 0a 20 20 44 57 4f 52 44 20 6e 53 69 7a 65 2c  ..  DWORD nSize,
16cc0 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 46 69  ..  LPCWSTR lpFi
16cd0 6c 65 4e 61 6d 65 29 3b 0d 0a 2f 2f 20 23 69 66  leName);..// #if
16ce0 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69  def UNICODE..ali
16cf0 61 73 20 47 65 74 50 72 69 76 61 74 65 50 72 6f  as GetPrivatePro
16d00 66 69 6c 65 53 65 63 74 69 6f 6e 4e 61 6d 65 73  fileSectionNames
16d10 57 20 47 65 74 50 72 69 76 61 74 65 50 72 6f 66  W GetPrivateProf
16d20 69 6c 65 53 65 63 74 69 6f 6e 4e 61 6d 65 73 3b  ileSectionNames;
16d30 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23  ..// #else..// #
16d40 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f  .....// #endif /
16d50 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78  / !UNICODE....ex
16d60 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
16d70 70 6f 72 74 20 42 4f 4f 4c 20 47 65 74 50 72 69  port BOOL GetPri
16d80 76 61 74 65 50 72 6f 66 69 6c 65 53 74 72 75 63  vateProfileStruc
16d90 74 41 28 0d 0a 20 20 4c 50 43 53 54 52 20 6c 70  tA(..  LPCSTR lp
16da0 73 7a 53 65 63 74 69 6f 6e 2c 0d 0a 20 20 4c 50  szSection,..  LP
16db0 43 53 54 52 20 6c 70 73 7a 4b 65 79 2c 0d 0a 20  CSTR lpszKey,.. 
16dc0 20 4c 50 56 4f 49 44 20 6c 70 53 74 72 75 63 74   LPVOID lpStruct
16dd0 2c 0d 0a 20 20 55 49 4e 54 20 75 53 69 7a 65 53  ,..  UINT uSizeS
16de0 74 72 75 63 74 2c 0d 0a 20 20 4c 50 43 53 54 52  truct,..  LPCSTR
16df0 20 73 7a 46 69 6c 65 29 3b 0d 0a 65 78 74 65 72   szFile);..exter
16e00 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
16e10 74 20 42 4f 4f 4c 20 47 65 74 50 72 69 76 61 74  t BOOL GetPrivat
16e20 65 50 72 6f 66 69 6c 65 53 74 72 75 63 74 57 28  eProfileStructW(
16e30 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 73 7a  ..  LPCWSTR lpsz
16e40 53 65 63 74 69 6f 6e 2c 0d 0a 20 20 4c 50 43 57  Section,..  LPCW
16e50 53 54 52 20 6c 70 73 7a 4b 65 79 2c 0d 0a 20 20  STR lpszKey,..  
16e60 4c 50 56 4f 49 44 20 6c 70 53 74 72 75 63 74 2c  LPVOID lpStruct,
16e70 0d 0a 20 20 55 49 4e 54 20 75 53 69 7a 65 53 74  ..  UINT uSizeSt
16e80 72 75 63 74 2c 0d 0a 20 20 4c 50 43 57 53 54 52  ruct,..  LPCWSTR
16e90 20 73 7a 46 69 6c 65 29 3b 0d 0a 2f 2f 20 23 69   szFile);..// #i
16ea0 66 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61 6c  fdef UNICODE..al
16eb0 69 61 73 20 47 65 74 50 72 69 76 61 74 65 50 72  ias GetPrivatePr
16ec0 6f 66 69 6c 65 53 74 72 75 63 74 57 20 47 65 74  ofileStructW Get
16ed0 50 72 69 76 61 74 65 50 72 6f 66 69 6c 65 53 74  PrivateProfileSt
16ee0 72 75 63 74 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d  ruct;..// #else.
16ef0 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e  .// #.....// #en
16f00 64 69 66 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d  dif // !UNICODE.
16f10 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ...extern(Window
16f20 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 57  s) export BOOL W
16f30 72 69 74 65 50 72 69 76 61 74 65 50 72 6f 66 69  ritePrivateProfi
16f40 6c 65 53 74 72 75 63 74 41 28 0d 0a 20 20 4c 50  leStructA(..  LP
16f50 43 53 54 52 20 6c 70 73 7a 53 65 63 74 69 6f 6e  CSTR lpszSection
16f60 2c 0d 0a 20 20 4c 50 43 53 54 52 20 6c 70 73 7a  ,..  LPCSTR lpsz
16f70 4b 65 79 2c 0d 0a 20 20 4c 50 56 4f 49 44 20 6c  Key,..  LPVOID l
16f80 70 53 74 72 75 63 74 2c 0d 0a 20 20 55 49 4e 54  pStruct,..  UINT
16f90 20 75 53 69 7a 65 53 74 72 75 63 74 2c 0d 0a 20   uSizeStruct,.. 
16fa0 20 4c 50 43 53 54 52 20 73 7a 46 69 6c 65 29 3b   LPCSTR szFile);
16fb0 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
16fc0 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 57 72  ) export BOOL Wr
16fd0 69 74 65 50 72 69 76 61 74 65 50 72 6f 66 69 6c  itePrivateProfil
16fe0 65 53 74 72 75 63 74 57 28 0d 0a 20 20 4c 50 43  eStructW(..  LPC
16ff0 57 53 54 52 20 6c 70 73 7a 53 65 63 74 69 6f 6e  WSTR lpszSection
17000 2c 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 73  ,..  LPCWSTR lps
17010 7a 4b 65 79 2c 0d 0a 20 20 4c 50 56 4f 49 44 20  zKey,..  LPVOID 
17020 6c 70 53 74 72 75 63 74 2c 0d 0a 20 20 55 49 4e  lpStruct,..  UIN
17030 54 20 75 53 69 7a 65 53 74 72 75 63 74 2c 0d 0a  T uSizeStruct,..
17040 20 20 4c 50 43 57 53 54 52 20 73 7a 46 69 6c 65    LPCWSTR szFile
17050 29 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e  );..// #ifdef UN
17060 49 43 4f 44 45 0d 0a 61 6c 69 61 73 20 57 72 69  ICODE..alias Wri
17070 74 65 50 72 69 76 61 74 65 50 72 6f 66 69 6c 65  tePrivateProfile
17080 53 74 72 75 63 74 57 20 57 72 69 74 65 50 72 69  StructW WritePri
17090 76 61 74 65 50 72 6f 66 69 6c 65 53 74 72 75 63  vateProfileStruc
170a0 74 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f  t;..// #else..//
170b0 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66   #.....// #endif
170c0 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a   // !UNICODE....
170d0 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
170e0 65 78 70 6f 72 74 20 55 49 4e 54 20 47 65 74 44  export UINT GetD
170f0 72 69 76 65 54 79 70 65 41 28 0d 0a 20 20 4c 50  riveTypeA(..  LP
17100 43 53 54 52 20 6c 70 52 6f 6f 74 50 61 74 68 4e  CSTR lpRootPathN
17110 61 6d 65 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69  ame);..extern(Wi
17120 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 55 49  ndows) export UI
17130 4e 54 20 47 65 74 44 72 69 76 65 54 79 70 65 57  NT GetDriveTypeW
17140 28 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 52  (..  LPCWSTR lpR
17150 6f 6f 74 50 61 74 68 4e 61 6d 65 29 3b 0d 0a 2f  ootPathName);../
17160 2f 20 23 69 66 64 65 66 20 55 4e 49 43 4f 44 45  / #ifdef UNICODE
17170 0d 0a 61 6c 69 61 73 20 47 65 74 44 72 69 76 65  ..alias GetDrive
17180 54 79 70 65 57 20 47 65 74 44 72 69 76 65 54 79  TypeW GetDriveTy
17190 70 65 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f  pe;..// #else../
171a0 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69  / #.....// #endi
171b0 66 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 0d  f // !UNICODE...
171c0 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29  .extern(Windows)
171d0 20 65 78 70 6f 72 74 20 55 49 4e 54 20 47 65 74   export UINT Get
171e0 53 79 73 74 65 6d 44 69 72 65 63 74 6f 72 79 41  SystemDirectoryA
171f0 28 0d 0a 20 20 4c 50 53 54 52 20 6c 70 42 75 66  (..  LPSTR lpBuf
17200 66 65 72 2c 0d 0a 20 20 55 49 4e 54 20 75 53 69  fer,..  UINT uSi
17210 7a 65 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e  ze);..extern(Win
17220 64 6f 77 73 29 20 65 78 70 6f 72 74 20 55 49 4e  dows) export UIN
17230 54 20 47 65 74 53 79 73 74 65 6d 44 69 72 65 63  T GetSystemDirec
17240 74 6f 72 79 57 28 0d 0a 20 20 4c 50 57 53 54 52  toryW(..  LPWSTR
17250 20 6c 70 42 75 66 66 65 72 2c 0d 0a 20 20 55 49   lpBuffer,..  UI
17260 4e 54 20 75 53 69 7a 65 29 3b 0d 0a 2f 2f 20 23  NT uSize);..// #
17270 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61  ifdef UNICODE..a
17280 6c 69 61 73 20 47 65 74 53 79 73 74 65 6d 44 69  lias GetSystemDi
17290 72 65 63 74 6f 72 79 57 20 47 65 74 53 79 73 74  rectoryW GetSyst
172a0 65 6d 44 69 72 65 63 74 6f 72 79 3b 0d 0a 2f 2f  emDirectory;..//
172b0 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d   #else..// #....
172c0 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55  .// #endif // !U
172d0 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72 6e  NICODE....extern
172e0 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
172f0 20 44 57 4f 52 44 20 47 65 74 54 65 6d 70 50 61   DWORD GetTempPa
17300 74 68 41 28 0d 0a 20 20 44 57 4f 52 44 20 6e 42  thA(..  DWORD nB
17310 75 66 66 65 72 4c 65 6e 67 74 68 2c 0d 0a 20 20  ufferLength,..  
17320 4c 50 53 54 52 20 6c 70 42 75 66 66 65 72 29 3b  LPSTR lpBuffer);
17330 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
17340 29 20 65 78 70 6f 72 74 20 44 57 4f 52 44 20 47  ) export DWORD G
17350 65 74 54 65 6d 70 50 61 74 68 57 28 0d 0a 20 20  etTempPathW(..  
17360 44 57 4f 52 44 20 6e 42 75 66 66 65 72 4c 65 6e  DWORD nBufferLen
17370 67 74 68 2c 0d 0a 20 20 4c 50 57 53 54 52 20 6c  gth,..  LPWSTR l
17380 70 42 75 66 66 65 72 29 3b 0d 0a 2f 2f 20 23 69  pBuffer);..// #i
17390 66 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61 6c  fdef UNICODE..al
173a0 69 61 73 20 47 65 74 54 65 6d 70 50 61 74 68 57  ias GetTempPathW
173b0 20 47 65 74 54 65 6d 70 50 61 74 68 3b 0d 0a 2f   GetTempPath;../
173c0 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e  / #else..// #...
173d0 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21  ..// #endif // !
173e0 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72  UNICODE....exter
173f0 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
17400 74 20 55 49 4e 54 20 47 65 74 54 65 6d 70 46 69  t UINT GetTempFi
17410 6c 65 4e 61 6d 65 41 28 0d 0a 20 20 4c 50 43 53  leNameA(..  LPCS
17420 54 52 20 6c 70 50 61 74 68 4e 61 6d 65 2c 0d 0a  TR lpPathName,..
17430 20 20 4c 50 43 53 54 52 20 6c 70 50 72 65 66 69    LPCSTR lpPrefi
17440 78 53 74 72 69 6e 67 2c 0d 0a 20 20 55 49 4e 54  xString,..  UINT
17450 20 75 55 6e 69 71 75 65 2c 0d 0a 20 20 4c 50 53   uUnique,..  LPS
17460 54 52 20 6c 70 54 65 6d 70 46 69 6c 65 4e 61 6d  TR lpTempFileNam
17470 65 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  e);..extern(Wind
17480 6f 77 73 29 20 65 78 70 6f 72 74 20 55 49 4e 54  ows) export UINT
17490 20 47 65 74 54 65 6d 70 46 69 6c 65 4e 61 6d 65   GetTempFileName
174a0 57 28 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70  W(..  LPCWSTR lp
174b0 50 61 74 68 4e 61 6d 65 2c 0d 0a 20 20 4c 50 43  PathName,..  LPC
174c0 57 53 54 52 20 6c 70 50 72 65 66 69 78 53 74 72  WSTR lpPrefixStr
174d0 69 6e 67 2c 0d 0a 20 20 55 49 4e 54 20 75 55 6e  ing,..  UINT uUn
174e0 69 71 75 65 2c 0d 0a 20 20 4c 50 57 53 54 52 20  ique,..  LPWSTR 
174f0 6c 70 54 65 6d 70 46 69 6c 65 4e 61 6d 65 29 3b  lpTempFileName);
17500 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e 49 43  ..// #ifdef UNIC
17510 4f 44 45 0d 0a 61 6c 69 61 73 20 47 65 74 54 65  ODE..alias GetTe
17520 6d 70 46 69 6c 65 4e 61 6d 65 57 20 47 65 74 54  mpFileNameW GetT
17530 65 6d 70 46 69 6c 65 4e 61 6d 65 3b 0d 0a 2f 2f  empFileName;..//
17540 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d   #else..// #....
17550 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55  .// #endif // !U
17560 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72 6e  NICODE....extern
17570 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
17580 20 55 49 4e 54 20 47 65 74 57 69 6e 64 6f 77 73   UINT GetWindows
17590 44 69 72 65 63 74 6f 72 79 41 28 0d 0a 20 20 4c  DirectoryA(..  L
175a0 50 53 54 52 20 6c 70 42 75 66 66 65 72 2c 0d 0a  PSTR lpBuffer,..
175b0 20 20 55 49 4e 54 20 75 53 69 7a 65 29 3b 0d 0a    UINT uSize);..
175c0 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
175d0 65 78 70 6f 72 74 20 55 49 4e 54 20 47 65 74 57  export UINT GetW
175e0 69 6e 64 6f 77 73 44 69 72 65 63 74 6f 72 79 57  indowsDirectoryW
175f0 28 0d 0a 20 20 4c 50 57 53 54 52 20 6c 70 42 75  (..  LPWSTR lpBu
17600 66 66 65 72 2c 0d 0a 20 20 55 49 4e 54 20 75 53  ffer,..  UINT uS
17610 69 7a 65 29 3b 0d 0a 2f 2f 20 23 69 66 64 65 66  ize);..// #ifdef
17620 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69 61 73 20   UNICODE..alias 
17630 47 65 74 57 69 6e 64 6f 77 73 44 69 72 65 63 74  GetWindowsDirect
17640 6f 72 79 57 20 47 65 74 57 69 6e 64 6f 77 73 44  oryW GetWindowsD
17650 69 72 65 63 74 6f 72 79 3b 0d 0a 2f 2f 20 23 65  irectory;..// #e
17660 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f  lse..// #.....//
17670 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e 49 43   #endif // !UNIC
17680 4f 44 45 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69  ODE....extern(Wi
17690 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 55 49  ndows) export UI
176a0 4e 54 20 47 65 74 53 79 73 74 65 6d 57 69 6e 64  NT GetSystemWind
176b0 6f 77 73 44 69 72 65 63 74 6f 72 79 41 28 0d 0a  owsDirectoryA(..
176c0 20 20 4c 50 53 54 52 20 6c 70 42 75 66 66 65 72    LPSTR lpBuffer
176d0 2c 0d 0a 20 20 55 49 4e 54 20 75 53 69 7a 65 29  ,..  UINT uSize)
176e0 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ;..extern(Window
176f0 73 29 20 65 78 70 6f 72 74 20 55 49 4e 54 20 47  s) export UINT G
17700 65 74 53 79 73 74 65 6d 57 69 6e 64 6f 77 73 44  etSystemWindowsD
17710 69 72 65 63 74 6f 72 79 57 28 0d 0a 20 20 4c 50  irectoryW(..  LP
17720 57 53 54 52 20 6c 70 42 75 66 66 65 72 2c 0d 0a  WSTR lpBuffer,..
17730 20 20 55 49 4e 54 20 75 53 69 7a 65 29 3b 0d 0a    UINT uSize);..
17740 2f 2f 20 23 69 66 64 65 66 20 55 4e 49 43 4f 44  // #ifdef UNICOD
17750 45 0d 0a 61 6c 69 61 73 20 47 65 74 53 79 73 74  E..alias GetSyst
17760 65 6d 57 69 6e 64 6f 77 73 44 69 72 65 63 74 6f  emWindowsDirecto
17770 72 79 57 20 47 65 74 53 79 73 74 65 6d 57 69 6e  ryW GetSystemWin
17780 64 6f 77 73 44 69 72 65 63 74 6f 72 79 3b 0d 0a  dowsDirectory;..
17790 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e  // #else..// #..
177a0 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20  ...// #endif // 
177b0 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 2f 2f 20 23  !UNICODE....// #
177c0 69 66 20 21 64 65 66 69 6e 65 64 28 52 43 5f 49  if !defined(RC_I
177d0 4e 56 4f 4b 45 44 29 20 2f 2f 20 52 43 20 77 61  NVOKED) // RC wa
177e0 72 6e 73 20 62 65 63 61 75 73 65 20 22 57 49 4e  rns because "WIN
177f0 42 41 53 45 5f 44 45 43 4c 41 52 45 5f 47 45 54  BASE_DECLARE_GET
17800 5f 53 59 53 54 45 4d 5f 57 4f 57 36 34 5f 44 49  _SYSTEM_WOW64_DI
17810 52 45 43 54 4f 52 59 22 20 69 73 20 61 20 62 69  RECTORY" is a bi
17820 74 20 6c 6f 6e 67 2e 0d 0a 2f 2f 20 23 69 66 20  t long...// #if 
17830 5f 57 49 4e 33 32 5f 57 49 4e 4e 54 20 3e 3d 20  _WIN32_WINNT >= 
17840 30 78 30 35 30 31 20 7c 7c 20 64 65 66 69 6e 65  0x0501 || define
17850 64 28 57 49 4e 42 41 53 45 5f 44 45 43 4c 41 52  d(WINBASE_DECLAR
17860 45 5f 47 45 54 5f 53 59 53 54 45 4d 5f 57 4f 57  E_GET_SYSTEM_WOW
17870 36 34 5f 44 49 52 45 43 54 4f 52 59 29 0d 0a 0d  64_DIRECTORY)...
17880 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29  .extern(Windows)
17890 20 65 78 70 6f 72 74 20 55 49 4e 54 20 47 65 74   export UINT Get
178a0 53 79 73 74 65 6d 57 6f 77 36 34 44 69 72 65 63  SystemWow64Direc
178b0 74 6f 72 79 41 28 0d 0a 20 20 4c 50 53 54 52 20  toryA(..  LPSTR 
178c0 6c 70 42 75 66 66 65 72 2c 0d 0a 20 20 55 49 4e  lpBuffer,..  UIN
178d0 54 20 75 53 69 7a 65 29 3b 0d 0a 65 78 74 65 72  T uSize);..exter
178e0 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
178f0 74 20 55 49 4e 54 20 47 65 74 53 79 73 74 65 6d  t UINT GetSystem
17900 57 6f 77 36 34 44 69 72 65 63 74 6f 72 79 57 28  Wow64DirectoryW(
17910 0d 0a 20 20 4c 50 57 53 54 52 20 6c 70 42 75 66  ..  LPWSTR lpBuf
17920 66 65 72 2c 0d 0a 20 20 55 49 4e 54 20 75 53 69  fer,..  UINT uSi
17930 7a 65 29 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20  ze);..// #ifdef 
17940 55 4e 49 43 4f 44 45 0d 0a 61 6c 69 61 73 20 47  UNICODE..alias G
17950 65 74 53 79 73 74 65 6d 57 6f 77 36 34 44 69 72  etSystemWow64Dir
17960 65 63 74 6f 72 79 57 20 47 65 74 53 79 73 74 65  ectoryW GetSyste
17970 6d 57 6f 77 36 34 44 69 72 65 63 74 6f 72 79 3b  mWow64Directory;
17980 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23  ..// #else..// #
17990 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f  .....// #endif /
179a0 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78  / !UNICODE....ex
179b0 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 61 6c  tern(Windows) al
179c0 69 61 73 20 55 49 4e 54 20 66 75 6e 63 74 69 6f  ias UINT functio
179d0 6e 28 20 4c 50 53 54 52 20 6c 70 42 75 66 66 65  n( LPSTR lpBuffe
179e0 72 2c 20 55 49 4e 54 20 75 53 69 7a 65 29 20 50  r, UINT uSize) P
179f0 47 45 54 5f 53 59 53 54 45 4d 5f 57 4f 57 36 34  GET_SYSTEM_WOW64
17a00 5f 44 49 52 45 43 54 4f 52 59 5f 41 3b 0d 0a 65  _DIRECTORY_A;..e
17a10 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 61  xtern(Windows) a
17a20 6c 69 61 73 20 55 49 4e 54 20 66 75 6e 63 74 69  lias UINT functi
17a30 6f 6e 28 20 4c 50 57 53 54 52 20 6c 70 42 75 66  on( LPWSTR lpBuf
17a40 66 65 72 2c 20 55 49 4e 54 20 75 53 69 7a 65 29  fer, UINT uSize)
17a50 20 50 47 45 54 5f 53 59 53 54 45 4d 5f 57 4f 57   PGET_SYSTEM_WOW
17a60 36 34 5f 44 49 52 45 43 54 4f 52 59 5f 57 3b 0d  64_DIRECTORY_W;.
17a70 0a 0d 0a 63 6f 6e 73 74 20 63 68 61 72 5b 5d 20  ...const char[] 
17a80 47 45 54 5f 53 59 53 54 45 4d 5f 57 4f 57 36 34  GET_SYSTEM_WOW64
17a90 5f 44 49 52 45 43 54 4f 52 59 5f 4e 41 4d 45 5f  _DIRECTORY_NAME_
17aa0 41 5f 41 20 3d 20 22 47 65 74 53 79 73 74 65 6d  A_A = "GetSystem
17ab0 57 6f 77 36 34 44 69 72 65 63 74 6f 72 79 41 22  Wow64DirectoryA"
17ac0 3b 0d 0a 63 6f 6e 73 74 20 77 63 68 61 72 5b 5d  ;..const wchar[]
17ad0 20 47 45 54 5f 53 59 53 54 45 4d 5f 57 4f 57 36   GET_SYSTEM_WOW6
17ae0 34 5f 44 49 52 45 43 54 4f 52 59 5f 4e 41 4d 45  4_DIRECTORY_NAME
17af0 5f 41 5f 57 20 3d 20 22 47 65 74 53 79 73 74 65  _A_W = "GetSyste
17b00 6d 57 6f 77 36 34 44 69 72 65 63 74 6f 72 79 41  mWow64DirectoryA
17b10 22 3b 0d 0a 63 6f 6e 73 74 20 54 43 48 41 52 5b  ";..const TCHAR[
17b20 5d 20 47 45 54 5f 53 59 53 54 45 4d 5f 57 4f 57  ] GET_SYSTEM_WOW
17b30 36 34 5f 44 49 52 45 43 54 4f 52 59 5f 4e 41 4d  64_DIRECTORY_NAM
17b40 45 5f 41 5f 54 20 3d 20 22 47 65 74 53 79 73 74  E_A_T = "GetSyst
17b50 65 6d 57 6f 77 36 34 44 69 72 65 63 74 6f 72 79  emWow64Directory
17b60 41 22 3b 0d 0a 63 6f 6e 73 74 20 63 68 61 72 5b  A";..const char[
17b70 5d 20 47 45 54 5f 53 59 53 54 45 4d 5f 57 4f 57  ] GET_SYSTEM_WOW
17b80 36 34 5f 44 49 52 45 43 54 4f 52 59 5f 4e 41 4d  64_DIRECTORY_NAM
17b90 45 5f 57 5f 41 20 3d 20 22 47 65 74 53 79 73 74  E_W_A = "GetSyst
17ba0 65 6d 57 6f 77 36 34 44 69 72 65 63 74 6f 72 79  emWow64Directory
17bb0 57 22 3b 0d 0a 63 6f 6e 73 74 20 77 63 68 61 72  W";..const wchar
17bc0 5b 5d 20 47 45 54 5f 53 59 53 54 45 4d 5f 57 4f  [] GET_SYSTEM_WO
17bd0 57 36 34 5f 44 49 52 45 43 54 4f 52 59 5f 4e 41  W64_DIRECTORY_NA
17be0 4d 45 5f 57 5f 57 20 3d 20 22 47 65 74 53 79 73  ME_W_W = "GetSys
17bf0 74 65 6d 57 6f 77 36 34 44 69 72 65 63 74 6f 72  temWow64Director
17c00 79 57 22 3b 0d 0a 63 6f 6e 73 74 20 54 43 48 41  yW";..const TCHA
17c10 52 5b 5d 20 47 45 54 5f 53 59 53 54 45 4d 5f 57  R[] GET_SYSTEM_W
17c20 4f 57 36 34 5f 44 49 52 45 43 54 4f 52 59 5f 4e  OW64_DIRECTORY_N
17c30 41 4d 45 5f 57 5f 54 20 3d 20 22 47 65 74 53 79  AME_W_T = "GetSy
17c40 73 74 65 6d 57 6f 77 36 34 44 69 72 65 63 74 6f  stemWow64Directo
17c50 72 79 57 22 3b 0d 0a 0d 0a 2f 2f 20 23 69 66 64  ryW";....// #ifd
17c60 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69 61  ef UNICODE..alia
17c70 73 20 47 45 54 5f 53 59 53 54 45 4d 5f 57 4f 57  s GET_SYSTEM_WOW
17c80 36 34 5f 44 49 52 45 43 54 4f 52 59 5f 4e 41 4d  64_DIRECTORY_NAM
17c90 45 5f 57 5f 41 20 47 45 54 5f 53 59 53 54 45 4d  E_W_A GET_SYSTEM
17ca0 5f 57 4f 57 36 34 5f 44 49 52 45 43 54 4f 52 59  _WOW64_DIRECTORY
17cb0 5f 4e 41 4d 45 5f 54 5f 41 3b 0d 0a 61 6c 69 61  _NAME_T_A;..alia
17cc0 73 20 47 45 54 5f 53 59 53 54 45 4d 5f 57 4f 57  s GET_SYSTEM_WOW
17cd0 36 34 5f 44 49 52 45 43 54 4f 52 59 5f 4e 41 4d  64_DIRECTORY_NAM
17ce0 45 5f 57 5f 57 20 47 45 54 5f 53 59 53 54 45 4d  E_W_W GET_SYSTEM
17cf0 5f 57 4f 57 36 34 5f 44 49 52 45 43 54 4f 52 59  _WOW64_DIRECTORY
17d00 5f 4e 41 4d 45 5f 54 5f 57 3b 0d 0a 61 6c 69 61  _NAME_T_W;..alia
17d10 73 20 47 45 54 5f 53 59 53 54 45 4d 5f 57 4f 57  s GET_SYSTEM_WOW
17d20 36 34 5f 44 49 52 45 43 54 4f 52 59 5f 4e 41 4d  64_DIRECTORY_NAM
17d30 45 5f 57 5f 54 20 47 45 54 5f 53 59 53 54 45 4d  E_W_T GET_SYSTEM
17d40 5f 57 4f 57 36 34 5f 44 49 52 45 43 54 4f 52 59  _WOW64_DIRECTORY
17d50 5f 4e 41 4d 45 5f 54 5f 54 3b 0d 0a 2f 2f 20 23  _NAME_T_T;..// #
17d60 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f  else..// #...../
17d70 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 2e 2e 2e 0d  / #.....// #....
17d80 0a 2f 2f 20 23 65 6e 64 69 66 0d 0a 0d 0a 2f 2f  .// #endif....//
17d90 20 23 65 6e 64 69 66 20 2f 2f 20 5f 57 49 4e 33   #endif // _WIN3
17da0 32 5f 57 49 4e 4e 54 20 3e 3d 20 30 78 30 35 30  2_WINNT >= 0x050
17db0 31 0d 0a 2f 2f 20 23 65 6e 64 69 66 0d 0a 0d 0a  1..// #endif....
17dc0 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
17dd0 65 78 70 6f 72 74 20 42 4f 4f 4c 20 53 65 74 43  export BOOL SetC
17de0 75 72 72 65 6e 74 44 69 72 65 63 74 6f 72 79 41  urrentDirectoryA
17df0 28 0d 0a 20 20 4c 50 43 53 54 52 20 6c 70 50 61  (..  LPCSTR lpPa
17e00 74 68 4e 61 6d 65 29 3b 0d 0a 65 78 74 65 72 6e  thName);..extern
17e10 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
17e20 20 42 4f 4f 4c 20 53 65 74 43 75 72 72 65 6e 74   BOOL SetCurrent
17e30 44 69 72 65 63 74 6f 72 79 57 28 0d 0a 20 20 4c  DirectoryW(..  L
17e40 50 43 57 53 54 52 20 6c 70 50 61 74 68 4e 61 6d  PCWSTR lpPathNam
17e50 65 29 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55  e);..// #ifdef U
17e60 4e 49 43 4f 44 45 0d 0a 61 6c 69 61 73 20 53 65  NICODE..alias Se
17e70 74 43 75 72 72 65 6e 74 44 69 72 65 63 74 6f 72  tCurrentDirector
17e80 79 57 20 53 65 74 43 75 72 72 65 6e 74 44 69 72  yW SetCurrentDir
17e90 65 63 74 6f 72 79 3b 0d 0a 2f 2f 20 23 65 6c 73  ectory;..// #els
17ea0 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23  e..// #.....// #
17eb0 65 6e 64 69 66 20 2f 2f 20 21 55 4e 49 43 4f 44  endif // !UNICOD
17ec0 45 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  E....extern(Wind
17ed0 6f 77 73 29 20 65 78 70 6f 72 74 20 44 57 4f 52  ows) export DWOR
17ee0 44 20 47 65 74 43 75 72 72 65 6e 74 44 69 72 65  D GetCurrentDire
17ef0 63 74 6f 72 79 41 28 0d 0a 20 20 44 57 4f 52 44  ctoryA(..  DWORD
17f00 20 6e 42 75 66 66 65 72 4c 65 6e 67 74 68 2c 0d   nBufferLength,.
17f10 0a 20 20 4c 50 53 54 52 20 6c 70 42 75 66 66 65  .  LPSTR lpBuffe
17f20 72 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  r);..extern(Wind
17f30 6f 77 73 29 20 65 78 70 6f 72 74 20 44 57 4f 52  ows) export DWOR
17f40 44 20 47 65 74 43 75 72 72 65 6e 74 44 69 72 65  D GetCurrentDire
17f50 63 74 6f 72 79 57 28 0d 0a 20 20 44 57 4f 52 44  ctoryW(..  DWORD
17f60 20 6e 42 75 66 66 65 72 4c 65 6e 67 74 68 2c 0d   nBufferLength,.
17f70 0a 20 20 4c 50 57 53 54 52 20 6c 70 42 75 66 66  .  LPWSTR lpBuff
17f80 65 72 29 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20  er);..// #ifdef 
17f90 55 4e 49 43 4f 44 45 0d 0a 61 6c 69 61 73 20 47  UNICODE..alias G
17fa0 65 74 43 75 72 72 65 6e 74 44 69 72 65 63 74 6f  etCurrentDirecto
17fb0 72 79 57 20 47 65 74 43 75 72 72 65 6e 74 44 69  ryW GetCurrentDi
17fc0 72 65 63 74 6f 72 79 3b 0d 0a 2f 2f 20 23 65 6c  rectory;..// #el
17fd0 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20  se..// #.....// 
17fe0 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e 49 43 4f  #endif // !UNICO
17ff0 44 45 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e  DE....extern(Win
18000 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f  dows) export BOO
18010 4c 20 47 65 74 44 69 73 6b 46 72 65 65 53 70 61  L GetDiskFreeSpa
18020 63 65 41 28 0d 0a 20 20 4c 50 43 53 54 52 20 6c  ceA(..  LPCSTR l
18030 70 52 6f 6f 74 50 61 74 68 4e 61 6d 65 2c 0d 0a  pRootPathName,..
18040 20 20 4c 50 44 57 4f 52 44 20 6c 70 53 65 63 74    LPDWORD lpSect
18050 6f 72 73 50 65 72 43 6c 75 73 74 65 72 2c 0d 0a  orsPerCluster,..
18060 20 20 4c 50 44 57 4f 52 44 20 6c 70 42 79 74 65    LPDWORD lpByte
18070 73 50 65 72 53 65 63 74 6f 72 2c 0d 0a 20 20 4c  sPerSector,..  L
18080 50 44 57 4f 52 44 20 6c 70 4e 75 6d 62 65 72 4f  PDWORD lpNumberO
18090 66 46 72 65 65 43 6c 75 73 74 65 72 73 2c 0d 0a  fFreeClusters,..
180a0 20 20 4c 50 44 57 4f 52 44 20 6c 70 54 6f 74 61    LPDWORD lpTota
180b0 6c 4e 75 6d 62 65 72 4f 66 43 6c 75 73 74 65 72  lNumberOfCluster
180c0 73 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  s);..extern(Wind
180d0 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c  ows) export BOOL
180e0 20 47 65 74 44 69 73 6b 46 72 65 65 53 70 61 63   GetDiskFreeSpac
180f0 65 57 28 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c  eW(..  LPCWSTR l
18100 70 52 6f 6f 74 50 61 74 68 4e 61 6d 65 2c 0d 0a  pRootPathName,..
18110 20 20 4c 50 44 57 4f 52 44 20 6c 70 53 65 63 74    LPDWORD lpSect
18120 6f 72 73 50 65 72 43 6c 75 73 74 65 72 2c 0d 0a  orsPerCluster,..
18130 20 20 4c 50 44 57 4f 52 44 20 6c 70 42 79 74 65    LPDWORD lpByte
18140 73 50 65 72 53 65 63 74 6f 72 2c 0d 0a 20 20 4c  sPerSector,..  L
18150 50 44 57 4f 52 44 20 6c 70 4e 75 6d 62 65 72 4f  PDWORD lpNumberO
18160 66 46 72 65 65 43 6c 75 73 74 65 72 73 2c 0d 0a  fFreeClusters,..
18170 20 20 4c 50 44 57 4f 52 44 20 6c 70 54 6f 74 61    LPDWORD lpTota
18180 6c 4e 75 6d 62 65 72 4f 66 43 6c 75 73 74 65 72  lNumberOfCluster
18190 73 29 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55  s);..// #ifdef U
181a0 4e 49 43 4f 44 45 0d 0a 61 6c 69 61 73 20 47 65  NICODE..alias Ge
181b0 74 44 69 73 6b 46 72 65 65 53 70 61 63 65 57 20  tDiskFreeSpaceW 
181c0 47 65 74 44 69 73 6b 46 72 65 65 53 70 61 63 65  GetDiskFreeSpace
181d0 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20  ;..// #else..// 
181e0 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20  #.....// #endif 
181f0 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65  // !UNICODE....e
18200 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
18210 78 70 6f 72 74 20 42 4f 4f 4c 20 47 65 74 44 69  xport BOOL GetDi
18220 73 6b 46 72 65 65 53 70 61 63 65 45 78 41 28 0d  skFreeSpaceExA(.
18230 0a 20 20 4c 50 43 53 54 52 20 6c 70 44 69 72 65  .  LPCSTR lpDire
18240 63 74 6f 72 79 4e 61 6d 65 2c 0d 0a 20 20 50 55  ctoryName,..  PU
18250 4c 41 52 47 45 5f 49 4e 54 45 47 45 52 20 6c 70  LARGE_INTEGER lp
18260 46 72 65 65 42 79 74 65 73 41 76 61 69 6c 61 62  FreeBytesAvailab
18270 6c 65 54 6f 43 61 6c 6c 65 72 2c 0d 0a 20 20 50  leToCaller,..  P
18280 55 4c 41 52 47 45 5f 49 4e 54 45 47 45 52 20 6c  ULARGE_INTEGER l
18290 70 54 6f 74 61 6c 4e 75 6d 62 65 72 4f 66 42 79  pTotalNumberOfBy
182a0 74 65 73 2c 0d 0a 20 20 50 55 4c 41 52 47 45 5f  tes,..  PULARGE_
182b0 49 4e 54 45 47 45 52 20 6c 70 54 6f 74 61 6c 4e  INTEGER lpTotalN
182c0 75 6d 62 65 72 4f 66 46 72 65 65 42 79 74 65 73  umberOfFreeBytes
182d0 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f  );..extern(Windo
182e0 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20  ws) export BOOL 
182f0 47 65 74 44 69 73 6b 46 72 65 65 53 70 61 63 65  GetDiskFreeSpace
18300 45 78 57 28 0d 0a 20 20 4c 50 43 57 53 54 52 20  ExW(..  LPCWSTR 
18310 6c 70 44 69 72 65 63 74 6f 72 79 4e 61 6d 65 2c  lpDirectoryName,
18320 0d 0a 20 20 50 55 4c 41 52 47 45 5f 49 4e 54 45  ..  PULARGE_INTE
18330 47 45 52 20 6c 70 46 72 65 65 42 79 74 65 73 41  GER lpFreeBytesA
18340 76 61 69 6c 61 62 6c 65 54 6f 43 61 6c 6c 65 72  vailableToCaller
18350 2c 0d 0a 20 20 50 55 4c 41 52 47 45 5f 49 4e 54  ,..  PULARGE_INT
18360 45 47 45 52 20 6c 70 54 6f 74 61 6c 4e 75 6d 62  EGER lpTotalNumb
18370 65 72 4f 66 42 79 74 65 73 2c 0d 0a 20 20 50 55  erOfBytes,..  PU
18380 4c 41 52 47 45 5f 49 4e 54 45 47 45 52 20 6c 70  LARGE_INTEGER lp
18390 54 6f 74 61 6c 4e 75 6d 62 65 72 4f 66 46 72 65  TotalNumberOfFre
183a0 65 42 79 74 65 73 29 3b 0d 0a 2f 2f 20 23 69 66  eBytes);..// #if
183b0 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69  def UNICODE..ali
183c0 61 73 20 47 65 74 44 69 73 6b 46 72 65 65 53 70  as GetDiskFreeSp
183d0 61 63 65 45 78 57 20 47 65 74 44 69 73 6b 46 72  aceExW GetDiskFr
183e0 65 65 53 70 61 63 65 45 78 3b 0d 0a 2f 2f 20 23  eeSpaceEx;..// #
183f0 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f  else..// #...../
18400 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e 49  / #endif // !UNI
18410 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72 6e 28 57  CODE....extern(W
18420 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42  indows) export B
18430 4f 4f 4c 20 43 72 65 61 74 65 44 69 72 65 63 74  OOL CreateDirect
18440 6f 72 79 41 28 0d 0a 20 20 4c 50 43 53 54 52 20  oryA(..  LPCSTR 
18450 6c 70 50 61 74 68 4e 61 6d 65 2c 0d 0a 20 20 4c  lpPathName,..  L
18460 50 53 45 43 55 52 49 54 59 5f 41 54 54 52 49 42  PSECURITY_ATTRIB
18470 55 54 45 53 20 6c 70 53 65 63 75 72 69 74 79 41  UTES lpSecurityA
18480 74 74 72 69 62 75 74 65 73 29 3b 0d 0a 65 78 74  ttributes);..ext
18490 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
184a0 6f 72 74 20 42 4f 4f 4c 20 43 72 65 61 74 65 44  ort BOOL CreateD
184b0 69 72 65 63 74 6f 72 79 57 28 0d 0a 20 20 4c 50  irectoryW(..  LP
184c0 43 57 53 54 52 20 6c 70 50 61 74 68 4e 61 6d 65  CWSTR lpPathName
184d0 2c 0d 0a 20 20 4c 50 53 45 43 55 52 49 54 59 5f  ,..  LPSECURITY_
184e0 41 54 54 52 49 42 55 54 45 53 20 6c 70 53 65 63  ATTRIBUTES lpSec
184f0 75 72 69 74 79 41 74 74 72 69 62 75 74 65 73 29  urityAttributes)
18500 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e 49  ;..// #ifdef UNI
18510 43 4f 44 45 0d 0a 61 6c 69 61 73 20 43 72 65 61  CODE..alias Crea
18520 74 65 44 69 72 65 63 74 6f 72 79 57 20 43 72 65  teDirectoryW Cre
18530 61 74 65 44 69 72 65 63 74 6f 72 79 3b 0d 0a 2f  ateDirectory;../
18540 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e  / #else..// #...
18550 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21  ..// #endif // !
18560 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72  UNICODE....exter
18570 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
18580 74 20 42 4f 4f 4c 20 43 72 65 61 74 65 44 69 72  t BOOL CreateDir
18590 65 63 74 6f 72 79 45 78 41 28 0d 0a 20 20 4c 50  ectoryExA(..  LP
185a0 43 53 54 52 20 6c 70 54 65 6d 70 6c 61 74 65 44  CSTR lpTemplateD
185b0 69 72 65 63 74 6f 72 79 2c 0d 0a 20 20 4c 50 43  irectory,..  LPC
185c0 53 54 52 20 6c 70 4e 65 77 44 69 72 65 63 74 6f  STR lpNewDirecto
185d0 72 79 2c 0d 0a 20 20 4c 50 53 45 43 55 52 49 54  ry,..  LPSECURIT
185e0 59 5f 41 54 54 52 49 42 55 54 45 53 20 6c 70 53  Y_ATTRIBUTES lpS
185f0 65 63 75 72 69 74 79 41 74 74 72 69 62 75 74 65  ecurityAttribute
18600 73 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  s);..extern(Wind
18610 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c  ows) export BOOL
18620 20 43 72 65 61 74 65 44 69 72 65 63 74 6f 72 79   CreateDirectory
18630 45 78 57 28 0d 0a 20 20 4c 50 43 57 53 54 52 20  ExW(..  LPCWSTR 
18640 6c 70 54 65 6d 70 6c 61 74 65 44 69 72 65 63 74  lpTemplateDirect
18650 6f 72 79 2c 0d 0a 20 20 4c 50 43 57 53 54 52 20  ory,..  LPCWSTR 
18660 6c 70 4e 65 77 44 69 72 65 63 74 6f 72 79 2c 0d  lpNewDirectory,.
18670 0a 20 20 4c 50 53 45 43 55 52 49 54 59 5f 41 54  .  LPSECURITY_AT
18680 54 52 49 42 55 54 45 53 20 6c 70 53 65 63 75 72  TRIBUTES lpSecur
18690 69 74 79 41 74 74 72 69 62 75 74 65 73 29 3b 0d  ityAttributes);.
186a0 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e 49 43 4f  .// #ifdef UNICO
186b0 44 45 0d 0a 61 6c 69 61 73 20 43 72 65 61 74 65  DE..alias Create
186c0 44 69 72 65 63 74 6f 72 79 45 78 57 20 43 72 65  DirectoryExW Cre
186d0 61 74 65 44 69 72 65 63 74 6f 72 79 45 78 3b 0d  ateDirectoryEx;.
186e0 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e  .// #else..// #.
186f0 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f  ....// #endif //
18700 20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78 74   !UNICODE....ext
18710 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
18720 6f 72 74 20 42 4f 4f 4c 20 52 65 6d 6f 76 65 44  ort BOOL RemoveD
18730 69 72 65 63 74 6f 72 79 41 28 0d 0a 20 20 4c 50  irectoryA(..  LP
18740 43 53 54 52 20 6c 70 50 61 74 68 4e 61 6d 65 29  CSTR lpPathName)
18750 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ;..extern(Window
18760 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 52  s) export BOOL R
18770 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 57 28  emoveDirectoryW(
18780 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 50 61  ..  LPCWSTR lpPa
18790 74 68 4e 61 6d 65 29 3b 0d 0a 2f 2f 20 23 69 66  thName);..// #if
187a0 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69  def UNICODE..ali
187b0 61 73 20 52 65 6d 6f 76 65 44 69 72 65 63 74 6f  as RemoveDirecto
187c0 72 79 57 20 52 65 6d 6f 76 65 44 69 72 65 63 74  ryW RemoveDirect
187d0 6f 72 79 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a  ory;..// #else..
187e0 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64  // #.....// #end
187f0 69 66 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a  if // !UNICODE..
18800 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
18810 29 20 65 78 70 6f 72 74 20 44 57 4f 52 44 20 47  ) export DWORD G
18820 65 74 46 75 6c 6c 50 61 74 68 4e 61 6d 65 41 28  etFullPathNameA(
18830 0d 0a 20 20 4c 50 43 53 54 52 20 6c 70 46 69 6c  ..  LPCSTR lpFil
18840 65 4e 61 6d 65 2c 0d 0a 20 20 44 57 4f 52 44 20  eName,..  DWORD 
18850 6e 42 75 66 66 65 72 4c 65 6e 67 74 68 2c 0d 0a  nBufferLength,..
18860 20 20 4c 50 53 54 52 20 6c 70 42 75 66 66 65 72    LPSTR lpBuffer
18870 2c 0d 0a 20 20 4c 50 53 54 52 20 2a 6c 70 46 69  ,..  LPSTR *lpFi
18880 6c 65 50 61 72 74 29 3b 0d 0a 65 78 74 65 72 6e  lePart);..extern
18890 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
188a0 20 44 57 4f 52 44 20 47 65 74 46 75 6c 6c 50 61   DWORD GetFullPa
188b0 74 68 4e 61 6d 65 57 28 0d 0a 20 20 4c 50 43 57  thNameW(..  LPCW
188c0 53 54 52 20 6c 70 46 69 6c 65 4e 61 6d 65 2c 0d  STR lpFileName,.
188d0 0a 20 20 44 57 4f 52 44 20 6e 42 75 66 66 65 72  .  DWORD nBuffer
188e0 4c 65 6e 67 74 68 2c 0d 0a 20 20 4c 50 57 53 54  Length,..  LPWST
188f0 52 20 6c 70 42 75 66 66 65 72 2c 0d 0a 20 20 4c  R lpBuffer,..  L
18900 50 57 53 54 52 20 2a 6c 70 46 69 6c 65 50 61 72  PWSTR *lpFilePar
18910 74 29 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55  t);..// #ifdef U
18920 4e 49 43 4f 44 45 0d 0a 61 6c 69 61 73 20 47 65  NICODE..alias Ge
18930 74 46 75 6c 6c 50 61 74 68 4e 61 6d 65 57 20 47  tFullPathNameW G
18940 65 74 46 75 6c 6c 50 61 74 68 4e 61 6d 65 3b 0d  etFullPathName;.
18950 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e  .// #else..// #.
18960 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f  ....// #endif //
18970 20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 6e 75   !UNICODE....enu
18980 6d 20 3a 20 75 69 6e 74 20 7b 20 44 44 44 5f 52  m : uint { DDD_R
18990 41 57 5f 54 41 52 47 45 54 5f 50 41 54 48 20 3d  AW_TARGET_PATH =
189a0 20 30 78 30 30 30 30 30 30 30 31 20 7d 0d 0a 65   0x00000001 }..e
189b0 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 44 44 44  num : uint { DDD
189c0 5f 52 45 4d 4f 56 45 5f 44 45 46 49 4e 49 54 49  _REMOVE_DEFINITI
189d0 4f 4e 20 3d 20 30 78 30 30 30 30 30 30 30 32 20  ON = 0x00000002 
189e0 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b  }..enum : uint {
189f0 20 44 44 44 5f 45 58 41 43 54 5f 4d 41 54 43 48   DDD_EXACT_MATCH
18a00 5f 4f 4e 5f 52 45 4d 4f 56 45 20 3d 20 30 78 30  _ON_REMOVE = 0x0
18a10 30 30 30 30 30 30 34 20 7d 0d 0a 65 6e 75 6d 20  0000004 }..enum 
18a20 3a 20 75 69 6e 74 20 7b 20 44 44 44 5f 4e 4f 5f  : uint { DDD_NO_
18a30 42 52 4f 41 44 43 41 53 54 5f 53 59 53 54 45 4d  BROADCAST_SYSTEM
18a40 20 3d 20 30 78 30 30 30 30 30 30 30 38 20 7d 0d   = 0x00000008 }.
18a50 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 44  .enum : uint { D
18a60 44 44 5f 4c 55 49 44 5f 42 52 4f 41 44 43 41 53  DD_LUID_BROADCAS
18a70 54 5f 44 52 49 56 45 20 3d 20 30 78 30 30 30 30  T_DRIVE = 0x0000
18a80 30 30 31 30 20 7d 0d 0a 0d 0a 65 78 74 65 72 6e  0010 }....extern
18a90 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
18aa0 20 42 4f 4f 4c 20 44 65 66 69 6e 65 44 6f 73 44   BOOL DefineDosD
18ab0 65 76 69 63 65 41 28 0d 0a 20 20 44 57 4f 52 44  eviceA(..  DWORD
18ac0 20 64 77 46 6c 61 67 73 2c 0d 0a 20 20 4c 50 43   dwFlags,..  LPC
18ad0 53 54 52 20 6c 70 44 65 76 69 63 65 4e 61 6d 65  STR lpDeviceName
18ae0 2c 0d 0a 20 20 4c 50 43 53 54 52 20 6c 70 54 61  ,..  LPCSTR lpTa
18af0 72 67 65 74 50 61 74 68 29 3b 0d 0a 65 78 74 65  rgetPath);..exte
18b00 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
18b10 72 74 20 42 4f 4f 4c 20 44 65 66 69 6e 65 44 6f  rt BOOL DefineDo
18b20 73 44 65 76 69 63 65 57 28 0d 0a 20 20 44 57 4f  sDeviceW(..  DWO
18b30 52 44 20 64 77 46 6c 61 67 73 2c 0d 0a 20 20 4c  RD dwFlags,..  L
18b40 50 43 57 53 54 52 20 6c 70 44 65 76 69 63 65 4e  PCWSTR lpDeviceN
18b50 61 6d 65 2c 0d 0a 20 20 4c 50 43 57 53 54 52 20  ame,..  LPCWSTR 
18b60 6c 70 54 61 72 67 65 74 50 61 74 68 29 3b 0d 0a  lpTargetPath);..
18b70 2f 2f 20 23 69 66 64 65 66 20 55 4e 49 43 4f 44  // #ifdef UNICOD
18b80 45 0d 0a 61 6c 69 61 73 20 44 65 66 69 6e 65 44  E..alias DefineD
18b90 6f 73 44 65 76 69 63 65 57 20 44 65 66 69 6e 65  osDeviceW Define
18ba0 44 6f 73 44 65 76 69 63 65 3b 0d 0a 2f 2f 20 23  DosDevice;..// #
18bb0 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f  else..// #...../
18bc0 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e 49  / #endif // !UNI
18bd0 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72 6e 28 57  CODE....extern(W
18be0 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 44  indows) export D
18bf0 57 4f 52 44 20 51 75 65 72 79 44 6f 73 44 65 76  WORD QueryDosDev
18c00 69 63 65 41 28 0d 0a 20 20 4c 50 43 53 54 52 20  iceA(..  LPCSTR 
18c10 6c 70 44 65 76 69 63 65 4e 61 6d 65 2c 0d 0a 20  lpDeviceName,.. 
18c20 20 4c 50 53 54 52 20 6c 70 54 61 72 67 65 74 50   LPSTR lpTargetP
18c30 61 74 68 2c 0d 0a 20 20 44 57 4f 52 44 20 75 63  ath,..  DWORD uc
18c40 63 68 4d 61 78 29 3b 0d 0a 65 78 74 65 72 6e 28  chMax);..extern(
18c50 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
18c60 44 57 4f 52 44 20 51 75 65 72 79 44 6f 73 44 65  DWORD QueryDosDe
18c70 76 69 63 65 57 28 0d 0a 20 20 4c 50 43 57 53 54  viceW(..  LPCWST
18c80 52 20 6c 70 44 65 76 69 63 65 4e 61 6d 65 2c 0d  R lpDeviceName,.
18c90 0a 20 20 4c 50 57 53 54 52 20 6c 70 54 61 72 67  .  LPWSTR lpTarg
18ca0 65 74 50 61 74 68 2c 0d 0a 20 20 44 57 4f 52 44  etPath,..  DWORD
18cb0 20 75 63 63 68 4d 61 78 29 3b 0d 0a 2f 2f 20 23   ucchMax);..// #
18cc0 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61  ifdef UNICODE..a
18cd0 6c 69 61 73 20 51 75 65 72 79 44 6f 73 44 65 76  lias QueryDosDev
18ce0 69 63 65 57 20 51 75 65 72 79 44 6f 73 44 65 76  iceW QueryDosDev
18cf0 69 63 65 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a  ice;..// #else..
18d00 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64  // #.....// #end
18d10 69 66 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a  if // !UNICODE..
18d20 0d 0a 2f 2f 20 23 64 65 66 69 6e 65 20 45 58 50  ..// #define EXP
18d30 41 4e 44 5f 4c 4f 43 41 4c 5f 44 52 49 56 45 53  AND_LOCAL_DRIVES
18d40 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f  ....extern(Windo
18d50 77 73 29 20 65 78 70 6f 72 74 20 48 41 4e 44 4c  ws) export HANDL
18d60 45 20 43 72 65 61 74 65 46 69 6c 65 41 28 0d 0a  E CreateFileA(..
18d70 20 20 4c 50 43 53 54 52 20 6c 70 46 69 6c 65 4e    LPCSTR lpFileN
18d80 61 6d 65 2c 0d 0a 20 20 44 57 4f 52 44 20 64 77  ame,..  DWORD dw
18d90 44 65 73 69 72 65 64 41 63 63 65 73 73 2c 0d 0a  DesiredAccess,..
18da0 20 20 44 57 4f 52 44 20 64 77 53 68 61 72 65 4d    DWORD dwShareM
18db0 6f 64 65 2c 0d 0a 20 20 4c 50 53 45 43 55 52 49  ode,..  LPSECURI
18dc0 54 59 5f 41 54 54 52 49 42 55 54 45 53 20 6c 70  TY_ATTRIBUTES lp
18dd0 53 65 63 75 72 69 74 79 41 74 74 72 69 62 75 74  SecurityAttribut
18de0 65 73 2c 0d 0a 20 20 44 57 4f 52 44 20 64 77 43  es,..  DWORD dwC
18df0 72 65 61 74 69 6f 6e 44 69 73 70 6f 73 69 74 69  reationDispositi
18e00 6f 6e 2c 0d 0a 20 20 44 57 4f 52 44 20 64 77 46  on,..  DWORD dwF
18e10 6c 61 67 73 41 6e 64 41 74 74 72 69 62 75 74 65  lagsAndAttribute
18e20 73 2c 0d 0a 20 20 48 41 4e 44 4c 45 20 68 54 65  s,..  HANDLE hTe
18e30 6d 70 6c 61 74 65 46 69 6c 65 29 3b 0d 0a 65 78  mplateFile);..ex
18e40 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
18e50 70 6f 72 74 20 48 41 4e 44 4c 45 20 43 72 65 61  port HANDLE Crea
18e60 74 65 46 69 6c 65 57 28 0d 0a 20 20 4c 50 43 57  teFileW(..  LPCW
18e70 53 54 52 20 6c 70 46 69 6c 65 4e 61 6d 65 2c 0d  STR lpFileName,.
18e80 0a 20 20 44 57 4f 52 44 20 64 77 44 65 73 69 72  .  DWORD dwDesir
18e90 65 64 41 63 63 65 73 73 2c 0d 0a 20 20 44 57 4f  edAccess,..  DWO
18ea0 52 44 20 64 77 53 68 61 72 65 4d 6f 64 65 2c 0d  RD dwShareMode,.
18eb0 0a 20 20 4c 50 53 45 43 55 52 49 54 59 5f 41 54  .  LPSECURITY_AT
18ec0 54 52 49 42 55 54 45 53 20 6c 70 53 65 63 75 72  TRIBUTES lpSecur
18ed0 69 74 79 41 74 74 72 69 62 75 74 65 73 2c 0d 0a  ityAttributes,..
18ee0 20 20 44 57 4f 52 44 20 64 77 43 72 65 61 74 69    DWORD dwCreati
18ef0 6f 6e 44 69 73 70 6f 73 69 74 69 6f 6e 2c 0d 0a  onDisposition,..
18f00 20 20 44 57 4f 52 44 20 64 77 46 6c 61 67 73 41    DWORD dwFlagsA
18f10 6e 64 41 74 74 72 69 62 75 74 65 73 2c 0d 0a 20  ndAttributes,.. 
18f20 20 48 41 4e 44 4c 45 20 68 54 65 6d 70 6c 61 74   HANDLE hTemplat
18f30 65 46 69 6c 65 29 3b 0d 0a 2f 2f 20 23 69 66 64  eFile);..// #ifd
18f40 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69 61  ef UNICODE..alia
18f50 73 20 43 72 65 61 74 65 46 69 6c 65 57 20 43 72  s CreateFileW Cr
18f60 65 61 74 65 46 69 6c 65 3b 0d 0a 2f 2f 20 23 65  eateFile;..// #e
18f70 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f  lse..// #.....//
18f80 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e 49 43   #endif // !UNIC
18f90 4f 44 45 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69  ODE....extern(Wi
18fa0 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f  ndows) export BO
18fb0 4f 4c 20 53 65 74 46 69 6c 65 41 74 74 72 69 62  OL SetFileAttrib
18fc0 75 74 65 73 41 28 0d 0a 20 20 4c 50 43 53 54 52  utesA(..  LPCSTR
18fd0 20 6c 70 46 69 6c 65 4e 61 6d 65 2c 0d 0a 20 20   lpFileName,..  
18fe0 44 57 4f 52 44 20 64 77 46 69 6c 65 41 74 74 72  DWORD dwFileAttr
18ff0 69 62 75 74 65 73 29 3b 0d 0a 65 78 74 65 72 6e  ibutes);..extern
19000 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
19010 20 42 4f 4f 4c 20 53 65 74 46 69 6c 65 41 74 74   BOOL SetFileAtt
19020 72 69 62 75 74 65 73 57 28 0d 0a 20 20 4c 50 43  ributesW(..  LPC
19030 57 53 54 52 20 6c 70 46 69 6c 65 4e 61 6d 65 2c  WSTR lpFileName,
19040 0d 0a 20 20 44 57 4f 52 44 20 64 77 46 69 6c 65  ..  DWORD dwFile
19050 41 74 74 72 69 62 75 74 65 73 29 3b 0d 0a 2f 2f  Attributes);..//
19060 20 23 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d   #ifdef UNICODE.
19070 0a 61 6c 69 61 73 20 53 65 74 46 69 6c 65 41 74  .alias SetFileAt
19080 74 72 69 62 75 74 65 73 57 20 53 65 74 46 69 6c  tributesW SetFil
19090 65 41 74 74 72 69 62 75 74 65 73 3b 0d 0a 2f 2f  eAttributes;..//
190a0 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d   #else..// #....
190b0 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55  .// #endif // !U
190c0 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72 6e  NICODE....extern
190d0 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
190e0 20 44 57 4f 52 44 20 47 65 74 46 69 6c 65 41 74   DWORD GetFileAt
190f0 74 72 69 62 75 74 65 73 41 28 0d 0a 20 20 4c 50  tributesA(..  LP
19100 43 53 54 52 20 6c 70 46 69 6c 65 4e 61 6d 65 29  CSTR lpFileName)
19110 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ;..extern(Window
19120 73 29 20 65 78 70 6f 72 74 20 44 57 4f 52 44 20  s) export DWORD 
19130 47 65 74 46 69 6c 65 41 74 74 72 69 62 75 74 65  GetFileAttribute
19140 73 57 28 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c  sW(..  LPCWSTR l
19150 70 46 69 6c 65 4e 61 6d 65 29 3b 0d 0a 2f 2f 20  pFileName);..// 
19160 23 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a  #ifdef UNICODE..
19170 61 6c 69 61 73 20 47 65 74 46 69 6c 65 41 74 74  alias GetFileAtt
19180 72 69 62 75 74 65 73 57 20 47 65 74 46 69 6c 65  ributesW GetFile
19190 41 74 74 72 69 62 75 74 65 73 3b 0d 0a 2f 2f 20  Attributes;..// 
191a0 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a  #else..// #.....
191b0 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e  // #endif // !UN
191c0 49 43 4f 44 45 0d 0a 0d 0a 61 6c 69 61 73 20 69  ICODE....alias i
191d0 6e 74 20 5f 47 45 54 5f 46 49 4c 45 45 58 5f 49  nt _GET_FILEEX_I
191e0 4e 46 4f 5f 4c 45 56 45 4c 53 3b 0d 0a 65 6e 75  NFO_LEVELS;..enu
191f0 6d 20 7b 0d 0a 20 20 47 65 74 46 69 6c 65 45 78  m {..  GetFileEx
19200 49 6e 66 6f 53 74 61 6e 64 61 72 64 2c 0d 0a 20  InfoStandard,.. 
19210 20 47 65 74 46 69 6c 65 45 78 4d 61 78 49 6e 66   GetFileExMaxInf
19220 6f 4c 65 76 65 6c 2c 0d 0a 7d 0d 0a 61 6c 69 61  oLevel,..}..alia
19230 73 20 5f 47 45 54 5f 46 49 4c 45 45 58 5f 49 4e  s _GET_FILEEX_IN
19240 46 4f 5f 4c 45 56 45 4c 53 20 47 45 54 5f 46 49  FO_LEVELS GET_FI
19250 4c 45 45 58 5f 49 4e 46 4f 5f 4c 45 56 45 4c 53  LEEX_INFO_LEVELS
19260 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  ;....extern(Wind
19270 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c  ows) export BOOL
19280 20 47 65 74 46 69 6c 65 41 74 74 72 69 62 75 74   GetFileAttribut
19290 65 73 45 78 41 28 0d 0a 20 20 4c 50 43 53 54 52  esExA(..  LPCSTR
192a0 20 6c 70 46 69 6c 65 4e 61 6d 65 2c 0d 0a 20 20   lpFileName,..  
192b0 47 45 54 5f 46 49 4c 45 45 58 5f 49 4e 46 4f 5f  GET_FILEEX_INFO_
192c0 4c 45 56 45 4c 53 20 66 49 6e 66 6f 4c 65 76 65  LEVELS fInfoLeve
192d0 6c 49 64 2c 0d 0a 20 20 4c 50 56 4f 49 44 20 6c  lId,..  LPVOID l
192e0 70 46 69 6c 65 49 6e 66 6f 72 6d 61 74 69 6f 6e  pFileInformation
192f0 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f  );..extern(Windo
19300 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20  ws) export BOOL 
19310 47 65 74 46 69 6c 65 41 74 74 72 69 62 75 74 65  GetFileAttribute
19320 73 45 78 57 28 0d 0a 20 20 4c 50 43 57 53 54 52  sExW(..  LPCWSTR
19330 20 6c 70 46 69 6c 65 4e 61 6d 65 2c 0d 0a 20 20   lpFileName,..  
19340 47 45 54 5f 46 49 4c 45 45 58 5f 49 4e 46 4f 5f  GET_FILEEX_INFO_
19350 4c 45 56 45 4c 53 20 66 49 6e 66 6f 4c 65 76 65  LEVELS fInfoLeve
19360 6c 49 64 2c 0d 0a 20 20 4c 50 56 4f 49 44 20 6c  lId,..  LPVOID l
19370 70 46 69 6c 65 49 6e 66 6f 72 6d 61 74 69 6f 6e  pFileInformation
19380 29 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e  );..// #ifdef UN
19390 49 43 4f 44 45 0d 0a 61 6c 69 61 73 20 47 65 74  ICODE..alias Get
193a0 46 69 6c 65 41 74 74 72 69 62 75 74 65 73 45 78  FileAttributesEx
193b0 57 20 47 65 74 46 69 6c 65 41 74 74 72 69 62 75  W GetFileAttribu
193c0 74 65 73 45 78 3b 0d 0a 2f 2f 20 23 65 6c 73 65  tesEx;..// #else
193d0 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65  ..// #.....// #e
193e0 6e 64 69 66 20 2f 2f 20 21 55 4e 49 43 4f 44 45  ndif // !UNICODE
193f0 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f  ....extern(Windo
19400 77 73 29 20 65 78 70 6f 72 74 20 44 57 4f 52 44  ws) export DWORD
19410 20 47 65 74 43 6f 6d 70 72 65 73 73 65 64 46 69   GetCompressedFi
19420 6c 65 53 69 7a 65 41 28 0d 0a 20 20 4c 50 43 53  leSizeA(..  LPCS
19430 54 52 20 6c 70 46 69 6c 65 4e 61 6d 65 2c 0d 0a  TR lpFileName,..
19440 20 20 4c 50 44 57 4f 52 44 20 6c 70 46 69 6c 65    LPDWORD lpFile
19450 53 69 7a 65 48 69 67 68 29 3b 0d 0a 65 78 74 65  SizeHigh);..exte
19460 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
19470 72 74 20 44 57 4f 52 44 20 47 65 74 43 6f 6d 70  rt DWORD GetComp
19480 72 65 73 73 65 64 46 69 6c 65 53 69 7a 65 57 28  ressedFileSizeW(
19490 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 46 69  ..  LPCWSTR lpFi
194a0 6c 65 4e 61 6d 65 2c 0d 0a 20 20 4c 50 44 57 4f  leName,..  LPDWO
194b0 52 44 20 6c 70 46 69 6c 65 53 69 7a 65 48 69 67  RD lpFileSizeHig
194c0 68 29 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55  h);..// #ifdef U
194d0 4e 49 43 4f 44 45 0d 0a 61 6c 69 61 73 20 47 65  NICODE..alias Ge
194e0 74 43 6f 6d 70 72 65 73 73 65 64 46 69 6c 65 53  tCompressedFileS
194f0 69 7a 65 57 20 47 65 74 43 6f 6d 70 72 65 73 73  izeW GetCompress
19500 65 64 46 69 6c 65 53 69 7a 65 3b 0d 0a 2f 2f 20  edFileSize;..// 
19510 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a  #else..// #.....
19520 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e  // #endif // !UN
19530 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72 6e 28  ICODE....extern(
19540 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
19550 42 4f 4f 4c 20 44 65 6c 65 74 65 46 69 6c 65 41  BOOL DeleteFileA
19560 28 0d 0a 20 20 4c 50 43 53 54 52 20 6c 70 46 69  (..  LPCSTR lpFi
19570 6c 65 4e 61 6d 65 29 3b 0d 0a 65 78 74 65 72 6e  leName);..extern
19580 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
19590 20 42 4f 4f 4c 20 44 65 6c 65 74 65 46 69 6c 65   BOOL DeleteFile
195a0 57 28 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70  W(..  LPCWSTR lp
195b0 46 69 6c 65 4e 61 6d 65 29 3b 0d 0a 2f 2f 20 23  FileName);..// #
195c0 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61  ifdef UNICODE..a
195d0 6c 69 61 73 20 44 65 6c 65 74 65 46 69 6c 65 57  lias DeleteFileW
195e0 20 44 65 6c 65 74 65 46 69 6c 65 3b 0d 0a 2f 2f   DeleteFile;..//
195f0 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d   #else..// #....
19600 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55  .// #endif // !U
19610 4e 49 43 4f 44 45 0d 0a 0d 0a 2f 2f 20 23 69 66  NICODE....// #if
19620 28 5f 57 49 4e 33 32 5f 57 49 4e 4e 54 20 3e 3d  (_WIN32_WINNT >=
19630 20 30 78 30 34 30 30 29 0d 0a 61 6c 69 61 73 20   0x0400)..alias 
19640 69 6e 74 20 5f 46 49 4e 44 45 58 5f 49 4e 46 4f  int _FINDEX_INFO
19650 5f 4c 45 56 45 4c 53 3b 0d 0a 65 6e 75 6d 20 7b  _LEVELS;..enum {
19660 0d 0a 20 20 46 69 6e 64 45 78 49 6e 66 6f 53 74  ..  FindExInfoSt
19670 61 6e 64 61 72 64 2c 0d 0a 20 20 46 69 6e 64 45  andard,..  FindE
19680 78 49 6e 66 6f 4d 61 78 49 6e 66 6f 4c 65 76 65  xInfoMaxInfoLeve
19690 6c 2c 0d 0a 7d 0d 0a 61 6c 69 61 73 20 5f 46 49  l,..}..alias _FI
196a0 4e 44 45 58 5f 49 4e 46 4f 5f 4c 45 56 45 4c 53  NDEX_INFO_LEVELS
196b0 20 46 49 4e 44 45 58 5f 49 4e 46 4f 5f 4c 45 56   FINDEX_INFO_LEV
196c0 45 4c 53 3b 0d 0a 0d 0a 61 6c 69 61 73 20 69 6e  ELS;....alias in
196d0 74 20 5f 46 49 4e 44 45 58 5f 53 45 41 52 43 48  t _FINDEX_SEARCH
196e0 5f 4f 50 53 3b 0d 0a 65 6e 75 6d 20 7b 0d 0a 20  _OPS;..enum {.. 
196f0 20 46 69 6e 64 45 78 53 65 61 72 63 68 4e 61 6d   FindExSearchNam
19700 65 4d 61 74 63 68 2c 0d 0a 20 20 46 69 6e 64 45  eMatch,..  FindE
19710 78 53 65 61 72 63 68 4c 69 6d 69 74 54 6f 44 69  xSearchLimitToDi
19720 72 65 63 74 6f 72 69 65 73 2c 0d 0a 20 20 46 69  rectories,..  Fi
19730 6e 64 45 78 53 65 61 72 63 68 4c 69 6d 69 74 54  ndExSearchLimitT
19740 6f 44 65 76 69 63 65 73 2c 0d 0a 20 20 46 69 6e  oDevices,..  Fin
19750 64 45 78 53 65 61 72 63 68 4d 61 78 53 65 61 72  dExSearchMaxSear
19760 63 68 4f 70 2c 0d 0a 7d 0d 0a 61 6c 69 61 73 20  chOp,..}..alias 
19770 5f 46 49 4e 44 45 58 5f 53 45 41 52 43 48 5f 4f  _FINDEX_SEARCH_O
19780 50 53 20 46 49 4e 44 45 58 5f 53 45 41 52 43 48  PS FINDEX_SEARCH
19790 5f 4f 50 53 3b 0d 0a 0d 0a 65 6e 75 6d 20 3a 20  _OPS;....enum : 
197a0 75 69 6e 74 20 7b 20 46 49 4e 44 5f 46 49 52 53  uint { FIND_FIRS
197b0 54 5f 45 58 5f 43 41 53 45 5f 53 45 4e 53 49 54  T_EX_CASE_SENSIT
197c0 49 56 45 20 3d 20 30 78 30 30 30 30 30 30 30 31  IVE = 0x00000001
197d0 20 7d 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e   }....extern(Win
197e0 64 6f 77 73 29 20 65 78 70 6f 72 74 20 48 41 4e  dows) export HAN
197f0 44 4c 45 20 46 69 6e 64 46 69 72 73 74 46 69 6c  DLE FindFirstFil
19800 65 45 78 41 28 0d 0a 20 20 4c 50 43 53 54 52 20  eExA(..  LPCSTR 
19810 6c 70 46 69 6c 65 4e 61 6d 65 2c 0d 0a 20 20 46  lpFileName,..  F
19820 49 4e 44 45 58 5f 49 4e 46 4f 5f 4c 45 56 45 4c  INDEX_INFO_LEVEL
19830 53 20 66 49 6e 66 6f 4c 65 76 65 6c 49 64 2c 0d  S fInfoLevelId,.
19840 0a 20 20 4c 50 56 4f 49 44 20 6c 70 46 69 6e 64  .  LPVOID lpFind
19850 46 69 6c 65 44 61 74 61 2c 0d 0a 20 20 46 49 4e  FileData,..  FIN
19860 44 45 58 5f 53 45 41 52 43 48 5f 4f 50 53 20 66  DEX_SEARCH_OPS f
19870 53 65 61 72 63 68 4f 70 2c 0d 0a 20 20 4c 50 56  SearchOp,..  LPV
19880 4f 49 44 20 6c 70 53 65 61 72 63 68 46 69 6c 74  OID lpSearchFilt
19890 65 72 2c 0d 0a 20 20 44 57 4f 52 44 20 64 77 41  er,..  DWORD dwA
198a0 64 64 69 74 69 6f 6e 61 6c 46 6c 61 67 73 29 3b  dditionalFlags);
198b0 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
198c0 29 20 65 78 70 6f 72 74 20 48 41 4e 44 4c 45 20  ) export HANDLE 
198d0 46 69 6e 64 46 69 72 73 74 46 69 6c 65 45 78 57  FindFirstFileExW
198e0 28 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 46  (..  LPCWSTR lpF
198f0 69 6c 65 4e 61 6d 65 2c 0d 0a 20 20 46 49 4e 44  ileName,..  FIND
19900 45 58 5f 49 4e 46 4f 5f 4c 45 56 45 4c 53 20 66  EX_INFO_LEVELS f
19910 49 6e 66 6f 4c 65 76 65 6c 49 64 2c 0d 0a 20 20  InfoLevelId,..  
19920 4c 50 56 4f 49 44 20 6c 70 46 69 6e 64 46 69 6c  LPVOID lpFindFil
19930 65 44 61 74 61 2c 0d 0a 20 20 46 49 4e 44 45 58  eData,..  FINDEX
19940 5f 53 45 41 52 43 48 5f 4f 50 53 20 66 53 65 61  _SEARCH_OPS fSea
19950 72 63 68 4f 70 2c 0d 0a 20 20 4c 50 56 4f 49 44  rchOp,..  LPVOID
19960 20 6c 70 53 65 61 72 63 68 46 69 6c 74 65 72 2c   lpSearchFilter,
19970 0d 0a 20 20 44 57 4f 52 44 20 64 77 41 64 64 69  ..  DWORD dwAddi
19980 74 69 6f 6e 61 6c 46 6c 61 67 73 29 3b 0d 0a 2f  tionalFlags);../
19990 2f 20 23 69 66 64 65 66 20 55 4e 49 43 4f 44 45  / #ifdef UNICODE
199a0 0d 0a 61 6c 69 61 73 20 46 69 6e 64 46 69 72 73  ..alias FindFirs
199b0 74 46 69 6c 65 45 78 57 20 46 69 6e 64 46 69 72  tFileExW FindFir
199c0 73 74 46 69 6c 65 45 78 3b 0d 0a 2f 2f 20 23 65  stFileEx;..// #e
199d0 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f  lse..// #.....//
199e0 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e 49 43   #endif // !UNIC
199f0 4f 44 45 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f  ODE..// #endif /
19a00 2a 20 5f 57 49 4e 33 32 5f 57 49 4e 4e 54 20 3e  * _WIN32_WINNT >
19a10 3d 20 30 78 30 34 30 30 20 2a 2f 0d 0a 0d 0a 65  = 0x0400 */....e
19a20 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
19a30 78 70 6f 72 74 20 48 41 4e 44 4c 45 20 46 69 6e  xport HANDLE Fin
19a40 64 46 69 72 73 74 46 69 6c 65 41 28 0d 0a 20 20  dFirstFileA(..  
19a50 4c 50 43 53 54 52 20 6c 70 46 69 6c 65 4e 61 6d  LPCSTR lpFileNam
19a60 65 2c 0d 0a 20 20 4c 50 57 49 4e 33 32 5f 46 49  e,..  LPWIN32_FI
19a70 4e 44 5f 44 41 54 41 41 20 6c 70 46 69 6e 64 46  ND_DATAA lpFindF
19a80 69 6c 65 44 61 74 61 29 3b 0d 0a 65 78 74 65 72  ileData);..exter
19a90 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
19aa0 74 20 48 41 4e 44 4c 45 20 46 69 6e 64 46 69 72  t HANDLE FindFir
19ab0 73 74 46 69 6c 65 57 28 0d 0a 20 20 4c 50 43 57  stFileW(..  LPCW
19ac0 53 54 52 20 6c 70 46 69 6c 65 4e 61 6d 65 2c 0d  STR lpFileName,.
19ad0 0a 20 20 4c 50 57 49 4e 33 32 5f 46 49 4e 44 5f  .  LPWIN32_FIND_
19ae0 44 41 54 41 57 20 6c 70 46 69 6e 64 46 69 6c 65  DATAW lpFindFile
19af0 44 61 74 61 29 3b 0d 0a 2f 2f 20 23 69 66 64 65  Data);..// #ifde
19b00 66 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69 61 73  f UNICODE..alias
19b10 20 46 69 6e 64 46 69 72 73 74 46 69 6c 65 57 20   FindFirstFileW 
19b20 46 69 6e 64 46 69 72 73 74 46 69 6c 65 3b 0d 0a  FindFirstFile;..
19b30 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e  // #else..// #..
19b40 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20  ...// #endif // 
19b50 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65  !UNICODE....exte
19b60 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
19b70 72 74 20 42 4f 4f 4c 20 46 69 6e 64 4e 65 78 74  rt BOOL FindNext
19b80 46 69 6c 65 41 28 0d 0a 20 20 48 41 4e 44 4c 45  FileA(..  HANDLE
19b90 20 68 46 69 6e 64 46 69 6c 65 2c 0d 0a 20 20 4c   hFindFile,..  L
19ba0 50 57 49 4e 33 32 5f 46 49 4e 44 5f 44 41 54 41  PWIN32_FIND_DATA
19bb0 41 20 6c 70 46 69 6e 64 46 69 6c 65 44 61 74 61  A lpFindFileData
19bc0 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f  );..extern(Windo
19bd0 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20  ws) export BOOL 
19be0 46 69 6e 64 4e 65 78 74 46 69 6c 65 57 28 0d 0a  FindNextFileW(..
19bf0 20 20 48 41 4e 44 4c 45 20 68 46 69 6e 64 46 69    HANDLE hFindFi
19c00 6c 65 2c 0d 0a 20 20 4c 50 57 49 4e 33 32 5f 46  le,..  LPWIN32_F
19c10 49 4e 44 5f 44 41 54 41 57 20 6c 70 46 69 6e 64  IND_DATAW lpFind
19c20 46 69 6c 65 44 61 74 61 29 3b 0d 0a 2f 2f 20 23  FileData);..// #
19c30 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61  ifdef UNICODE..a
19c40 6c 69 61 73 20 46 69 6e 64 4e 65 78 74 46 69 6c  lias FindNextFil
19c50 65 57 20 46 69 6e 64 4e 65 78 74 46 69 6c 65 3b  eW FindNextFile;
19c60 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23  ..// #else..// #
19c70 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f  .....// #endif /
19c80 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78  / !UNICODE....ex
19c90 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
19ca0 70 6f 72 74 20 44 57 4f 52 44 20 53 65 61 72 63  port DWORD Searc
19cb0 68 50 61 74 68 41 28 0d 0a 20 20 4c 50 43 53 54  hPathA(..  LPCST
19cc0 52 20 6c 70 50 61 74 68 2c 0d 0a 20 20 4c 50 43  R lpPath,..  LPC
19cd0 53 54 52 20 6c 70 46 69 6c 65 4e 61 6d 65 2c 0d  STR lpFileName,.
19ce0 0a 20 20 4c 50 43 53 54 52 20 6c 70 45 78 74 65  .  LPCSTR lpExte
19cf0 6e 73 69 6f 6e 2c 0d 0a 20 20 44 57 4f 52 44 20  nsion,..  DWORD 
19d00 6e 42 75 66 66 65 72 4c 65 6e 67 74 68 2c 0d 0a  nBufferLength,..
19d10 20 20 4c 50 53 54 52 20 6c 70 42 75 66 66 65 72    LPSTR lpBuffer
19d20 2c 0d 0a 20 20 4c 50 53 54 52 20 2a 6c 70 46 69  ,..  LPSTR *lpFi
19d30 6c 65 50 61 72 74 29 3b 0d 0a 65 78 74 65 72 6e  lePart);..extern
19d40 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
19d50 20 44 57 4f 52 44 20 53 65 61 72 63 68 50 61 74   DWORD SearchPat
19d60 68 57 28 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c  hW(..  LPCWSTR l
19d70 70 50 61 74 68 2c 0d 0a 20 20 4c 50 43 57 53 54  pPath,..  LPCWST
19d80 52 20 6c 70 46 69 6c 65 4e 61 6d 65 2c 0d 0a 20  R lpFileName,.. 
19d90 20 4c 50 43 57 53 54 52 20 6c 70 45 78 74 65 6e   LPCWSTR lpExten
19da0 73 69 6f 6e 2c 0d 0a 20 20 44 57 4f 52 44 20 6e  sion,..  DWORD n
19db0 42 75 66 66 65 72 4c 65 6e 67 74 68 2c 0d 0a 20  BufferLength,.. 
19dc0 20 4c 50 57 53 54 52 20 6c 70 42 75 66 66 65 72   LPWSTR lpBuffer
19dd0 2c 0d 0a 20 20 4c 50 57 53 54 52 20 2a 6c 70 46  ,..  LPWSTR *lpF
19de0 69 6c 65 50 61 72 74 29 3b 0d 0a 2f 2f 20 23 69  ilePart);..// #i
19df0 66 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61 6c  fdef UNICODE..al
19e00 69 61 73 20 53 65 61 72 63 68 50 61 74 68 57 20  ias SearchPathW 
19e10 53 65 61 72 63 68 50 61 74 68 3b 0d 0a 2f 2f 20  SearchPath;..// 
19e20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a  #else..// #.....
19e30 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e  // #endif // !UN
19e40 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72 6e 28  ICODE....extern(
19e50 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
19e60 42 4f 4f 4c 20 43 6f 70 79 46 69 6c 65 41 28 0d  BOOL CopyFileA(.
19e70 0a 20 20 4c 50 43 53 54 52 20 6c 70 45 78 69 73  .  LPCSTR lpExis
19e80 74 69 6e 67 46 69 6c 65 4e 61 6d 65 2c 0d 0a 20  tingFileName,.. 
19e90 20 4c 50 43 53 54 52 20 6c 70 4e 65 77 46 69 6c   LPCSTR lpNewFil
19ea0 65 4e 61 6d 65 2c 0d 0a 20 20 42 4f 4f 4c 20 62  eName,..  BOOL b
19eb0 46 61 69 6c 49 66 45 78 69 73 74 73 29 3b 0d 0a  FailIfExists);..
19ec0 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
19ed0 65 78 70 6f 72 74 20 42 4f 4f 4c 20 43 6f 70 79  export BOOL Copy
19ee0 46 69 6c 65 57 28 0d 0a 20 20 4c 50 43 57 53 54  FileW(..  LPCWST
19ef0 52 20 6c 70 45 78 69 73 74 69 6e 67 46 69 6c 65  R lpExistingFile
19f00 4e 61 6d 65 2c 0d 0a 20 20 4c 50 43 57 53 54 52  Name,..  LPCWSTR
19f10 20 6c 70 4e 65 77 46 69 6c 65 4e 61 6d 65 2c 0d   lpNewFileName,.
19f20 0a 20 20 42 4f 4f 4c 20 62 46 61 69 6c 49 66 45  .  BOOL bFailIfE
19f30 78 69 73 74 73 29 3b 0d 0a 2f 2f 20 23 69 66 64  xists);..// #ifd
19f40 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69 61  ef UNICODE..alia
19f50 73 20 43 6f 70 79 46 69 6c 65 57 20 43 6f 70 79  s CopyFileW Copy
19f60 46 69 6c 65 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d  File;..// #else.
19f70 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e  .// #.....// #en
19f80 64 69 66 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d  dif // !UNICODE.
19f90 0a 0d 0a 2f 2f 20 23 69 66 28 5f 57 49 4e 33 32  ...// #if(_WIN32
19fa0 5f 57 49 4e 4e 54 20 3e 3d 20 30 78 30 34 30 30  _WINNT >= 0x0400
19fb0 29 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  )..extern(Window
19fc0 73 29 20 61 6c 69 61 73 20 44 57 4f 52 44 20 66  s) alias DWORD f
19fd0 75 6e 63 74 69 6f 6e 28 20 4c 41 52 47 45 5f 49  unction( LARGE_I
19fe0 4e 54 45 47 45 52 20 54 6f 74 61 6c 46 69 6c 65  NTEGER TotalFile
19ff0 53 69 7a 65 2c 20 4c 41 52 47 45 5f 49 4e 54 45  Size, LARGE_INTE
1a000 47 45 52 20 54 6f 74 61 6c 42 79 74 65 73 54 72  GER TotalBytesTr
1a010 61 6e 73 66 65 72 72 65 64 2c 20 4c 41 52 47 45  ansferred, LARGE
1a020 5f 49 4e 54 45 47 45 52 20 53 74 72 65 61 6d 53  _INTEGER StreamS
1a030 69 7a 65 2c 20 4c 41 52 47 45 5f 49 4e 54 45 47  ize, LARGE_INTEG
1a040 45 52 20 53 74 72 65 61 6d 42 79 74 65 73 54 72  ER StreamBytesTr
1a050 61 6e 73 66 65 72 72 65 64 2c 20 44 57 4f 52 44  ansferred, DWORD
1a060 20 64 77 53 74 72 65 61 6d 4e 75 6d 62 65 72 2c   dwStreamNumber,
1a070 20 44 57 4f 52 44 20 64 77 43 61 6c 6c 62 61 63   DWORD dwCallbac
1a080 6b 52 65 61 73 6f 6e 2c 20 48 41 4e 44 4c 45 20  kReason, HANDLE 
1a090 68 53 6f 75 72 63 65 46 69 6c 65 2c 20 48 41 4e  hSourceFile, HAN
1a0a0 44 4c 45 20 68 44 65 73 74 69 6e 61 74 69 6f 6e  DLE hDestination
1a0b0 46 69 6c 65 2c 20 4c 50 56 4f 49 44 20 6c 70 44  File, LPVOID lpD
1a0c0 61 74 61 20 20 29 20 4c 50 50 52 4f 47 52 45 53  ata  ) LPPROGRES
1a0d0 53 5f 52 4f 55 54 49 4e 45 3b 0d 0a 0d 0a 65 78  S_ROUTINE;....ex
1a0e0 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
1a0f0 70 6f 72 74 20 42 4f 4f 4c 20 43 6f 70 79 46 69  port BOOL CopyFi
1a100 6c 65 45 78 41 28 0d 0a 20 20 4c 50 43 53 54 52  leExA(..  LPCSTR
1a110 20 6c 70 45 78 69 73 74 69 6e 67 46 69 6c 65 4e   lpExistingFileN
1a120 61 6d 65 2c 0d 0a 20 20 4c 50 43 53 54 52 20 6c  ame,..  LPCSTR l
1a130 70 4e 65 77 46 69 6c 65 4e 61 6d 65 2c 0d 0a 20  pNewFileName,.. 
1a140 20 4c 50 50 52 4f 47 52 45 53 53 5f 52 4f 55 54   LPPROGRESS_ROUT
1a150 49 4e 45 20 6c 70 50 72 6f 67 72 65 73 73 52 6f  INE lpProgressRo
1a160 75 74 69 6e 65 20 2c 0d 0a 20 20 4c 50 56 4f 49  utine ,..  LPVOI
1a170 44 20 6c 70 44 61 74 61 20 2c 0d 0a 20 20 4c 50  D lpData ,..  LP
1a180 42 4f 4f 4c 20 70 62 43 61 6e 63 65 6c 20 2c 0d  BOOL pbCancel ,.
1a190 0a 20 20 44 57 4f 52 44 20 64 77 43 6f 70 79 46  .  DWORD dwCopyF
1a1a0 6c 61 67 73 29 3b 0d 0a 65 78 74 65 72 6e 28 57  lags);..extern(W
1a1b0 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42  indows) export B
1a1c0 4f 4f 4c 20 43 6f 70 79 46 69 6c 65 45 78 57 28  OOL CopyFileExW(
1a1d0 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 45 78  ..  LPCWSTR lpEx
1a1e0 69 73 74 69 6e 67 46 69 6c 65 4e 61 6d 65 2c 0d  istingFileName,.
1a1f0 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 4e 65 77  .  LPCWSTR lpNew
1a200 46 69 6c 65 4e 61 6d 65 2c 0d 0a 20 20 4c 50 50  FileName,..  LPP
1a210 52 4f 47 52 45 53 53 5f 52 4f 55 54 49 4e 45 20  ROGRESS_ROUTINE 
1a220 6c 70 50 72 6f 67 72 65 73 73 52 6f 75 74 69 6e  lpProgressRoutin
1a230 65 20 2c 0d 0a 20 20 4c 50 56 4f 49 44 20 6c 70  e ,..  LPVOID lp
1a240 44 61 74 61 20 2c 0d 0a 20 20 4c 50 42 4f 4f 4c  Data ,..  LPBOOL
1a250 20 70 62 43 61 6e 63 65 6c 20 2c 0d 0a 20 20 44   pbCancel ,..  D
1a260 57 4f 52 44 20 64 77 43 6f 70 79 46 6c 61 67 73  WORD dwCopyFlags
1a270 29 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e  );..// #ifdef UN
1a280 49 43 4f 44 45 0d 0a 61 6c 69 61 73 20 43 6f 70  ICODE..alias Cop
1a290 79 46 69 6c 65 45 78 57 20 43 6f 70 79 46 69 6c  yFileExW CopyFil
1a2a0 65 45 78 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a  eEx;..// #else..
1a2b0 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64  // #.....// #end
1a2c0 69 66 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a  if // !UNICODE..
1a2d0 2f 2f 20 23 65 6e 64 69 66 20 2f 2a 20 5f 57 49  // #endif /* _WI
1a2e0 4e 33 32 5f 57 49 4e 4e 54 20 3e 3d 20 30 78 30  N32_WINNT >= 0x0
1a2f0 34 30 30 20 2a 2f 0d 0a 0d 0a 65 78 74 65 72 6e  400 */....extern
1a300 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
1a310 20 42 4f 4f 4c 20 4d 6f 76 65 46 69 6c 65 41 28   BOOL MoveFileA(
1a320 0d 0a 20 20 4c 50 43 53 54 52 20 6c 70 45 78 69  ..  LPCSTR lpExi
1a330 73 74 69 6e 67 46 69 6c 65 4e 61 6d 65 2c 0d 0a  stingFileName,..
1a340 20 20 4c 50 43 53 54 52 20 6c 70 4e 65 77 46 69    LPCSTR lpNewFi
1a350 6c 65 4e 61 6d 65 29 3b 0d 0a 65 78 74 65 72 6e  leName);..extern
1a360 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
1a370 20 42 4f 4f 4c 20 4d 6f 76 65 46 69 6c 65 57 28   BOOL MoveFileW(
1a380 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 45 78  ..  LPCWSTR lpEx
1a390 69 73 74 69 6e 67 46 69 6c 65 4e 61 6d 65 2c 0d  istingFileName,.
1a3a0 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 4e 65 77  .  LPCWSTR lpNew
1a3b0 46 69 6c 65 4e 61 6d 65 29 3b 0d 0a 2f 2f 20 23  FileName);..// #
1a3c0 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61  ifdef UNICODE..a
1a3d0 6c 69 61 73 20 4d 6f 76 65 46 69 6c 65 57 20 4d  lias MoveFileW M
1a3e0 6f 76 65 46 69 6c 65 3b 0d 0a 2f 2f 20 23 65 6c  oveFile;..// #el
1a3f0 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20  se..// #.....// 
1a400 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e 49 43 4f  #endif // !UNICO
1a410 44 45 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e  DE....extern(Win
1a420 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f  dows) export BOO
1a430 4c 20 4d 6f 76 65 46 69 6c 65 45 78 41 28 0d 0a  L MoveFileExA(..
1a440 20 20 4c 50 43 53 54 52 20 6c 70 45 78 69 73 74    LPCSTR lpExist
1a450 69 6e 67 46 69 6c 65 4e 61 6d 65 2c 0d 0a 20 20  ingFileName,..  
1a460 4c 50 43 53 54 52 20 6c 70 4e 65 77 46 69 6c 65  LPCSTR lpNewFile
1a470 4e 61 6d 65 2c 0d 0a 20 20 44 57 4f 52 44 20 64  Name,..  DWORD d
1a480 77 46 6c 61 67 73 29 3b 0d 0a 65 78 74 65 72 6e  wFlags);..extern
1a490 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
1a4a0 20 42 4f 4f 4c 20 4d 6f 76 65 46 69 6c 65 45 78   BOOL MoveFileEx
1a4b0 57 28 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70  W(..  LPCWSTR lp
1a4c0 45 78 69 73 74 69 6e 67 46 69 6c 65 4e 61 6d 65  ExistingFileName
1a4d0 2c 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 4e  ,..  LPCWSTR lpN
1a4e0 65 77 46 69 6c 65 4e 61 6d 65 2c 0d 0a 20 20 44  ewFileName,..  D
1a4f0 57 4f 52 44 20 64 77 46 6c 61 67 73 29 3b 0d 0a  WORD dwFlags);..
1a500 2f 2f 20 23 69 66 64 65 66 20 55 4e 49 43 4f 44  // #ifdef UNICOD
1a510 45 0d 0a 61 6c 69 61 73 20 4d 6f 76 65 46 69 6c  E..alias MoveFil
1a520 65 45 78 57 20 4d 6f 76 65 46 69 6c 65 45 78 3b  eExW MoveFileEx;
1a530 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23  ..// #else..// #
1a540 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f  .....// #endif /
1a550 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 2f 2f  / !UNICODE....//
1a560 20 23 69 66 20 28 5f 57 49 4e 33 32 5f 57 49 4e   #if (_WIN32_WIN
1a570 4e 54 20 3e 3d 20 30 78 30 35 30 30 29 0d 0a 65  NT >= 0x0500)..e
1a580 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
1a590 78 70 6f 72 74 20 42 4f 4f 4c 20 4d 6f 76 65 46  xport BOOL MoveF
1a5a0 69 6c 65 57 69 74 68 50 72 6f 67 72 65 73 73 41  ileWithProgressA
1a5b0 28 0d 0a 20 20 4c 50 43 53 54 52 20 6c 70 45 78  (..  LPCSTR lpEx
1a5c0 69 73 74 69 6e 67 46 69 6c 65 4e 61 6d 65 2c 0d  istingFileName,.
1a5d0 0a 20 20 4c 50 43 53 54 52 20 6c 70 4e 65 77 46  .  LPCSTR lpNewF
1a5e0 69 6c 65 4e 61 6d 65 2c 0d 0a 20 20 4c 50 50 52  ileName,..  LPPR
1a5f0 4f 47 52 45 53 53 5f 52 4f 55 54 49 4e 45 20 6c  OGRESS_ROUTINE l
1a600 70 50 72 6f 67 72 65 73 73 52 6f 75 74 69 6e 65  pProgressRoutine
1a610 20 2c 0d 0a 20 20 4c 50 56 4f 49 44 20 6c 70 44   ,..  LPVOID lpD
1a620 61 74 61 20 2c 0d 0a 20 20 44 57 4f 52 44 20 64  ata ,..  DWORD d
1a630 77 46 6c 61 67 73 29 3b 0d 0a 65 78 74 65 72 6e  wFlags);..extern
1a640 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
1a650 20 42 4f 4f 4c 20 4d 6f 76 65 46 69 6c 65 57 69   BOOL MoveFileWi
1a660 74 68 50 72 6f 67 72 65 73 73 57 28 0d 0a 20 20  thProgressW(..  
1a670 4c 50 43 57 53 54 52 20 6c 70 45 78 69 73 74 69  LPCWSTR lpExisti
1a680 6e 67 46 69 6c 65 4e 61 6d 65 2c 0d 0a 20 20 4c  ngFileName,..  L
1a690 50 43 57 53 54 52 20 6c 70 4e 65 77 46 69 6c 65  PCWSTR lpNewFile
1a6a0 4e 61 6d 65 2c 0d 0a 20 20 4c 50 50 52 4f 47 52  Name,..  LPPROGR
1a6b0 45 53 53 5f 52 4f 55 54 49 4e 45 20 6c 70 50 72  ESS_ROUTINE lpPr
1a6c0 6f 67 72 65 73 73 52 6f 75 74 69 6e 65 20 2c 0d  ogressRoutine ,.
1a6d0 0a 20 20 4c 50 56 4f 49 44 20 6c 70 44 61 74 61  .  LPVOID lpData
1a6e0 20 2c 0d 0a 20 20 44 57 4f 52 44 20 64 77 46 6c   ,..  DWORD dwFl
1a6f0 61 67 73 29 3b 0d 0a 2f 2f 20 23 69 66 64 65 66  ags);..// #ifdef
1a700 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69 61 73 20   UNICODE..alias 
1a710 4d 6f 76 65 46 69 6c 65 57 69 74 68 50 72 6f 67  MoveFileWithProg
1a720 72 65 73 73 57 20 4d 6f 76 65 46 69 6c 65 57 69  ressW MoveFileWi
1a730 74 68 50 72 6f 67 72 65 73 73 3b 0d 0a 2f 2f 20  thProgress;..// 
1a740 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a  #else..// #.....
1a750 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e  // #endif // !UN
1a760 49 43 4f 44 45 0d 0a 2f 2f 20 23 65 6e 64 69 66  ICODE..// #endif
1a770 20 2f 2f 20 28 5f 57 49 4e 33 32 5f 57 49 4e 4e   // (_WIN32_WINN
1a780 54 20 3e 3d 20 30 78 30 35 30 30 29 0d 0a 0d 0a  T >= 0x0500)....
1a790 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 4d 4f  enum : uint { MO
1a7a0 56 45 46 49 4c 45 5f 52 45 50 4c 41 43 45 5f 45  VEFILE_REPLACE_E
1a7b0 58 49 53 54 49 4e 47 20 3d 20 30 78 30 30 30 30  XISTING = 0x0000
1a7c0 30 30 30 31 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75  0001 }..enum : u
1a7d0 69 6e 74 20 7b 20 4d 4f 56 45 46 49 4c 45 5f 43  int { MOVEFILE_C
1a7e0 4f 50 59 5f 41 4c 4c 4f 57 45 44 20 3d 20 30 78  OPY_ALLOWED = 0x
1a7f0 30 30 30 30 30 30 30 32 20 7d 0d 0a 65 6e 75 6d  00000002 }..enum
1a800 20 3a 20 75 69 6e 74 20 7b 20 4d 4f 56 45 46 49   : uint { MOVEFI
1a810 4c 45 5f 44 45 4c 41 59 5f 55 4e 54 49 4c 5f 52  LE_DELAY_UNTIL_R
1a820 45 42 4f 4f 54 20 3d 20 30 78 30 30 30 30 30 30  EBOOT = 0x000000
1a830 30 34 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e  04 }..enum : uin
1a840 74 20 7b 20 4d 4f 56 45 46 49 4c 45 5f 57 52 49  t { MOVEFILE_WRI
1a850 54 45 5f 54 48 52 4f 55 47 48 20 3d 20 30 78 30  TE_THROUGH = 0x0
1a860 30 30 30 30 30 30 38 20 7d 0d 0a 2f 2f 20 23 69  0000008 }..// #i
1a870 66 20 28 5f 57 49 4e 33 32 5f 57 49 4e 4e 54 20  f (_WIN32_WINNT 
1a880 3e 3d 20 30 78 30 35 30 30 29 0d 0a 65 6e 75 6d  >= 0x0500)..enum
1a890 20 3a 20 75 69 6e 74 20 7b 20 4d 4f 56 45 46 49   : uint { MOVEFI
1a8a0 4c 45 5f 43 52 45 41 54 45 5f 48 41 52 44 4c 49  LE_CREATE_HARDLI
1a8b0 4e 4b 20 3d 20 30 78 30 30 30 30 30 30 31 30 20  NK = 0x00000010 
1a8c0 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b  }..enum : uint {
1a8d0 20 4d 4f 56 45 46 49 4c 45 5f 46 41 49 4c 5f 49   MOVEFILE_FAIL_I
1a8e0 46 5f 4e 4f 54 5f 54 52 41 43 4b 41 42 4c 45 20  F_NOT_TRACKABLE 
1a8f0 3d 20 30 78 30 30 30 30 30 30 32 30 20 7d 0d 0a  = 0x00000020 }..
1a900 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 28 5f 57  // #endif // (_W
1a910 49 4e 33 32 5f 57 49 4e 4e 54 20 3e 3d 20 30 78  IN32_WINNT >= 0x
1a920 30 35 30 30 29 0d 0a 0d 0a 2f 2f 20 23 69 66 20  0500)....// #if 
1a930 28 5f 57 49 4e 33 32 5f 57 49 4e 4e 54 20 3e 3d  (_WIN32_WINNT >=
1a940 20 30 78 30 35 30 30 29 0d 0a 65 78 74 65 72 6e   0x0500)..extern
1a950 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
1a960 20 42 4f 4f 4c 20 52 65 70 6c 61 63 65 46 69 6c   BOOL ReplaceFil
1a970 65 41 28 0d 0a 20 20 4c 50 43 53 54 52 20 6c 70  eA(..  LPCSTR lp
1a980 52 65 70 6c 61 63 65 64 46 69 6c 65 4e 61 6d 65  ReplacedFileName
1a990 2c 0d 0a 20 20 4c 50 43 53 54 52 20 6c 70 52 65  ,..  LPCSTR lpRe
1a9a0 70 6c 61 63 65 6d 65 6e 74 46 69 6c 65 4e 61 6d  placementFileNam
1a9b0 65 2c 0d 0a 20 20 4c 50 43 53 54 52 20 6c 70 42  e,..  LPCSTR lpB
1a9c0 61 63 6b 75 70 46 69 6c 65 4e 61 6d 65 2c 0d 0a  ackupFileName,..
1a9d0 20 20 44 57 4f 52 44 20 64 77 52 65 70 6c 61 63    DWORD dwReplac
1a9e0 65 46 6c 61 67 73 2c 0d 0a 20 20 4c 50 56 4f 49  eFlags,..  LPVOI
1a9f0 44 20 6c 70 45 78 63 6c 75 64 65 2c 0d 0a 20 20  D lpExclude,..  
1aa00 4c 50 56 4f 49 44 20 6c 70 52 65 73 65 72 76 65  LPVOID lpReserve
1aa10 64 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  d);..extern(Wind
1aa20 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c  ows) export BOOL
1aa30 20 52 65 70 6c 61 63 65 46 69 6c 65 57 28 0d 0a   ReplaceFileW(..
1aa40 20 20 4c 50 43 57 53 54 52 20 6c 70 52 65 70 6c    LPCWSTR lpRepl
1aa50 61 63 65 64 46 69 6c 65 4e 61 6d 65 2c 0d 0a 20  acedFileName,.. 
1aa60 20 4c 50 43 57 53 54 52 20 6c 70 52 65 70 6c 61   LPCWSTR lpRepla
1aa70 63 65 6d 65 6e 74 46 69 6c 65 4e 61 6d 65 2c 0d  cementFileName,.
1aa80 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 42 61 63  .  LPCWSTR lpBac
1aa90 6b 75 70 46 69 6c 65 4e 61 6d 65 2c 0d 0a 20 20  kupFileName,..  
1aaa0 44 57 4f 52 44 20 64 77 52 65 70 6c 61 63 65 46  DWORD dwReplaceF
1aab0 6c 61 67 73 2c 0d 0a 20 20 4c 50 56 4f 49 44 20  lags,..  LPVOID 
1aac0 6c 70 45 78 63 6c 75 64 65 2c 0d 0a 20 20 4c 50  lpExclude,..  LP
1aad0 56 4f 49 44 20 6c 70 52 65 73 65 72 76 65 64 29  VOID lpReserved)
1aae0 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e 49  ;..// #ifdef UNI
1aaf0 43 4f 44 45 0d 0a 61 6c 69 61 73 20 52 65 70 6c  CODE..alias Repl
1ab00 61 63 65 46 69 6c 65 57 20 52 65 70 6c 61 63 65  aceFileW Replace
1ab10 46 69 6c 65 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d  File;..// #else.
1ab20 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e  .// #.....// #en
1ab30 64 69 66 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d  dif // !UNICODE.
1ab40 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 28 5f  .// #endif // (_
1ab50 57 49 4e 33 32 5f 57 49 4e 4e 54 20 3e 3d 20 30  WIN32_WINNT >= 0
1ab60 78 30 35 30 30 29 0d 0a 0d 0a 2f 2f 20 23 69 66  x0500)....// #if
1ab70 20 28 5f 57 49 4e 33 32 5f 57 49 4e 4e 54 20 3e   (_WIN32_WINNT >
1ab80 3d 20 30 78 30 35 30 30 29 0d 0a 0d 0a 65 78 74  = 0x0500)....ext
1ab90 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
1aba0 6f 72 74 20 42 4f 4f 4c 20 43 72 65 61 74 65 48  ort BOOL CreateH
1abb0 61 72 64 4c 69 6e 6b 41 28 0d 0a 20 20 4c 50 43  ardLinkA(..  LPC
1abc0 53 54 52 20 6c 70 46 69 6c 65 4e 61 6d 65 2c 0d  STR lpFileName,.
1abd0 0a 20 20 4c 50 43 53 54 52 20 6c 70 45 78 69 73  .  LPCSTR lpExis
1abe0 74 69 6e 67 46 69 6c 65 4e 61 6d 65 2c 0d 0a 20  tingFileName,.. 
1abf0 20 4c 50 53 45 43 55 52 49 54 59 5f 41 54 54 52   LPSECURITY_ATTR
1ac00 49 42 55 54 45 53 20 6c 70 53 65 63 75 72 69 74  IBUTES lpSecurit
1ac10 79 41 74 74 72 69 62 75 74 65 73 29 3b 0d 0a 65  yAttributes);..e
1ac20 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
1ac30 78 70 6f 72 74 20 42 4f 4f 4c 20 43 72 65 61 74  xport BOOL Creat
1ac40 65 48 61 72 64 4c 69 6e 6b 57 28 0d 0a 20 20 4c  eHardLinkW(..  L
1ac50 50 43 57 53 54 52 20 6c 70 46 69 6c 65 4e 61 6d  PCWSTR lpFileNam
1ac60 65 2c 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70  e,..  LPCWSTR lp
1ac70 45 78 69 73 74 69 6e 67 46 69 6c 65 4e 61 6d 65  ExistingFileName
1ac80 2c 0d 0a 20 20 4c 50 53 45 43 55 52 49 54 59 5f  ,..  LPSECURITY_
1ac90 41 54 54 52 49 42 55 54 45 53 20 6c 70 53 65 63  ATTRIBUTES lpSec
1aca0 75 72 69 74 79 41 74 74 72 69 62 75 74 65 73 29  urityAttributes)
1acb0 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e 49  ;..// #ifdef UNI
1acc0 43 4f 44 45 0d 0a 61 6c 69 61 73 20 43 72 65 61  CODE..alias Crea
1acd0 74 65 48 61 72 64 4c 69 6e 6b 57 20 43 72 65 61  teHardLinkW Crea
1ace0 74 65 48 61 72 64 4c 69 6e 6b 3b 0d 0a 2f 2f 20  teHardLink;..// 
1acf0 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a  #else..// #.....
1ad00 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e  // #endif // !UN
1ad10 49 43 4f 44 45 0d 0a 0d 0a 2f 2f 20 23 65 6e 64  ICODE....// #end
1ad20 69 66 20 2f 2f 20 28 5f 57 49 4e 33 32 5f 57 49  if // (_WIN32_WI
1ad30 4e 4e 54 20 3e 3d 20 30 78 30 35 30 30 29 0d 0a  NNT >= 0x0500)..
1ad40 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
1ad50 29 20 65 78 70 6f 72 74 20 48 41 4e 44 4c 45 20  ) export HANDLE 
1ad60 43 72 65 61 74 65 4e 61 6d 65 64 50 69 70 65 41  CreateNamedPipeA
1ad70 28 0d 0a 20 20 4c 50 43 53 54 52 20 6c 70 4e 61  (..  LPCSTR lpNa
1ad80 6d 65 2c 0d 0a 20 20 44 57 4f 52 44 20 64 77 4f  me,..  DWORD dwO
1ad90 70 65 6e 4d 6f 64 65 2c 0d 0a 20 20 44 57 4f 52  penMode,..  DWOR
1ada0 44 20 64 77 50 69 70 65 4d 6f 64 65 2c 0d 0a 20  D dwPipeMode,.. 
1adb0 20 44 57 4f 52 44 20 6e 4d 61 78 49 6e 73 74 61   DWORD nMaxInsta
1adc0 6e 63 65 73 2c 0d 0a 20 20 44 57 4f 52 44 20 6e  nces,..  DWORD n
1add0 4f 75 74 42 75 66 66 65 72 53 69 7a 65 2c 0d 0a  OutBufferSize,..
1ade0 20 20 44 57 4f 52 44 20 6e 49 6e 42 75 66 66 65    DWORD nInBuffe
1adf0 72 53 69 7a 65 2c 0d 0a 20 20 44 57 4f 52 44 20  rSize,..  DWORD 
1ae00 6e 44 65 66 61 75 6c 74 54 69 6d 65 4f 75 74 2c  nDefaultTimeOut,
1ae10 0d 0a 20 20 4c 50 53 45 43 55 52 49 54 59 5f 41  ..  LPSECURITY_A
1ae20 54 54 52 49 42 55 54 45 53 20 6c 70 53 65 63 75  TTRIBUTES lpSecu
1ae30 72 69 74 79 41 74 74 72 69 62 75 74 65 73 29 3b  rityAttributes);
1ae40 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
1ae50 29 20 65 78 70 6f 72 74 20 48 41 4e 44 4c 45 20  ) export HANDLE 
1ae60 43 72 65 61 74 65 4e 61 6d 65 64 50 69 70 65 57  CreateNamedPipeW
1ae70 28 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 4e  (..  LPCWSTR lpN
1ae80 61 6d 65 2c 0d 0a 20 20 44 57 4f 52 44 20 64 77  ame,..  DWORD dw
1ae90 4f 70 65 6e 4d 6f 64 65 2c 0d 0a 20 20 44 57 4f  OpenMode,..  DWO
1aea0 52 44 20 64 77 50 69 70 65 4d 6f 64 65 2c 0d 0a  RD dwPipeMode,..
1aeb0 20 20 44 57 4f 52 44 20 6e 4d 61 78 49 6e 73 74    DWORD nMaxInst
1aec0 61 6e 63 65 73 2c 0d 0a 20 20 44 57 4f 52 44 20  ances,..  DWORD 
1aed0 6e 4f 75 74 42 75 66 66 65 72 53 69 7a 65 2c 0d  nOutBufferSize,.
1aee0 0a 20 20 44 57 4f 52 44 20 6e 49 6e 42 75 66 66  .  DWORD nInBuff
1aef0 65 72 53 69 7a 65 2c 0d 0a 20 20 44 57 4f 52 44  erSize,..  DWORD
1af00 20 6e 44 65 66 61 75 6c 74 54 69 6d 65 4f 75 74   nDefaultTimeOut
1af10 2c 0d 0a 20 20 4c 50 53 45 43 55 52 49 54 59 5f  ,..  LPSECURITY_
1af20 41 54 54 52 49 42 55 54 45 53 20 6c 70 53 65 63  ATTRIBUTES lpSec
1af30 75 72 69 74 79 41 74 74 72 69 62 75 74 65 73 29  urityAttributes)
1af40 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e 49  ;..// #ifdef UNI
1af50 43 4f 44 45 0d 0a 61 6c 69 61 73 20 43 72 65 61  CODE..alias Crea
1af60 74 65 4e 61 6d 65 64 50 69 70 65 57 20 43 72 65  teNamedPipeW Cre
1af70 61 74 65 4e 61 6d 65 64 50 69 70 65 3b 0d 0a 2f  ateNamedPipe;../
1af80 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e  / #else..// #...
1af90 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21  ..// #endif // !
1afa0 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72  UNICODE....exter
1afb0 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
1afc0 74 20 42 4f 4f 4c 20 47 65 74 4e 61 6d 65 64 50  t BOOL GetNamedP
1afd0 69 70 65 48 61 6e 64 6c 65 53 74 61 74 65 41 28  ipeHandleStateA(
1afe0 0d 0a 20 20 48 41 4e 44 4c 45 20 68 4e 61 6d 65  ..  HANDLE hName
1aff0 64 50 69 70 65 2c 0d 0a 20 20 4c 50 44 57 4f 52  dPipe,..  LPDWOR
1b000 44 20 6c 70 53 74 61 74 65 2c 0d 0a 20 20 4c 50  D lpState,..  LP
1b010 44 57 4f 52 44 20 6c 70 43 75 72 49 6e 73 74 61  DWORD lpCurInsta
1b020 6e 63 65 73 2c 0d 0a 20 20 4c 50 44 57 4f 52 44  nces,..  LPDWORD
1b030 20 6c 70 4d 61 78 43 6f 6c 6c 65 63 74 69 6f 6e   lpMaxCollection
1b040 43 6f 75 6e 74 2c 0d 0a 20 20 4c 50 44 57 4f 52  Count,..  LPDWOR
1b050 44 20 6c 70 43 6f 6c 6c 65 63 74 44 61 74 61 54  D lpCollectDataT
1b060 69 6d 65 6f 75 74 2c 0d 0a 20 20 4c 50 53 54 52  imeout,..  LPSTR
1b070 20 6c 70 55 73 65 72 4e 61 6d 65 2c 0d 0a 20 20   lpUserName,..  
1b080 44 57 4f 52 44 20 6e 4d 61 78 55 73 65 72 4e 61  DWORD nMaxUserNa
1b090 6d 65 53 69 7a 65 29 3b 0d 0a 65 78 74 65 72 6e  meSize);..extern
1b0a0 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
1b0b0 20 42 4f 4f 4c 20 47 65 74 4e 61 6d 65 64 50 69   BOOL GetNamedPi
1b0c0 70 65 48 61 6e 64 6c 65 53 74 61 74 65 57 28 0d  peHandleStateW(.
1b0d0 0a 20 20 48 41 4e 44 4c 45 20 68 4e 61 6d 65 64  .  HANDLE hNamed
1b0e0 50 69 70 65 2c 0d 0a 20 20 4c 50 44 57 4f 52 44  Pipe,..  LPDWORD
1b0f0 20 6c 70 53 74 61 74 65 2c 0d 0a 20 20 4c 50 44   lpState,..  LPD
1b100 57 4f 52 44 20 6c 70 43 75 72 49 6e 73 74 61 6e  WORD lpCurInstan
1b110 63 65 73 2c 0d 0a 20 20 4c 50 44 57 4f 52 44 20  ces,..  LPDWORD 
1b120 6c 70 4d 61 78 43 6f 6c 6c 65 63 74 69 6f 6e 43  lpMaxCollectionC
1b130 6f 75 6e 74 2c 0d 0a 20 20 4c 50 44 57 4f 52 44  ount,..  LPDWORD
1b140 20 6c 70 43 6f 6c 6c 65 63 74 44 61 74 61 54 69   lpCollectDataTi
1b150 6d 65 6f 75 74 2c 0d 0a 20 20 4c 50 57 53 54 52  meout,..  LPWSTR
1b160 20 6c 70 55 73 65 72 4e 61 6d 65 2c 0d 0a 20 20   lpUserName,..  
1b170 44 57 4f 52 44 20 6e 4d 61 78 55 73 65 72 4e 61  DWORD nMaxUserNa
1b180 6d 65 53 69 7a 65 29 3b 0d 0a 2f 2f 20 23 69 66  meSize);..// #if
1b190 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69  def UNICODE..ali
1b1a0 61 73 20 47 65 74 4e 61 6d 65 64 50 69 70 65 48  as GetNamedPipeH
1b1b0 61 6e 64 6c 65 53 74 61 74 65 57 20 47 65 74 4e  andleStateW GetN
1b1c0 61 6d 65 64 50 69 70 65 48 61 6e 64 6c 65 53 74  amedPipeHandleSt
1b1d0 61 74 65 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a  ate;..// #else..
1b1e0 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64  // #.....// #end
1b1f0 69 66 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a  if // !UNICODE..
1b200 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
1b210 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 43 61  ) export BOOL Ca
1b220 6c 6c 4e 61 6d 65 64 50 69 70 65 41 28 0d 0a 20  llNamedPipeA(.. 
1b230 20 4c 50 43 53 54 52 20 6c 70 4e 61 6d 65 64 50   LPCSTR lpNamedP
1b240 69 70 65 4e 61 6d 65 2c 0d 0a 20 20 4c 50 56 4f  ipeName,..  LPVO
1b250 49 44 20 6c 70 49 6e 42 75 66 66 65 72 2c 0d 0a  ID lpInBuffer,..
1b260 20 20 44 57 4f 52 44 20 6e 49 6e 42 75 66 66 65    DWORD nInBuffe
1b270 72 53 69 7a 65 2c 0d 0a 20 20 4c 50 56 4f 49 44  rSize,..  LPVOID
1b280 20 6c 70 4f 75 74 42 75 66 66 65 72 2c 0d 0a 20   lpOutBuffer,.. 
1b290 20 44 57 4f 52 44 20 6e 4f 75 74 42 75 66 66 65   DWORD nOutBuffe
1b2a0 72 53 69 7a 65 2c 0d 0a 20 20 4c 50 44 57 4f 52  rSize,..  LPDWOR
1b2b0 44 20 6c 70 42 79 74 65 73 52 65 61 64 2c 0d 0a  D lpBytesRead,..
1b2c0 20 20 44 57 4f 52 44 20 6e 54 69 6d 65 4f 75 74    DWORD nTimeOut
1b2d0 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f  );..extern(Windo
1b2e0 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20  ws) export BOOL 
1b2f0 43 61 6c 6c 4e 61 6d 65 64 50 69 70 65 57 28 0d  CallNamedPipeW(.
1b300 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 4e 61 6d  .  LPCWSTR lpNam
1b310 65 64 50 69 70 65 4e 61 6d 65 2c 0d 0a 20 20 4c  edPipeName,..  L
1b320 50 56 4f 49 44 20 6c 70 49 6e 42 75 66 66 65 72  PVOID lpInBuffer
1b330 2c 0d 0a 20 20 44 57 4f 52 44 20 6e 49 6e 42 75  ,..  DWORD nInBu
1b340 66 66 65 72 53 69 7a 65 2c 0d 0a 20 20 4c 50 56  fferSize,..  LPV
1b350 4f 49 44 20 6c 70 4f 75 74 42 75 66 66 65 72 2c  OID lpOutBuffer,
1b360 0d 0a 20 20 44 57 4f 52 44 20 6e 4f 75 74 42 75  ..  DWORD nOutBu
1b370 66 66 65 72 53 69 7a 65 2c 0d 0a 20 20 4c 50 44  fferSize,..  LPD
1b380 57 4f 52 44 20 6c 70 42 79 74 65 73 52 65 61 64  WORD lpBytesRead
1b390 2c 0d 0a 20 20 44 57 4f 52 44 20 6e 54 69 6d 65  ,..  DWORD nTime
1b3a0 4f 75 74 29 3b 0d 0a 2f 2f 20 23 69 66 64 65 66  Out);..// #ifdef
1b3b0 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69 61 73 20   UNICODE..alias 
1b3c0 43 61 6c 6c 4e 61 6d 65 64 50 69 70 65 57 20 43  CallNamedPipeW C
1b3d0 61 6c 6c 4e 61 6d 65 64 50 69 70 65 3b 0d 0a 2f  allNamedPipe;../
1b3e0 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e  / #else..// #...
1b3f0 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21  ..// #endif // !
1b400 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72  UNICODE....exter
1b410 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
1b420 74 20 42 4f 4f 4c 20 57 61 69 74 4e 61 6d 65 64  t BOOL WaitNamed
1b430 50 69 70 65 41 28 0d 0a 20 20 4c 50 43 53 54 52  PipeA(..  LPCSTR
1b440 20 6c 70 4e 61 6d 65 64 50 69 70 65 4e 61 6d 65   lpNamedPipeName
1b450 2c 0d 0a 20 20 44 57 4f 52 44 20 6e 54 69 6d 65  ,..  DWORD nTime
1b460 4f 75 74 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69  Out);..extern(Wi
1b470 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f  ndows) export BO
1b480 4f 4c 20 57 61 69 74 4e 61 6d 65 64 50 69 70 65  OL WaitNamedPipe
1b490 57 28 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70  W(..  LPCWSTR lp
1b4a0 4e 61 6d 65 64 50 69 70 65 4e 61 6d 65 2c 0d 0a  NamedPipeName,..
1b4b0 20 20 44 57 4f 52 44 20 6e 54 69 6d 65 4f 75 74    DWORD nTimeOut
1b4c0 29 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e  );..// #ifdef UN
1b4d0 49 43 4f 44 45 0d 0a 61 6c 69 61 73 20 57 61 69  ICODE..alias Wai
1b4e0 74 4e 61 6d 65 64 50 69 70 65 57 20 57 61 69 74  tNamedPipeW Wait
1b4f0 4e 61 6d 65 64 50 69 70 65 3b 0d 0a 2f 2f 20 23  NamedPipe;..// #
1b500 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f  else..// #...../
1b510 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e 49  / #endif // !UNI
1b520 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72 6e 28 57  CODE....extern(W
1b530 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42  indows) export B
1b540 4f 4f 4c 20 53 65 74 56 6f 6c 75 6d 65 4c 61 62  OOL SetVolumeLab
1b550 65 6c 41 28 0d 0a 20 20 4c 50 43 53 54 52 20 6c  elA(..  LPCSTR l
1b560 70 52 6f 6f 74 50 61 74 68 4e 61 6d 65 2c 0d 0a  pRootPathName,..
1b570 20 20 4c 50 43 53 54 52 20 6c 70 56 6f 6c 75 6d    LPCSTR lpVolum
1b580 65 4e 61 6d 65 29 3b 0d 0a 65 78 74 65 72 6e 28  eName);..extern(
1b590 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
1b5a0 42 4f 4f 4c 20 53 65 74 56 6f 6c 75 6d 65 4c 61  BOOL SetVolumeLa
1b5b0 62 65 6c 57 28 0d 0a 20 20 4c 50 43 57 53 54 52  belW(..  LPCWSTR
1b5c0 20 6c 70 52 6f 6f 74 50 61 74 68 4e 61 6d 65 2c   lpRootPathName,
1b5d0 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 56 6f  ..  LPCWSTR lpVo
1b5e0 6c 75 6d 65 4e 61 6d 65 29 3b 0d 0a 2f 2f 20 23  lumeName);..// #
1b5f0 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61  ifdef UNICODE..a
1b600 6c 69 61 73 20 53 65 74 56 6f 6c 75 6d 65 4c 61  lias SetVolumeLa
1b610 62 65 6c 57 20 53 65 74 56 6f 6c 75 6d 65 4c 61  belW SetVolumeLa
1b620 62 65 6c 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a  bel;..// #else..
1b630 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64  // #.....// #end
1b640 69 66 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a  if // !UNICODE..
1b650 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
1b660 29 20 65 78 70 6f 72 74 20 56 4f 49 44 20 53 65  ) export VOID Se
1b670 74 46 69 6c 65 41 70 69 73 54 6f 4f 45 4d 28 29  tFileApisToOEM()
1b680 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  ;....extern(Wind
1b690 6f 77 73 29 20 65 78 70 6f 72 74 20 56 4f 49 44  ows) export VOID
1b6a0 20 53 65 74 46 69 6c 65 41 70 69 73 54 6f 41 4e   SetFileApisToAN
1b6b0 53 49 28 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28  SI();....extern(
1b6c0 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
1b6d0 42 4f 4f 4c 20 41 72 65 46 69 6c 65 41 70 69 73  BOOL AreFileApis
1b6e0 41 4e 53 49 28 29 3b 0d 0a 0d 0a 65 78 74 65 72  ANSI();....exter
1b6f0 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
1b700 74 20 42 4f 4f 4c 20 47 65 74 56 6f 6c 75 6d 65  t BOOL GetVolume
1b710 49 6e 66 6f 72 6d 61 74 69 6f 6e 41 28 0d 0a 20  InformationA(.. 
1b720 20 4c 50 43 53 54 52 20 6c 70 52 6f 6f 74 50 61   LPCSTR lpRootPa
1b730 74 68 4e 61 6d 65 2c 0d 0a 20 20 4c 50 53 54 52  thName,..  LPSTR
1b740 20 6c 70 56 6f 6c 75 6d 65 4e 61 6d 65 42 75 66   lpVolumeNameBuf
1b750 66 65 72 2c 0d 0a 20 20 44 57 4f 52 44 20 6e 56  fer,..  DWORD nV
1b760 6f 6c 75 6d 65 4e 61 6d 65 53 69 7a 65 2c 0d 0a  olumeNameSize,..
1b770 20 20 4c 50 44 57 4f 52 44 20 6c 70 56 6f 6c 75    LPDWORD lpVolu
1b780 6d 65 53 65 72 69 61 6c 4e 75 6d 62 65 72 2c 0d  meSerialNumber,.
1b790 0a 20 20 4c 50 44 57 4f 52 44 20 6c 70 4d 61 78  .  LPDWORD lpMax
1b7a0 69 6d 75 6d 43 6f 6d 70 6f 6e 65 6e 74 4c 65 6e  imumComponentLen
1b7b0 67 74 68 2c 0d 0a 20 20 4c 50 44 57 4f 52 44 20  gth,..  LPDWORD 
1b7c0 6c 70 46 69 6c 65 53 79 73 74 65 6d 46 6c 61 67  lpFileSystemFlag
1b7d0 73 2c 0d 0a 20 20 4c 50 53 54 52 20 6c 70 46 69  s,..  LPSTR lpFi
1b7e0 6c 65 53 79 73 74 65 6d 4e 61 6d 65 42 75 66 66  leSystemNameBuff
1b7f0 65 72 2c 0d 0a 20 20 44 57 4f 52 44 20 6e 46 69  er,..  DWORD nFi
1b800 6c 65 53 79 73 74 65 6d 4e 61 6d 65 53 69 7a 65  leSystemNameSize
1b810 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f  );..extern(Windo
1b820 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20  ws) export BOOL 
1b830 47 65 74 56 6f 6c 75 6d 65 49 6e 66 6f 72 6d 61  GetVolumeInforma
1b840 74 69 6f 6e 57 28 0d 0a 20 20 4c 50 43 57 53 54  tionW(..  LPCWST
1b850 52 20 6c 70 52 6f 6f 74 50 61 74 68 4e 61 6d 65  R lpRootPathName
1b860 2c 0d 0a 20 20 4c 50 57 53 54 52 20 6c 70 56 6f  ,..  LPWSTR lpVo
1b870 6c 75 6d 65 4e 61 6d 65 42 75 66 66 65 72 2c 0d  lumeNameBuffer,.
1b880 0a 20 20 44 57 4f 52 44 20 6e 56 6f 6c 75 6d 65  .  DWORD nVolume
1b890 4e 61 6d 65 53 69 7a 65 2c 0d 0a 20 20 4c 50 44  NameSize,..  LPD
1b8a0 57 4f 52 44 20 6c 70 56 6f 6c 75 6d 65 53 65 72  WORD lpVolumeSer
1b8b0 69 61 6c 4e 75 6d 62 65 72 2c 0d 0a 20 20 4c 50  ialNumber,..  LP
1b8c0 44 57 4f 52 44 20 6c 70 4d 61 78 69 6d 75 6d 43  DWORD lpMaximumC
1b8d0 6f 6d 70 6f 6e 65 6e 74 4c 65 6e 67 74 68 2c 0d  omponentLength,.
1b8e0 0a 20 20 4c 50 44 57 4f 52 44 20 6c 70 46 69 6c  .  LPDWORD lpFil
1b8f0 65 53 79 73 74 65 6d 46 6c 61 67 73 2c 0d 0a 20  eSystemFlags,.. 
1b900 20 4c 50 57 53 54 52 20 6c 70 46 69 6c 65 53 79   LPWSTR lpFileSy
1b910 73 74 65 6d 4e 61 6d 65 42 75 66 66 65 72 2c 0d  stemNameBuffer,.
1b920 0a 20 20 44 57 4f 52 44 20 6e 46 69 6c 65 53 79  .  DWORD nFileSy
1b930 73 74 65 6d 4e 61 6d 65 53 69 7a 65 29 3b 0d 0a  stemNameSize);..
1b940 2f 2f 20 23 69 66 64 65 66 20 55 4e 49 43 4f 44  // #ifdef UNICOD
1b950 45 0d 0a 61 6c 69 61 73 20 47 65 74 56 6f 6c 75  E..alias GetVolu
1b960 6d 65 49 6e 66 6f 72 6d 61 74 69 6f 6e 57 20 47  meInformationW G
1b970 65 74 56 6f 6c 75 6d 65 49 6e 66 6f 72 6d 61 74  etVolumeInformat
1b980 69 6f 6e 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a  ion;..// #else..
1b990 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64  // #.....// #end
1b9a0 69 66 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a  if // !UNICODE..
1b9b0 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
1b9c0 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 43 61  ) export BOOL Ca
1b9d0 6e 63 65 6c 49 6f 28 0d 0a 20 20 48 41 4e 44 4c  ncelIo(..  HANDL
1b9e0 45 20 68 46 69 6c 65 29 3b 0d 0a 0d 0a 65 78 74  E hFile);....ext
1b9f0 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
1ba00 6f 72 74 20 42 4f 4f 4c 20 43 6c 65 61 72 45 76  ort BOOL ClearEv
1ba10 65 6e 74 4c 6f 67 41 28 0d 0a 20 20 48 41 4e 44  entLogA(..  HAND
1ba20 4c 45 20 68 45 76 65 6e 74 4c 6f 67 2c 0d 0a 20  LE hEventLog,.. 
1ba30 20 4c 50 43 53 54 52 20 6c 70 42 61 63 6b 75 70   LPCSTR lpBackup
1ba40 46 69 6c 65 4e 61 6d 65 29 3b 0d 0a 65 78 74 65  FileName);..exte
1ba50 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
1ba60 72 74 20 42 4f 4f 4c 20 43 6c 65 61 72 45 76 65  rt BOOL ClearEve
1ba70 6e 74 4c 6f 67 57 28 0d 0a 20 20 48 41 4e 44 4c  ntLogW(..  HANDL
1ba80 45 20 68 45 76 65 6e 74 4c 6f 67 2c 0d 0a 20 20  E hEventLog,..  
1ba90 4c 50 43 57 53 54 52 20 6c 70 42 61 63 6b 75 70  LPCWSTR lpBackup
1baa0 46 69 6c 65 4e 61 6d 65 29 3b 0d 0a 2f 2f 20 23  FileName);..// #
1bab0 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61  ifdef UNICODE..a
1bac0 6c 69 61 73 20 43 6c 65 61 72 45 76 65 6e 74 4c  lias ClearEventL
1bad0 6f 67 57 20 43 6c 65 61 72 45 76 65 6e 74 4c 6f  ogW ClearEventLo
1bae0 67 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f  g;..// #else..//
1baf0 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66   #.....// #endif
1bb00 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a   // !UNICODE....
1bb10 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
1bb20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 42 61 63 6b  export BOOL Back
1bb30 75 70 45 76 65 6e 74 4c 6f 67 41 28 0d 0a 20 20  upEventLogA(..  
1bb40 48 41 4e 44 4c 45 20 68 45 76 65 6e 74 4c 6f 67  HANDLE hEventLog
1bb50 2c 0d 0a 20 20 4c 50 43 53 54 52 20 6c 70 42 61  ,..  LPCSTR lpBa
1bb60 63 6b 75 70 46 69 6c 65 4e 61 6d 65 29 3b 0d 0a  ckupFileName);..
1bb70 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
1bb80 65 78 70 6f 72 74 20 42 4f 4f 4c 20 42 61 63 6b  export BOOL Back
1bb90 75 70 45 76 65 6e 74 4c 6f 67 57 28 0d 0a 20 20  upEventLogW(..  
1bba0 48 41 4e 44 4c 45 20 68 45 76 65 6e 74 4c 6f 67  HANDLE hEventLog
1bbb0 2c 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 42  ,..  LPCWSTR lpB
1bbc0 61 63 6b 75 70 46 69 6c 65 4e 61 6d 65 29 3b 0d  ackupFileName);.
1bbd0 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e 49 43 4f  .// #ifdef UNICO
1bbe0 44 45 0d 0a 61 6c 69 61 73 20 42 61 63 6b 75 70  DE..alias Backup
1bbf0 45 76 65 6e 74 4c 6f 67 57 20 42 61 63 6b 75 70  EventLogW Backup
1bc00 45 76 65 6e 74 4c 6f 67 3b 0d 0a 2f 2f 20 23 65  EventLog;..// #e
1bc10 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f  lse..// #.....//
1bc20 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e 49 43   #endif // !UNIC
1bc30 4f 44 45 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69  ODE....extern(Wi
1bc40 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f  ndows) export BO
1bc50 4f 4c 20 43 6c 6f 73 65 45 76 65 6e 74 4c 6f 67  OL CloseEventLog
1bc60 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68 45 76 65  (..  HANDLE hEve
1bc70 6e 74 4c 6f 67 29 3b 0d 0a 0d 0a 65 78 74 65 72  ntLog);....exter
1bc80 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
1bc90 74 20 42 4f 4f 4c 20 44 65 72 65 67 69 73 74 65  t BOOL Deregiste
1bca0 72 45 76 65 6e 74 53 6f 75 72 63 65 28 0d 0a 20  rEventSource(.. 
1bcb0 20 48 41 4e 44 4c 45 20 68 45 76 65 6e 74 4c 6f   HANDLE hEventLo
1bcc0 67 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69  g);....extern(Wi
1bcd0 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f  ndows) export BO
1bce0 4f 4c 20 4e 6f 74 69 66 79 43 68 61 6e 67 65 45  OL NotifyChangeE
1bcf0 76 65 6e 74 4c 6f 67 28 0d 0a 20 20 48 41 4e 44  ventLog(..  HAND
1bd00 4c 45 20 68 45 76 65 6e 74 4c 6f 67 2c 0d 0a 20  LE hEventLog,.. 
1bd10 20 48 41 4e 44 4c 45 20 68 45 76 65 6e 74 29 3b   HANDLE hEvent);
1bd20 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f  ....extern(Windo
1bd30 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20  ws) export BOOL 
1bd40 47 65 74 4e 75 6d 62 65 72 4f 66 45 76 65 6e 74  GetNumberOfEvent
1bd50 4c 6f 67 52 65 63 6f 72 64 73 28 0d 0a 20 20 48  LogRecords(..  H
1bd60 41 4e 44 4c 45 20 68 45 76 65 6e 74 4c 6f 67 2c  ANDLE hEventLog,
1bd70 0d 0a 20 20 50 44 57 4f 52 44 20 4e 75 6d 62 65  ..  PDWORD Numbe
1bd80 72 4f 66 52 65 63 6f 72 64 73 29 3b 0d 0a 0d 0a  rOfRecords);....
1bd90 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
1bda0 65 78 70 6f 72 74 20 42 4f 4f 4c 20 47 65 74 4f  export BOOL GetO
1bdb0 6c 64 65 73 74 45 76 65 6e 74 4c 6f 67 52 65 63  ldestEventLogRec
1bdc0 6f 72 64 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68  ord(..  HANDLE h
1bdd0 45 76 65 6e 74 4c 6f 67 2c 0d 0a 20 20 50 44 57  EventLog,..  PDW
1bde0 4f 52 44 20 4f 6c 64 65 73 74 52 65 63 6f 72 64  ORD OldestRecord
1bdf0 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e  );....extern(Win
1be00 64 6f 77 73 29 20 65 78 70 6f 72 74 20 48 41 4e  dows) export HAN
1be10 44 4c 45 20 4f 70 65 6e 45 76 65 6e 74 4c 6f 67  DLE OpenEventLog
1be20 41 28 0d 0a 20 20 4c 50 43 53 54 52 20 6c 70 55  A(..  LPCSTR lpU
1be30 4e 43 53 65 72 76 65 72 4e 61 6d 65 2c 0d 0a 20  NCServerName,.. 
1be40 20 4c 50 43 53 54 52 20 6c 70 53 6f 75 72 63 65   LPCSTR lpSource
1be50 4e 61 6d 65 29 3b 0d 0a 65 78 74 65 72 6e 28 57  Name);..extern(W
1be60 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 48  indows) export H
1be70 41 4e 44 4c 45 20 4f 70 65 6e 45 76 65 6e 74 4c  ANDLE OpenEventL
1be80 6f 67 57 28 0d 0a 20 20 4c 50 43 57 53 54 52 20  ogW(..  LPCWSTR 
1be90 6c 70 55 4e 43 53 65 72 76 65 72 4e 61 6d 65 2c  lpUNCServerName,
1bea0 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 53 6f  ..  LPCWSTR lpSo
1beb0 75 72 63 65 4e 61 6d 65 29 3b 0d 0a 2f 2f 20 23  urceName);..// #
1bec0 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61  ifdef UNICODE..a
1bed0 6c 69 61 73 20 4f 70 65 6e 45 76 65 6e 74 4c 6f  lias OpenEventLo
1bee0 67 57 20 4f 70 65 6e 45 76 65 6e 74 4c 6f 67 3b  gW OpenEventLog;
1bef0 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23  ..// #else..// #
1bf00 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f  .....// #endif /
1bf10 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78  / !UNICODE....ex
1bf20 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
1bf30 70 6f 72 74 20 48 41 4e 44 4c 45 20 52 65 67 69  port HANDLE Regi
1bf40 73 74 65 72 45 76 65 6e 74 53 6f 75 72 63 65 41  sterEventSourceA
1bf50 28 0d 0a 20 20 4c 50 43 53 54 52 20 6c 70 55 4e  (..  LPCSTR lpUN
1bf60 43 53 65 72 76 65 72 4e 61 6d 65 2c 0d 0a 20 20  CServerName,..  
1bf70 4c 50 43 53 54 52 20 6c 70 53 6f 75 72 63 65 4e  LPCSTR lpSourceN
1bf80 61 6d 65 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69  ame);..extern(Wi
1bf90 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 48 41  ndows) export HA
1bfa0 4e 44 4c 45 20 52 65 67 69 73 74 65 72 45 76 65  NDLE RegisterEve
1bfb0 6e 74 53 6f 75 72 63 65 57 28 0d 0a 20 20 4c 50  ntSourceW(..  LP
1bfc0 43 57 53 54 52 20 6c 70 55 4e 43 53 65 72 76 65  CWSTR lpUNCServe
1bfd0 72 4e 61 6d 65 2c 0d 0a 20 20 4c 50 43 57 53 54  rName,..  LPCWST
1bfe0 52 20 6c 70 53 6f 75 72 63 65 4e 61 6d 65 29 3b  R lpSourceName);
1bff0 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e 49 43  ..// #ifdef UNIC
1c000 4f 44 45 0d 0a 61 6c 69 61 73 20 52 65 67 69 73  ODE..alias Regis
1c010 74 65 72 45 76 65 6e 74 53 6f 75 72 63 65 57 20  terEventSourceW 
1c020 52 65 67 69 73 74 65 72 45 76 65 6e 74 53 6f 75  RegisterEventSou
1c030 72 63 65 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a  rce;..// #else..
1c040 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64  // #.....// #end
1c050 69 66 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a  if // !UNICODE..
1c060 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
1c070 29 20 65 78 70 6f 72 74 20 48 41 4e 44 4c 45 20  ) export HANDLE 
1c080 4f 70 65 6e 42 61 63 6b 75 70 45 76 65 6e 74 4c  OpenBackupEventL
1c090 6f 67 41 28 0d 0a 20 20 4c 50 43 53 54 52 20 6c  ogA(..  LPCSTR l
1c0a0 70 55 4e 43 53 65 72 76 65 72 4e 61 6d 65 2c 0d  pUNCServerName,.
1c0b0 0a 20 20 4c 50 43 53 54 52 20 6c 70 46 69 6c 65  .  LPCSTR lpFile
1c0c0 4e 61 6d 65 29 3b 0d 0a 65 78 74 65 72 6e 28 57  Name);..extern(W
1c0d0 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 48  indows) export H
1c0e0 41 4e 44 4c 45 20 4f 70 65 6e 42 61 63 6b 75 70  ANDLE OpenBackup
1c0f0 45 76 65 6e 74 4c 6f 67 57 28 0d 0a 20 20 4c 50  EventLogW(..  LP
1c100 43 57 53 54 52 20 6c 70 55 4e 43 53 65 72 76 65  CWSTR lpUNCServe
1c110 72 4e 61 6d 65 2c 0d 0a 20 20 4c 50 43 57 53 54  rName,..  LPCWST
1c120 52 20 6c 70 46 69 6c 65 4e 61 6d 65 29 3b 0d 0a  R lpFileName);..
1c130 2f 2f 20 23 69 66 64 65 66 20 55 4e 49 43 4f 44  // #ifdef UNICOD
1c140 45 0d 0a 61 6c 69 61 73 20 4f 70 65 6e 42 61 63  E..alias OpenBac
1c150 6b 75 70 45 76 65 6e 74 4c 6f 67 57 20 4f 70 65  kupEventLogW Ope
1c160 6e 42 61 63 6b 75 70 45 76 65 6e 74 4c 6f 67 3b  nBackupEventLog;
1c170 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23  ..// #else..// #
1c180 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f  .....// #endif /
1c190 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78  / !UNICODE....ex
1c1a0 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
1c1b0 70 6f 72 74 20 42 4f 4f 4c 20 52 65 61 64 45 76  port BOOL ReadEv
1c1c0 65 6e 74 4c 6f 67 41 28 0d 0a 20 20 48 41 4e 44  entLogA(..  HAND
1c1d0 4c 45 20 68 45 76 65 6e 74 4c 6f 67 2c 0d 0a 20  LE hEventLog,.. 
1c1e0 20 44 57 4f 52 44 20 64 77 52 65 61 64 46 6c 61   DWORD dwReadFla
1c1f0 67 73 2c 0d 0a 20 20 44 57 4f 52 44 20 64 77 52  gs,..  DWORD dwR
1c200 65 63 6f 72 64 4f 66 66 73 65 74 2c 0d 0a 20 20  ecordOffset,..  
1c210 4c 50 56 4f 49 44 20 6c 70 42 75 66 66 65 72 2c  LPVOID lpBuffer,
1c220 0d 0a 20 20 44 57 4f 52 44 20 6e 4e 75 6d 62 65  ..  DWORD nNumbe
1c230 72 4f 66 42 79 74 65 73 54 6f 52 65 61 64 2c 0d  rOfBytesToRead,.
1c240 0a 20 20 44 57 4f 52 44 20 2a 70 6e 42 79 74 65  .  DWORD *pnByte
1c250 73 52 65 61 64 2c 0d 0a 20 20 44 57 4f 52 44 20  sRead,..  DWORD 
1c260 2a 70 6e 4d 69 6e 4e 75 6d 62 65 72 4f 66 42 79  *pnMinNumberOfBy
1c270 74 65 73 4e 65 65 64 65 64 29 3b 0d 0a 65 78 74  tesNeeded);..ext
1c280 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
1c290 6f 72 74 20 42 4f 4f 4c 20 52 65 61 64 45 76 65  ort BOOL ReadEve
1c2a0 6e 74 4c 6f 67 57 28 0d 0a 20 20 48 41 4e 44 4c  ntLogW(..  HANDL
1c2b0 45 20 68 45 76 65 6e 74 4c 6f 67 2c 0d 0a 20 20  E hEventLog,..  
1c2c0 44 57 4f 52 44 20 64 77 52 65 61 64 46 6c 61 67  DWORD dwReadFlag
1c2d0 73 2c 0d 0a 20 20 44 57 4f 52 44 20 64 77 52 65  s,..  DWORD dwRe
1c2e0 63 6f 72 64 4f 66 66 73 65 74 2c 0d 0a 20 20 4c  cordOffset,..  L
1c2f0 50 56 4f 49 44 20 6c 70 42 75 66 66 65 72 2c 0d  PVOID lpBuffer,.
1c300 0a 20 20 44 57 4f 52 44 20 6e 4e 75 6d 62 65 72  .  DWORD nNumber
1c310 4f 66 42 79 74 65 73 54 6f 52 65 61 64 2c 0d 0a  OfBytesToRead,..
1c320 20 20 44 57 4f 52 44 20 2a 70 6e 42 79 74 65 73    DWORD *pnBytes
1c330 52 65 61 64 2c 0d 0a 20 20 44 57 4f 52 44 20 2a  Read,..  DWORD *
1c340 70 6e 4d 69 6e 4e 75 6d 62 65 72 4f 66 42 79 74  pnMinNumberOfByt
1c350 65 73 4e 65 65 64 65 64 29 3b 0d 0a 2f 2f 20 23  esNeeded);..// #
1c360 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61  ifdef UNICODE..a
1c370 6c 69 61 73 20 52 65 61 64 45 76 65 6e 74 4c 6f  lias ReadEventLo
1c380 67 57 20 52 65 61 64 45 76 65 6e 74 4c 6f 67 3b  gW ReadEventLog;
1c390 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23  ..// #else..// #
1c3a0 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f  .....// #endif /
1c3b0 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78  / !UNICODE....ex
1c3c0 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
1c3d0 70 6f 72 74 20 42 4f 4f 4c 20 52 65 70 6f 72 74  port BOOL Report
1c3e0 45 76 65 6e 74 41 28 0d 0a 20 20 48 41 4e 44 4c  EventA(..  HANDL
1c3f0 45 20 68 45 76 65 6e 74 4c 6f 67 2c 0d 0a 20 20  E hEventLog,..  
1c400 57 4f 52 44 20 77 54 79 70 65 2c 0d 0a 20 20 57  WORD wType,..  W
1c410 4f 52 44 20 77 43 61 74 65 67 6f 72 79 2c 0d 0a  ORD wCategory,..
1c420 20 20 44 57 4f 52 44 20 64 77 45 76 65 6e 74 49    DWORD dwEventI
1c430 44 2c 0d 0a 20 20 50 53 49 44 20 6c 70 55 73 65  D,..  PSID lpUse
1c440 72 53 69 64 2c 0d 0a 20 20 57 4f 52 44 20 77 4e  rSid,..  WORD wN
1c450 75 6d 53 74 72 69 6e 67 73 2c 0d 0a 20 20 44 57  umStrings,..  DW
1c460 4f 52 44 20 64 77 44 61 74 61 53 69 7a 65 2c 0d  ORD dwDataSize,.
1c470 0a 20 20 4c 50 43 53 54 52 20 2a 6c 70 53 74 72  .  LPCSTR *lpStr
1c480 69 6e 67 73 2c 0d 0a 20 20 4c 50 56 4f 49 44 20  ings,..  LPVOID 
1c490 6c 70 52 61 77 44 61 74 61 29 3b 0d 0a 65 78 74  lpRawData);..ext
1c4a0 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
1c4b0 6f 72 74 20 42 4f 4f 4c 20 52 65 70 6f 72 74 45  ort BOOL ReportE
1c4c0 76 65 6e 74 57 28 0d 0a 20 20 48 41 4e 44 4c 45  ventW(..  HANDLE
1c4d0 20 68 45 76 65 6e 74 4c 6f 67 2c 0d 0a 20 20 57   hEventLog,..  W
1c4e0 4f 52 44 20 77 54 79 70 65 2c 0d 0a 20 20 57 4f  ORD wType,..  WO
1c4f0 52 44 20 77 43 61 74 65 67 6f 72 79 2c 0d 0a 20  RD wCategory,.. 
1c500 20 44 57 4f 52 44 20 64 77 45 76 65 6e 74 49 44   DWORD dwEventID
1c510 2c 0d 0a 20 20 50 53 49 44 20 6c 70 55 73 65 72  ,..  PSID lpUser
1c520 53 69 64 2c 0d 0a 20 20 57 4f 52 44 20 77 4e 75  Sid,..  WORD wNu
1c530 6d 53 74 72 69 6e 67 73 2c 0d 0a 20 20 44 57 4f  mStrings,..  DWO
1c540 52 44 20 64 77 44 61 74 61 53 69 7a 65 2c 0d 0a  RD dwDataSize,..
1c550 20 20 4c 50 43 57 53 54 52 20 2a 6c 70 53 74 72    LPCWSTR *lpStr
1c560 69 6e 67 73 2c 0d 0a 20 20 4c 50 56 4f 49 44 20  ings,..  LPVOID 
1c570 6c 70 52 61 77 44 61 74 61 29 3b 0d 0a 2f 2f 20  lpRawData);..// 
1c580 23 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a  #ifdef UNICODE..
1c590 61 6c 69 61 73 20 52 65 70 6f 72 74 45 76 65 6e  alias ReportEven
1c5a0 74 57 20 52 65 70 6f 72 74 45 76 65 6e 74 3b 0d  tW ReportEvent;.
1c5b0 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e  .// #else..// #.
1c5c0 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f  ....// #endif //
1c5d0 20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 6e 75   !UNICODE....enu
1c5e0 6d 20 3a 20 75 69 6e 74 20 7b 20 45 56 45 4e 54  m : uint { EVENT
1c5f0 4c 4f 47 5f 46 55 4c 4c 5f 49 4e 46 4f 20 3d 20  LOG_FULL_INFO = 
1c600 30 20 7d 0d 0a 0d 0a 73 74 72 75 63 74 20 5f 45  0 }....struct _E
1c610 56 45 4e 54 4c 4f 47 5f 46 55 4c 4c 5f 49 4e 46  VENTLOG_FULL_INF
1c620 4f 52 4d 41 54 49 4f 4e 20 7b 0d 0a 20 20 44 57  ORMATION {..  DW
1c630 4f 52 44 20 64 77 46 75 6c 6c 3b 0d 0a 7d 0d 0a  ORD dwFull;..}..
1c640 61 6c 69 61 73 20 5f 45 56 45 4e 54 4c 4f 47 5f  alias _EVENTLOG_
1c650 46 55 4c 4c 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e  FULL_INFORMATION
1c660 20 45 56 45 4e 54 4c 4f 47 5f 46 55 4c 4c 5f 49   EVENTLOG_FULL_I
1c670 4e 46 4f 52 4d 41 54 49 4f 4e 3b 0d 0a 61 6c 69  NFORMATION;..ali
1c680 61 73 20 5f 45 56 45 4e 54 4c 4f 47 5f 46 55 4c  as _EVENTLOG_FUL
1c690 4c 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 2a 20 4c  L_INFORMATION* L
1c6a0 50 45 56 45 4e 54 4c 4f 47 5f 46 55 4c 4c 5f 49  PEVENTLOG_FULL_I
1c6b0 4e 46 4f 52 4d 41 54 49 4f 4e 3b 0d 0a 0d 0a 65  NFORMATION;....e
1c6c0 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
1c6d0 78 70 6f 72 74 20 42 4f 4f 4c 20 47 65 74 45 76  xport BOOL GetEv
1c6e0 65 6e 74 4c 6f 67 49 6e 66 6f 72 6d 61 74 69 6f  entLogInformatio
1c6f0 6e 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68 45 76  n(..  HANDLE hEv
1c700 65 6e 74 4c 6f 67 2c 0d 0a 20 20 44 57 4f 52 44  entLog,..  DWORD
1c710 20 64 77 49 6e 66 6f 4c 65 76 65 6c 2c 0d 0a 20   dwInfoLevel,.. 
1c720 20 4c 50 56 4f 49 44 20 6c 70 42 75 66 66 65 72   LPVOID lpBuffer
1c730 2c 0d 0a 20 20 44 57 4f 52 44 20 63 62 42 75 66  ,..  DWORD cbBuf
1c740 53 69 7a 65 2c 0d 0a 20 20 4c 50 44 57 4f 52 44  Size,..  LPDWORD
1c750 20 70 63 62 42 79 74 65 73 4e 65 65 64 65 64 29   pcbBytesNeeded)
1c760 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  ;....extern(Wind
1c770 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c  ows) export BOOL
1c780 20 44 75 70 6c 69 63 61 74 65 54 6f 6b 65 6e 28   DuplicateToken(
1c790 0d 0a 20 20 48 41 4e 44 4c 45 20 45 78 69 73 74  ..  HANDLE Exist
1c7a0 69 6e 67 54 6f 6b 65 6e 48 61 6e 64 6c 65 2c 0d  ingTokenHandle,.
1c7b0 0a 20 20 53 45 43 55 52 49 54 59 5f 49 4d 50 45  .  SECURITY_IMPE
1c7c0 52 53 4f 4e 41 54 49 4f 4e 5f 4c 45 56 45 4c 20  RSONATION_LEVEL 
1c7d0 49 6d 70 65 72 73 6f 6e 61 74 69 6f 6e 4c 65 76  ImpersonationLev
1c7e0 65 6c 2c 0d 0a 20 20 50 48 41 4e 44 4c 45 20 44  el,..  PHANDLE D
1c7f0 75 70 6c 69 63 61 74 65 54 6f 6b 65 6e 48 61 6e  uplicateTokenHan
1c800 64 6c 65 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28  dle);....extern(
1c810 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
1c820 42 4f 4f 4c 20 47 65 74 4b 65 72 6e 65 6c 4f 62  BOOL GetKernelOb
1c830 6a 65 63 74 53 65 63 75 72 69 74 79 28 0d 0a 20  jectSecurity(.. 
1c840 20 48 41 4e 44 4c 45 20 48 61 6e 64 6c 65 2c 0d   HANDLE Handle,.
1c850 0a 20 20 53 45 43 55 52 49 54 59 5f 49 4e 46 4f  .  SECURITY_INFO
1c860 52 4d 41 54 49 4f 4e 20 52 65 71 75 65 73 74 65  RMATION Requeste
1c870 64 49 6e 66 6f 72 6d 61 74 69 6f 6e 2c 0d 0a 20  dInformation,.. 
1c880 20 50 53 45 43 55 52 49 54 59 5f 44 45 53 43 52   PSECURITY_DESCR
1c890 49 50 54 4f 52 20 70 53 65 63 75 72 69 74 79 44  IPTOR pSecurityD
1c8a0 65 73 63 72 69 70 74 6f 72 2c 0d 0a 20 20 44 57  escriptor,..  DW
1c8b0 4f 52 44 20 6e 4c 65 6e 67 74 68 2c 0d 0a 20 20  ORD nLength,..  
1c8c0 4c 50 44 57 4f 52 44 20 6c 70 6e 4c 65 6e 67 74  LPDWORD lpnLengt
1c8d0 68 4e 65 65 64 65 64 29 3b 0d 0a 0d 0a 65 78 74  hNeeded);....ext
1c8e0 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
1c8f0 6f 72 74 20 42 4f 4f 4c 20 49 6d 70 65 72 73 6f  ort BOOL Imperso
1c900 6e 61 74 65 4e 61 6d 65 64 50 69 70 65 43 6c 69  nateNamedPipeCli
1c910 65 6e 74 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68  ent(..  HANDLE h
1c920 4e 61 6d 65 64 50 69 70 65 29 3b 0d 0a 0d 0a 65  NamedPipe);....e
1c930 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
1c940 78 70 6f 72 74 20 42 4f 4f 4c 20 49 6d 70 65 72  xport BOOL Imper
1c950 73 6f 6e 61 74 65 53 65 6c 66 28 0d 0a 20 20 53  sonateSelf(..  S
1c960 45 43 55 52 49 54 59 5f 49 4d 50 45 52 53 4f 4e  ECURITY_IMPERSON
1c970 41 54 49 4f 4e 5f 4c 45 56 45 4c 20 49 6d 70 65  ATION_LEVEL Impe
1c980 72 73 6f 6e 61 74 69 6f 6e 4c 65 76 65 6c 29 3b  rsonationLevel);
1c990 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f  ....extern(Windo
1c9a0 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20  ws) export BOOL 
1c9b0 52 65 76 65 72 74 54 6f 53 65 6c 66 28 29 3b 0d  RevertToSelf();.
1c9c0 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ...extern(Window
1c9d0 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 53  s) export BOOL S
1c9e0 65 74 54 68 72 65 61 64 54 6f 6b 65 6e 28 0d 0a  etThreadToken(..
1c9f0 20 20 50 48 41 4e 44 4c 45 20 54 68 72 65 61 64    PHANDLE Thread
1ca00 2c 0d 0a 20 20 48 41 4e 44 4c 45 20 54 6f 6b 65  ,..  HANDLE Toke
1ca10 6e 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69  n);....extern(Wi
1ca20 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f  ndows) export BO
1ca30 4f 4c 20 41 63 63 65 73 73 43 68 65 63 6b 28 0d  OL AccessCheck(.
1ca40 0a 20 20 50 53 45 43 55 52 49 54 59 5f 44 45 53  .  PSECURITY_DES
1ca50 43 52 49 50 54 4f 52 20 70 53 65 63 75 72 69 74  CRIPTOR pSecurit
1ca60 79 44 65 73 63 72 69 70 74 6f 72 2c 0d 0a 20 20  yDescriptor,..  
1ca70 48 41 4e 44 4c 45 20 43 6c 69 65 6e 74 54 6f 6b  HANDLE ClientTok
1ca80 65 6e 2c 0d 0a 20 20 44 57 4f 52 44 20 44 65 73  en,..  DWORD Des
1ca90 69 72 65 64 41 63 63 65 73 73 2c 0d 0a 20 20 50  iredAccess,..  P
1caa0 47 45 4e 45 52 49 43 5f 4d 41 50 50 49 4e 47 20  GENERIC_MAPPING 
1cab0 47 65 6e 65 72 69 63 4d 61 70 70 69 6e 67 2c 0d  GenericMapping,.
1cac0 0a 20 20 50 50 52 49 56 49 4c 45 47 45 5f 53 45  .  PPRIVILEGE_SE
1cad0 54 20 50 72 69 76 69 6c 65 67 65 53 65 74 2c 0d  T PrivilegeSet,.
1cae0 0a 20 20 4c 50 44 57 4f 52 44 20 50 72 69 76 69  .  LPDWORD Privi
1caf0 6c 65 67 65 53 65 74 4c 65 6e 67 74 68 2c 0d 0a  legeSetLength,..
1cb00 20 20 4c 50 44 57 4f 52 44 20 47 72 61 6e 74 65    LPDWORD Grante
1cb10 64 41 63 63 65 73 73 2c 0d 0a 20 20 4c 50 42 4f  dAccess,..  LPBO
1cb20 4f 4c 20 41 63 63 65 73 73 53 74 61 74 75 73 29  OL AccessStatus)
1cb30 3b 0d 0a 0d 0a 2f 2f 20 23 69 66 28 5f 57 49 4e  ;....// #if(_WIN
1cb40 33 32 5f 57 49 4e 4e 54 20 3e 3d 20 30 78 30 35  32_WINNT >= 0x05
1cb50 30 30 29 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  00)..extern(Wind
1cb60 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c  ows) export BOOL
1cb70 20 41 63 63 65 73 73 43 68 65 63 6b 42 79 54 79   AccessCheckByTy
1cb80 70 65 28 0d 0a 20 20 50 53 45 43 55 52 49 54 59  pe(..  PSECURITY
1cb90 5f 44 45 53 43 52 49 50 54 4f 52 20 70 53 65 63  _DESCRIPTOR pSec
1cba0 75 72 69 74 79 44 65 73 63 72 69 70 74 6f 72 2c  urityDescriptor,
1cbb0 0d 0a 20 20 50 53 49 44 20 50 72 69 6e 63 69 70  ..  PSID Princip
1cbc0 61 6c 53 65 6c 66 53 69 64 2c 0d 0a 20 20 48 41  alSelfSid,..  HA
1cbd0 4e 44 4c 45 20 43 6c 69 65 6e 74 54 6f 6b 65 6e  NDLE ClientToken
1cbe0 2c 0d 0a 20 20 44 57 4f 52 44 20 44 65 73 69 72  ,..  DWORD Desir
1cbf0 65 64 41 63 63 65 73 73 2c 0d 0a 20 20 50 4f 42  edAccess,..  POB
1cc00 4a 45 43 54 5f 54 59 50 45 5f 4c 49 53 54 20 4f  JECT_TYPE_LIST O
1cc10 62 6a 65 63 74 54 79 70 65 4c 69 73 74 2c 0d 0a  bjectTypeList,..
1cc20 20 20 44 57 4f 52 44 20 4f 62 6a 65 63 74 54 79    DWORD ObjectTy
1cc30 70 65 4c 69 73 74 4c 65 6e 67 74 68 2c 0d 0a 20  peListLength,.. 
1cc40 20 50 47 45 4e 45 52 49 43 5f 4d 41 50 50 49 4e   PGENERIC_MAPPIN
1cc50 47 20 47 65 6e 65 72 69 63 4d 61 70 70 69 6e 67  G GenericMapping
1cc60 2c 0d 0a 20 20 50 50 52 49 56 49 4c 45 47 45 5f  ,..  PPRIVILEGE_
1cc70 53 45 54 20 50 72 69 76 69 6c 65 67 65 53 65 74  SET PrivilegeSet
1cc80 2c 0d 0a 20 20 4c 50 44 57 4f 52 44 20 50 72 69  ,..  LPDWORD Pri
1cc90 76 69 6c 65 67 65 53 65 74 4c 65 6e 67 74 68 2c  vilegeSetLength,
1cca0 0d 0a 20 20 4c 50 44 57 4f 52 44 20 47 72 61 6e  ..  LPDWORD Gran
1ccb0 74 65 64 41 63 63 65 73 73 2c 0d 0a 20 20 4c 50  tedAccess,..  LP
1ccc0 42 4f 4f 4c 20 41 63 63 65 73 73 53 74 61 74 75  BOOL AccessStatu
1ccd0 73 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69  s);....extern(Wi
1cce0 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f  ndows) export BO
1ccf0 4f 4c 20 41 63 63 65 73 73 43 68 65 63 6b 42 79  OL AccessCheckBy
1cd00 54 79 70 65 52 65 73 75 6c 74 4c 69 73 74 28 0d  TypeResultList(.
1cd10 0a 20 20 50 53 45 43 55 52 49 54 59 5f 44 45 53  .  PSECURITY_DES
1cd20 43 52 49 50 54 4f 52 20 70 53 65 63 75 72 69 74  CRIPTOR pSecurit
1cd30 79 44 65 73 63 72 69 70 74 6f 72 2c 0d 0a 20 20  yDescriptor,..  
1cd40 50 53 49 44 20 50 72 69 6e 63 69 70 61 6c 53 65  PSID PrincipalSe
1cd50 6c 66 53 69 64 2c 0d 0a 20 20 48 41 4e 44 4c 45  lfSid,..  HANDLE
1cd60 20 43 6c 69 65 6e 74 54 6f 6b 65 6e 2c 0d 0a 20   ClientToken,.. 
1cd70 20 44 57 4f 52 44 20 44 65 73 69 72 65 64 41 63   DWORD DesiredAc
1cd80 63 65 73 73 2c 0d 0a 20 20 50 4f 42 4a 45 43 54  cess,..  POBJECT
1cd90 5f 54 59 50 45 5f 4c 49 53 54 20 4f 62 6a 65 63  _TYPE_LIST Objec
1cda0 74 54 79 70 65 4c 69 73 74 2c 0d 0a 20 20 44 57  tTypeList,..  DW
1cdb0 4f 52 44 20 4f 62 6a 65 63 74 54 79 70 65 4c 69  ORD ObjectTypeLi
1cdc0 73 74 4c 65 6e 67 74 68 2c 0d 0a 20 20 50 47 45  stLength,..  PGE
1cdd0 4e 45 52 49 43 5f 4d 41 50 50 49 4e 47 20 47 65  NERIC_MAPPING Ge
1cde0 6e 65 72 69 63 4d 61 70 70 69 6e 67 2c 0d 0a 20  nericMapping,.. 
1cdf0 20 50 50 52 49 56 49 4c 45 47 45 5f 53 45 54 20   PPRIVILEGE_SET 
1ce00 50 72 69 76 69 6c 65 67 65 53 65 74 2c 0d 0a 20  PrivilegeSet,.. 
1ce10 20 4c 50 44 57 4f 52 44 20 50 72 69 76 69 6c 65   LPDWORD Privile
1ce20 67 65 53 65 74 4c 65 6e 67 74 68 2c 0d 0a 20 20  geSetLength,..  
1ce30 4c 50 44 57 4f 52 44 20 47 72 61 6e 74 65 64 41  LPDWORD GrantedA
1ce40 63 63 65 73 73 4c 69 73 74 2c 0d 0a 20 20 4c 50  ccessList,..  LP
1ce50 44 57 4f 52 44 20 41 63 63 65 73 73 53 74 61 74  DWORD AccessStat
1ce60 75 73 4c 69 73 74 29 3b 0d 0a 2f 2f 20 23 65 6e  usList);..// #en
1ce70 64 69 66 20 2f 2a 20 5f 57 49 4e 33 32 5f 57 49  dif /* _WIN32_WI
1ce80 4e 4e 54 20 3e 3d 20 20 30 78 30 35 30 30 20 2a  NNT >=  0x0500 *
1ce90 2f 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  /....extern(Wind
1cea0 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c  ows) export BOOL
1ceb0 20 4f 70 65 6e 50 72 6f 63 65 73 73 54 6f 6b 65   OpenProcessToke
1cec0 6e 28 0d 0a 20 20 48 41 4e 44 4c 45 20 50 72 6f  n(..  HANDLE Pro
1ced0 63 65 73 73 48 61 6e 64 6c 65 2c 0d 0a 20 20 44  cessHandle,..  D
1cee0 57 4f 52 44 20 44 65 73 69 72 65 64 41 63 63 65  WORD DesiredAcce
1cef0 73 73 2c 0d 0a 20 20 50 48 41 4e 44 4c 45 20 54  ss,..  PHANDLE T
1cf00 6f 6b 65 6e 48 61 6e 64 6c 65 29 3b 0d 0a 0d 0a  okenHandle);....
1cf10 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
1cf20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 4f 70 65 6e  export BOOL Open
1cf30 54 68 72 65 61 64 54 6f 6b 65 6e 28 0d 0a 20 20  ThreadToken(..  
1cf40 48 41 4e 44 4c 45 20 54 68 72 65 61 64 48 61 6e  HANDLE ThreadHan
1cf50 64 6c 65 2c 0d 0a 20 20 44 57 4f 52 44 20 44 65  dle,..  DWORD De
1cf60 73 69 72 65 64 41 63 63 65 73 73 2c 0d 0a 20 20  siredAccess,..  
1cf70 42 4f 4f 4c 20 4f 70 65 6e 41 73 53 65 6c 66 2c  BOOL OpenAsSelf,
1cf80 0d 0a 20 20 50 48 41 4e 44 4c 45 20 54 6f 6b 65  ..  PHANDLE Toke
1cf90 6e 48 61 6e 64 6c 65 29 3b 0d 0a 0d 0a 65 78 74  nHandle);....ext
1cfa0 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
1cfb0 6f 72 74 20 42 4f 4f 4c 20 47 65 74 54 6f 6b 65  ort BOOL GetToke
1cfc0 6e 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 0d 0a 20  nInformation(.. 
1cfd0 20 48 41 4e 44 4c 45 20 54 6f 6b 65 6e 48 61 6e   HANDLE TokenHan
1cfe0 64 6c 65 2c 0d 0a 20 20 54 4f 4b 45 4e 5f 49 4e  dle,..  TOKEN_IN
1cff0 46 4f 52 4d 41 54 49 4f 4e 5f 43 4c 41 53 53 20  FORMATION_CLASS 
1d000 54 6f 6b 65 6e 49 6e 66 6f 72 6d 61 74 69 6f 6e  TokenInformation
1d010 43 6c 61 73 73 2c 0d 0a 20 20 4c 50 56 4f 49 44  Class,..  LPVOID
1d020 20 54 6f 6b 65 6e 49 6e 66 6f 72 6d 61 74 69 6f   TokenInformatio
1d030 6e 2c 0d 0a 20 20 44 57 4f 52 44 20 54 6f 6b 65  n,..  DWORD Toke
1d040 6e 49 6e 66 6f 72 6d 61 74 69 6f 6e 4c 65 6e 67  nInformationLeng
1d050 74 68 2c 0d 0a 20 20 50 44 57 4f 52 44 20 52 65  th,..  PDWORD Re
1d060 74 75 72 6e 4c 65 6e 67 74 68 29 3b 0d 0a 0d 0a  turnLength);....
1d070 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
1d080 65 78 70 6f 72 74 20 42 4f 4f 4c 20 53 65 74 54  export BOOL SetT
1d090 6f 6b 65 6e 49 6e 66 6f 72 6d 61 74 69 6f 6e 28  okenInformation(
1d0a0 0d 0a 20 20 48 41 4e 44 4c 45 20 54 6f 6b 65 6e  ..  HANDLE Token
1d0b0 48 61 6e 64 6c 65 2c 0d 0a 20 20 54 4f 4b 45 4e  Handle,..  TOKEN
1d0c0 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 5f 43 4c 41  _INFORMATION_CLA
1d0d0 53 53 20 54 6f 6b 65 6e 49 6e 66 6f 72 6d 61 74  SS TokenInformat
1d0e0 69 6f 6e 43 6c 61 73 73 2c 0d 0a 20 20 4c 50 56  ionClass,..  LPV
1d0f0 4f 49 44 20 54 6f 6b 65 6e 49 6e 66 6f 72 6d 61  OID TokenInforma
1d100 74 69 6f 6e 2c 0d 0a 20 20 44 57 4f 52 44 20 54  tion,..  DWORD T
1d110 6f 6b 65 6e 49 6e 66 6f 72 6d 61 74 69 6f 6e 4c  okenInformationL
1d120 65 6e 67 74 68 29 3b 0d 0a 0d 0a 65 78 74 65 72  ength);....exter
1d130 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
1d140 74 20 42 4f 4f 4c 20 41 64 6a 75 73 74 54 6f 6b  t BOOL AdjustTok
1d150 65 6e 50 72 69 76 69 6c 65 67 65 73 28 0d 0a 20  enPrivileges(.. 
1d160 20 48 41 4e 44 4c 45 20 54 6f 6b 65 6e 48 61 6e   HANDLE TokenHan
1d170 64 6c 65 2c 0d 0a 20 20 42 4f 4f 4c 20 44 69 73  dle,..  BOOL Dis
1d180 61 62 6c 65 41 6c 6c 50 72 69 76 69 6c 65 67 65  ableAllPrivilege
1d190 73 2c 0d 0a 20 20 50 54 4f 4b 45 4e 5f 50 52 49  s,..  PTOKEN_PRI
1d1a0 56 49 4c 45 47 45 53 20 4e 65 77 53 74 61 74 65  VILEGES NewState
1d1b0 2c 0d 0a 20 20 44 57 4f 52 44 20 42 75 66 66 65  ,..  DWORD Buffe
1d1c0 72 4c 65 6e 67 74 68 2c 0d 0a 20 20 50 54 4f 4b  rLength,..  PTOK
1d1d0 45 4e 5f 50 52 49 56 49 4c 45 47 45 53 20 50 72  EN_PRIVILEGES Pr
1d1e0 65 76 69 6f 75 73 53 74 61 74 65 2c 0d 0a 20 20  eviousState,..  
1d1f0 50 44 57 4f 52 44 20 52 65 74 75 72 6e 4c 65 6e  PDWORD ReturnLen
1d200 67 74 68 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28  gth);....extern(
1d210 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
1d220 42 4f 4f 4c 20 41 64 6a 75 73 74 54 6f 6b 65 6e  BOOL AdjustToken
1d230 47 72 6f 75 70 73 28 0d 0a 20 20 48 41 4e 44 4c  Groups(..  HANDL
1d240 45 20 54 6f 6b 65 6e 48 61 6e 64 6c 65 2c 0d 0a  E TokenHandle,..
1d250 20 20 42 4f 4f 4c 20 52 65 73 65 74 54 6f 44 65    BOOL ResetToDe
1d260 66 61 75 6c 74 2c 0d 0a 20 20 50 54 4f 4b 45 4e  fault,..  PTOKEN
1d270 5f 47 52 4f 55 50 53 20 4e 65 77 53 74 61 74 65  _GROUPS NewState
1d280 2c 0d 0a 20 20 44 57 4f 52 44 20 42 75 66 66 65  ,..  DWORD Buffe
1d290 72 4c 65 6e 67 74 68 2c 0d 0a 20 20 50 54 4f 4b  rLength,..  PTOK
1d2a0 45 4e 5f 47 52 4f 55 50 53 20 50 72 65 76 69 6f  EN_GROUPS Previo
1d2b0 75 73 53 74 61 74 65 2c 0d 0a 20 20 50 44 57 4f  usState,..  PDWO
1d2c0 52 44 20 52 65 74 75 72 6e 4c 65 6e 67 74 68 29  RD ReturnLength)
1d2d0 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  ;....extern(Wind
1d2e0 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c  ows) export BOOL
1d2f0 20 50 72 69 76 69 6c 65 67 65 43 68 65 63 6b 28   PrivilegeCheck(
1d300 0d 0a 20 20 48 41 4e 44 4c 45 20 43 6c 69 65 6e  ..  HANDLE Clien
1d310 74 54 6f 6b 65 6e 2c 0d 0a 20 20 50 50 52 49 56  tToken,..  PPRIV
1d320 49 4c 45 47 45 5f 53 45 54 20 52 65 71 75 69 72  ILEGE_SET Requir
1d330 65 64 50 72 69 76 69 6c 65 67 65 73 2c 0d 0a 20  edPrivileges,.. 
1d340 20 4c 50 42 4f 4f 4c 20 70 66 52 65 73 75 6c 74   LPBOOL pfResult
1d350 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e  );....extern(Win
1d360 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f  dows) export BOO
1d370 4c 20 41 63 63 65 73 73 43 68 65 63 6b 41 6e 64  L AccessCheckAnd
1d380 41 75 64 69 74 41 6c 61 72 6d 41 28 0d 0a 20 20  AuditAlarmA(..  
1d390 4c 50 43 53 54 52 20 53 75 62 73 79 73 74 65 6d  LPCSTR Subsystem
1d3a0 4e 61 6d 65 2c 0d 0a 20 20 4c 50 56 4f 49 44 20  Name,..  LPVOID 
1d3b0 48 61 6e 64 6c 65 49 64 2c 0d 0a 20 20 4c 50 53  HandleId,..  LPS
1d3c0 54 52 20 4f 62 6a 65 63 74 54 79 70 65 4e 61 6d  TR ObjectTypeNam
1d3d0 65 2c 0d 0a 20 20 4c 50 53 54 52 20 4f 62 6a 65  e,..  LPSTR Obje
1d3e0 63 74 4e 61 6d 65 2c 0d 0a 20 20 50 53 45 43 55  ctName,..  PSECU
1d3f0 52 49 54 59 5f 44 45 53 43 52 49 50 54 4f 52 20  RITY_DESCRIPTOR 
1d400 53 65 63 75 72 69 74 79 44 65 73 63 72 69 70 74  SecurityDescript
1d410 6f 72 2c 0d 0a 20 20 44 57 4f 52 44 20 44 65 73  or,..  DWORD Des
1d420 69 72 65 64 41 63 63 65 73 73 2c 0d 0a 20 20 50  iredAccess,..  P
1d430 47 45 4e 45 52 49 43 5f 4d 41 50 50 49 4e 47 20  GENERIC_MAPPING 
1d440 47 65 6e 65 72 69 63 4d 61 70 70 69 6e 67 2c 0d  GenericMapping,.
1d450 0a 20 20 42 4f 4f 4c 20 4f 62 6a 65 63 74 43 72  .  BOOL ObjectCr
1d460 65 61 74 69 6f 6e 2c 0d 0a 20 20 4c 50 44 57 4f  eation,..  LPDWO
1d470 52 44 20 47 72 61 6e 74 65 64 41 63 63 65 73 73  RD GrantedAccess
1d480 2c 0d 0a 20 20 4c 50 42 4f 4f 4c 20 41 63 63 65  ,..  LPBOOL Acce
1d490 73 73 53 74 61 74 75 73 2c 0d 0a 20 20 4c 50 42  ssStatus,..  LPB
1d4a0 4f 4f 4c 20 70 66 47 65 6e 65 72 61 74 65 4f 6e  OOL pfGenerateOn
1d4b0 43 6c 6f 73 65 29 3b 0d 0a 65 78 74 65 72 6e 28  Close);..extern(
1d4c0 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
1d4d0 42 4f 4f 4c 20 41 63 63 65 73 73 43 68 65 63 6b  BOOL AccessCheck
1d4e0 41 6e 64 41 75 64 69 74 41 6c 61 72 6d 57 28 0d  AndAuditAlarmW(.
1d4f0 0a 20 20 4c 50 43 57 53 54 52 20 53 75 62 73 79  .  LPCWSTR Subsy
1d500 73 74 65 6d 4e 61 6d 65 2c 0d 0a 20 20 4c 50 56  stemName,..  LPV
1d510 4f 49 44 20 48 61 6e 64 6c 65 49 64 2c 0d 0a 20  OID HandleId,.. 
1d520 20 4c 50 57 53 54 52 20 4f 62 6a 65 63 74 54 79   LPWSTR ObjectTy
1d530 70 65 4e 61 6d 65 2c 0d 0a 20 20 4c 50 57 53 54  peName,..  LPWST
1d540 52 20 4f 62 6a 65 63 74 4e 61 6d 65 2c 0d 0a 20  R ObjectName,.. 
1d550 20 50 53 45 43 55 52 49 54 59 5f 44 45 53 43 52   PSECURITY_DESCR
1d560 49 50 54 4f 52 20 53 65 63 75 72 69 74 79 44 65  IPTOR SecurityDe
1d570 73 63 72 69 70 74 6f 72 2c 0d 0a 20 20 44 57 4f  scriptor,..  DWO
1d580 52 44 20 44 65 73 69 72 65 64 41 63 63 65 73 73  RD DesiredAccess
1d590 2c 0d 0a 20 20 50 47 45 4e 45 52 49 43 5f 4d 41  ,..  PGENERIC_MA
1d5a0 50 50 49 4e 47 20 47 65 6e 65 72 69 63 4d 61 70  PPING GenericMap
1d5b0 70 69 6e 67 2c 0d 0a 20 20 42 4f 4f 4c 20 4f 62  ping,..  BOOL Ob
1d5c0 6a 65 63 74 43 72 65 61 74 69 6f 6e 2c 0d 0a 20  jectCreation,.. 
1d5d0 20 4c 50 44 57 4f 52 44 20 47 72 61 6e 74 65 64   LPDWORD Granted
1d5e0 41 63 63 65 73 73 2c 0d 0a 20 20 4c 50 42 4f 4f  Access,..  LPBOO
1d5f0 4c 20 41 63 63 65 73 73 53 74 61 74 75 73 2c 0d  L AccessStatus,.
1d600 0a 20 20 4c 50 42 4f 4f 4c 20 70 66 47 65 6e 65  .  LPBOOL pfGene
1d610 72 61 74 65 4f 6e 43 6c 6f 73 65 29 3b 0d 0a 2f  rateOnClose);../
1d620 2f 20 23 69 66 64 65 66 20 55 4e 49 43 4f 44 45  / #ifdef UNICODE
1d630 0d 0a 61 6c 69 61 73 20 41 63 63 65 73 73 43 68  ..alias AccessCh
1d640 65 63 6b 41 6e 64 41 75 64 69 74 41 6c 61 72 6d  eckAndAuditAlarm
1d650 57 20 41 63 63 65 73 73 43 68 65 63 6b 41 6e 64  W AccessCheckAnd
1d660 41 75 64 69 74 41 6c 61 72 6d 3b 0d 0a 2f 2f 20  AuditAlarm;..// 
1d670 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a  #else..// #.....
1d680 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e  // #endif // !UN
1d690 49 43 4f 44 45 0d 0a 0d 0a 2f 2f 20 23 69 66 28  ICODE....// #if(
1d6a0 5f 57 49 4e 33 32 5f 57 49 4e 4e 54 20 3e 3d 20  _WIN32_WINNT >= 
1d6b0 30 78 30 35 30 30 29 0d 0a 0d 0a 65 78 74 65 72  0x0500)....exter
1d6c0 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
1d6d0 74 20 42 4f 4f 4c 20 41 63 63 65 73 73 43 68 65  t BOOL AccessChe
1d6e0 63 6b 42 79 54 79 70 65 41 6e 64 41 75 64 69 74  ckByTypeAndAudit
1d6f0 41 6c 61 72 6d 41 28 0d 0a 20 20 4c 50 43 53 54  AlarmA(..  LPCST
1d700 52 20 53 75 62 73 79 73 74 65 6d 4e 61 6d 65 2c  R SubsystemName,
1d710 0d 0a 20 20 4c 50 56 4f 49 44 20 48 61 6e 64 6c  ..  LPVOID Handl
1d720 65 49 64 2c 0d 0a 20 20 4c 50 43 53 54 52 20 4f  eId,..  LPCSTR O
1d730 62 6a 65 63 74 54 79 70 65 4e 61 6d 65 2c 0d 0a  bjectTypeName,..
1d740 20 20 4c 50 43 53 54 52 20 4f 62 6a 65 63 74 4e    LPCSTR ObjectN
1d750 61 6d 65 2c 0d 0a 20 20 50 53 45 43 55 52 49 54  ame,..  PSECURIT
1d760 59 5f 44 45 53 43 52 49 50 54 4f 52 20 53 65 63  Y_DESCRIPTOR Sec
1d770 75 72 69 74 79 44 65 73 63 72 69 70 74 6f 72 2c  urityDescriptor,
1d780 0d 0a 20 20 50 53 49 44 20 50 72 69 6e 63 69 70  ..  PSID Princip
1d790 61 6c 53 65 6c 66 53 69 64 2c 0d 0a 20 20 44 57  alSelfSid,..  DW
1d7a0 4f 52 44 20 44 65 73 69 72 65 64 41 63 63 65 73  ORD DesiredAcces
1d7b0 73 2c 0d 0a 20 20 41 55 44 49 54 5f 45 56 45 4e  s,..  AUDIT_EVEN
1d7c0 54 5f 54 59 50 45 20 41 75 64 69 74 54 79 70 65  T_TYPE AuditType
1d7d0 2c 0d 0a 20 20 44 57 4f 52 44 20 46 6c 61 67 73  ,..  DWORD Flags
1d7e0 2c 0d 0a 20 20 50 4f 42 4a 45 43 54 5f 54 59 50  ,..  POBJECT_TYP
1d7f0 45 5f 4c 49 53 54 20 4f 62 6a 65 63 74 54 79 70  E_LIST ObjectTyp
1d800 65 4c 69 73 74 2c 0d 0a 20 20 44 57 4f 52 44 20  eList,..  DWORD 
1d810 4f 62 6a 65 63 74 54 79 70 65 4c 69 73 74 4c 65  ObjectTypeListLe
1d820 6e 67 74 68 2c 0d 0a 20 20 50 47 45 4e 45 52 49  ngth,..  PGENERI
1d830 43 5f 4d 41 50 50 49 4e 47 20 47 65 6e 65 72 69  C_MAPPING Generi
1d840 63 4d 61 70 70 69 6e 67 2c 0d 0a 20 20 42 4f 4f  cMapping,..  BOO
1d850 4c 20 4f 62 6a 65 63 74 43 72 65 61 74 69 6f 6e  L ObjectCreation
1d860 2c 0d 0a 20 20 4c 50 44 57 4f 52 44 20 47 72 61  ,..  LPDWORD Gra
1d870 6e 74 65 64 41 63 63 65 73 73 2c 0d 0a 20 20 4c  ntedAccess,..  L
1d880 50 42 4f 4f 4c 20 41 63 63 65 73 73 53 74 61 74  PBOOL AccessStat
1d890 75 73 2c 0d 0a 20 20 4c 50 42 4f 4f 4c 20 70 66  us,..  LPBOOL pf
1d8a0 47 65 6e 65 72 61 74 65 4f 6e 43 6c 6f 73 65 29  GenerateOnClose)
1d8b0 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ;..extern(Window
1d8c0 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 41  s) export BOOL A
1d8d0 63 63 65 73 73 43 68 65 63 6b 42 79 54 79 70 65  ccessCheckByType
1d8e0 41 6e 64 41 75 64 69 74 41 6c 61 72 6d 57 28 0d  AndAuditAlarmW(.
1d8f0 0a 20 20 4c 50 43 57 53 54 52 20 53 75 62 73 79  .  LPCWSTR Subsy
1d900 73 74 65 6d 4e 61 6d 65 2c 0d 0a 20 20 4c 50 56  stemName,..  LPV
1d910 4f 49 44 20 48 61 6e 64 6c 65 49 64 2c 0d 0a 20  OID HandleId,.. 
1d920 20 4c 50 43 57 53 54 52 20 4f 62 6a 65 63 74 54   LPCWSTR ObjectT
1d930 79 70 65 4e 61 6d 65 2c 0d 0a 20 20 4c 50 43 57  ypeName,..  LPCW
1d940 53 54 52 20 4f 62 6a 65 63 74 4e 61 6d 65 2c 0d  STR ObjectName,.
1d950 0a 20 20 50 53 45 43 55 52 49 54 59 5f 44 45 53  .  PSECURITY_DES
1d960 43 52 49 50 54 4f 52 20 53 65 63 75 72 69 74 79  CRIPTOR Security
1d970 44 65 73 63 72 69 70 74 6f 72 2c 0d 0a 20 20 50  Descriptor,..  P
1d980 53 49 44 20 50 72 69 6e 63 69 70 61 6c 53 65 6c  SID PrincipalSel
1d990 66 53 69 64 2c 0d 0a 20 20 44 57 4f 52 44 20 44  fSid,..  DWORD D
1d9a0 65 73 69 72 65 64 41 63 63 65 73 73 2c 0d 0a 20  esiredAccess,.. 
1d9b0 20 41 55 44 49 54 5f 45 56 45 4e 54 5f 54 59 50   AUDIT_EVENT_TYP
1d9c0 45 20 41 75 64 69 74 54 79 70 65 2c 0d 0a 20 20  E AuditType,..  
1d9d0 44 57 4f 52 44 20 46 6c 61 67 73 2c 0d 0a 20 20  DWORD Flags,..  
1d9e0 50 4f 42 4a 45 43 54 5f 54 59 50 45 5f 4c 49 53  POBJECT_TYPE_LIS
1d9f0 54 20 4f 62 6a 65 63 74 54 79 70 65 4c 69 73 74  T ObjectTypeList
1da00 2c 0d 0a 20 20 44 57 4f 52 44 20 4f 62 6a 65 63  ,..  DWORD Objec
1da10 74 54 79 70 65 4c 69 73 74 4c 65 6e 67 74 68 2c  tTypeListLength,
1da20 0d 0a 20 20 50 47 45 4e 45 52 49 43 5f 4d 41 50  ..  PGENERIC_MAP
1da30 50 49 4e 47 20 47 65 6e 65 72 69 63 4d 61 70 70  PING GenericMapp
1da40 69 6e 67 2c 0d 0a 20 20 42 4f 4f 4c 20 4f 62 6a  ing,..  BOOL Obj
1da50 65 63 74 43 72 65 61 74 69 6f 6e 2c 0d 0a 20 20  ectCreation,..  
1da60 4c 50 44 57 4f 52 44 20 47 72 61 6e 74 65 64 41  LPDWORD GrantedA
1da70 63 63 65 73 73 2c 0d 0a 20 20 4c 50 42 4f 4f 4c  ccess,..  LPBOOL
1da80 20 41 63 63 65 73 73 53 74 61 74 75 73 2c 0d 0a   AccessStatus,..
1da90 20 20 4c 50 42 4f 4f 4c 20 70 66 47 65 6e 65 72    LPBOOL pfGener
1daa0 61 74 65 4f 6e 43 6c 6f 73 65 29 3b 0d 0a 2f 2f  ateOnClose);..//
1dab0 20 23 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d   #ifdef UNICODE.
1dac0 0a 61 6c 69 61 73 20 41 63 63 65 73 73 43 68 65  .alias AccessChe
1dad0 63 6b 42 79 54 79 70 65 41 6e 64 41 75 64 69 74  ckByTypeAndAudit
1dae0 41 6c 61 72 6d 57 20 41 63 63 65 73 73 43 68 65  AlarmW AccessChe
1daf0 63 6b 42 79 54 79 70 65 41 6e 64 41 75 64 69 74  ckByTypeAndAudit
1db00 41 6c 61 72 6d 3b 0d 0a 2f 2f 20 23 65 6c 73 65  Alarm;..// #else
1db10 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65  ..// #.....// #e
1db20 6e 64 69 66 20 2f 2f 20 21 55 4e 49 43 4f 44 45  ndif // !UNICODE
1db30 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f  ....extern(Windo
1db40 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20  ws) export BOOL 
1db50 41 63 63 65 73 73 43 68 65 63 6b 42 79 54 79 70  AccessCheckByTyp
1db60 65 52 65 73 75 6c 74 4c 69 73 74 41 6e 64 41 75  eResultListAndAu
1db70 64 69 74 41 6c 61 72 6d 41 28 0d 0a 20 20 4c 50  ditAlarmA(..  LP
1db80 43 53 54 52 20 53 75 62 73 79 73 74 65 6d 4e 61  CSTR SubsystemNa
1db90 6d 65 2c 0d 0a 20 20 4c 50 56 4f 49 44 20 48 61  me,..  LPVOID Ha
1dba0 6e 64 6c 65 49 64 2c 0d 0a 20 20 4c 50 43 53 54  ndleId,..  LPCST
1dbb0 52 20 4f 62 6a 65 63 74 54 79 70 65 4e 61 6d 65  R ObjectTypeName
1dbc0 2c 0d 0a 20 20 4c 50 43 53 54 52 20 4f 62 6a 65  ,..  LPCSTR Obje
1dbd0 63 74 4e 61 6d 65 2c 0d 0a 20 20 50 53 45 43 55  ctName,..  PSECU
1dbe0 52 49 54 59 5f 44 45 53 43 52 49 50 54 4f 52 20  RITY_DESCRIPTOR 
1dbf0 53 65 63 75 72 69 74 79 44 65 73 63 72 69 70 74  SecurityDescript
1dc00 6f 72 2c 0d 0a 20 20 50 53 49 44 20 50 72 69 6e  or,..  PSID Prin
1dc10 63 69 70 61 6c 53 65 6c 66 53 69 64 2c 0d 0a 20  cipalSelfSid,.. 
1dc20 20 44 57 4f 52 44 20 44 65 73 69 72 65 64 41 63   DWORD DesiredAc
1dc30 63 65 73 73 2c 0d 0a 20 20 41 55 44 49 54 5f 45  cess,..  AUDIT_E
1dc40 56 45 4e 54 5f 54 59 50 45 20 41 75 64 69 74 54  VENT_TYPE AuditT
1dc50 79 70 65 2c 0d 0a 20 20 44 57 4f 52 44 20 46 6c  ype,..  DWORD Fl
1dc60 61 67 73 2c 0d 0a 20 20 50 4f 42 4a 45 43 54 5f  ags,..  POBJECT_
1dc70 54 59 50 45 5f 4c 49 53 54 20 4f 62 6a 65 63 74  TYPE_LIST Object
1dc80 54 79 70 65 4c 69 73 74 2c 0d 0a 20 20 44 57 4f  TypeList,..  DWO
1dc90 52 44 20 4f 62 6a 65 63 74 54 79 70 65 4c 69 73  RD ObjectTypeLis
1dca0 74 4c 65 6e 67 74 68 2c 0d 0a 20 20 50 47 45 4e  tLength,..  PGEN
1dcb0 45 52 49 43 5f 4d 41 50 50 49 4e 47 20 47 65 6e  ERIC_MAPPING Gen
1dcc0 65 72 69 63 4d 61 70 70 69 6e 67 2c 0d 0a 20 20  ericMapping,..  
1dcd0 42 4f 4f 4c 20 4f 62 6a 65 63 74 43 72 65 61 74  BOOL ObjectCreat
1dce0 69 6f 6e 2c 0d 0a 20 20 4c 50 44 57 4f 52 44 20  ion,..  LPDWORD 
1dcf0 47 72 61 6e 74 65 64 41 63 63 65 73 73 2c 0d 0a  GrantedAccess,..
1dd00 20 20 4c 50 44 57 4f 52 44 20 41 63 63 65 73 73    LPDWORD Access
1dd10 53 74 61 74 75 73 4c 69 73 74 2c 0d 0a 20 20 4c  StatusList,..  L
1dd20 50 42 4f 4f 4c 20 70 66 47 65 6e 65 72 61 74 65  PBOOL pfGenerate
1dd30 4f 6e 43 6c 6f 73 65 29 3b 0d 0a 65 78 74 65 72  OnClose);..exter
1dd40 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
1dd50 74 20 42 4f 4f 4c 20 41 63 63 65 73 73 43 68 65  t BOOL AccessChe
1dd60 63 6b 42 79 54 79 70 65 52 65 73 75 6c 74 4c 69  ckByTypeResultLi
1dd70 73 74 41 6e 64 41 75 64 69 74 41 6c 61 72 6d 57  stAndAuditAlarmW
1dd80 28 0d 0a 20 20 4c 50 43 57 53 54 52 20 53 75 62  (..  LPCWSTR Sub
1dd90 73 79 73 74 65 6d 4e 61 6d 65 2c 0d 0a 20 20 4c  systemName,..  L
1dda0 50 56 4f 49 44 20 48 61 6e 64 6c 65 49 64 2c 0d  PVOID HandleId,.
1ddb0 0a 20 20 4c 50 43 57 53 54 52 20 4f 62 6a 65 63  .  LPCWSTR Objec
1ddc0 74 54 79 70 65 4e 61 6d 65 2c 0d 0a 20 20 4c 50  tTypeName,..  LP
1ddd0 43 57 53 54 52 20 4f 62 6a 65 63 74 4e 61 6d 65  CWSTR ObjectName
1dde0 2c 0d 0a 20 20 50 53 45 43 55 52 49 54 59 5f 44  ,..  PSECURITY_D
1ddf0 45 53 43 52 49 50 54 4f 52 20 53 65 63 75 72 69  ESCRIPTOR Securi
1de00 74 79 44 65 73 63 72 69 70 74 6f 72 2c 0d 0a 20  tyDescriptor,.. 
1de10 20 50 53 49 44 20 50 72 69 6e 63 69 70 61 6c 53   PSID PrincipalS
1de20 65 6c 66 53 69 64 2c 0d 0a 20 20 44 57 4f 52 44  elfSid,..  DWORD
1de30 20 44 65 73 69 72 65 64 41 63 63 65 73 73 2c 0d   DesiredAccess,.
1de40 0a 20 20 41 55 44 49 54 5f 45 56 45 4e 54 5f 54  .  AUDIT_EVENT_T
1de50 59 50 45 20 41 75 64 69 74 54 79 70 65 2c 0d 0a  YPE AuditType,..
1de60 20 20 44 57 4f 52 44 20 46 6c 61 67 73 2c 0d 0a    DWORD Flags,..
1de70 20 20 50 4f 42 4a 45 43 54 5f 54 59 50 45 5f 4c    POBJECT_TYPE_L
1de80 49 53 54 20 4f 62 6a 65 63 74 54 79 70 65 4c 69  IST ObjectTypeLi
1de90 73 74 2c 0d 0a 20 20 44 57 4f 52 44 20 4f 62 6a  st,..  DWORD Obj
1dea0 65 63 74 54 79 70 65 4c 69 73 74 4c 65 6e 67 74  ectTypeListLengt
1deb0 68 2c 0d 0a 20 20 50 47 45 4e 45 52 49 43 5f 4d  h,..  PGENERIC_M
1dec0 41 50 50 49 4e 47 20 47 65 6e 65 72 69 63 4d 61  APPING GenericMa
1ded0 70 70 69 6e 67 2c 0d 0a 20 20 42 4f 4f 4c 20 4f  pping,..  BOOL O
1dee0 62 6a 65 63 74 43 72 65 61 74 69 6f 6e 2c 0d 0a  bjectCreation,..
1def0 20 20 4c 50 44 57 4f 52 44 20 47 72 61 6e 74 65    LPDWORD Grante
1df00 64 41 63 63 65 73 73 2c 0d 0a 20 20 4c 50 44 57  dAccess,..  LPDW
1df10 4f 52 44 20 41 63 63 65 73 73 53 74 61 74 75 73  ORD AccessStatus
1df20 4c 69 73 74 2c 0d 0a 20 20 4c 50 42 4f 4f 4c 20  List,..  LPBOOL 
1df30 70 66 47 65 6e 65 72 61 74 65 4f 6e 43 6c 6f 73  pfGenerateOnClos
1df40 65 29 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55  e);..// #ifdef U
1df50 4e 49 43 4f 44 45 0d 0a 61 6c 69 61 73 20 41 63  NICODE..alias Ac
1df60 63 65 73 73 43 68 65 63 6b 42 79 54 79 70 65 52  cessCheckByTypeR
1df70 65 73 75 6c 74 4c 69 73 74 41 6e 64 41 75 64 69  esultListAndAudi
1df80 74 41 6c 61 72 6d 57 20 41 63 63 65 73 73 43 68  tAlarmW AccessCh
1df90 65 63 6b 42 79 54 79 70 65 52 65 73 75 6c 74 4c  eckByTypeResultL
1dfa0 69 73 74 41 6e 64 41 75 64 69 74 41 6c 61 72 6d  istAndAuditAlarm
1dfb0 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20  ;..// #else..// 
1dfc0 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20  #.....// #endif 
1dfd0 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65  // !UNICODE....e
1dfe0 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
1dff0 78 70 6f 72 74 20 42 4f 4f 4c 20 41 63 63 65 73  xport BOOL Acces
1e000 73 43 68 65 63 6b 42 79 54 79 70 65 52 65 73 75  sCheckByTypeResu
1e010 6c 74 4c 69 73 74 41 6e 64 41 75 64 69 74 41 6c  ltListAndAuditAl
1e020 61 72 6d 42 79 48 61 6e 64 6c 65 41 28 0d 0a 20  armByHandleA(.. 
1e030 20 4c 50 43 53 54 52 20 53 75 62 73 79 73 74 65   LPCSTR Subsyste
1e040 6d 4e 61 6d 65 2c 0d 0a 20 20 4c 50 56 4f 49 44  mName,..  LPVOID
1e050 20 48 61 6e 64 6c 65 49 64 2c 0d 0a 20 20 48 41   HandleId,..  HA
1e060 4e 44 4c 45 20 43 6c 69 65 6e 74 54 6f 6b 65 6e  NDLE ClientToken
1e070 2c 0d 0a 20 20 4c 50 43 53 54 52 20 4f 62 6a 65  ,..  LPCSTR Obje
1e080 63 74 54 79 70 65 4e 61 6d 65 2c 0d 0a 20 20 4c  ctTypeName,..  L
1e090 50 43 53 54 52 20 4f 62 6a 65 63 74 4e 61 6d 65  PCSTR ObjectName
1e0a0 2c 0d 0a 20 20 50 53 45 43 55 52 49 54 59 5f 44  ,..  PSECURITY_D
1e0b0 45 53 43 52 49 50 54 4f 52 20 53 65 63 75 72 69  ESCRIPTOR Securi
1e0c0 74 79 44 65 73 63 72 69 70 74 6f 72 2c 0d 0a 20  tyDescriptor,.. 
1e0d0 20 50 53 49 44 20 50 72 69 6e 63 69 70 61 6c 53   PSID PrincipalS
1e0e0 65 6c 66 53 69 64 2c 0d 0a 20 20 44 57 4f 52 44  elfSid,..  DWORD
1e0f0 20 44 65 73 69 72 65 64 41 63 63 65 73 73 2c 0d   DesiredAccess,.
1e100 0a 20 20 41 55 44 49 54 5f 45 56 45 4e 54 5f 54  .  AUDIT_EVENT_T
1e110 59 50 45 20 41 75 64 69 74 54 79 70 65 2c 0d 0a  YPE AuditType,..
1e120 20 20 44 57 4f 52 44 20 46 6c 61 67 73 2c 0d 0a    DWORD Flags,..
1e130 20 20 50 4f 42 4a 45 43 54 5f 54 59 50 45 5f 4c    POBJECT_TYPE_L
1e140 49 53 54 20 4f 62 6a 65 63 74 54 79 70 65 4c 69  IST ObjectTypeLi
1e150 73 74 2c 0d 0a 20 20 44 57 4f 52 44 20 4f 62 6a  st,..  DWORD Obj
1e160 65 63 74 54 79 70 65 4c 69 73 74 4c 65 6e 67 74  ectTypeListLengt
1e170 68 2c 0d 0a 20 20 50 47 45 4e 45 52 49 43 5f 4d  h,..  PGENERIC_M
1e180 41 50 50 49 4e 47 20 47 65 6e 65 72 69 63 4d 61  APPING GenericMa
1e190 70 70 69 6e 67 2c 0d 0a 20 20 42 4f 4f 4c 20 4f  pping,..  BOOL O
1e1a0 62 6a 65 63 74 43 72 65 61 74 69 6f 6e 2c 0d 0a  bjectCreation,..
1e1b0 20 20 4c 50 44 57 4f 52 44 20 47 72 61 6e 74 65    LPDWORD Grante
1e1c0 64 41 63 63 65 73 73 2c 0d 0a 20 20 4c 50 44 57  dAccess,..  LPDW
1e1d0 4f 52 44 20 41 63 63 65 73 73 53 74 61 74 75 73  ORD AccessStatus
1e1e0 4c 69 73 74 2c 0d 0a 20 20 4c 50 42 4f 4f 4c 20  List,..  LPBOOL 
1e1f0 70 66 47 65 6e 65 72 61 74 65 4f 6e 43 6c 6f 73  pfGenerateOnClos
1e200 65 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  e);..extern(Wind
1e210 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c  ows) export BOOL
1e220 20 41 63 63 65 73 73 43 68 65 63 6b 42 79 54 79   AccessCheckByTy
1e230 70 65 52 65 73 75 6c 74 4c 69 73 74 41 6e 64 41  peResultListAndA
1e240 75 64 69 74 41 6c 61 72 6d 42 79 48 61 6e 64 6c  uditAlarmByHandl
1e250 65 57 28 0d 0a 20 20 4c 50 43 57 53 54 52 20 53  eW(..  LPCWSTR S
1e260 75 62 73 79 73 74 65 6d 4e 61 6d 65 2c 0d 0a 20  ubsystemName,.. 
1e270 20 4c 50 56 4f 49 44 20 48 61 6e 64 6c 65 49 64   LPVOID HandleId
1e280 2c 0d 0a 20 20 48 41 4e 44 4c 45 20 43 6c 69 65  ,..  HANDLE Clie
1e290 6e 74 54 6f 6b 65 6e 2c 0d 0a 20 20 4c 50 43 57  ntToken,..  LPCW
1e2a0 53 54 52 20 4f 62 6a 65 63 74 54 79 70 65 4e 61  STR ObjectTypeNa
1e2b0 6d 65 2c 0d 0a 20 20 4c 50 43 57 53 54 52 20 4f  me,..  LPCWSTR O
1e2c0 62 6a 65 63 74 4e 61 6d 65 2c 0d 0a 20 20 50 53  bjectName,..  PS
1e2d0 45 43 55 52 49 54 59 5f 44 45 53 43 52 49 50 54  ECURITY_DESCRIPT
1e2e0 4f 52 20 53 65 63 75 72 69 74 79 44 65 73 63 72  OR SecurityDescr
1e2f0 69 70 74 6f 72 2c 0d 0a 20 20 50 53 49 44 20 50  iptor,..  PSID P
1e300 72 69 6e 63 69 70 61 6c 53 65 6c 66 53 69 64 2c  rincipalSelfSid,
1e310 0d 0a 20 20 44 57 4f 52 44 20 44 65 73 69 72 65  ..  DWORD Desire
1e320 64 41 63 63 65 73 73 2c 0d 0a 20 20 41 55 44 49  dAccess,..  AUDI
1e330 54 5f 45 56 45 4e 54 5f 54 59 50 45 20 41 75 64  T_EVENT_TYPE Aud
1e340 69 74 54 79 70 65 2c 0d 0a 20 20 44 57 4f 52 44  itType,..  DWORD
1e350 20 46 6c 61 67 73 2c 0d 0a 20 20 50 4f 42 4a 45   Flags,..  POBJE
1e360 43 54 5f 54 59 50 45 5f 4c 49 53 54 20 4f 62 6a  CT_TYPE_LIST Obj
1e370 65 63 74 54 79 70 65 4c 69 73 74 2c 0d 0a 20 20  ectTypeList,..  
1e380 44 57 4f 52 44 20 4f 62 6a 65 63 74 54 79 70 65  DWORD ObjectType
1e390 4c 69 73 74 4c 65 6e 67 74 68 2c 0d 0a 20 20 50  ListLength,..  P
1e3a0 47 45 4e 45 52 49 43 5f 4d 41 50 50 49 4e 47 20  GENERIC_MAPPING 
1e3b0 47 65 6e 65 72 69 63 4d 61 70 70 69 6e 67 2c 0d  GenericMapping,.
1e3c0 0a 20 20 42 4f 4f 4c 20 4f 62 6a 65 63 74 43 72  .  BOOL ObjectCr
1e3d0 65 61 74 69 6f 6e 2c 0d 0a 20 20 4c 50 44 57 4f  eation,..  LPDWO
1e3e0 52 44 20 47 72 61 6e 74 65 64 41 63 63 65 73 73  RD GrantedAccess
1e3f0 2c 0d 0a 20 20 4c 50 44 57 4f 52 44 20 41 63 63  ,..  LPDWORD Acc
1e400 65 73 73 53 74 61 74 75 73 4c 69 73 74 2c 0d 0a  essStatusList,..
1e410 20 20 4c 50 42 4f 4f 4c 20 70 66 47 65 6e 65 72    LPBOOL pfGener
1e420 61 74 65 4f 6e 43 6c 6f 73 65 29 3b 0d 0a 2f 2f  ateOnClose);..//
1e430 20 23 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d   #ifdef UNICODE.
1e440 0a 61 6c 69 61 73 20 41 63 63 65 73 73 43 68 65  .alias AccessChe
1e450 63 6b 42 79 54 79 70 65 52 65 73 75 6c 74 4c 69  ckByTypeResultLi
1e460 73 74 41 6e 64 41 75 64 69 74 41 6c 61 72 6d 42  stAndAuditAlarmB
1e470 79 48 61 6e 64 6c 65 57 20 41 63 63 65 73 73 43  yHandleW AccessC
1e480 68 65 63 6b 42 79 54 79 70 65 52 65 73 75 6c 74  heckByTypeResult
1e490 4c 69 73 74 41 6e 64 41 75 64 69 74 41 6c 61 72  ListAndAuditAlar
1e4a0 6d 42 79 48 61 6e 64 6c 65 3b 0d 0a 2f 2f 20 23  mByHandle;..// #
1e4b0 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f  else..// #...../
1e4c0 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e 49  / #endif // !UNI
1e4d0 43 4f 44 45 0d 0a 0d 0a 2f 2f 20 23 65 6e 64 69  CODE....// #endi
1e4e0 66 20 2f 2f 28 5f 57 49 4e 33 32 5f 57 49 4e 4e  f //(_WIN32_WINN
1e4f0 54 20 3e 3d 20 30 78 30 35 30 30 29 0d 0a 0d 0a  T >= 0x0500)....
1e500 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
1e510 65 78 70 6f 72 74 20 42 4f 4f 4c 20 4f 62 6a 65  export BOOL Obje
1e520 63 74 4f 70 65 6e 41 75 64 69 74 41 6c 61 72 6d  ctOpenAuditAlarm
1e530 41 28 0d 0a 20 20 4c 50 43 53 54 52 20 53 75 62  A(..  LPCSTR Sub
1e540 73 79 73 74 65 6d 4e 61 6d 65 2c 0d 0a 20 20 4c  systemName,..  L
1e550 50 56 4f 49 44 20 48 61 6e 64 6c 65 49 64 2c 0d  PVOID HandleId,.
1e560 0a 20 20 4c 50 53 54 52 20 4f 62 6a 65 63 74 54  .  LPSTR ObjectT
1e570 79 70 65 4e 61 6d 65 2c 0d 0a 20 20 4c 50 53 54  ypeName,..  LPST
1e580 52 20 4f 62 6a 65 63 74 4e 61 6d 65 2c 0d 0a 20  R ObjectName,.. 
1e590 20 50 53 45 43 55 52 49 54 59 5f 44 45 53 43 52   PSECURITY_DESCR
1e5a0 49 50 54 4f 52 20 70 53 65 63 75 72 69 74 79 44  IPTOR pSecurityD
1e5b0 65 73 63 72 69 70 74 6f 72 2c 0d 0a 20 20 48 41  escriptor,..  HA
1e5c0 4e 44 4c 45 20 43 6c 69 65 6e 74 54 6f 6b 65 6e  NDLE ClientToken
1e5d0 2c 0d 0a 20 20 44 57 4f 52 44 20 44 65 73 69 72  ,..  DWORD Desir
1e5e0 65 64 41 63 63 65 73 73 2c 0d 0a 20 20 44 57 4f  edAccess,..  DWO
1e5f0 52 44 20 47 72 61 6e 74 65 64 41 63 63 65 73 73  RD GrantedAccess
1e600 2c 0d 0a 20 20 50 50 52 49 56 49 4c 45 47 45 5f  ,..  PPRIVILEGE_
1e610 53 45 54 20 50 72 69 76 69 6c 65 67 65 73 2c 0d  SET Privileges,.
1e620 0a 20 20 42 4f 4f 4c 20 4f 62 6a 65 63 74 43 72  .  BOOL ObjectCr
1e630 65 61 74 69 6f 6e 2c 0d 0a 20 20 42 4f 4f 4c 20  eation,..  BOOL 
1e640 41 63 63 65 73 73 47 72 61 6e 74 65 64 2c 0d 0a  AccessGranted,..
1e650 20 20 4c 50 42 4f 4f 4c 20 47 65 6e 65 72 61 74    LPBOOL Generat
1e660 65 4f 6e 43 6c 6f 73 65 29 3b 0d 0a 65 78 74 65  eOnClose);..exte
1e670 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
1e680 72 74 20 42 4f 4f 4c 20 4f 62 6a 65 63 74 4f 70  rt BOOL ObjectOp
1e690 65 6e 41 75 64 69 74 41 6c 61 72 6d 57 28 0d 0a  enAuditAlarmW(..
1e6a0 20 20 4c 50 43 57 53 54 52 20 53 75 62 73 79 73    LPCWSTR Subsys
1e6b0 74 65 6d 4e 61 6d 65 2c 0d 0a 20 20 4c 50 56 4f  temName,..  LPVO
1e6c0 49 44 20 48 61 6e 64 6c 65 49 64 2c 0d 0a 20 20  ID HandleId,..  
1e6d0 4c 50 57 53 54 52 20 4f 62 6a 65 63 74 54 79 70  LPWSTR ObjectTyp
1e6e0 65 4e 61 6d 65 2c 0d 0a 20 20 4c 50 57 53 54 52  eName,..  LPWSTR
1e6f0 20 4f 62 6a 65 63 74 4e 61 6d 65 2c 0d 0a 20 20   ObjectName,..  
1e700 50 53 45 43 55 52 49 54 59 5f 44 45 53 43 52 49  PSECURITY_DESCRI
1e710 50 54 4f 52 20 70 53 65 63 75 72 69 74 79 44 65  PTOR pSecurityDe
1e720 73 63 72 69 70 74 6f 72 2c 0d 0a 20 20 48 41 4e  scriptor,..  HAN
1e730 44 4c 45 20 43 6c 69 65 6e 74 54 6f 6b 65 6e 2c  DLE ClientToken,
1e740 0d 0a 20 20 44 57 4f 52 44 20 44 65 73 69 72 65  ..  DWORD Desire
1e750 64 41 63 63 65 73 73 2c 0d 0a 20 20 44 57 4f 52  dAccess,..  DWOR
1e760 44 20 47 72 61 6e 74 65 64 41 63 63 65 73 73 2c  D GrantedAccess,
1e770 0d 0a 20 20 50 50 52 49 56 49 4c 45 47 45 5f 53  ..  PPRIVILEGE_S
1e780 45 54 20 50 72 69 76 69 6c 65 67 65 73 2c 0d 0a  ET Privileges,..
1e790 20 20 42 4f 4f 4c 20 4f 62 6a 65 63 74 43 72 65    BOOL ObjectCre
1e7a0 61 74 69 6f 6e 2c 0d 0a 20 20 42 4f 4f 4c 20 41  ation,..  BOOL A
1e7b0 63 63 65 73 73 47 72 61 6e 74 65 64 2c 0d 0a 20  ccessGranted,.. 
1e7c0 20 4c 50 42 4f 4f 4c 20 47 65 6e 65 72 61 74 65   LPBOOL Generate
1e7d0 4f 6e 43 6c 6f 73 65 29 3b 0d 0a 2f 2f 20 23 69  OnClose);..// #i
1e7e0 66 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61 6c  fdef UNICODE..al
1e7f0 69 61 73 20 4f 62 6a 65 63 74 4f 70 65 6e 41 75  ias ObjectOpenAu
1e800 64 69 74 41 6c 61 72 6d 57 20 4f 62 6a 65 63 74  ditAlarmW Object
1e810 4f 70 65 6e 41 75 64 69 74 41 6c 61 72 6d 3b 0d  OpenAuditAlarm;.
1e820 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e  .// #else..// #.
1e830 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f  ....// #endif //
1e840 20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78 74   !UNICODE....ext
1e850 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
1e860 6f 72 74 20 42 4f 4f 4c 20 4f 62 6a 65 63 74 50  ort BOOL ObjectP
1e870 72 69 76 69 6c 65 67 65 41 75 64 69 74 41 6c 61  rivilegeAuditAla
1e880 72 6d 41 28 0d 0a 20 20 4c 50 43 53 54 52 20 53  rmA(..  LPCSTR S
1e890 75 62 73 79 73 74 65 6d 4e 61 6d 65 2c 0d 0a 20  ubsystemName,.. 
1e8a0 20 4c 50 56 4f 49 44 20 48 61 6e 64 6c 65 49 64   LPVOID HandleId
1e8b0 2c 0d 0a 20 20 48 41 4e 44 4c 45 20 43 6c 69 65  ,..  HANDLE Clie
1e8c0 6e 74 54 6f 6b 65 6e 2c 0d 0a 20 20 44 57 4f 52  ntToken,..  DWOR
1e8d0 44 20 44 65 73 69 72 65 64 41 63 63 65 73 73 2c  D DesiredAccess,
1e8e0 0d 0a 20 20 50 50 52 49 56 49 4c 45 47 45 5f 53  ..  PPRIVILEGE_S
1e8f0 45 54 20 50 72 69 76 69 6c 65 67 65 73 2c 0d 0a  ET Privileges,..
1e900 20 20 42 4f 4f 4c 20 41 63 63 65 73 73 47 72 61    BOOL AccessGra
1e910 6e 74 65 64 29 3b 0d 0a 65 78 74 65 72 6e 28 57  nted);..extern(W
1e920 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42  indows) export B
1e930 4f 4f 4c 20 4f 62 6a 65 63 74 50 72 69 76 69 6c  OOL ObjectPrivil
1e940 65 67 65 41 75 64 69 74 41 6c 61 72 6d 57 28 0d  egeAuditAlarmW(.
1e950 0a 20 20 4c 50 43 57 53 54 52 20 53 75 62 73 79  .  LPCWSTR Subsy
1e960 73 74 65 6d 4e 61 6d 65 2c 0d 0a 20 20 4c 50 56  stemName,..  LPV
1e970 4f 49 44 20 48 61 6e 64 6c 65 49 64 2c 0d 0a 20  OID HandleId,.. 
1e980 20 48 41 4e 44 4c 45 20 43 6c 69 65 6e 74 54 6f   HANDLE ClientTo
1e990 6b 65 6e 2c 0d 0a 20 20 44 57 4f 52 44 20 44 65  ken,..  DWORD De
1e9a0 73 69 72 65 64 41 63 63 65 73 73 2c 0d 0a 20 20  siredAccess,..  
1e9b0 50 50 52 49 56 49 4c 45 47 45 5f 53 45 54 20 50  PPRIVILEGE_SET P
1e9c0 72 69 76 69 6c 65 67 65 73 2c 0d 0a 20 20 42 4f  rivileges,..  BO
1e9d0 4f 4c 20 41 63 63 65 73 73 47 72 61 6e 74 65 64  OL AccessGranted
1e9e0 29 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e  );..// #ifdef UN
1e9f0 49 43 4f 44 45 0d 0a 61 6c 69 61 73 20 4f 62 6a  ICODE..alias Obj
1ea00 65 63 74 50 72 69 76 69 6c 65 67 65 41 75 64 69  ectPrivilegeAudi
1ea10 74 41 6c 61 72 6d 57 20 4f 62 6a 65 63 74 50 72  tAlarmW ObjectPr
1ea20 69 76 69 6c 65 67 65 41 75 64 69 74 41 6c 61 72  ivilegeAuditAlar
1ea30 6d 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f  m;..// #else..//
1ea40 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66   #.....// #endif
1ea50 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a   // !UNICODE....
1ea60 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
1ea70 65 78 70 6f 72 74 20 42 4f 4f 4c 20 4f 62 6a 65  export BOOL Obje
1ea80 63 74 43 6c 6f 73 65 41 75 64 69 74 41 6c 61 72  ctCloseAuditAlar
1ea90 6d 41 28 0d 0a 20 20 4c 50 43 53 54 52 20 53 75  mA(..  LPCSTR Su
1eaa0 62 73 79 73 74 65 6d 4e 61 6d 65 2c 0d 0a 20 20  bsystemName,..  
1eab0 4c 50 56 4f 49 44 20 48 61 6e 64 6c 65 49 64 2c  LPVOID HandleId,
1eac0 0d 0a 20 20 42 4f 4f 4c 20 47 65 6e 65 72 61 74  ..  BOOL Generat
1ead0 65 4f 6e 43 6c 6f 73 65 29 3b 0d 0a 65 78 74 65  eOnClose);..exte
1eae0 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
1eaf0 72 74 20 42 4f 4f 4c 20 4f 62 6a 65 63 74 43 6c  rt BOOL ObjectCl
1eb00 6f 73 65 41 75 64 69 74 41 6c 61 72 6d 57 28 0d  oseAuditAlarmW(.
1eb10 0a 20 20 4c 50 43 57 53 54 52 20 53 75 62 73 79  .  LPCWSTR Subsy
1eb20 73 74 65 6d 4e 61 6d 65 2c 0d 0a 20 20 4c 50 56  stemName,..  LPV
1eb30 4f 49 44 20 48 61 6e 64 6c 65 49 64 2c 0d 0a 20  OID HandleId,.. 
1eb40 20 42 4f 4f 4c 20 47 65 6e 65 72 61 74 65 4f 6e   BOOL GenerateOn
1eb50 43 6c 6f 73 65 29 3b 0d 0a 2f 2f 20 23 69 66 64  Close);..// #ifd
1eb60 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69 61  ef UNICODE..alia
1eb70 73 20 4f 62 6a 65 63 74 43 6c 6f 73 65 41 75 64  s ObjectCloseAud
1eb80 69 74 41 6c 61 72 6d 57 20 4f 62 6a 65 63 74 43  itAlarmW ObjectC
1eb90 6c 6f 73 65 41 75 64 69 74 41 6c 61 72 6d 3b 0d  loseAuditAlarm;.
1eba0 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e  .// #else..// #.
1ebb0 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f  ....// #endif //
1ebc0 20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78 74   !UNICODE....ext
1ebd0 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
1ebe0 6f 72 74 20 42 4f 4f 4c 20 4f 62 6a 65 63 74 44  ort BOOL ObjectD
1ebf0 65 6c 65 74 65 41 75 64 69 74 41 6c 61 72 6d 41  eleteAuditAlarmA
1ec00 28 0d 0a 20 20 4c 50 43 53 54 52 20 53 75 62 73  (..  LPCSTR Subs
1ec10 79 73 74 65 6d 4e 61 6d 65 2c 0d 0a 20 20 4c 50  ystemName,..  LP
1ec20 56 4f 49 44 20 48 61 6e 64 6c 65 49 64 2c 0d 0a  VOID HandleId,..
1ec30 20 20 42 4f 4f 4c 20 47 65 6e 65 72 61 74 65 4f    BOOL GenerateO
1ec40 6e 43 6c 6f 73 65 29 3b 0d 0a 65 78 74 65 72 6e  nClose);..extern
1ec50 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
1ec60 20 42 4f 4f 4c 20 4f 62 6a 65 63 74 44 65 6c 65   BOOL ObjectDele
1ec70 74 65 41 75 64 69 74 41 6c 61 72 6d 57 28 0d 0a  teAuditAlarmW(..
1ec80 20 20 4c 50 43 57 53 54 52 20 53 75 62 73 79 73    LPCWSTR Subsys
1ec90 74 65 6d 4e 61 6d 65 2c 0d 0a 20 20 4c 50 56 4f  temName,..  LPVO
1eca0 49 44 20 48 61 6e 64 6c 65 49 64 2c 0d 0a 20 20  ID HandleId,..  
1ecb0 42 4f 4f 4c 20 47 65 6e 65 72 61 74 65 4f 6e 43  BOOL GenerateOnC
1ecc0 6c 6f 73 65 29 3b 0d 0a 2f 2f 20 23 69 66 64 65  lose);..// #ifde
1ecd0 66 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69 61 73  f UNICODE..alias
1ece0 20 4f 62 6a 65 63 74 44 65 6c 65 74 65 41 75 64   ObjectDeleteAud
1ecf0 69 74 41 6c 61 72 6d 57 20 4f 62 6a 65 63 74 44  itAlarmW ObjectD
1ed00 65 6c 65 74 65 41 75 64 69 74 41 6c 61 72 6d 3b  eleteAuditAlarm;
1ed10 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23  ..// #else..// #
1ed20 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f  .....// #endif /
1ed30 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78  / !UNICODE....ex
1ed40 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
1ed50 70 6f 72 74 20 42 4f 4f 4c 20 50 72 69 76 69 6c  port BOOL Privil
1ed60 65 67 65 64 53 65 72 76 69 63 65 41 75 64 69 74  egedServiceAudit
1ed70 41 6c 61 72 6d 41 28 0d 0a 20 20 4c 50 43 53 54  AlarmA(..  LPCST
1ed80 52 20 53 75 62 73 79 73 74 65 6d 4e 61 6d 65 2c  R SubsystemName,
1ed90 0d 0a 20 20 4c 50 43 53 54 52 20 53 65 72 76 69  ..  LPCSTR Servi
1eda0 63 65 4e 61 6d 65 2c 0d 0a 20 20 48 41 4e 44 4c  ceName,..  HANDL
1edb0 45 20 43 6c 69 65 6e 74 54 6f 6b 65 6e 2c 0d 0a  E ClientToken,..
1edc0 20 20 50 50 52 49 56 49 4c 45 47 45 5f 53 45 54    PPRIVILEGE_SET
1edd0 20 50 72 69 76 69 6c 65 67 65 73 2c 0d 0a 20 20   Privileges,..  
1ede0 42 4f 4f 4c 20 41 63 63 65 73 73 47 72 61 6e 74  BOOL AccessGrant
1edf0 65 64 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e  ed);..extern(Win
1ee00 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f  dows) export BOO
1ee10 4c 20 50 72 69 76 69 6c 65 67 65 64 53 65 72 76  L PrivilegedServ
1ee20 69 63 65 41 75 64 69 74 41 6c 61 72 6d 57 28 0d  iceAuditAlarmW(.
1ee30 0a 20 20 4c 50 43 57 53 54 52 20 53 75 62 73 79  .  LPCWSTR Subsy
1ee40 73 74 65 6d 4e 61 6d 65 2c 0d 0a 20 20 4c 50 43  stemName,..  LPC
1ee50 57 53 54 52 20 53 65 72 76 69 63 65 4e 61 6d 65  WSTR ServiceName
1ee60 2c 0d 0a 20 20 48 41 4e 44 4c 45 20 43 6c 69 65  ,..  HANDLE Clie
1ee70 6e 74 54 6f 6b 65 6e 2c 0d 0a 20 20 50 50 52 49  ntToken,..  PPRI
1ee80 56 49 4c 45 47 45 5f 53 45 54 20 50 72 69 76 69  VILEGE_SET Privi
1ee90 6c 65 67 65 73 2c 0d 0a 20 20 42 4f 4f 4c 20 41  leges,..  BOOL A
1eea0 63 63 65 73 73 47 72 61 6e 74 65 64 29 3b 0d 0a  ccessGranted);..
1eeb0 2f 2f 20 23 69 66 64 65 66 20 55 4e 49 43 4f 44  // #ifdef UNICOD
1eec0 45 0d 0a 61 6c 69 61 73 20 50 72 69 76 69 6c 65  E..alias Privile
1eed0 67 65 64 53 65 72 76 69 63 65 41 75 64 69 74 41  gedServiceAuditA
1eee0 6c 61 72 6d 57 20 50 72 69 76 69 6c 65 67 65 64  larmW Privileged
1eef0 53 65 72 76 69 63 65 41 75 64 69 74 41 6c 61 72  ServiceAuditAlar
1ef00 6d 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f  m;..// #else..//
1ef10 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66   #.....// #endif
1ef20 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a   // !UNICODE....
1ef30 2f 2f 20 23 69 66 28 5f 57 49 4e 33 32 5f 57 49  // #if(_WIN32_WI
1ef40 4e 4e 54 20 3e 3d 20 30 78 30 35 30 31 29 0d 0a  NNT >= 0x0501)..
1ef50 0d 0a 65 6e 75 6d 20 5f 30 20 7b 0d 0a 0d 0a 20  ..enum _0 {.... 
1ef60 20 57 69 6e 4e 75 6c 6c 53 69 64 20 3d 20 30 2c   WinNullSid = 0,
1ef70 0d 0a 20 20 57 69 6e 57 6f 72 6c 64 53 69 64 20  ..  WinWorldSid 
1ef80 3d 20 31 2c 0d 0a 20 20 57 69 6e 4c 6f 63 61 6c  = 1,..  WinLocal
1ef90 53 69 64 20 3d 20 32 2c 0d 0a 20 20 57 69 6e 43  Sid = 2,..  WinC
1efa0 72 65 61 74 6f 72 4f 77 6e 65 72 53 69 64 20 3d  reatorOwnerSid =
1efb0 20 33 2c 0d 0a 20 20 57 69 6e 43 72 65 61 74 6f   3,..  WinCreato
1efc0 72 47 72 6f 75 70 53 69 64 20 3d 20 34 2c 0d 0a  rGroupSid = 4,..
1efd0 20 20 57 69 6e 43 72 65 61 74 6f 72 4f 77 6e 65    WinCreatorOwne
1efe0 72 53 65 72 76 65 72 53 69 64 20 3d 20 35 2c 0d  rServerSid = 5,.
1eff0 0a 20 20 57 69 6e 43 72 65 61 74 6f 72 47 72 6f  .  WinCreatorGro
1f000 75 70 53 65 72 76 65 72 53 69 64 20 3d 20 36 2c  upServerSid = 6,
1f010 0d 0a 20 20 57 69 6e 4e 74 41 75 74 68 6f 72 69  ..  WinNtAuthori
1f020 74 79 53 69 64 20 3d 20 37 2c 0d 0a 20 20 57 69  tySid = 7,..  Wi
1f030 6e 44 69 61 6c 75 70 53 69 64 20 3d 20 38 2c 0d  nDialupSid = 8,.
1f040 0a 20 20 57 69 6e 4e 65 74 77 6f 72 6b 53 69 64  .  WinNetworkSid
1f050 20 3d 20 39 2c 0d 0a 20 20 57 69 6e 42 61 74 63   = 9,..  WinBatc
1f060 68 53 69 64 20 3d 20 31 30 2c 0d 0a 20 20 57 69  hSid = 10,..  Wi
1f070 6e 49 6e 74 65 72 61 63 74 69 76 65 53 69 64 20  nInteractiveSid 
1f080 3d 20 31 31 2c 0d 0a 20 20 57 69 6e 53 65 72 76  = 11,..  WinServ
1f090 69 63 65 53 69 64 20 3d 20 31 32 2c 0d 0a 20 20  iceSid = 12,..  
1f0a0 57 69 6e 41 6e 6f 6e 79 6d 6f 75 73 53 69 64 20  WinAnonymousSid 
1f0b0 3d 20 31 33 2c 0d 0a 20 20 57 69 6e 50 72 6f 78  = 13,..  WinProx
1f0c0 79 53 69 64 20 3d 20 31 34 2c 0d 0a 20 20 57 69  ySid = 14,..  Wi
1f0d0 6e 45 6e 74 65 72 70 72 69 73 65 43 6f 6e 74 72  nEnterpriseContr
1f0e0 6f 6c 6c 65 72 73 53 69 64 20 3d 20 31 35 2c 0d  ollersSid = 15,.
1f0f0 0a 20 20 57 69 6e 53 65 6c 66 53 69 64 20 3d 20  .  WinSelfSid = 
1f100 31 36 2c 0d 0a 20 20 57 69 6e 41 75 74 68 65 6e  16,..  WinAuthen
1f110 74 69 63 61 74 65 64 55 73 65 72 53 69 64 20 3d  ticatedUserSid =
1f120 20 31 37 2c 0d 0a 20 20 57 69 6e 52 65 73 74 72   17,..  WinRestr
1f130 69 63 74 65 64 43 6f 64 65 53 69 64 20 3d 20 31  ictedCodeSid = 1
1f140 38 2c 0d 0a 20 20 57 69 6e 54 65 72 6d 69 6e 61  8,..  WinTermina
1f150 6c 53 65 72 76 65 72 53 69 64 20 3d 20 31 39 2c  lServerSid = 19,
1f160 0d 0a 20 20 57 69 6e 52 65 6d 6f 74 65 4c 6f 67  ..  WinRemoteLog
1f170 6f 6e 49 64 53 69 64 20 3d 20 32 30 2c 0d 0a 20  onIdSid = 20,.. 
1f180 20 57 69 6e 4c 6f 67 6f 6e 49 64 73 53 69 64 20   WinLogonIdsSid 
1f190 3d 20 32 31 2c 0d 0a 20 20 57 69 6e 4c 6f 63 61  = 21,..  WinLoca
1f1a0 6c 53 79 73 74 65 6d 53 69 64 20 3d 20 32 32 2c  lSystemSid = 22,
1f1b0 0d 0a 20 20 57 69 6e 4c 6f 63 61 6c 53 65 72 76  ..  WinLocalServ
1f1c0 69 63 65 53 69 64 20 3d 20 32 33 2c 0d 0a 20 20  iceSid = 23,..  
1f1d0 57 69 6e 4e 65 74 77 6f 72 6b 53 65 72 76 69 63  WinNetworkServic
1f1e0 65 53 69 64 20 3d 20 32 34 2c 0d 0a 20 20 57 69  eSid = 24,..  Wi
1f1f0 6e 42 75 69 6c 74 69 6e 44 6f 6d 61 69 6e 53 69  nBuiltinDomainSi
1f200 64 20 3d 20 32 35 2c 0d 0a 20 20 57 69 6e 42 75  d = 25,..  WinBu
1f210 69 6c 74 69 6e 41 64 6d 69 6e 69 73 74 72 61 74  iltinAdministrat
1f220 6f 72 73 53 69 64 20 3d 20 32 36 2c 0d 0a 20 20  orsSid = 26,..  
1f230 57 69 6e 42 75 69 6c 74 69 6e 55 73 65 72 73 53  WinBuiltinUsersS
1f240 69 64 20 3d 20 32 37 2c 0d 0a 20 20 57 69 6e 42  id = 27,..  WinB
1f250 75 69 6c 74 69 6e 47 75 65 73 74 73 53 69 64 20  uiltinGuestsSid 
1f260 3d 20 32 38 2c 0d 0a 20 20 57 69 6e 42 75 69 6c  = 28,..  WinBuil
1f270 74 69 6e 50 6f 77 65 72 55 73 65 72 73 53 69 64  tinPowerUsersSid
1f280 20 3d 20 32 39 2c 0d 0a 20 20 57 69 6e 42 75 69   = 29,..  WinBui
1f290 6c 74 69 6e 41 63 63 6f 75 6e 74 4f 70 65 72 61  ltinAccountOpera
1f2a0 74 6f 72 73 53 69 64 20 3d 20 33 30 2c 0d 0a 20  torsSid = 30,.. 
1f2b0 20 57 69 6e 42 75 69 6c 74 69 6e 53 79 73 74 65   WinBuiltinSyste
1f2c0 6d 4f 70 65 72 61 74 6f 72 73 53 69 64 20 3d 20  mOperatorsSid = 
1f2d0 33 31 2c 0d 0a 20 20 57 69 6e 42 75 69 6c 74 69  31,..  WinBuilti
1f2e0 6e 50 72 69 6e 74 4f 70 65 72 61 74 6f 72 73 53  nPrintOperatorsS
1f2f0 69 64 20 3d 20 33 32 2c 0d 0a 20 20 57 69 6e 42  id = 32,..  WinB
1f300 75 69 6c 74 69 6e 42 61 63 6b 75 70 4f 70 65 72  uiltinBackupOper
1f310 61 74 6f 72 73 53 69 64 20 3d 20 33 33 2c 0d 0a  atorsSid = 33,..
1f320 20 20 57 69 6e 42 75 69 6c 74 69 6e 52 65 70 6c    WinBuiltinRepl
1f330 69 63 61 74 6f 72 53 69 64 20 3d 20 33 34 2c 0d  icatorSid = 34,.
1f340 0a 20 20 57 69 6e 42 75 69 6c 74 69 6e 50 72 65  .  WinBuiltinPre
1f350 57 69 6e 64 6f 77 73 32 30 30 30 43 6f 6d 70 61  Windows2000Compa
1f360 74 69 62 6c 65 41 63 63 65 73 73 53 69 64 20 3d  tibleAccessSid =
1f370 20 33 35 2c 0d 0a 20 20 57 69 6e 42 75 69 6c 74   35,..  WinBuilt
1f380 69 6e 52 65 6d 6f 74 65 44 65 73 6b 74 6f 70 55  inRemoteDesktopU
1f390 73 65 72 73 53 69 64 20 3d 20 33 36 2c 0d 0a 20  sersSid = 36,.. 
1f3a0 20 57 69 6e 42 75 69 6c 74 69 6e 4e 65 74 77 6f   WinBuiltinNetwo
1f3b0 72 6b 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 4f  rkConfigurationO
1f3c0 70 65 72 61 74 6f 72 73 53 69 64 20 3d 20 33 37  peratorsSid = 37
1f3d0 2c 0d 0a 20 20 57 69 6e 41 63 63 6f 75 6e 74 41  ,..  WinAccountA
1f3e0 64 6d 69 6e 69 73 74 72 61 74 6f 72 53 69 64 20  dministratorSid 
1f3f0 3d 20 33 38 2c 0d 0a 20 20 57 69 6e 41 63 63 6f  = 38,..  WinAcco
1f400 75 6e 74 47 75 65 73 74 53 69 64 20 3d 20 33 39  untGuestSid = 39
1f410 2c 0d 0a 20 20 57 69 6e 41 63 63 6f 75 6e 74 4b  ,..  WinAccountK
1f420 72 62 74 67 74 53 69 64 20 3d 20 34 30 2c 0d 0a  rbtgtSid = 40,..
1f430 20 20 57 69 6e 41 63 63 6f 75 6e 74 44 6f 6d 61    WinAccountDoma
1f440 69 6e 41 64 6d 69 6e 73 53 69 64 20 3d 20 34 31  inAdminsSid = 41
1f450 2c 0d 0a 20 20 57 69 6e 41 63 63 6f 75 6e 74 44  ,..  WinAccountD
1f460 6f 6d 61 69 6e 55 73 65 72 73 53 69 64 20 3d 20  omainUsersSid = 
1f470 34 32 2c 0d 0a 20 20 57 69 6e 41 63 63 6f 75 6e  42,..  WinAccoun
1f480 74 44 6f 6d 61 69 6e 47 75 65 73 74 73 53 69 64  tDomainGuestsSid
1f490 20 3d 20 34 33 2c 0d 0a 20 20 57 69 6e 41 63 63   = 43,..  WinAcc
1f4a0 6f 75 6e 74 43 6f 6d 70 75 74 65 72 73 53 69 64  ountComputersSid
1f4b0 20 3d 20 34 34 2c 0d 0a 20 20 57 69 6e 41 63 63   = 44,..  WinAcc
1f4c0 6f 75 6e 74 43 6f 6e 74 72 6f 6c 6c 65 72 73 53  ountControllersS
1f4d0 69 64 20 3d 20 34 35 2c 0d 0a 20 20 57 69 6e 41  id = 45,..  WinA
1f4e0 63 63 6f 75 6e 74 43 65 72 74 41 64 6d 69 6e 73  ccountCertAdmins
1f4f0 53 69 64 20 3d 20 34 36 2c 0d 0a 20 20 57 69 6e  Sid = 46,..  Win
1f500 41 63 63 6f 75 6e 74 53 63 68 65 6d 61 41 64 6d  AccountSchemaAdm
1f510 69 6e 73 53 69 64 20 3d 20 34 37 2c 0d 0a 20 20  insSid = 47,..  
1f520 57 69 6e 41 63 63 6f 75 6e 74 45 6e 74 65 72 70  WinAccountEnterp
1f530 72 69 73 65 41 64 6d 69 6e 73 53 69 64 20 3d 20  riseAdminsSid = 
1f540 34 38 2c 0d 0a 20 20 57 69 6e 41 63 63 6f 75 6e  48,..  WinAccoun
1f550 74 50 6f 6c 69 63 79 41 64 6d 69 6e 73 53 69 64  tPolicyAdminsSid
1f560 20 3d 20 34 39 2c 0d 0a 20 20 57 69 6e 41 63 63   = 49,..  WinAcc
1f570 6f 75 6e 74 52 61 73 41 6e 64 49 61 73 53 65 72  ountRasAndIasSer
1f580 76 65 72 73 53 69 64 20 3d 20 35 30 2c 0d 0a 0d  versSid = 50,...
1f590 0a 7d 0d 0a 61 6c 69 61 73 20 5f 30 20 57 45 4c  .}..alias _0 WEL
1f5a0 4c 5f 4b 4e 4f 57 4e 5f 53 49 44 5f 54 59 50 45  L_KNOWN_SID_TYPE
1f5b0 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  ;....extern(Wind
1f5c0 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c  ows) export BOOL
1f5d0 20 49 73 57 65 6c 6c 4b 6e 6f 77 6e 53 69 64 28   IsWellKnownSid(
1f5e0 0d 0a 20 20 50 53 49 44 20 70 53 69 64 2c 0d 0a  ..  PSID pSid,..
1f5f0 20 20 57 45 4c 4c 5f 4b 4e 4f 57 4e 5f 53 49 44    WELL_KNOWN_SID
1f600 5f 54 59 50 45 20 57 65 6c 6c 4b 6e 6f 77 6e 53  _TYPE WellKnownS
1f610 69 64 54 79 70 65 29 3b 0d 0a 0d 0a 65 78 74 65  idType);....exte
1f620 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
1f630 72 74 20 42 4f 4f 4c 20 43 72 65 61 74 65 57 65  rt BOOL CreateWe
1f640 6c 6c 4b 6e 6f 77 6e 53 69 64 28 0d 0a 20 20 57  llKnownSid(..  W
1f650 45 4c 4c 5f 4b 4e 4f 57 4e 5f 53 49 44 5f 54 59  ELL_KNOWN_SID_TY
1f660 50 45 20 57 65 6c 6c 4b 6e 6f 77 6e 53 69 64 54  PE WellKnownSidT
1f670 79 70 65 2c 0d 0a 20 20 50 53 49 44 20 44 6f 6d  ype,..  PSID Dom
1f680 61 69 6e 53 69 64 20 2c 0d 0a 20 20 50 53 49 44  ainSid ,..  PSID
1f690 20 70 53 69 64 2c 0d 0a 20 20 44 57 4f 52 44 20   pSid,..  DWORD 
1f6a0 2a 63 62 53 69 64 29 3b 0d 0a 0d 0a 65 78 74 65  *cbSid);....exte
1f6b0 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
1f6c0 72 74 20 42 4f 4f 4c 20 45 71 75 61 6c 44 6f 6d  rt BOOL EqualDom
1f6d0 61 69 6e 53 69 64 28 0d 0a 20 20 50 53 49 44 20  ainSid(..  PSID 
1f6e0 70 53 69 64 31 2c 0d 0a 20 20 50 53 49 44 20 70  pSid1,..  PSID p
1f6f0 53 69 64 32 2c 0d 0a 20 20 42 4f 4f 4c 20 2a 70  Sid2,..  BOOL *p
1f700 66 45 71 75 61 6c 29 3b 0d 0a 0d 0a 65 78 74 65  fEqual);....exte
1f710 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
1f720 72 74 20 42 4f 4f 4c 20 47 65 74 57 69 6e 64 6f  rt BOOL GetWindo
1f730 77 73 41 63 63 6f 75 6e 74 44 6f 6d 61 69 6e 53  wsAccountDomainS
1f740 69 64 28 0d 0a 20 20 50 53 49 44 20 70 53 69 64  id(..  PSID pSid
1f750 2c 0d 0a 20 20 50 53 49 44 20 70 70 44 6f 6d 61  ,..  PSID ppDoma
1f760 69 6e 53 69 64 20 2c 0d 0a 20 20 44 57 4f 52 44  inSid ,..  DWORD
1f770 20 2a 63 62 53 69 64 29 3b 0d 0a 0d 0a 2f 2f 20   *cbSid);....// 
1f780 23 65 6e 64 69 66 20 2f 2f 28 5f 57 49 4e 33 32  #endif //(_WIN32
1f790 5f 57 49 4e 4e 54 20 3e 3d 20 30 78 30 35 30 31  _WINNT >= 0x0501
1f7a0 29 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  )....extern(Wind
1f7b0 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c  ows) export BOOL
1f7c0 20 49 73 56 61 6c 69 64 53 69 64 28 0d 0a 20 20   IsValidSid(..  
1f7d0 50 53 49 44 20 70 53 69 64 29 3b 0d 0a 0d 0a 65  PSID pSid);....e
1f7e0 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
1f7f0 78 70 6f 72 74 20 42 4f 4f 4c 20 45 71 75 61 6c  xport BOOL Equal
1f800 53 69 64 28 0d 0a 20 20 50 53 49 44 20 70 53 69  Sid(..  PSID pSi
1f810 64 31 2c 0d 0a 20 20 50 53 49 44 20 70 53 69 64  d1,..  PSID pSid
1f820 32 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69  2);....extern(Wi
1f830 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f  ndows) export BO
1f840 4f 4c 20 45 71 75 61 6c 50 72 65 66 69 78 53 69  OL EqualPrefixSi
1f850 64 28 0d 0a 20 20 50 53 49 44 20 70 53 69 64 31  d(..  PSID pSid1
1f860 2c 0d 0a 20 20 50 53 49 44 20 70 53 69 64 32 29  ,..  PSID pSid2)
1f870 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  ;....extern(Wind
1f880 6f 77 73 29 20 65 78 70 6f 72 74 20 44 57 4f 52  ows) export DWOR
1f890 44 20 47 65 74 53 69 64 4c 65 6e 67 74 68 52 65  D GetSidLengthRe
1f8a0 71 75 69 72 65 64 28 0d 0a 20 20 55 43 48 41 52  quired(..  UCHAR
1f8b0 20 6e 53 75 62 41 75 74 68 6f 72 69 74 79 43 6f   nSubAuthorityCo
1f8c0 75 6e 74 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28  unt);....extern(
1f8d0 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
1f8e0 42 4f 4f 4c 20 41 6c 6c 6f 63 61 74 65 41 6e 64  BOOL AllocateAnd
1f8f0 49 6e 69 74 69 61 6c 69 7a 65 53 69 64 28 0d 0a  InitializeSid(..
1f900 20 20 50 53 49 44 5f 49 44 45 4e 54 49 46 49 45    PSID_IDENTIFIE
1f910 52 5f 41 55 54 48 4f 52 49 54 59 20 70 49 64 65  R_AUTHORITY pIde
1f920 6e 74 69 66 69 65 72 41 75 74 68 6f 72 69 74 79  ntifierAuthority
1f930 2c 0d 0a 20 20 42 59 54 45 20 6e 53 75 62 41 75  ,..  BYTE nSubAu
1f940 74 68 6f 72 69 74 79 43 6f 75 6e 74 2c 0d 0a 20  thorityCount,.. 
1f950 20 44 57 4f 52 44 20 6e 53 75 62 41 75 74 68 6f   DWORD nSubAutho
1f960 72 69 74 79 30 2c 0d 0a 20 20 44 57 4f 52 44 20  rity0,..  DWORD 
1f970 6e 53 75 62 41 75 74 68 6f 72 69 74 79 31 2c 0d  nSubAuthority1,.
1f980 0a 20 20 44 57 4f 52 44 20 6e 53 75 62 41 75 74  .  DWORD nSubAut
1f990 68 6f 72 69 74 79 32 2c 0d 0a 20 20 44 57 4f 52  hority2,..  DWOR
1f9a0 44 20 6e 53 75 62 41 75 74 68 6f 72 69 74 79 33  D nSubAuthority3
1f9b0 2c 0d 0a 20 20 44 57 4f 52 44 20 6e 53 75 62 41  ,..  DWORD nSubA
1f9c0 75 74 68 6f 72 69 74 79 34 2c 0d 0a 20 20 44 57  uthority4,..  DW
1f9d0 4f 52 44 20 6e 53 75 62 41 75 74 68 6f 72 69 74  ORD nSubAuthorit
1f9e0 79 35 2c 0d 0a 20 20 44 57 4f 52 44 20 6e 53 75  y5,..  DWORD nSu
1f9f0 62 41 75 74 68 6f 72 69 74 79 36 2c 0d 0a 20 20  bAuthority6,..  
1fa00 44 57 4f 52 44 20 6e 53 75 62 41 75 74 68 6f 72  DWORD nSubAuthor
1fa10 69 74 79 37 2c 0d 0a 20 20 50 53 49 44 20 2a 70  ity7,..  PSID *p
1fa20 53 69 64 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28  Sid);....extern(
1fa30 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
1fa40 50 56 4f 49 44 20 46 72 65 65 53 69 64 28 0d 0a  PVOID FreeSid(..
1fa50 20 20 50 53 49 44 20 70 53 69 64 29 3b 0d 0a 0d    PSID pSid);...
1fa60 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29  .extern(Windows)
1fa70 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 49 6e 69   export BOOL Ini
1fa80 74 69 61 6c 69 7a 65 53 69 64 28 0d 0a 20 20 50  tializeSid(..  P
1fa90 53 49 44 20 53 69 64 2c 0d 0a 20 20 50 53 49 44  SID Sid,..  PSID
1faa0 5f 49 44 45 4e 54 49 46 49 45 52 5f 41 55 54 48  _IDENTIFIER_AUTH
1fab0 4f 52 49 54 59 20 70 49 64 65 6e 74 69 66 69 65  ORITY pIdentifie
1fac0 72 41 75 74 68 6f 72 69 74 79 2c 0d 0a 20 20 42  rAuthority,..  B
1fad0 59 54 45 20 6e 53 75 62 41 75 74 68 6f 72 69 74  YTE nSubAuthorit
1fae0 79 43 6f 75 6e 74 29 3b 0d 0a 0d 0a 65 78 74 65  yCount);....exte
1faf0 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
1fb00 72 74 20 50 53 49 44 5f 49 44 45 4e 54 49 46 49  rt PSID_IDENTIFI
1fb10 45 52 5f 41 55 54 48 4f 52 49 54 59 20 47 65 74  ER_AUTHORITY Get
1fb20 53 69 64 49 64 65 6e 74 69 66 69 65 72 41 75 74  SidIdentifierAut
1fb30 68 6f 72 69 74 79 28 0d 0a 20 20 50 53 49 44 20  hority(..  PSID 
1fb40 70 53 69 64 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e  pSid);....extern
1fb50 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
1fb60 20 50 44 57 4f 52 44 20 47 65 74 53 69 64 53 75   PDWORD GetSidSu
1fb70 62 41 75 74 68 6f 72 69 74 79 28 0d 0a 20 20 50  bAuthority(..  P
1fb80 53 49 44 20 70 53 69 64 2c 0d 0a 20 20 44 57 4f  SID pSid,..  DWO
1fb90 52 44 20 6e 53 75 62 41 75 74 68 6f 72 69 74 79  RD nSubAuthority
1fba0 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e  );....extern(Win
1fbb0 64 6f 77 73 29 20 65 78 70 6f 72 74 20 50 55 43  dows) export PUC
1fbc0 48 41 52 20 47 65 74 53 69 64 53 75 62 41 75 74  HAR GetSidSubAut
1fbd0 68 6f 72 69 74 79 43 6f 75 6e 74 28 0d 0a 20 20  horityCount(..  
1fbe0 50 53 49 44 20 70 53 69 64 29 3b 0d 0a 0d 0a 65  PSID pSid);....e
1fbf0 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
1fc00 78 70 6f 72 74 20 44 57 4f 52 44 20 47 65 74 4c  xport DWORD GetL
1fc10 65 6e 67 74 68 53 69 64 28 0d 0a 20 20 50 53 49  engthSid(..  PSI
1fc20 44 20 70 53 69 64 29 3b 0d 0a 0d 0a 65 78 74 65  D pSid);....exte
1fc30 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
1fc40 72 74 20 42 4f 4f 4c 20 43 6f 70 79 53 69 64 28  rt BOOL CopySid(
1fc50 0d 0a 20 20 44 57 4f 52 44 20 6e 44 65 73 74 69  ..  DWORD nDesti
1fc60 6e 61 74 69 6f 6e 53 69 64 4c 65 6e 67 74 68 2c  nationSidLength,
1fc70 0d 0a 20 20 50 53 49 44 20 70 44 65 73 74 69 6e  ..  PSID pDestin
1fc80 61 74 69 6f 6e 53 69 64 2c 0d 0a 20 20 50 53 49  ationSid,..  PSI
1fc90 44 20 70 53 6f 75 72 63 65 53 69 64 29 3b 0d 0a  D pSourceSid);..
1fca0 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
1fcb0 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 41 72  ) export BOOL Ar
1fcc0 65 41 6c 6c 41 63 63 65 73 73 65 73 47 72 61 6e  eAllAccessesGran
1fcd0 74 65 64 28 0d 0a 20 20 44 57 4f 52 44 20 47 72  ted(..  DWORD Gr
1fce0 61 6e 74 65 64 41 63 63 65 73 73 2c 0d 0a 20 20  antedAccess,..  
1fcf0 44 57 4f 52 44 20 44 65 73 69 72 65 64 41 63 63  DWORD DesiredAcc
1fd00 65 73 73 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28  ess);....extern(
1fd10 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
1fd20 42 4f 4f 4c 20 41 72 65 41 6e 79 41 63 63 65 73  BOOL AreAnyAcces
1fd30 73 65 73 47 72 61 6e 74 65 64 28 0d 0a 20 20 44  sesGranted(..  D
1fd40 57 4f 52 44 20 47 72 61 6e 74 65 64 41 63 63 65  WORD GrantedAcce
1fd50 73 73 2c 0d 0a 20 20 44 57 4f 52 44 20 44 65 73  ss,..  DWORD Des
1fd60 69 72 65 64 41 63 63 65 73 73 29 3b 0d 0a 0d 0a  iredAccess);....
1fd70 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
1fd80 65 78 70 6f 72 74 20 56 4f 49 44 20 4d 61 70 47  export VOID MapG
1fd90 65 6e 65 72 69 63 4d 61 73 6b 28 0d 0a 20 20 50  enericMask(..  P
1fda0 44 57 4f 52 44 20 41 63 63 65 73 73 4d 61 73 6b  DWORD AccessMask
1fdb0 2c 0d 0a 20 20 50 47 45 4e 45 52 49 43 5f 4d 41  ,..  PGENERIC_MA
1fdc0 50 50 49 4e 47 20 47 65 6e 65 72 69 63 4d 61 70  PPING GenericMap
1fdd0 70 69 6e 67 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e  ping);....extern
1fde0 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
1fdf0 20 42 4f 4f 4c 20 49 73 56 61 6c 69 64 41 63 6c   BOOL IsValidAcl
1fe00 28 0d 0a 20 20 50 41 43 4c 20 70 41 63 6c 29 3b  (..  PACL pAcl);
1fe10 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f  ....extern(Windo
1fe20 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20  ws) export BOOL 
1fe30 49 6e 69 74 69 61 6c 69 7a 65 41 63 6c 28 0d 0a  InitializeAcl(..
1fe40 20 20 50 41 43 4c 20 70 41 63 6c 2c 0d 0a 20 20    PACL pAcl,..  
1fe50 44 57 4f 52 44 20 6e 41 63 6c 4c 65 6e 67 74 68  DWORD nAclLength
1fe60 2c 0d 0a 20 20 44 57 4f 52 44 20 64 77 41 63 6c  ,..  DWORD dwAcl
1fe70 52 65 76 69 73 69 6f 6e 29 3b 0d 0a 0d 0a 65 78  Revision);....ex
1fe80 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
1fe90 70 6f 72 74 20 42 4f 4f 4c 20 47 65 74 41 63 6c  port BOOL GetAcl
1fea0 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 0d 0a 20 20  Information(..  
1feb0 50 41 43 4c 20 70 41 63 6c 2c 0d 0a 20 20 4c 50  PACL pAcl,..  LP
1fec0 56 4f 49 44 20 70 41 63 6c 49 6e 66 6f 72 6d 61  VOID pAclInforma
1fed0 74 69 6f 6e 2c 0d 0a 20 20 44 57 4f 52 44 20 6e  tion,..  DWORD n
1fee0 41 63 6c 49 6e 66 6f 72 6d 61 74 69 6f 6e 4c 65  AclInformationLe
1fef0 6e 67 74 68 2c 0d 0a 20 20 41 43 4c 5f 49 4e 46  ngth,..  ACL_INF
1ff00 4f 52 4d 41 54 49 4f 4e 5f 43 4c 41 53 53 20 64  ORMATION_CLASS d
1ff10 77 41 63 6c 49 6e 66 6f 72 6d 61 74 69 6f 6e 43  wAclInformationC
1ff20 6c 61 73 73 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e  lass);....extern
1ff30 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
1ff40 20 42 4f 4f 4c 20 53 65 74 41 63 6c 49 6e 66 6f   BOOL SetAclInfo
1ff50 72 6d 61 74 69 6f 6e 28 0d 0a 20 20 50 41 43 4c  rmation(..  PACL
1ff60 20 70 41 63 6c 2c 0d 0a 20 20 4c 50 56 4f 49 44   pAcl,..  LPVOID
1ff70 20 70 41 63 6c 49 6e 66 6f 72 6d 61 74 69 6f 6e   pAclInformation
1ff80 2c 0d 0a 20 20 44 57 4f 52 44 20 6e 41 63 6c 49  ,..  DWORD nAclI
1ff90 6e 66 6f 72 6d 61 74 69 6f 6e 4c 65 6e 67 74 68  nformationLength
1ffa0 2c 0d 0a 20 20 41 43 4c 5f 49 4e 46 4f 52 4d 41  ,..  ACL_INFORMA
1ffb0 54 49 4f 4e 5f 43 4c 41 53 53 20 64 77 41 63 6c  TION_CLASS dwAcl
1ffc0 49 6e 66 6f 72 6d 61 74 69 6f 6e 43 6c 61 73 73  InformationClass
1ffd0 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e  );....extern(Win
1ffe0 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f  dows) export BOO
1fff0 4c 20 41 64 64 41 63 65 28 0d 0a 20 20 50 41 43  L AddAce(..  PAC
20000 4c 20 70 41 63 6c 2c 0d 0a 20 20 44 57 4f 52 44  L pAcl,..  DWORD
20010 20 64 77 41 63 65 52 65 76 69 73 69 6f 6e 2c 0d   dwAceRevision,.
20020 0a 20 20 44 57 4f 52 44 20 64 77 53 74 61 72 74  .  DWORD dwStart
20030 69 6e 67 41 63 65 49 6e 64 65 78 2c 0d 0a 20 20  ingAceIndex,..  
20040 4c 50 56 4f 49 44 20 70 41 63 65 4c 69 73 74 2c  LPVOID pAceList,
20050 0d 0a 20 20 44 57 4f 52 44 20 6e 41 63 65 4c 69  ..  DWORD nAceLi
20060 73 74 4c 65 6e 67 74 68 29 3b 0d 0a 0d 0a 65 78  stLength);....ex
20070 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
20080 70 6f 72 74 20 42 4f 4f 4c 20 44 65 6c 65 74 65  port BOOL Delete
20090 41 63 65 28 0d 0a 20 20 50 41 43 4c 20 70 41 63  Ace(..  PACL pAc
200a0 6c 2c 0d 0a 20 20 44 57 4f 52 44 20 64 77 41 63  l,..  DWORD dwAc
200b0 65 49 6e 64 65 78 29 3b 0d 0a 0d 0a 65 78 74 65  eIndex);....exte
200c0 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
200d0 72 74 20 42 4f 4f 4c 20 47 65 74 41 63 65 28 0d  rt BOOL GetAce(.
200e0 0a 20 20 50 41 43 4c 20 70 41 63 6c 2c 0d 0a 20  .  PACL pAcl,.. 
200f0 20 44 57 4f 52 44 20 64 77 41 63 65 49 6e 64 65   DWORD dwAceInde
20100 78 2c 0d 0a 20 20 4c 50 56 4f 49 44 20 2a 70 41  x,..  LPVOID *pA
20110 63 65 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57  ce);....extern(W
20120 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42  indows) export B
20130 4f 4f 4c 20 41 64 64 41 63 63 65 73 73 41 6c 6c  OOL AddAccessAll
20140 6f 77 65 64 41 63 65 28 0d 0a 20 20 50 41 43 4c  owedAce(..  PACL
20150 20 70 41 63 6c 2c 0d 0a 20 20 44 57 4f 52 44 20   pAcl,..  DWORD 
20160 64 77 41 63 65 52 65 76 69 73 69 6f 6e 2c 0d 0a  dwAceRevision,..
20170 20 20 44 57 4f 52 44 20 41 63 63 65 73 73 4d 61    DWORD AccessMa
20180 73 6b 2c 0d 0a 20 20 50 53 49 44 20 70 53 69 64  sk,..  PSID pSid
20190 29 3b 0d 0a 0d 0a 2f 2f 20 23 69 66 28 5f 57 49  );....// #if(_WI
201a0 4e 33 32 5f 57 49 4e 4e 54 20 3e 3d 20 30 78 30  N32_WINNT >= 0x0
201b0 35 30 30 29 0d 0a 65 78 74 65 72 6e 28 57 69 6e  500)..extern(Win
201c0 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f  dows) export BOO
201d0 4c 20 41 64 64 41 63 63 65 73 73 41 6c 6c 6f 77  L AddAccessAllow
201e0 65 64 41 63 65 45 78 28 0d 0a 20 20 50 41 43 4c  edAceEx(..  PACL
201f0 20 70 41 63 6c 2c 0d 0a 20 20 44 57 4f 52 44 20   pAcl,..  DWORD 
20200 64 77 41 63 65 52 65 76 69 73 69 6f 6e 2c 0d 0a  dwAceRevision,..
20210 20 20 44 57 4f 52 44 20 41 63 65 46 6c 61 67 73    DWORD AceFlags
20220 2c 0d 0a 20 20 44 57 4f 52 44 20 41 63 63 65 73  ,..  DWORD Acces
20230 73 4d 61 73 6b 2c 0d 0a 20 20 50 53 49 44 20 70  sMask,..  PSID p
20240 53 69 64 29 3b 0d 0a 2f 2f 20 23 65 6e 64 69 66  Sid);..// #endif
20250 20 2f 2a 20 5f 57 49 4e 33 32 5f 57 49 4e 4e 54   /* _WIN32_WINNT
20260 20 3e 3d 20 20 30 78 30 35 30 30 20 2a 2f 0d 0a   >=  0x0500 */..
20270 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
20280 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 41 64  ) export BOOL Ad
20290 64 41 63 63 65 73 73 44 65 6e 69 65 64 41 63 65  dAccessDeniedAce
202a0 28 0d 0a 20 20 50 41 43 4c 20 70 41 63 6c 2c 0d  (..  PACL pAcl,.
202b0 0a 20 20 44 57 4f 52 44 20 64 77 41 63 65 52 65  .  DWORD dwAceRe
202c0 76 69 73 69 6f 6e 2c 0d 0a 20 20 44 57 4f 52 44  vision,..  DWORD
202d0 20 41 63 63 65 73 73 4d 61 73 6b 2c 0d 0a 20 20   AccessMask,..  
202e0 50 53 49 44 20 70 53 69 64 29 3b 0d 0a 0d 0a 2f  PSID pSid);..../
202f0 2f 20 23 69 66 28 5f 57 49 4e 33 32 5f 57 49 4e  / #if(_WIN32_WIN
20300 4e 54 20 3e 3d 20 30 78 30 35 30 30 29 0d 0a 65  NT >= 0x0500)..e
20310 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
20320 78 70 6f 72 74 20 42 4f 4f 4c 20 41 64 64 41 63  xport BOOL AddAc
20330 63 65 73 73 44 65 6e 69 65 64 41 63 65 45 78 28  cessDeniedAceEx(
20340 0d 0a 20 20 50 41 43 4c 20 70 41 63 6c 2c 0d 0a  ..  PACL pAcl,..
20350 20 20 44 57 4f 52 44 20 64 77 41 63 65 52 65 76    DWORD dwAceRev
20360 69 73 69 6f 6e 2c 0d 0a 20 20 44 57 4f 52 44 20  ision,..  DWORD 
20370 41 63 65 46 6c 61 67 73 2c 0d 0a 20 20 44 57 4f  AceFlags,..  DWO
20380 52 44 20 41 63 63 65 73 73 4d 61 73 6b 2c 0d 0a  RD AccessMask,..
20390 20 20 50 53 49 44 20 70 53 69 64 29 3b 0d 0a 2f    PSID pSid);../
203a0 2f 20 23 65 6e 64 69 66 20 2f 2a 20 5f 57 49 4e  / #endif /* _WIN
203b0 33 32 5f 57 49 4e 4e 54 20 3e 3d 20 20 30 78 30  32_WINNT >=  0x0
203c0 35 30 30 20 2a 2f 0d 0a 0d 0a 65 78 74 65 72 6e  500 */....extern
203d0 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
203e0 20 42 4f 4f 4c 20 41 64 64 41 75 64 69 74 41 63   BOOL AddAuditAc
203f0 63 65 73 73 41 63 65 28 0d 0a 20 20 50 41 43 4c  cessAce(..  PACL
20400 20 70 41 63 6c 2c 0d 0a 20 20 44 57 4f 52 44 20   pAcl,..  DWORD 
20410 64 77 41 63 65 52 65 76 69 73 69 6f 6e 2c 0d 0a  dwAceRevision,..
20420 20 20 44 57 4f 52 44 20 64 77 41 63 63 65 73 73    DWORD dwAccess
20430 4d 61 73 6b 2c 0d 0a 20 20 50 53 49 44 20 70 53  Mask,..  PSID pS
20440 69 64 2c 0d 0a 20 20 42 4f 4f 4c 20 62 41 75 64  id,..  BOOL bAud
20450 69 74 53 75 63 63 65 73 73 2c 0d 0a 20 20 42 4f  itSuccess,..  BO
20460 4f 4c 20 62 41 75 64 69 74 46 61 69 6c 75 72 65  OL bAuditFailure
20470 29 3b 0d 0a 0d 0a 2f 2f 20 23 69 66 28 5f 57 49  );....// #if(_WI
20480 4e 33 32 5f 57 49 4e 4e 54 20 3e 3d 20 30 78 30  N32_WINNT >= 0x0
20490 35 30 30 29 0d 0a 65 78 74 65 72 6e 28 57 69 6e  500)..extern(Win
204a0 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f  dows) export BOO
204b0 4c 20 41 64 64 41 75 64 69 74 41 63 63 65 73 73  L AddAuditAccess
204c0 41 63 65 45 78 28 0d 0a 20 20 50 41 43 4c 20 70  AceEx(..  PACL p
204d0 41 63 6c 2c 0d 0a 20 20 44 57 4f 52 44 20 64 77  Acl,..  DWORD dw
204e0 41 63 65 52 65 76 69 73 69 6f 6e 2c 0d 0a 20 20  AceRevision,..  
204f0 44 57 4f 52 44 20 41 63 65 46 6c 61 67 73 2c 0d  DWORD AceFlags,.
20500 0a 20 20 44 57 4f 52 44 20 64 77 41 63 63 65 73  .  DWORD dwAcces
20510 73 4d 61 73 6b 2c 0d 0a 20 20 50 53 49 44 20 70  sMask,..  PSID p
20520 53 69 64 2c 0d 0a 20 20 42 4f 4f 4c 20 62 41 75  Sid,..  BOOL bAu
20530 64 69 74 53 75 63 63 65 73 73 2c 0d 0a 20 20 42  ditSuccess,..  B
20540 4f 4f 4c 20 62 41 75 64 69 74 46 61 69 6c 75 72  OOL bAuditFailur
20550 65 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69  e);....extern(Wi
20560 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f  ndows) export BO
20570 4f 4c 20 41 64 64 41 63 63 65 73 73 41 6c 6c 6f  OL AddAccessAllo
20580 77 65 64 4f 62 6a 65 63 74 41 63 65 28 0d 0a 20  wedObjectAce(.. 
20590 20 50 41 43 4c 20 70 41 63 6c 2c 0d 0a 20 20 44   PACL pAcl,..  D
205a0 57 4f 52 44 20 64 77 41 63 65 52 65 76 69 73 69  WORD dwAceRevisi
205b0 6f 6e 2c 0d 0a 20 20 44 57 4f 52 44 20 41 63 65  on,..  DWORD Ace
205c0 46 6c 61 67 73 2c 0d 0a 20 20 44 57 4f 52 44 20  Flags,..  DWORD 
205d0 41 63 63 65 73 73 4d 61 73 6b 2c 0d 0a 20 20 47  AccessMask,..  G
205e0 55 49 44 20 2a 4f 62 6a 65 63 74 54 79 70 65 47  UID *ObjectTypeG
205f0 75 69 64 2c 0d 0a 20 20 47 55 49 44 20 2a 49 6e  uid,..  GUID *In
20600 68 65 72 69 74 65 64 4f 62 6a 65 63 74 54 79 70  heritedObjectTyp
20610 65 47 75 69 64 2c 0d 0a 20 20 50 53 49 44 20 70  eGuid,..  PSID p
20620 53 69 64 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28  Sid);....extern(
20630 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
20640 42 4f 4f 4c 20 41 64 64 41 63 63 65 73 73 44 65  BOOL AddAccessDe
20650 6e 69 65 64 4f 62 6a 65 63 74 41 63 65 28 0d 0a  niedObjectAce(..
20660 20 20 50 41 43 4c 20 70 41 63 6c 2c 0d 0a 20 20    PACL pAcl,..  
20670 44 57 4f 52 44 20 64 77 41 63 65 52 65 76 69 73  DWORD dwAceRevis
20680 69 6f 6e 2c 0d 0a 20 20 44 57 4f 52 44 20 41 63  ion,..  DWORD Ac
20690 65 46 6c 61 67 73 2c 0d 0a 20 20 44 57 4f 52 44  eFlags,..  DWORD
206a0 20 41 63 63 65 73 73 4d 61 73 6b 2c 0d 0a 20 20   AccessMask,..  
206b0 47 55 49 44 20 2a 4f 62 6a 65 63 74 54 79 70 65  GUID *ObjectType
206c0 47 75 69 64 2c 0d 0a 20 20 47 55 49 44 20 2a 49  Guid,..  GUID *I
206d0 6e 68 65 72 69 74 65 64 4f 62 6a 65 63 74 54 79  nheritedObjectTy
206e0 70 65 47 75 69 64 2c 0d 0a 20 20 50 53 49 44 20  peGuid,..  PSID 
206f0 70 53 69 64 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e  pSid);....extern
20700 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
20710 20 42 4f 4f 4c 20 41 64 64 41 75 64 69 74 41 63   BOOL AddAuditAc
20720 63 65 73 73 4f 62 6a 65 63 74 41 63 65 28 0d 0a  cessObjectAce(..
20730 20 20 50 41 43 4c 20 70 41 63 6c 2c 0d 0a 20 20    PACL pAcl,..  
20740 44 57 4f 52 44 20 64 77 41 63 65 52 65 76 69 73  DWORD dwAceRevis
20750 69 6f 6e 2c 0d 0a 20 20 44 57 4f 52 44 20 41 63  ion,..  DWORD Ac
20760 65 46 6c 61 67 73 2c 0d 0a 20 20 44 57 4f 52 44  eFlags,..  DWORD
20770 20 41 63 63 65 73 73 4d 61 73 6b 2c 0d 0a 20 20   AccessMask,..  
20780 47 55 49 44 20 2a 4f 62 6a 65 63 74 54 79 70 65  GUID *ObjectType
20790 47 75 69 64 2c 0d 0a 20 20 47 55 49 44 20 2a 49  Guid,..  GUID *I
207a0 6e 68 65 72 69 74 65 64 4f 62 6a 65 63 74 54 79  nheritedObjectTy
207b0 70 65 47 75 69 64 2c 0d 0a 20 20 50 53 49 44 20  peGuid,..  PSID 
207c0 70 53 69 64 2c 0d 0a 20 20 42 4f 4f 4c 20 62 41  pSid,..  BOOL bA
207d0 75 64 69 74 53 75 63 63 65 73 73 2c 0d 0a 20 20  uditSuccess,..  
207e0 42 4f 4f 4c 20 62 41 75 64 69 74 46 61 69 6c 75  BOOL bAuditFailu
207f0 72 65 29 3b 0d 0a 2f 2f 20 23 65 6e 64 69 66 20  re);..// #endif 
20800 2f 2a 20 5f 57 49 4e 33 32 5f 57 49 4e 4e 54 20  /* _WIN32_WINNT 
20810 3e 3d 20 20 30 78 30 35 30 30 20 2a 2f 0d 0a 0d  >=  0x0500 */...
20820 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29  .extern(Windows)
20830 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 46 69 6e   export BOOL Fin
20840 64 46 69 72 73 74 46 72 65 65 41 63 65 28 0d 0a  dFirstFreeAce(..
20850 20 20 50 41 43 4c 20 70 41 63 6c 2c 0d 0a 20 20    PACL pAcl,..  
20860 4c 50 56 4f 49 44 20 2a 70 41 63 65 29 3b 0d 0a  LPVOID *pAce);..
20870 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
20880 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 49 6e  ) export BOOL In
20890 69 74 69 61 6c 69 7a 65 53 65 63 75 72 69 74 79  itializeSecurity
208a0 44 65 73 63 72 69 70 74 6f 72 28 0d 0a 20 20 50  Descriptor(..  P
208b0 53 45 43 55 52 49 54 59 5f 44 45 53 43 52 49 50  SECURITY_DESCRIP
208c0 54 4f 52 20 70 53 65 63 75 72 69 74 79 44 65 73  TOR pSecurityDes
208d0 63 72 69 70 74 6f 72 2c 0d 0a 20 20 44 57 4f 52  criptor,..  DWOR
208e0 44 20 64 77 52 65 76 69 73 69 6f 6e 29 3b 0d 0a  D dwRevision);..
208f0 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
20900 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 49 73  ) export BOOL Is
20910 56 61 6c 69 64 53 65 63 75 72 69 74 79 44 65 73  ValidSecurityDes
20920 63 72 69 70 74 6f 72 28 0d 0a 20 20 50 53 45 43  criptor(..  PSEC
20930 55 52 49 54 59 5f 44 45 53 43 52 49 50 54 4f 52  URITY_DESCRIPTOR
20940 20 70 53 65 63 75 72 69 74 79 44 65 73 63 72 69   pSecurityDescri
20950 70 74 6f 72 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e  ptor);....extern
20960 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
20970 20 44 57 4f 52 44 20 47 65 74 53 65 63 75 72 69   DWORD GetSecuri
20980 74 79 44 65 73 63 72 69 70 74 6f 72 4c 65 6e 67  tyDescriptorLeng
20990 74 68 28 0d 0a 20 20 50 53 45 43 55 52 49 54 59  th(..  PSECURITY
209a0 5f 44 45 53 43 52 49 50 54 4f 52 20 70 53 65 63  _DESCRIPTOR pSec
209b0 75 72 69 74 79 44 65 73 63 72 69 70 74 6f 72 29  urityDescriptor)
209c0 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  ;....extern(Wind
209d0 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c  ows) export BOOL
209e0 20 47 65 74 53 65 63 75 72 69 74 79 44 65 73 63   GetSecurityDesc
209f0 72 69 70 74 6f 72 43 6f 6e 74 72 6f 6c 28 0d 0a  riptorControl(..
20a00 20 20 50 53 45 43 55 52 49 54 59 5f 44 45 53 43    PSECURITY_DESC
20a10 52 49 50 54 4f 52 20 70 53 65 63 75 72 69 74 79  RIPTOR pSecurity
20a20 44 65 73 63 72 69 70 74 6f 72 2c 0d 0a 20 20 50  Descriptor,..  P
20a30 53 45 43 55 52 49 54 59 5f 44 45 53 43 52 49 50  SECURITY_DESCRIP
20a40 54 4f 52 5f 43 4f 4e 54 52 4f 4c 20 70 43 6f 6e  TOR_CONTROL pCon
20a50 74 72 6f 6c 2c 0d 0a 20 20 4c 50 44 57 4f 52 44  trol,..  LPDWORD
20a60 20 6c 70 64 77 52 65 76 69 73 69 6f 6e 29 3b 0d   lpdwRevision);.
20a70 0a 0d 0a 2f 2f 20 23 69 66 28 5f 57 49 4e 33 32  ...// #if(_WIN32
20a80 5f 57 49 4e 4e 54 20 3e 3d 20 30 78 30 35 30 30  _WINNT >= 0x0500
20a90 29 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  )..extern(Window
20aa0 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 53  s) export BOOL S
20ab0 65 74 53 65 63 75 72 69 74 79 44 65 73 63 72 69  etSecurityDescri
20ac0 70 74 6f 72 43 6f 6e 74 72 6f 6c 28 0d 0a 20 20  ptorControl(..  
20ad0 50 53 45 43 55 52 49 54 59 5f 44 45 53 43 52 49  PSECURITY_DESCRI
20ae0 50 54 4f 52 20 70 53 65 63 75 72 69 74 79 44 65  PTOR pSecurityDe
20af0 73 63 72 69 70 74 6f 72 2c 0d 0a 20 20 53 45 43  scriptor,..  SEC
20b00 55 52 49 54 59 5f 44 45 53 43 52 49 50 54 4f 52  URITY_DESCRIPTOR
20b10 5f 43 4f 4e 54 52 4f 4c 20 43 6f 6e 74 72 6f 6c  _CONTROL Control
20b20 42 69 74 73 4f 66 49 6e 74 65 72 65 73 74 2c 0d  BitsOfInterest,.
20b30 0a 20 20 53 45 43 55 52 49 54 59 5f 44 45 53 43  .  SECURITY_DESC
20b40 52 49 50 54 4f 52 5f 43 4f 4e 54 52 4f 4c 20 43  RIPTOR_CONTROL C
20b50 6f 6e 74 72 6f 6c 42 69 74 73 54 6f 53 65 74 29  ontrolBitsToSet)
20b60 3b 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2a 20  ;..// #endif /* 
20b70 5f 57 49 4e 33 32 5f 57 49 4e 4e 54 20 3e 3d 20  _WIN32_WINNT >= 
20b80 20 30 78 30 35 30 30 20 2a 2f 0d 0a 0d 0a 65 78   0x0500 */....ex
20b90 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
20ba0 70 6f 72 74 20 42 4f 4f 4c 20 53 65 74 53 65 63  port BOOL SetSec
20bb0 75 72 69 74 79 44 65 73 63 72 69 70 74 6f 72 44  urityDescriptorD
20bc0 61 63 6c 28 0d 0a 20 20 50 53 45 43 55 52 49 54  acl(..  PSECURIT
20bd0 59 5f 44 45 53 43 52 49 50 54 4f 52 20 70 53 65  Y_DESCRIPTOR pSe
20be0 63 75 72 69 74 79 44 65 73 63 72 69 70 74 6f 72  curityDescriptor
20bf0 2c 0d 0a 20 20 42 4f 4f 4c 20 62 44 61 63 6c 50  ,..  BOOL bDaclP
20c00 72 65 73 65 6e 74 2c 0d 0a 20 20 50 41 43 4c 20  resent,..  PACL 
20c10 70 44 61 63 6c 2c 0d 0a 20 20 42 4f 4f 4c 20 62  pDacl,..  BOOL b
20c20 44 61 63 6c 44 65 66 61 75 6c 74 65 64 29 3b 0d  DaclDefaulted);.
20c30 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ...extern(Window
20c40 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 47  s) export BOOL G
20c50 65 74 53 65 63 75 72 69 74 79 44 65 73 63 72 69  etSecurityDescri
20c60 70 74 6f 72 44 61 63 6c 28 0d 0a 20 20 50 53 45  ptorDacl(..  PSE
20c70 43 55 52 49 54 59 5f 44 45 53 43 52 49 50 54 4f  CURITY_DESCRIPTO
20c80 52 20 70 53 65 63 75 72 69 74 79 44 65 73 63 72  R pSecurityDescr
20c90 69 70 74 6f 72 2c 0d 0a 20 20 4c 50 42 4f 4f 4c  iptor,..  LPBOOL
20ca0 20 6c 70 62 44 61 63 6c 50 72 65 73 65 6e 74 2c   lpbDaclPresent,
20cb0 0d 0a 20 20 50 41 43 4c 20 2a 70 44 61 63 6c 2c  ..  PACL *pDacl,
20cc0 0d 0a 20 20 4c 50 42 4f 4f 4c 20 6c 70 62 44 61  ..  LPBOOL lpbDa
20cd0 63 6c 44 65 66 61 75 6c 74 65 64 29 3b 0d 0a 0d  clDefaulted);...
20ce0 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29  .extern(Windows)
20cf0 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 53 65 74   export BOOL Set
20d00 53 65 63 75 72 69 74 79 44 65 73 63 72 69 70 74  SecurityDescript
20d10 6f 72 53 61 63 6c 28 0d 0a 20 20 50 53 45 43 55  orSacl(..  PSECU
20d20 52 49 54 59 5f 44 45 53 43 52 49 50 54 4f 52 20  RITY_DESCRIPTOR 
20d30 70 53 65 63 75 72 69 74 79 44 65 73 63 72 69 70  pSecurityDescrip
20d40 74 6f 72 2c 0d 0a 20 20 42 4f 4f 4c 20 62 53 61  tor,..  BOOL bSa
20d50 63 6c 50 72 65 73 65 6e 74 2c 0d 0a 20 20 50 41  clPresent,..  PA
20d60 43 4c 20 70 53 61 63 6c 2c 0d 0a 20 20 42 4f 4f  CL pSacl,..  BOO
20d70 4c 20 62 53 61 63 6c 44 65 66 61 75 6c 74 65 64  L bSaclDefaulted
20d80 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e  );....extern(Win
20d90 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f  dows) export BOO
20da0 4c 20 47 65 74 53 65 63 75 72 69 74 79 44 65 73  L GetSecurityDes
20db0 63 72 69 70 74 6f 72 53 61 63 6c 28 0d 0a 20 20  criptorSacl(..  
20dc0 50 53 45 43 55 52 49 54 59 5f 44 45 53 43 52 49  PSECURITY_DESCRI
20dd0 50 54 4f 52 20 70 53 65 63 75 72 69 74 79 44 65  PTOR pSecurityDe
20de0 73 63 72 69 70 74 6f 72 2c 0d 0a 20 20 4c 50 42  scriptor,..  LPB
20df0 4f 4f 4c 20 6c 70 62 53 61 63 6c 50 72 65 73 65  OOL lpbSaclPrese
20e00 6e 74 2c 0d 0a 20 20 50 41 43 4c 20 2a 70 53 61  nt,..  PACL *pSa
20e10 63 6c 2c 0d 0a 20 20 4c 50 42 4f 4f 4c 20 6c 70  cl,..  LPBOOL lp
20e20 62 53 61 63 6c 44 65 66 61 75 6c 74 65 64 29 3b  bSaclDefaulted);
20e30 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f  ....extern(Windo
20e40 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20  ws) export BOOL 
20e50 53 65 74 53 65 63 75 72 69 74 79 44 65 73 63 72  SetSecurityDescr
20e60 69 70 74 6f 72 4f 77 6e 65 72 28 0d 0a 20 20 50  iptorOwner(..  P
20e70 53 45 43 55 52 49 54 59 5f 44 45 53 43 52 49 50  SECURITY_DESCRIP
20e80 54 4f 52 20 70 53 65 63 75 72 69 74 79 44 65 73  TOR pSecurityDes
20e90 63 72 69 70 74 6f 72 2c 0d 0a 20 20 50 53 49 44  criptor,..  PSID
20ea0 20 70 4f 77 6e 65 72 2c 0d 0a 20 20 42 4f 4f 4c   pOwner,..  BOOL
20eb0 20 62 4f 77 6e 65 72 44 65 66 61 75 6c 74 65 64   bOwnerDefaulted
20ec0 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e  );....extern(Win
20ed0 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f  dows) export BOO
20ee0 4c 20 47 65 74 53 65 63 75 72 69 74 79 44 65 73  L GetSecurityDes
20ef0 63 72 69 70 74 6f 72 4f 77 6e 65 72 28 0d 0a 20  criptorOwner(.. 
20f00 20 50 53 45 43 55 52 49 54 59 5f 44 45 53 43 52   PSECURITY_DESCR
20f10 49 50 54 4f 52 20 70 53 65 63 75 72 69 74 79 44  IPTOR pSecurityD
20f20 65 73 63 72 69 70 74 6f 72 2c 0d 0a 20 20 50 53  escriptor,..  PS
20f30 49 44 20 2a 70 4f 77 6e 65 72 2c 0d 0a 20 20 4c  ID *pOwner,..  L
20f40 50 42 4f 4f 4c 20 6c 70 62 4f 77 6e 65 72 44 65  PBOOL lpbOwnerDe
20f50 66 61 75 6c 74 65 64 29 3b 0d 0a 0d 0a 65 78 74  faulted);....ext
20f60 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
20f70 6f 72 74 20 42 4f 4f 4c 20 53 65 74 53 65 63 75  ort BOOL SetSecu
20f80 72 69 74 79 44 65 73 63 72 69 70 74 6f 72 47 72  rityDescriptorGr
20f90 6f 75 70 28 0d 0a 20 20 50 53 45 43 55 52 49 54  oup(..  PSECURIT
20fa0 59 5f 44 45 53 43 52 49 50 54 4f 52 20 70 53 65  Y_DESCRIPTOR pSe
20fb0 63 75 72 69 74 79 44 65 73 63 72 69 70 74 6f 72  curityDescriptor
20fc0 2c 0d 0a 20 20 50 53 49 44 20 70 47 72 6f 75 70  ,..  PSID pGroup
20fd0 2c 0d 0a 20 20 42 4f 4f 4c 20 62 47 72 6f 75 70  ,..  BOOL bGroup
20fe0 44 65 66 61 75 6c 74 65 64 29 3b 0d 0a 0d 0a 65  Defaulted);....e
20ff0 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
21000 78 70 6f 72 74 20 42 4f 4f 4c 20 47 65 74 53 65  xport BOOL GetSe
21010 63 75 72 69 74 79 44 65 73 63 72 69 70 74 6f 72  curityDescriptor
21020 47 72 6f 75 70 28 0d 0a 20 20 50 53 45 43 55 52  Group(..  PSECUR
21030 49 54 59 5f 44 45 53 43 52 49 50 54 4f 52 20 70  ITY_DESCRIPTOR p
21040 53 65 63 75 72 69 74 79 44 65 73 63 72 69 70 74  SecurityDescript
21050 6f 72 2c 0d 0a 20 20 50 53 49 44 20 2a 70 47 72  or,..  PSID *pGr
21060 6f 75 70 2c 0d 0a 20 20 4c 50 42 4f 4f 4c 20 6c  oup,..  LPBOOL l
21070 70 62 47 72 6f 75 70 44 65 66 61 75 6c 74 65 64  pbGroupDefaulted
21080 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e  );....extern(Win
21090 64 6f 77 73 29 20 65 78 70 6f 72 74 20 44 57 4f  dows) export DWO
210a0 52 44 20 53 65 74 53 65 63 75 72 69 74 79 44 65  RD SetSecurityDe
210b0 73 63 72 69 70 74 6f 72 52 4d 43 6f 6e 74 72 6f  scriptorRMContro
210c0 6c 28 0d 0a 20 20 50 53 45 43 55 52 49 54 59 5f  l(..  PSECURITY_
210d0 44 45 53 43 52 49 50 54 4f 52 20 53 65 63 75 72  DESCRIPTOR Secur
210e0 69 74 79 44 65 73 63 72 69 70 74 6f 72 2c 0d 0a  ityDescriptor,..
210f0 20 20 50 55 43 48 41 52 20 52 4d 43 6f 6e 74 72    PUCHAR RMContr
21100 6f 6c 20 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28  ol );....extern(
21110 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
21120 44 57 4f 52 44 20 47 65 74 53 65 63 75 72 69 74  DWORD GetSecurit
21130 79 44 65 73 63 72 69 70 74 6f 72 52 4d 43 6f 6e  yDescriptorRMCon
21140 74 72 6f 6c 28 0d 0a 20 20 50 53 45 43 55 52 49  trol(..  PSECURI
21150 54 59 5f 44 45 53 43 52 49 50 54 4f 52 20 53 65  TY_DESCRIPTOR Se
21160 63 75 72 69 74 79 44 65 73 63 72 69 70 74 6f 72  curityDescriptor
21170 2c 0d 0a 20 20 50 55 43 48 41 52 20 52 4d 43 6f  ,..  PUCHAR RMCo
21180 6e 74 72 6f 6c 29 3b 0d 0a 0d 0a 65 78 74 65 72  ntrol);....exter
21190 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
211a0 74 20 42 4f 4f 4c 20 43 72 65 61 74 65 50 72 69  t BOOL CreatePri
211b0 76 61 74 65 4f 62 6a 65 63 74 53 65 63 75 72 69  vateObjectSecuri
211c0 74 79 28 0d 0a 20 20 50 53 45 43 55 52 49 54 59  ty(..  PSECURITY
211d0 5f 44 45 53 43 52 49 50 54 4f 52 20 50 61 72 65  _DESCRIPTOR Pare
211e0 6e 74 44 65 73 63 72 69 70 74 6f 72 2c 0d 0a 20  ntDescriptor,.. 
211f0 20 50 53 45 43 55 52 49 54 59 5f 44 45 53 43 52   PSECURITY_DESCR
21200 49 50 54 4f 52 20 43 72 65 61 74 6f 72 44 65 73  IPTOR CreatorDes
21210 63 72 69 70 74 6f 72 2c 0d 0a 20 20 50 53 45 43  criptor,..  PSEC
21220 55 52 49 54 59 5f 44 45 53 43 52 49 50 54 4f 52  URITY_DESCRIPTOR
21230 20 2a 20 4e 65 77 44 65 73 63 72 69 70 74 6f 72   * NewDescriptor
21240 2c 0d 0a 20 20 42 4f 4f 4c 20 49 73 44 69 72 65  ,..  BOOL IsDire
21250 63 74 6f 72 79 4f 62 6a 65 63 74 2c 0d 0a 20 20  ctoryObject,..  
21260 48 41 4e 44 4c 45 20 54 6f 6b 65 6e 2c 0d 0a 20  HANDLE Token,.. 
21270 20 50 47 45 4e 45 52 49 43 5f 4d 41 50 50 49 4e   PGENERIC_MAPPIN
21280 47 20 47 65 6e 65 72 69 63 4d 61 70 70 69 6e 67  G GenericMapping
21290 29 3b 0d 0a 0d 0a 2f 2f 20 23 69 66 28 5f 57 49  );....// #if(_WI
212a0 4e 33 32 5f 57 49 4e 4e 54 20 3e 3d 20 30 78 30  N32_WINNT >= 0x0
212b0 35 30 30 29 0d 0a 65 78 74 65 72 6e 28 57 69 6e  500)..extern(Win
212c0 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f  dows) export BOO
212d0 4c 20 43 6f 6e 76 65 72 74 54 6f 41 75 74 6f 49  L ConvertToAutoI
212e0 6e 68 65 72 69 74 50 72 69 76 61 74 65 4f 62 6a  nheritPrivateObj
212f0 65 63 74 53 65 63 75 72 69 74 79 28 0d 0a 20 20  ectSecurity(..  
21300 50 53 45 43 55 52 49 54 59 5f 44 45 53 43 52 49  PSECURITY_DESCRI
21310 50 54 4f 52 20 50 61 72 65 6e 74 44 65 73 63 72  PTOR ParentDescr
21320 69 70 74 6f 72 2c 0d 0a 20 20 50 53 45 43 55 52  iptor,..  PSECUR
21330 49 54 59 5f 44 45 53 43 52 49 50 54 4f 52 20 43  ITY_DESCRIPTOR C
21340 75 72 72 65 6e 74 53 65 63 75 72 69 74 79 44 65  urrentSecurityDe
21350 73 63 72 69 70 74 6f 72 2c 0d 0a 20 20 50 53 45  scriptor,..  PSE
21360 43 55 52 49 54 59 5f 44 45 53 43 52 49 50 54 4f  CURITY_DESCRIPTO
21370 52 20 2a 4e 65 77 53 65 63 75 72 69 74 79 44 65  R *NewSecurityDe
21380 73 63 72 69 70 74 6f 72 2c 0d 0a 20 20 47 55 49  scriptor,..  GUI
21390 44 20 2a 4f 62 6a 65 63 74 54 79 70 65 2c 0d 0a  D *ObjectType,..
213a0 20 20 42 4f 4f 4c 45 41 4e 20 49 73 44 69 72 65    BOOLEAN IsDire
213b0 63 74 6f 72 79 4f 62 6a 65 63 74 2c 0d 0a 20 20  ctoryObject,..  
213c0 50 47 45 4e 45 52 49 43 5f 4d 41 50 50 49 4e 47  PGENERIC_MAPPING
213d0 20 47 65 6e 65 72 69 63 4d 61 70 70 69 6e 67 29   GenericMapping)
213e0 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  ;....extern(Wind
213f0 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c  ows) export BOOL
21400 20 43 72 65 61 74 65 50 72 69 76 61 74 65 4f 62   CreatePrivateOb
21410 6a 65 63 74 53 65 63 75 72 69 74 79 45 78 28 0d  jectSecurityEx(.
21420 0a 20 20 50 53 45 43 55 52 49 54 59 5f 44 45 53  .  PSECURITY_DES
21430 43 52 49 50 54 4f 52 20 50 61 72 65 6e 74 44 65  CRIPTOR ParentDe
21440 73 63 72 69 70 74 6f 72 2c 0d 0a 20 20 50 53 45  scriptor,..  PSE
21450 43 55 52 49 54 59 5f 44 45 53 43 52 49 50 54 4f  CURITY_DESCRIPTO
21460 52 20 43 72 65 61 74 6f 72 44 65 73 63 72 69 70  R CreatorDescrip
21470 74 6f 72 2c 0d 0a 20 20 50 53 45 43 55 52 49 54  tor,..  PSECURIT
21480 59 5f 44 45 53 43 52 49 50 54 4f 52 20 2a 20 4e  Y_DESCRIPTOR * N
21490 65 77 44 65 73 63 72 69 70 74 6f 72 2c 0d 0a 20  ewDescriptor,.. 
214a0 20 47 55 49 44 20 2a 4f 62 6a 65 63 74 54 79 70   GUID *ObjectTyp
214b0 65 20 2c 0d 0a 20 20 42 4f 4f 4c 20 49 73 43 6f  e ,..  BOOL IsCo
214c0 6e 74 61 69 6e 65 72 4f 62 6a 65 63 74 2c 0d 0a  ntainerObject,..
214d0 20 20 55 4c 4f 4e 47 20 41 75 74 6f 49 6e 68 65    ULONG AutoInhe
214e0 72 69 74 46 6c 61 67 73 2c 0d 0a 20 20 48 41 4e  ritFlags,..  HAN
214f0 44 4c 45 20 54 6f 6b 65 6e 2c 0d 0a 20 20 50 47  DLE Token,..  PG
21500 45 4e 45 52 49 43 5f 4d 41 50 50 49 4e 47 20 47  ENERIC_MAPPING G
21510 65 6e 65 72 69 63 4d 61 70 70 69 6e 67 29 3b 0d  enericMapping);.
21520 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ...extern(Window
21530 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 43  s) export BOOL C
21540 72 65 61 74 65 50 72 69 76 61 74 65 4f 62 6a 65  reatePrivateObje
21550 63 74 53 65 63 75 72 69 74 79 57 69 74 68 4d 75  ctSecurityWithMu
21560 6c 74 69 70 6c 65 49 6e 68 65 72 69 74 61 6e 63  ltipleInheritanc
21570 65 28 0d 0a 20 20 50 53 45 43 55 52 49 54 59 5f  e(..  PSECURITY_
21580 44 45 53 43 52 49 50 54 4f 52 20 50 61 72 65 6e  DESCRIPTOR Paren
21590 74 44 65 73 63 72 69 70 74 6f 72 2c 0d 0a 20 20  tDescriptor,..  
215a0 50 53 45 43 55 52 49 54 59 5f 44 45 53 43 52 49  PSECURITY_DESCRI
215b0 50 54 4f 52 20 43 72 65 61 74 6f 72 44 65 73 63  PTOR CreatorDesc
215c0 72 69 70 74 6f 72 2c 0d 0a 20 20 50 53 45 43 55  riptor,..  PSECU
215d0 52 49 54 59 5f 44 45 53 43 52 49 50 54 4f 52 20  RITY_DESCRIPTOR 
215e0 2a 20 4e 65 77 44 65 73 63 72 69 70 74 6f 72 2c  * NewDescriptor,
215f0 0d 0a 20 20 47 55 49 44 20 2a 2a 4f 62 6a 65 63  ..  GUID **Objec
21600 74 54 79 70 65 73 20 2c 0d 0a 20 20 55 4c 4f 4e  tTypes ,..  ULON
21610 47 20 47 75 69 64 43 6f 75 6e 74 2c 0d 0a 20 20  G GuidCount,..  
21620 42 4f 4f 4c 20 49 73 43 6f 6e 74 61 69 6e 65 72  BOOL IsContainer
21630 4f 62 6a 65 63 74 2c 0d 0a 20 20 55 4c 4f 4e 47  Object,..  ULONG
21640 20 41 75 74 6f 49 6e 68 65 72 69 74 46 6c 61 67   AutoInheritFlag
21650 73 2c 0d 0a 20 20 48 41 4e 44 4c 45 20 54 6f 6b  s,..  HANDLE Tok
21660 65 6e 2c 0d 0a 20 20 50 47 45 4e 45 52 49 43 5f  en,..  PGENERIC_
21670 4d 41 50 50 49 4e 47 20 47 65 6e 65 72 69 63 4d  MAPPING GenericM
21680 61 70 70 69 6e 67 29 3b 0d 0a 2f 2f 20 23 65 6e  apping);..// #en
21690 64 69 66 20 2f 2a 20 5f 57 49 4e 33 32 5f 57 49  dif /* _WIN32_WI
216a0 4e 4e 54 20 3e 3d 20 20 30 78 30 35 30 30 20 2a  NNT >=  0x0500 *
216b0 2f 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  /....extern(Wind
216c0 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c  ows) export BOOL
216d0 20 53 65 74 50 72 69 76 61 74 65 4f 62 6a 65 63   SetPrivateObjec
216e0 74 53 65 63 75 72 69 74 79 28 0d 0a 20 20 53 45  tSecurity(..  SE
216f0 43 55 52 49 54 59 5f 49 4e 46 4f 52 4d 41 54 49  CURITY_INFORMATI
21700 4f 4e 20 53 65 63 75 72 69 74 79 49 6e 66 6f 72  ON SecurityInfor
21710 6d 61 74 69 6f 6e 2c 0d 0a 20 20 50 53 45 43 55  mation,..  PSECU
21720 52 49 54 59 5f 44 45 53 43 52 49 50 54 4f 52 20  RITY_DESCRIPTOR 
21730 4d 6f 64 69 66 69 63 61 74 69 6f 6e 44 65 73 63  ModificationDesc
21740 72 69 70 74 6f 72 2c 0d 0a 20 20 50 53 45 43 55  riptor,..  PSECU
21750 52 49 54 59 5f 44 45 53 43 52 49 50 54 4f 52 20  RITY_DESCRIPTOR 
21760 2a 4f 62 6a 65 63 74 73 53 65 63 75 72 69 74 79  *ObjectsSecurity
21770 44 65 73 63 72 69 70 74 6f 72 2c 0d 0a 20 20 50  Descriptor,..  P
21780 47 45 4e 45 52 49 43 5f 4d 41 50 50 49 4e 47 20  GENERIC_MAPPING 
21790 47 65 6e 65 72 69 63 4d 61 70 70 69 6e 67 2c 0d  GenericMapping,.
217a0 0a 20 20 48 41 4e 44 4c 45 20 54 6f 6b 65 6e 29  .  HANDLE Token)
217b0 3b 0d 0a 0d 0a 2f 2f 20 23 69 66 28 5f 57 49 4e  ;....// #if(_WIN
217c0 33 32 5f 57 49 4e 4e 54 20 3e 3d 20 30 78 30 35  32_WINNT >= 0x05
217d0 30 30 29 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  00)..extern(Wind
217e0 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c  ows) export BOOL
217f0 20 53 65 74 50 72 69 76 61 74 65 4f 62 6a 65 63   SetPrivateObjec
21800 74 53 65 63 75 72 69 74 79 45 78 28 0d 0a 20 20  tSecurityEx(..  
21810 53 45 43 55 52 49 54 59 5f 49 4e 46 4f 52 4d 41  SECURITY_INFORMA
21820 54 49 4f 4e 20 53 65 63 75 72 69 74 79 49 6e 66  TION SecurityInf
21830 6f 72 6d 61 74 69 6f 6e 2c 0d 0a 20 20 50 53 45  ormation,..  PSE
21840 43 55 52 49 54 59 5f 44 45 53 43 52 49 50 54 4f  CURITY_DESCRIPTO
21850 52 20 4d 6f 64 69 66 69 63 61 74 69 6f 6e 44 65  R ModificationDe
21860 73 63 72 69 70 74 6f 72 2c 0d 0a 20 20 50 53 45  scriptor,..  PSE
21870 43 55 52 49 54 59 5f 44 45 53 43 52 49 50 54 4f  CURITY_DESCRIPTO
21880 52 20 2a 4f 62 6a 65 63 74 73 53 65 63 75 72 69  R *ObjectsSecuri
21890 74 79 44 65 73 63 72 69 70 74 6f 72 2c 0d 0a 20  tyDescriptor,.. 
218a0 20 55 4c 4f 4e 47 20 41 75 74 6f 49 6e 68 65 72   ULONG AutoInher
218b0 69 74 46 6c 61 67 73 2c 0d 0a 20 20 50 47 45 4e  itFlags,..  PGEN
218c0 45 52 49 43 5f 4d 41 50 50 49 4e 47 20 47 65 6e  ERIC_MAPPING Gen
218d0 65 72 69 63 4d 61 70 70 69 6e 67 2c 0d 0a 20 20  ericMapping,..  
218e0 48 41 4e 44 4c 45 20 54 6f 6b 65 6e 20 29 3b 0d  HANDLE Token );.
218f0 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2a 20 5f 57  .// #endif /* _W
21900 49 4e 33 32 5f 57 49 4e 4e 54 20 3e 3d 20 20 30  IN32_WINNT >=  0
21910 78 30 35 30 30 20 2a 2f 0d 0a 0d 0a 65 78 74 65  x0500 */....exte
21920 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
21930 72 74 20 42 4f 4f 4c 20 47 65 74 50 72 69 76 61  rt BOOL GetPriva
21940 74 65 4f 62 6a 65 63 74 53 65 63 75 72 69 74 79  teObjectSecurity
21950 28 0d 0a 20 20 50 53 45 43 55 52 49 54 59 5f 44  (..  PSECURITY_D
21960 45 53 43 52 49 50 54 4f 52 20 4f 62 6a 65 63 74  ESCRIPTOR Object
21970 44 65 73 63 72 69 70 74 6f 72 2c 0d 0a 20 20 53  Descriptor,..  S
21980 45 43 55 52 49 54 59 5f 49 4e 46 4f 52 4d 41 54  ECURITY_INFORMAT
21990 49 4f 4e 20 53 65 63 75 72 69 74 79 49 6e 66 6f  ION SecurityInfo
219a0 72 6d 61 74 69 6f 6e 2c 0d 0a 20 20 50 53 45 43  rmation,..  PSEC
219b0 55 52 49 54 59 5f 44 45 53 43 52 49 50 54 4f 52  URITY_DESCRIPTOR
219c0 20 52 65 73 75 6c 74 61 6e 74 44 65 73 63 72 69   ResultantDescri
219d0 70 74 6f 72 2c 0d 0a 20 20 44 57 4f 52 44 20 44  ptor,..  DWORD D
219e0 65 73 63 72 69 70 74 6f 72 4c 65 6e 67 74 68 2c  escriptorLength,
219f0 0d 0a 20 20 50 44 57 4f 52 44 20 52 65 74 75 72  ..  PDWORD Retur
21a00 6e 4c 65 6e 67 74 68 29 3b 0d 0a 0d 0a 65 78 74  nLength);....ext
21a10 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
21a20 6f 72 74 20 42 4f 4f 4c 20 44 65 73 74 72 6f 79  ort BOOL Destroy
21a30 50 72 69 76 61 74 65 4f 62 6a 65 63 74 53 65 63  PrivateObjectSec
21a40 75 72 69 74 79 28 0d 0a 20 20 50 53 45 43 55 52  urity(..  PSECUR
21a50 49 54 59 5f 44 45 53 43 52 49 50 54 4f 52 20 2a  ITY_DESCRIPTOR *
21a60 20 4f 62 6a 65 63 74 44 65 73 63 72 69 70 74 6f   ObjectDescripto
21a70 72 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69  r);....extern(Wi
21a80 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f  ndows) export BO
21a90 4f 4c 20 4d 61 6b 65 53 65 6c 66 52 65 6c 61 74  OL MakeSelfRelat
21aa0 69 76 65 53 44 28 0d 0a 20 20 50 53 45 43 55 52  iveSD(..  PSECUR
21ab0 49 54 59 5f 44 45 53 43 52 49 50 54 4f 52 20 70  ITY_DESCRIPTOR p
21ac0 41 62 73 6f 6c 75 74 65 53 65 63 75 72 69 74 79  AbsoluteSecurity
21ad0 44 65 73 63 72 69 70 74 6f 72 2c 0d 0a 20 20 50  Descriptor,..  P
21ae0 53 45 43 55 52 49 54 59 5f 44 45 53 43 52 49 50  SECURITY_DESCRIP
21af0 54 4f 52 20 70 53 65 6c 66 52 65 6c 61 74 69 76  TOR pSelfRelativ
21b00 65 53 65 63 75 72 69 74 79 44 65 73 63 72 69 70  eSecurityDescrip
21b10 74 6f 72 2c 0d 0a 20 20 4c 50 44 57 4f 52 44 20  tor,..  LPDWORD 
21b20 6c 70 64 77 42 75 66 66 65 72 4c 65 6e 67 74 68  lpdwBufferLength
21b30 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e  );....extern(Win
21b40 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f  dows) export BOO
21b50 4c 20 4d 61 6b 65 41 62 73 6f 6c 75 74 65 53 44  L MakeAbsoluteSD
21b60 28 0d 0a 20 20 50 53 45 43 55 52 49 54 59 5f 44  (..  PSECURITY_D
21b70 45 53 43 52 49 50 54 4f 52 20 70 53 65 6c 66 52  ESCRIPTOR pSelfR
21b80 65 6c 61 74 69 76 65 53 65 63 75 72 69 74 79 44  elativeSecurityD
21b90 65 73 63 72 69 70 74 6f 72 2c 0d 0a 20 20 50 53  escriptor,..  PS
21ba0 45 43 55 52 49 54 59 5f 44 45 53 43 52 49 50 54  ECURITY_DESCRIPT
21bb0 4f 52 20 70 41 62 73 6f 6c 75 74 65 53 65 63 75  OR pAbsoluteSecu
21bc0 72 69 74 79 44 65 73 63 72 69 70 74 6f 72 2c 0d  rityDescriptor,.
21bd0 0a 20 20 4c 50 44 57 4f 52 44 20 6c 70 64 77 41  .  LPDWORD lpdwA
21be0 62 73 6f 6c 75 74 65 53 65 63 75 72 69 74 79 44  bsoluteSecurityD
21bf0 65 73 63 72 69 70 74 6f 72 53 69 7a 65 2c 0d 0a  escriptorSize,..
21c00 20 20 50 41 43 4c 20 70 44 61 63 6c 2c 0d 0a 20    PACL pDacl,.. 
21c10 20 4c 50 44 57 4f 52 44 20 6c 70 64 77 44 61 63   LPDWORD lpdwDac
21c20 6c 53 69 7a 65 2c 0d 0a 20 20 50 41 43 4c 20 70  lSize,..  PACL p
21c30 53 61 63 6c 2c 0d 0a 20 20 4c 50 44 57 4f 52 44  Sacl,..  LPDWORD
21c40 20 6c 70 64 77 53 61 63 6c 53 69 7a 65 2c 0d 0a   lpdwSaclSize,..
21c50 20 20 50 53 49 44 20 70 4f 77 6e 65 72 2c 0d 0a    PSID pOwner,..
21c60 20 20 4c 50 44 57 4f 52 44 20 6c 70 64 77 4f 77    LPDWORD lpdwOw
21c70 6e 65 72 53 69 7a 65 2c 0d 0a 20 20 50 53 49 44  nerSize,..  PSID
21c80 20 70 50 72 69 6d 61 72 79 47 72 6f 75 70 2c 0d   pPrimaryGroup,.
21c90 0a 20 20 4c 50 44 57 4f 52 44 20 6c 70 64 77 50  .  LPDWORD lpdwP
21ca0 72 69 6d 61 72 79 47 72 6f 75 70 53 69 7a 65 29  rimaryGroupSize)
21cb0 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  ;....extern(Wind
21cc0 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c  ows) export BOOL
21cd0 20 4d 61 6b 65 41 62 73 6f 6c 75 74 65 53 44 32   MakeAbsoluteSD2
21ce0 28 0d 0a 20 20 50 53 45 43 55 52 49 54 59 5f 44  (..  PSECURITY_D
21cf0 45 53 43 52 49 50 54 4f 52 20 70 53 65 6c 66 52  ESCRIPTOR pSelfR
21d00 65 6c 61 74 69 76 65 53 65 63 75 72 69 74 79 44  elativeSecurityD
21d10 65 73 63 72 69 70 74 6f 72 2c 0d 0a 20 20 4c 50  escriptor,..  LP
21d20 44 57 4f 52 44 20 6c 70 64 77 42 75 66 66 65 72  DWORD lpdwBuffer
21d30 53 69 7a 65 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e  Size);....extern
21d40 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
21d50 20 42 4f 4f 4c 20 53 65 74 46 69 6c 65 53 65 63   BOOL SetFileSec
21d60 75 72 69 74 79 41 28 0d 0a 20 20 4c 50 43 53 54  urityA(..  LPCST
21d70 52 20 6c 70 46 69 6c 65 4e 61 6d 65 2c 0d 0a 20  R lpFileName,.. 
21d80 20 53 45 43 55 52 49 54 59 5f 49 4e 46 4f 52 4d   SECURITY_INFORM
21d90 41 54 49 4f 4e 20 53 65 63 75 72 69 74 79 49 6e  ATION SecurityIn
21da0 66 6f 72 6d 61 74 69 6f 6e 2c 0d 0a 20 20 50 53  formation,..  PS
21db0 45 43 55 52 49 54 59 5f 44 45 53 43 52 49 50 54  ECURITY_DESCRIPT
21dc0 4f 52 20 70 53 65 63 75 72 69 74 79 44 65 73 63  OR pSecurityDesc
21dd0 72 69 70 74 6f 72 29 3b 0d 0a 65 78 74 65 72 6e  riptor);..extern
21de0 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
21df0 20 42 4f 4f 4c 20 53 65 74 46 69 6c 65 53 65 63   BOOL SetFileSec
21e00 75 72 69 74 79 57 28 0d 0a 20 20 4c 50 43 57 53  urityW(..  LPCWS
21e10 54 52 20 6c 70 46 69 6c 65 4e 61 6d 65 2c 0d 0a  TR lpFileName,..
21e20 20 20 53 45 43 55 52 49 54 59 5f 49 4e 46 4f 52    SECURITY_INFOR
21e30 4d 41 54 49 4f 4e 20 53 65 63 75 72 69 74 79 49  MATION SecurityI
21e40 6e 66 6f 72 6d 61 74 69 6f 6e 2c 0d 0a 20 20 50  nformation,..  P
21e50 53 45 43 55 52 49 54 59 5f 44 45 53 43 52 49 50  SECURITY_DESCRIP
21e60 54 4f 52 20 70 53 65 63 75 72 69 74 79 44 65 73  TOR pSecurityDes
21e70 63 72 69 70 74 6f 72 29 3b 0d 0a 2f 2f 20 23 69  criptor);..// #i
21e80 66 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61 6c  fdef UNICODE..al
21e90 69 61 73 20 53 65 74 46 69 6c 65 53 65 63 75 72  ias SetFileSecur
21ea0 69 74 79 57 20 53 65 74 46 69 6c 65 53 65 63 75  ityW SetFileSecu
21eb0 72 69 74 79 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d  rity;..// #else.
21ec0 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e  .// #.....// #en
21ed0 64 69 66 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d  dif // !UNICODE.
21ee0 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ...extern(Window
21ef0 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 47  s) export BOOL G
21f00 65 74 46 69 6c 65 53 65 63 75 72 69 74 79 41 28  etFileSecurityA(
21f10 0d 0a 20 20 4c 50 43 53 54 52 20 6c 70 46 69 6c  ..  LPCSTR lpFil
21f20 65 4e 61 6d 65 2c 0d 0a 20 20 53 45 43 55 52 49  eName,..  SECURI
21f30 54 59 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 20 52  TY_INFORMATION R
21f40 65 71 75 65 73 74 65 64 49 6e 66 6f 72 6d 61 74  equestedInformat
21f50 69 6f 6e 2c 0d 0a 20 20 50 53 45 43 55 52 49 54  ion,..  PSECURIT
21f60 59 5f 44 45 53 43 52 49 50 54 4f 52 20 70 53 65  Y_DESCRIPTOR pSe
21f70 63 75 72 69 74 79 44 65 73 63 72 69 70 74 6f 72  curityDescriptor
21f80 2c 0d 0a 20 20 44 57 4f 52 44 20 6e 4c 65 6e 67  ,..  DWORD nLeng
21f90 74 68 2c 0d 0a 20 20 4c 50 44 57 4f 52 44 20 6c  th,..  LPDWORD l
21fa0 70 6e 4c 65 6e 67 74 68 4e 65 65 64 65 64 29 3b  pnLengthNeeded);
21fb0 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
21fc0 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 47 65  ) export BOOL Ge
21fd0 74 46 69 6c 65 53 65 63 75 72 69 74 79 57 28 0d  tFileSecurityW(.
21fe0 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 46 69 6c  .  LPCWSTR lpFil
21ff0 65 4e 61 6d 65 2c 0d 0a 20 20 53 45 43 55 52 49  eName,..  SECURI
22000 54 59 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 20 52  TY_INFORMATION R
22010 65 71 75 65 73 74 65 64 49 6e 66 6f 72 6d 61 74  equestedInformat
22020 69 6f 6e 2c 0d 0a 20 20 50 53 45 43 55 52 49 54  ion,..  PSECURIT
22030 59 5f 44 45 53 43 52 49 50 54 4f 52 20 70 53 65  Y_DESCRIPTOR pSe
22040 63 75 72 69 74 79 44 65 73 63 72 69 70 74 6f 72  curityDescriptor
22050 2c 0d 0a 20 20 44 57 4f 52 44 20 6e 4c 65 6e 67  ,..  DWORD nLeng
22060 74 68 2c 0d 0a 20 20 4c 50 44 57 4f 52 44 20 6c  th,..  LPDWORD l
22070 70 6e 4c 65 6e 67 74 68 4e 65 65 64 65 64 29 3b  pnLengthNeeded);
22080 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e 49 43  ..// #ifdef UNIC
22090 4f 44 45 0d 0a 61 6c 69 61 73 20 47 65 74 46 69  ODE..alias GetFi
220a0 6c 65 53 65 63 75 72 69 74 79 57 20 47 65 74 46  leSecurityW GetF
220b0 69 6c 65 53 65 63 75 72 69 74 79 3b 0d 0a 2f 2f  ileSecurity;..//
220c0 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d   #else..// #....
220d0 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55  .// #endif // !U
220e0 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72 6e  NICODE....extern
220f0 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
22100 20 42 4f 4f 4c 20 53 65 74 4b 65 72 6e 65 6c 4f   BOOL SetKernelO
22110 62 6a 65 63 74 53 65 63 75 72 69 74 79 28 0d 0a  bjectSecurity(..
22120 20 20 48 41 4e 44 4c 45 20 48 61 6e 64 6c 65 2c    HANDLE Handle,
22130 0d 0a 20 20 53 45 43 55 52 49 54 59 5f 49 4e 46  ..  SECURITY_INF
22140 4f 52 4d 41 54 49 4f 4e 20 53 65 63 75 72 69 74  ORMATION Securit
22150 79 49 6e 66 6f 72 6d 61 74 69 6f 6e 2c 0d 0a 20  yInformation,.. 
22160 20 50 53 45 43 55 52 49 54 59 5f 44 45 53 43 52   PSECURITY_DESCR
22170 49 50 54 4f 52 20 53 65 63 75 72 69 74 79 44 65  IPTOR SecurityDe
22180 73 63 72 69 70 74 6f 72 29 3b 0d 0a 0d 0a 65 78  scriptor);....ex
22190 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
221a0 70 6f 72 74 20 48 41 4e 44 4c 45 20 46 69 6e 64  port HANDLE Find
221b0 46 69 72 73 74 43 68 61 6e 67 65 4e 6f 74 69 66  FirstChangeNotif
221c0 69 63 61 74 69 6f 6e 41 28 0d 0a 20 20 4c 50 43  icationA(..  LPC
221d0 53 54 52 20 6c 70 50 61 74 68 4e 61 6d 65 2c 0d  STR lpPathName,.
221e0 0a 20 20 42 4f 4f 4c 20 62 57 61 74 63 68 53 75  .  BOOL bWatchSu
221f0 62 74 72 65 65 2c 0d 0a 20 20 44 57 4f 52 44 20  btree,..  DWORD 
22200 64 77 4e 6f 74 69 66 79 46 69 6c 74 65 72 29 3b  dwNotifyFilter);
22210 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
22220 29 20 65 78 70 6f 72 74 20 48 41 4e 44 4c 45 20  ) export HANDLE 
22230 46 69 6e 64 46 69 72 73 74 43 68 61 6e 67 65 4e  FindFirstChangeN
22240 6f 74 69 66 69 63 61 74 69 6f 6e 57 28 0d 0a 20  otificationW(.. 
22250 20 4c 50 43 57 53 54 52 20 6c 70 50 61 74 68 4e   LPCWSTR lpPathN
22260 61 6d 65 2c 0d 0a 20 20 42 4f 4f 4c 20 62 57 61  ame,..  BOOL bWa
22270 74 63 68 53 75 62 74 72 65 65 2c 0d 0a 20 20 44  tchSubtree,..  D
22280 57 4f 52 44 20 64 77 4e 6f 74 69 66 79 46 69 6c  WORD dwNotifyFil
22290 74 65 72 29 3b 0d 0a 2f 2f 20 23 69 66 64 65 66  ter);..// #ifdef
222a0 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69 61 73 20   UNICODE..alias 
222b0 46 69 6e 64 46 69 72 73 74 43 68 61 6e 67 65 4e  FindFirstChangeN
222c0 6f 74 69 66 69 63 61 74 69 6f 6e 57 20 46 69 6e  otificationW Fin
222d0 64 46 69 72 73 74 43 68 61 6e 67 65 4e 6f 74 69  dFirstChangeNoti
222e0 66 69 63 61 74 69 6f 6e 3b 0d 0a 2f 2f 20 23 65  fication;..// #e
222f0 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f  lse..// #.....//
22300 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e 49 43   #endif // !UNIC
22310 4f 44 45 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69  ODE....extern(Wi
22320 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f  ndows) export BO
22330 4f 4c 20 46 69 6e 64 4e 65 78 74 43 68 61 6e 67  OL FindNextChang
22340 65 4e 6f 74 69 66 69 63 61 74 69 6f 6e 28 0d 0a  eNotification(..
22350 20 20 48 41 4e 44 4c 45 20 68 43 68 61 6e 67 65    HANDLE hChange
22360 48 61 6e 64 6c 65 29 3b 0d 0a 0d 0a 65 78 74 65  Handle);....exte
22370 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
22380 72 74 20 42 4f 4f 4c 20 46 69 6e 64 43 6c 6f 73  rt BOOL FindClos
22390 65 43 68 61 6e 67 65 4e 6f 74 69 66 69 63 61 74  eChangeNotificat
223a0 69 6f 6e 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68  ion(..  HANDLE h
223b0 43 68 61 6e 67 65 48 61 6e 64 6c 65 29 3b 0d 0a  ChangeHandle);..
223c0 0d 0a 2f 2f 20 23 69 66 28 5f 57 49 4e 33 32 5f  ..// #if(_WIN32_
223d0 57 49 4e 4e 54 20 3e 3d 20 30 78 30 34 30 30 29  WINNT >= 0x0400)
223e0 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
223f0 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 52 65  ) export BOOL Re
22400 61 64 44 69 72 65 63 74 6f 72 79 43 68 61 6e 67  adDirectoryChang
22410 65 73 57 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68  esW(..  HANDLE h
22420 44 69 72 65 63 74 6f 72 79 2c 0d 0a 20 20 4c 50  Directory,..  LP
22430 56 4f 49 44 20 6c 70 42 75 66 66 65 72 2c 0d 0a  VOID lpBuffer,..
22440 20 20 44 57 4f 52 44 20 6e 42 75 66 66 65 72 4c    DWORD nBufferL
22450 65 6e 67 74 68 2c 0d 0a 20 20 42 4f 4f 4c 20 62  ength,..  BOOL b
22460 57 61 74 63 68 53 75 62 74 72 65 65 2c 0d 0a 20  WatchSubtree,.. 
22470 20 44 57 4f 52 44 20 64 77 4e 6f 74 69 66 79 46   DWORD dwNotifyF
22480 69 6c 74 65 72 2c 0d 0a 20 20 4c 50 44 57 4f 52  ilter,..  LPDWOR
22490 44 20 6c 70 42 79 74 65 73 52 65 74 75 72 6e 65  D lpBytesReturne
224a0 64 2c 0d 0a 20 20 4c 50 4f 56 45 52 4c 41 50 50  d,..  LPOVERLAPP
224b0 45 44 20 6c 70 4f 76 65 72 6c 61 70 70 65 64 2c  ED lpOverlapped,
224c0 0d 0a 20 20 4c 50 4f 56 45 52 4c 41 50 50 45 44  ..  LPOVERLAPPED
224d0 5f 43 4f 4d 50 4c 45 54 49 4f 4e 5f 52 4f 55 54  _COMPLETION_ROUT
224e0 49 4e 45 20 6c 70 43 6f 6d 70 6c 65 74 69 6f 6e  INE lpCompletion
224f0 52 6f 75 74 69 6e 65 29 3b 0d 0a 2f 2f 20 23 65  Routine);..// #e
22500 6e 64 69 66 20 2f 2a 20 5f 57 49 4e 33 32 5f 57  ndif /* _WIN32_W
22510 49 4e 4e 54 20 3e 3d 20 30 78 30 34 30 30 20 2a  INNT >= 0x0400 *
22520 2f 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  /....extern(Wind
22530 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c  ows) export BOOL
22540 20 56 69 72 74 75 61 6c 4c 6f 63 6b 28 0d 0a 20   VirtualLock(.. 
22550 20 4c 50 56 4f 49 44 20 6c 70 41 64 64 72 65 73   LPVOID lpAddres
22560 73 2c 0d 0a 20 20 53 49 5a 45 5f 54 20 64 77 53  s,..  SIZE_T dwS
22570 69 7a 65 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28  ize);....extern(
22580 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
22590 42 4f 4f 4c 20 56 69 72 74 75 61 6c 55 6e 6c 6f  BOOL VirtualUnlo
225a0 63 6b 28 0d 0a 20 20 4c 50 56 4f 49 44 20 6c 70  ck(..  LPVOID lp
225b0 41 64 64 72 65 73 73 2c 0d 0a 20 20 53 49 5a 45  Address,..  SIZE
225c0 5f 54 20 64 77 53 69 7a 65 29 3b 0d 0a 0d 0a 65  _T dwSize);....e
225d0 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
225e0 78 70 6f 72 74 20 4c 50 56 4f 49 44 20 4d 61 70  xport LPVOID Map
225f0 56 69 65 77 4f 66 46 69 6c 65 45 78 28 0d 0a 20  ViewOfFileEx(.. 
22600 20 48 41 4e 44 4c 45 20 68 46 69 6c 65 4d 61 70   HANDLE hFileMap
22610 70 69 6e 67 4f 62 6a 65 63 74 2c 0d 0a 20 20 44  pingObject,..  D
22620 57 4f 52 44 20 64 77 44 65 73 69 72 65 64 41 63  WORD dwDesiredAc
22630 63 65 73 73 2c 0d 0a 20 20 44 57 4f 52 44 20 64  cess,..  DWORD d
22640 77 46 69 6c 65 4f 66 66 73 65 74 48 69 67 68 2c  wFileOffsetHigh,
22650 0d 0a 20 20 44 57 4f 52 44 20 64 77 46 69 6c 65  ..  DWORD dwFile
22660 4f 66 66 73 65 74 4c 6f 77 2c 0d 0a 20 20 53 49  OffsetLow,..  SI
22670 5a 45 5f 54 20 64 77 4e 75 6d 62 65 72 4f 66 42  ZE_T dwNumberOfB
22680 79 74 65 73 54 6f 4d 61 70 2c 0d 0a 20 20 4c 50  ytesToMap,..  LP
22690 56 4f 49 44 20 6c 70 42 61 73 65 41 64 64 72 65  VOID lpBaseAddre
226a0 73 73 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57  ss);....extern(W
226b0 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42  indows) export B
226c0 4f 4f 4c 20 53 65 74 50 72 69 6f 72 69 74 79 43  OOL SetPriorityC
226d0 6c 61 73 73 28 0d 0a 20 20 48 41 4e 44 4c 45 20  lass(..  HANDLE 
226e0 68 50 72 6f 63 65 73 73 2c 0d 0a 20 20 44 57 4f  hProcess,..  DWO
226f0 52 44 20 64 77 50 72 69 6f 72 69 74 79 43 6c 61  RD dwPriorityCla
22700 73 73 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57  ss);....extern(W
22710 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 44  indows) export D
22720 57 4f 52 44 20 47 65 74 50 72 69 6f 72 69 74 79  WORD GetPriority
22730 43 6c 61 73 73 28 0d 0a 20 20 48 41 4e 44 4c 45  Class(..  HANDLE
22740 20 68 50 72 6f 63 65 73 73 29 3b 0d 0a 0d 0a 65   hProcess);....e
22750 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
22760 78 70 6f 72 74 20 42 4f 4f 4c 20 49 73 42 61 64  xport BOOL IsBad
22770 52 65 61 64 50 74 72 28 0d 0a 20 20 56 4f 49 44  ReadPtr(..  VOID
22780 20 2a 6c 70 2c 0d 0a 20 20 55 49 4e 54 5f 50 54   *lp,..  UINT_PT
22790 52 20 75 63 62 29 3b 0d 0a 0d 0a 65 78 74 65 72  R ucb);....exter
227a0 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
227b0 74 20 42 4f 4f 4c 20 49 73 42 61 64 57 72 69 74  t BOOL IsBadWrit
227c0 65 50 74 72 28 0d 0a 20 20 4c 50 56 4f 49 44 20  ePtr(..  LPVOID 
227d0 6c 70 2c 0d 0a 20 20 55 49 4e 54 5f 50 54 52 20  lp,..  UINT_PTR 
227e0 75 63 62 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28  ucb);....extern(
227f0 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
22800 42 4f 4f 4c 20 49 73 42 61 64 48 75 67 65 52 65  BOOL IsBadHugeRe
22810 61 64 50 74 72 28 0d 0a 20 20 56 4f 49 44 20 2a  adPtr(..  VOID *
22820 6c 70 2c 0d 0a 20 20 55 49 4e 54 5f 50 54 52 20  lp,..  UINT_PTR 
22830 75 63 62 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28  ucb);....extern(
22840 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
22850 42 4f 4f 4c 20 49 73 42 61 64 48 75 67 65 57 72  BOOL IsBadHugeWr
22860 69 74 65 50 74 72 28 0d 0a 20 20 4c 50 56 4f 49  itePtr(..  LPVOI
22870 44 20 6c 70 2c 0d 0a 20 20 55 49 4e 54 5f 50 54  D lp,..  UINT_PT
22880 52 20 75 63 62 29 3b 0d 0a 0d 0a 65 78 74 65 72  R ucb);....exter
22890 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
228a0 74 20 42 4f 4f 4c 20 49 73 42 61 64 43 6f 64 65  t BOOL IsBadCode
228b0 50 74 72 28 0d 0a 20 20 46 41 52 50 52 4f 43 20  Ptr(..  FARPROC 
228c0 6c 70 66 6e 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e  lpfn);....extern
228d0 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
228e0 20 42 4f 4f 4c 20 49 73 42 61 64 53 74 72 69 6e   BOOL IsBadStrin
228f0 67 50 74 72 41 28 0d 0a 20 20 4c 50 43 53 54 52  gPtrA(..  LPCSTR
22900 20 6c 70 73 7a 2c 0d 0a 20 20 55 49 4e 54 5f 50   lpsz,..  UINT_P
22910 54 52 20 75 63 63 68 4d 61 78 29 3b 0d 0a 65 78  TR ucchMax);..ex
22920 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
22930 70 6f 72 74 20 42 4f 4f 4c 20 49 73 42 61 64 53  port BOOL IsBadS
22940 74 72 69 6e 67 50 74 72 57 28 0d 0a 20 20 4c 50  tringPtrW(..  LP
22950 43 57 53 54 52 20 6c 70 73 7a 2c 0d 0a 20 20 55  CWSTR lpsz,..  U
22960 49 4e 54 5f 50 54 52 20 75 63 63 68 4d 61 78 29  INT_PTR ucchMax)
22970 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e 49  ;..// #ifdef UNI
22980 43 4f 44 45 0d 0a 61 6c 69 61 73 20 49 73 42 61  CODE..alias IsBa
22990 64 53 74 72 69 6e 67 50 74 72 57 20 49 73 42 61  dStringPtrW IsBa
229a0 64 53 74 72 69 6e 67 50 74 72 3b 0d 0a 2f 2f 20  dStringPtr;..// 
229b0 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a  #else..// #.....
229c0 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e  // #endif // !UN
229d0 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72 6e 28  ICODE....extern(
229e0 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
229f0 42 4f 4f 4c 20 4c 6f 6f 6b 75 70 41 63 63 6f 75  BOOL LookupAccou
22a00 6e 74 53 69 64 41 28 0d 0a 20 20 4c 50 43 53 54  ntSidA(..  LPCST
22a10 52 20 6c 70 53 79 73 74 65 6d 4e 61 6d 65 2c 0d  R lpSystemName,.
22a20 0a 20 20 50 53 49 44 20 53 69 64 2c 0d 0a 20 20  .  PSID Sid,..  
22a30 4c 50 53 54 52 20 4e 61 6d 65 2c 0d 0a 20 20 4c  LPSTR Name,..  L
22a40 50 44 57 4f 52 44 20 63 62 4e 61 6d 65 2c 0d 0a  PDWORD cbName,..
22a50 20 20 4c 50 53 54 52 20 52 65 66 65 72 65 6e 63    LPSTR Referenc
22a60 65 64 44 6f 6d 61 69 6e 4e 61 6d 65 2c 0d 0a 20  edDomainName,.. 
22a70 20 4c 50 44 57 4f 52 44 20 63 62 52 65 66 65 72   LPDWORD cbRefer
22a80 65 6e 63 65 64 44 6f 6d 61 69 6e 4e 61 6d 65 2c  encedDomainName,
22a90 0d 0a 20 20 50 53 49 44 5f 4e 41 4d 45 5f 55 53  ..  PSID_NAME_US
22aa0 45 20 70 65 55 73 65 29 3b 0d 0a 65 78 74 65 72  E peUse);..exter
22ab0 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
22ac0 74 20 42 4f 4f 4c 20 4c 6f 6f 6b 75 70 41 63 63  t BOOL LookupAcc
22ad0 6f 75 6e 74 53 69 64 57 28 0d 0a 20 20 4c 50 43  ountSidW(..  LPC
22ae0 57 53 54 52 20 6c 70 53 79 73 74 65 6d 4e 61 6d  WSTR lpSystemNam
22af0 65 2c 0d 0a 20 20 50 53 49 44 20 53 69 64 2c 0d  e,..  PSID Sid,.
22b00 0a 20 20 4c 50 57 53 54 52 20 4e 61 6d 65 2c 0d  .  LPWSTR Name,.
22b10 0a 20 20 4c 50 44 57 4f 52 44 20 63 62 4e 61 6d  .  LPDWORD cbNam
22b20 65 2c 0d 0a 20 20 4c 50 57 53 54 52 20 52 65 66  e,..  LPWSTR Ref
22b30 65 72 65 6e 63 65 64 44 6f 6d 61 69 6e 4e 61 6d  erencedDomainNam
22b40 65 2c 0d 0a 20 20 4c 50 44 57 4f 52 44 20 63 62  e,..  LPDWORD cb
22b50 52 65 66 65 72 65 6e 63 65 64 44 6f 6d 61 69 6e  ReferencedDomain
22b60 4e 61 6d 65 2c 0d 0a 20 20 50 53 49 44 5f 4e 41  Name,..  PSID_NA
22b70 4d 45 5f 55 53 45 20 70 65 55 73 65 29 3b 0d 0a  ME_USE peUse);..
22b80 2f 2f 20 23 69 66 64 65 66 20 55 4e 49 43 4f 44  // #ifdef UNICOD
22b90 45 0d 0a 61 6c 69 61 73 20 4c 6f 6f 6b 75 70 41  E..alias LookupA
22ba0 63 63 6f 75 6e 74 53 69 64 57 20 4c 6f 6f 6b 75  ccountSidW Looku
22bb0 70 41 63 63 6f 75 6e 74 53 69 64 3b 0d 0a 2f 2f  pAccountSid;..//
22bc0 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d   #else..// #....
22bd0 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55  .// #endif // !U
22be0 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72 6e  NICODE....extern
22bf0 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
22c00 20 42 4f 4f 4c 20 4c 6f 6f 6b 75 70 41 63 63 6f   BOOL LookupAcco
22c10 75 6e 74 4e 61 6d 65 41 28 0d 0a 20 20 4c 50 43  untNameA(..  LPC
22c20 53 54 52 20 6c 70 53 79 73 74 65 6d 4e 61 6d 65  STR lpSystemName
22c30 2c 0d 0a 20 20 4c 50 43 53 54 52 20 6c 70 41 63  ,..  LPCSTR lpAc
22c40 63 6f 75 6e 74 4e 61 6d 65 2c 0d 0a 20 20 50 53  countName,..  PS
22c50 49 44 20 53 69 64 2c 0d 0a 20 20 4c 50 44 57 4f  ID Sid,..  LPDWO
22c60 52 44 20 63 62 53 69 64 2c 0d 0a 20 20 4c 50 53  RD cbSid,..  LPS
22c70 54 52 20 52 65 66 65 72 65 6e 63 65 64 44 6f 6d  TR ReferencedDom
22c80 61 69 6e 4e 61 6d 65 2c 0d 0a 20 20 4c 50 44 57  ainName,..  LPDW
22c90 4f 52 44 20 63 62 52 65 66 65 72 65 6e 63 65 64  ORD cbReferenced
22ca0 44 6f 6d 61 69 6e 4e 61 6d 65 2c 0d 0a 20 20 50  DomainName,..  P
22cb0 53 49 44 5f 4e 41 4d 45 5f 55 53 45 20 70 65 55  SID_NAME_USE peU
22cc0 73 65 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e  se);..extern(Win
22cd0 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f  dows) export BOO
22ce0 4c 20 4c 6f 6f 6b 75 70 41 63 63 6f 75 6e 74 4e  L LookupAccountN
22cf0 61 6d 65 57 28 0d 0a 20 20 4c 50 43 57 53 54 52  ameW(..  LPCWSTR
22d00 20 6c 70 53 79 73 74 65 6d 4e 61 6d 65 2c 0d 0a   lpSystemName,..
22d10 20 20 4c 50 43 57 53 54 52 20 6c 70 41 63 63 6f    LPCWSTR lpAcco
22d20 75 6e 74 4e 61 6d 65 2c 0d 0a 20 20 50 53 49 44  untName,..  PSID
22d30 20 53 69 64 2c 0d 0a 20 20 4c 50 44 57 4f 52 44   Sid,..  LPDWORD
22d40 20 63 62 53 69 64 2c 0d 0a 20 20 4c 50 57 53 54   cbSid,..  LPWST
22d50 52 20 52 65 66 65 72 65 6e 63 65 64 44 6f 6d 61  R ReferencedDoma
22d60 69 6e 4e 61 6d 65 2c 0d 0a 20 20 4c 50 44 57 4f  inName,..  LPDWO
22d70 52 44 20 63 62 52 65 66 65 72 65 6e 63 65 64 44  RD cbReferencedD
22d80 6f 6d 61 69 6e 4e 61 6d 65 2c 0d 0a 20 20 50 53  omainName,..  PS
22d90 49 44 5f 4e 41 4d 45 5f 55 53 45 20 70 65 55 73  ID_NAME_USE peUs
22da0 65 29 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55  e);..// #ifdef U
22db0 4e 49 43 4f 44 45 0d 0a 61 6c 69 61 73 20 4c 6f  NICODE..alias Lo
22dc0 6f 6b 75 70 41 63 63 6f 75 6e 74 4e 61 6d 65 57  okupAccountNameW
22dd0 20 4c 6f 6f 6b 75 70 41 63 63 6f 75 6e 74 4e 61   LookupAccountNa
22de0 6d 65 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f  me;..// #else../
22df0 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69  / #.....// #endi
22e00 66 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 0d  f // !UNICODE...
22e10 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29  .extern(Windows)
22e20 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 4c 6f 6f   export BOOL Loo
22e30 6b 75 70 50 72 69 76 69 6c 65 67 65 56 61 6c 75  kupPrivilegeValu
22e40 65 41 28 0d 0a 20 20 4c 50 43 53 54 52 20 6c 70  eA(..  LPCSTR lp
22e50 53 79 73 74 65 6d 4e 61 6d 65 2c 0d 0a 20 20 4c  SystemName,..  L
22e60 50 43 53 54 52 20 6c 70 4e 61 6d 65 2c 0d 0a 20  PCSTR lpName,.. 
22e70 20 50 4c 55 49 44 20 6c 70 4c 75 69 64 29 3b 0d   PLUID lpLuid);.
22e80 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29  .extern(Windows)
22e90 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 4c 6f 6f   export BOOL Loo
22ea0 6b 75 70 50 72 69 76 69 6c 65 67 65 56 61 6c 75  kupPrivilegeValu
22eb0 65 57 28 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c  eW(..  LPCWSTR l
22ec0 70 53 79 73 74 65 6d 4e 61 6d 65 2c 0d 0a 20 20  pSystemName,..  
22ed0 4c 50 43 57 53 54 52 20 6c 70 4e 61 6d 65 2c 0d  LPCWSTR lpName,.
22ee0 0a 20 20 50 4c 55 49 44 20 6c 70 4c 75 69 64 29  .  PLUID lpLuid)
22ef0 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e 49  ;..// #ifdef UNI
22f00 43 4f 44 45 0d 0a 61 6c 69 61 73 20 4c 6f 6f 6b  CODE..alias Look
22f10 75 70 50 72 69 76 69 6c 65 67 65 56 61 6c 75 65  upPrivilegeValue
22f20 57 20 4c 6f 6f 6b 75 70 50 72 69 76 69 6c 65 67  W LookupPrivileg
22f30 65 56 61 6c 75 65 3b 0d 0a 2f 2f 20 23 65 6c 73  eValue;..// #els
22f40 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23  e..// #.....// #
22f50 65 6e 64 69 66 20 2f 2f 20 21 55 4e 49 43 4f 44  endif // !UNICOD
22f60 45 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  E....extern(Wind
22f70 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c  ows) export BOOL
22f80 20 4c 6f 6f 6b 75 70 50 72 69 76 69 6c 65 67 65   LookupPrivilege
22f90 4e 61 6d 65 41 28 0d 0a 20 20 4c 50 43 53 54 52  NameA(..  LPCSTR
22fa0 20 6c 70 53 79 73 74 65 6d 4e 61 6d 65 2c 0d 0a   lpSystemName,..
22fb0 20 20 50 4c 55 49 44 20 6c 70 4c 75 69 64 2c 0d    PLUID lpLuid,.
22fc0 0a 20 20 4c 50 53 54 52 20 6c 70 4e 61 6d 65 2c  .  LPSTR lpName,
22fd0 0d 0a 20 20 4c 50 44 57 4f 52 44 20 63 62 4e 61  ..  LPDWORD cbNa
22fe0 6d 65 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e  me);..extern(Win
22ff0 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f  dows) export BOO
23000 4c 20 4c 6f 6f 6b 75 70 50 72 69 76 69 6c 65 67  L LookupPrivileg
23010 65 4e 61 6d 65 57 28 0d 0a 20 20 4c 50 43 57 53  eNameW(..  LPCWS
23020 54 52 20 6c 70 53 79 73 74 65 6d 4e 61 6d 65 2c  TR lpSystemName,
23030 0d 0a 20 20 50 4c 55 49 44 20 6c 70 4c 75 69 64  ..  PLUID lpLuid
23040 2c 0d 0a 20 20 4c 50 57 53 54 52 20 6c 70 4e 61  ,..  LPWSTR lpNa
23050 6d 65 2c 0d 0a 20 20 4c 50 44 57 4f 52 44 20 63  me,..  LPDWORD c
23060 62 4e 61 6d 65 29 3b 0d 0a 2f 2f 20 23 69 66 64  bName);..// #ifd
23070 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69 61  ef UNICODE..alia
23080 73 20 4c 6f 6f 6b 75 70 50 72 69 76 69 6c 65 67  s LookupPrivileg
23090 65 4e 61 6d 65 57 20 4c 6f 6f 6b 75 70 50 72 69  eNameW LookupPri
230a0 76 69 6c 65 67 65 4e 61 6d 65 3b 0d 0a 2f 2f 20  vilegeName;..// 
230b0 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a  #else..// #.....
230c0 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e  // #endif // !UN
230d0 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72 6e 28  ICODE....extern(
230e0 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
230f0 42 4f 4f 4c 20 4c 6f 6f 6b 75 70 50 72 69 76 69  BOOL LookupPrivi
23100 6c 65 67 65 44 69 73 70 6c 61 79 4e 61 6d 65 41  legeDisplayNameA
23110 28 0d 0a 20 20 4c 50 43 53 54 52 20 6c 70 53 79  (..  LPCSTR lpSy
23120 73 74 65 6d 4e 61 6d 65 2c 0d 0a 20 20 4c 50 43  stemName,..  LPC
23130 53 54 52 20 6c 70 4e 61 6d 65 2c 0d 0a 20 20 4c  STR lpName,..  L
23140 50 53 54 52 20 6c 70 44 69 73 70 6c 61 79 4e 61  PSTR lpDisplayNa
23150 6d 65 2c 0d 0a 20 20 4c 50 44 57 4f 52 44 20 63  me,..  LPDWORD c
23160 62 44 69 73 70 6c 61 79 4e 61 6d 65 2c 0d 0a 20  bDisplayName,.. 
23170 20 4c 50 44 57 4f 52 44 20 6c 70 4c 61 6e 67 75   LPDWORD lpLangu
23180 61 67 65 49 64 29 3b 0d 0a 65 78 74 65 72 6e 28  ageId);..extern(
23190 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
231a0 42 4f 4f 4c 20 4c 6f 6f 6b 75 70 50 72 69 76 69  BOOL LookupPrivi
231b0 6c 65 67 65 44 69 73 70 6c 61 79 4e 61 6d 65 57  legeDisplayNameW
231c0 28 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 53  (..  LPCWSTR lpS
231d0 79 73 74 65 6d 4e 61 6d 65 2c 0d 0a 20 20 4c 50  ystemName,..  LP
231e0 43 57 53 54 52 20 6c 70 4e 61 6d 65 2c 0d 0a 20  CWSTR lpName,.. 
231f0 20 4c 50 57 53 54 52 20 6c 70 44 69 73 70 6c 61   LPWSTR lpDispla
23200 79 4e 61 6d 65 2c 0d 0a 20 20 4c 50 44 57 4f 52  yName,..  LPDWOR
23210 44 20 63 62 44 69 73 70 6c 61 79 4e 61 6d 65 2c  D cbDisplayName,
23220 0d 0a 20 20 4c 50 44 57 4f 52 44 20 6c 70 4c 61  ..  LPDWORD lpLa
23230 6e 67 75 61 67 65 49 64 29 3b 0d 0a 2f 2f 20 23  nguageId);..// #
23240 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61  ifdef UNICODE..a
23250 6c 69 61 73 20 4c 6f 6f 6b 75 70 50 72 69 76 69  lias LookupPrivi
23260 6c 65 67 65 44 69 73 70 6c 61 79 4e 61 6d 65 57  legeDisplayNameW
23270 20 4c 6f 6f 6b 75 70 50 72 69 76 69 6c 65 67 65   LookupPrivilege
23280 44 69 73 70 6c 61 79 4e 61 6d 65 3b 0d 0a 2f 2f  DisplayName;..//
23290 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d   #else..// #....
232a0 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55  .// #endif // !U
232b0 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72 6e  NICODE....extern
232c0 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
232d0 20 42 4f 4f 4c 20 41 6c 6c 6f 63 61 74 65 4c 6f   BOOL AllocateLo
232e0 63 61 6c 6c 79 55 6e 69 71 75 65 49 64 28 0d 0a  callyUniqueId(..
232f0 20 20 50 4c 55 49 44 20 4c 75 69 64 29 3b 0d 0a    PLUID Luid);..
23300 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
23310 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 42 75  ) export BOOL Bu
23320 69 6c 64 43 6f 6d 6d 44 43 42 41 28 0d 0a 20 20  ildCommDCBA(..  
23330 4c 50 43 53 54 52 20 6c 70 44 65 66 2c 0d 0a 20  LPCSTR lpDef,.. 
23340 20 4c 50 44 43 42 20 6c 70 44 43 42 29 3b 0d 0a   LPDCB lpDCB);..
23350 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
23360 65 78 70 6f 72 74 20 42 4f 4f 4c 20 42 75 69 6c  export BOOL Buil
23370 64 43 6f 6d 6d 44 43 42 57 28 0d 0a 20 20 4c 50  dCommDCBW(..  LP
23380 43 57 53 54 52 20 6c 70 44 65 66 2c 0d 0a 20 20  CWSTR lpDef,..  
23390 4c 50 44 43 42 20 6c 70 44 43 42 29 3b 0d 0a 2f  LPDCB lpDCB);../
233a0 2f 20 23 69 66 64 65 66 20 55 4e 49 43 4f 44 45  / #ifdef UNICODE
233b0 0d 0a 61 6c 69 61 73 20 42 75 69 6c 64 43 6f 6d  ..alias BuildCom
233c0 6d 44 43 42 57 20 42 75 69 6c 64 43 6f 6d 6d 44  mDCBW BuildCommD
233d0 43 42 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f  CB;..// #else../
233e0 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69  / #.....// #endi
233f0 66 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 0d  f // !UNICODE...
23400 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29  .extern(Windows)
23410 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 42 75 69   export BOOL Bui
23420 6c 64 43 6f 6d 6d 44 43 42 41 6e 64 54 69 6d 65  ldCommDCBAndTime
23430 6f 75 74 73 41 28 0d 0a 20 20 4c 50 43 53 54 52  outsA(..  LPCSTR
23440 20 6c 70 44 65 66 2c 0d 0a 20 20 4c 50 44 43 42   lpDef,..  LPDCB
23450 20 6c 70 44 43 42 2c 0d 0a 20 20 4c 50 43 4f 4d   lpDCB,..  LPCOM
23460 4d 54 49 4d 45 4f 55 54 53 20 6c 70 43 6f 6d 6d  MTIMEOUTS lpComm
23470 54 69 6d 65 6f 75 74 73 29 3b 0d 0a 65 78 74 65  Timeouts);..exte
23480 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
23490 72 74 20 42 4f 4f 4c 20 42 75 69 6c 64 43 6f 6d  rt BOOL BuildCom
234a0 6d 44 43 42 41 6e 64 54 69 6d 65 6f 75 74 73 57  mDCBAndTimeoutsW
234b0 28 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 44  (..  LPCWSTR lpD
234c0 65 66 2c 0d 0a 20 20 4c 50 44 43 42 20 6c 70 44  ef,..  LPDCB lpD
234d0 43 42 2c 0d 0a 20 20 4c 50 43 4f 4d 4d 54 49 4d  CB,..  LPCOMMTIM
234e0 45 4f 55 54 53 20 6c 70 43 6f 6d 6d 54 69 6d 65  EOUTS lpCommTime
234f0 6f 75 74 73 29 3b 0d 0a 2f 2f 20 23 69 66 64 65  outs);..// #ifde
23500 66 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69 61 73  f UNICODE..alias
23510 20 42 75 69 6c 64 43 6f 6d 6d 44 43 42 41 6e 64   BuildCommDCBAnd
23520 54 69 6d 65 6f 75 74 73 57 20 42 75 69 6c 64 43  TimeoutsW BuildC
23530 6f 6d 6d 44 43 42 41 6e 64 54 69 6d 65 6f 75 74  ommDCBAndTimeout
23540 73 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f  s;..// #else..//
23550 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66   #.....// #endif
23560 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a   // !UNICODE....
23570 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
23580 65 78 70 6f 72 74 20 42 4f 4f 4c 20 43 6f 6d 6d  export BOOL Comm
23590 43 6f 6e 66 69 67 44 69 61 6c 6f 67 41 28 0d 0a  ConfigDialogA(..
235a0 20 20 4c 50 43 53 54 52 20 6c 70 73 7a 4e 61 6d    LPCSTR lpszNam
235b0 65 2c 0d 0a 20 20 48 57 4e 44 20 68 57 6e 64 2c  e,..  HWND hWnd,
235c0 0d 0a 20 20 4c 50 43 4f 4d 4d 43 4f 4e 46 49 47  ..  LPCOMMCONFIG
235d0 20 6c 70 43 43 29 3b 0d 0a 65 78 74 65 72 6e 28   lpCC);..extern(
235e0 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
235f0 42 4f 4f 4c 20 43 6f 6d 6d 43 6f 6e 66 69 67 44  BOOL CommConfigD
23600 69 61 6c 6f 67 57 28 0d 0a 20 20 4c 50 43 57 53  ialogW(..  LPCWS
23610 54 52 20 6c 70 73 7a 4e 61 6d 65 2c 0d 0a 20 20  TR lpszName,..  
23620 48 57 4e 44 20 68 57 6e 64 2c 0d 0a 20 20 4c 50  HWND hWnd,..  LP
23630 43 4f 4d 4d 43 4f 4e 46 49 47 20 6c 70 43 43 29  COMMCONFIG lpCC)
23640 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e 49  ;..// #ifdef UNI
23650 43 4f 44 45 0d 0a 61 6c 69 61 73 20 43 6f 6d 6d  CODE..alias Comm
23660 43 6f 6e 66 69 67 44 69 61 6c 6f 67 57 20 43 6f  ConfigDialogW Co
23670 6d 6d 43 6f 6e 66 69 67 44 69 61 6c 6f 67 3b 0d  mmConfigDialog;.
23680 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e  .// #else..// #.
23690 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f  ....// #endif //
236a0 20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78 74   !UNICODE....ext
236b0 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
236c0 6f 72 74 20 42 4f 4f 4c 20 47 65 74 44 65 66 61  ort BOOL GetDefa
236d0 75 6c 74 43 6f 6d 6d 43 6f 6e 66 69 67 41 28 0d  ultCommConfigA(.
236e0 0a 20 20 4c 50 43 53 54 52 20 6c 70 73 7a 4e 61  .  LPCSTR lpszNa
236f0 6d 65 2c 0d 0a 20 20 4c 50 43 4f 4d 4d 43 4f 4e  me,..  LPCOMMCON
23700 46 49 47 20 6c 70 43 43 2c 0d 0a 20 20 4c 50 44  FIG lpCC,..  LPD
23710 57 4f 52 44 20 6c 70 64 77 53 69 7a 65 29 3b 0d  WORD lpdwSize);.
23720 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29  .extern(Windows)
23730 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 47 65 74   export BOOL Get
23740 44 65 66 61 75 6c 74 43 6f 6d 6d 43 6f 6e 66 69  DefaultCommConfi
23750 67 57 28 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c  gW(..  LPCWSTR l
23760 70 73 7a 4e 61 6d 65 2c 0d 0a 20 20 4c 50 43 4f  pszName,..  LPCO
23770 4d 4d 43 4f 4e 46 49 47 20 6c 70 43 43 2c 0d 0a  MMCONFIG lpCC,..
23780 20 20 4c 50 44 57 4f 52 44 20 6c 70 64 77 53 69    LPDWORD lpdwSi
23790 7a 65 29 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20  ze);..// #ifdef 
237a0 55 4e 49 43 4f 44 45 0d 0a 61 6c 69 61 73 20 47  UNICODE..alias G
237b0 65 74 44 65 66 61 75 6c 74 43 6f 6d 6d 43 6f 6e  etDefaultCommCon
237c0 66 69 67 57 20 47 65 74 44 65 66 61 75 6c 74 43  figW GetDefaultC
237d0 6f 6d 6d 43 6f 6e 66 69 67 3b 0d 0a 2f 2f 20 23  ommConfig;..// #
237e0 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f  else..// #...../
237f0 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e 49  / #endif // !UNI
23800 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72 6e 28 57  CODE....extern(W
23810 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42  indows) export B
23820 4f 4f 4c 20 53 65 74 44 65 66 61 75 6c 74 43 6f  OOL SetDefaultCo
23830 6d 6d 43 6f 6e 66 69 67 41 28 0d 0a 20 20 4c 50  mmConfigA(..  LP
23840 43 53 54 52 20 6c 70 73 7a 4e 61 6d 65 2c 0d 0a  CSTR lpszName,..
23850 20 20 4c 50 43 4f 4d 4d 43 4f 4e 46 49 47 20 6c    LPCOMMCONFIG l
23860 70 43 43 2c 0d 0a 20 20 44 57 4f 52 44 20 64 77  pCC,..  DWORD dw
23870 53 69 7a 65 29 3b 0d 0a 65 78 74 65 72 6e 28 57  Size);..extern(W
23880 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42  indows) export B
23890 4f 4f 4c 20 53 65 74 44 65 66 61 75 6c 74 43 6f  OOL SetDefaultCo
238a0 6d 6d 43 6f 6e 66 69 67 57 28 0d 0a 20 20 4c 50  mmConfigW(..  LP
238b0 43 57 53 54 52 20 6c 70 73 7a 4e 61 6d 65 2c 0d  CWSTR lpszName,.
238c0 0a 20 20 4c 50 43 4f 4d 4d 43 4f 4e 46 49 47 20  .  LPCOMMCONFIG 
238d0 6c 70 43 43 2c 0d 0a 20 20 44 57 4f 52 44 20 64  lpCC,..  DWORD d
238e0 77 53 69 7a 65 29 3b 0d 0a 2f 2f 20 23 69 66 64  wSize);..// #ifd
238f0 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69 61  ef UNICODE..alia
23900 73 20 53 65 74 44 65 66 61 75 6c 74 43 6f 6d 6d  s SetDefaultComm
23910 43 6f 6e 66 69 67 57 20 53 65 74 44 65 66 61 75  ConfigW SetDefau
23920 6c 74 43 6f 6d 6d 43 6f 6e 66 69 67 3b 0d 0a 2f  ltCommConfig;../
23930 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e  / #else..// #...
23940 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21  ..// #endif // !
23950 55 4e 49 43 4f 44 45 0d 0a 0d 0a 2f 2f 20 23 69  UNICODE....// #i
23960 66 6e 64 65 66 20 5f 4d 41 43 0d 0a 65 6e 75 6d  fndef _MAC..enum
23970 20 3a 20 75 69 6e 74 20 7b 20 4d 41 58 5f 43 4f   : uint { MAX_CO
23980 4d 50 55 54 45 52 4e 41 4d 45 5f 4c 45 4e 47 54  MPUTERNAME_LENGT
23990 48 20 3d 20 31 35 20 7d 0d 0a 2f 2f 20 23 65 6c  H = 15 }..// #el
239a0 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20  se..// #.....// 
239b0 23 65 6e 64 69 66 0d 0a 0d 0a 65 78 74 65 72 6e  #endif....extern
239c0 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
239d0 20 42 4f 4f 4c 20 47 65 74 43 6f 6d 70 75 74 65   BOOL GetCompute
239e0 72 4e 61 6d 65 41 28 0d 0a 20 20 4c 50 53 54 52  rNameA(..  LPSTR
239f0 20 6c 70 42 75 66 66 65 72 2c 0d 0a 20 20 4c 50   lpBuffer,..  LP
23a00 44 57 4f 52 44 20 6e 53 69 7a 65 29 3b 0d 0a 65  DWORD nSize);..e
23a10 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
23a20 78 70 6f 72 74 20 42 4f 4f 4c 20 47 65 74 43 6f  xport BOOL GetCo
23a30 6d 70 75 74 65 72 4e 61 6d 65 57 28 0d 0a 20 20  mputerNameW(..  
23a40 4c 50 57 53 54 52 20 6c 70 42 75 66 66 65 72 2c  LPWSTR lpBuffer,
23a50 0d 0a 20 20 4c 50 44 57 4f 52 44 20 6e 53 69 7a  ..  LPDWORD nSiz
23a60 65 29 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55  e);..// #ifdef U
23a70 4e 49 43 4f 44 45 0d 0a 61 6c 69 61 73 20 47 65  NICODE..alias Ge
23a80 74 43 6f 6d 70 75 74 65 72 4e 61 6d 65 57 20 47  tComputerNameW G
23a90 65 74 43 6f 6d 70 75 74 65 72 4e 61 6d 65 3b 0d  etComputerName;.
23aa0 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e  .// #else..// #.
23ab0 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f  ....// #endif //
23ac0 20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78 74   !UNICODE....ext
23ad0 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
23ae0 6f 72 74 20 42 4f 4f 4c 20 53 65 74 43 6f 6d 70  ort BOOL SetComp
23af0 75 74 65 72 4e 61 6d 65 41 28 0d 0a 20 20 4c 50  uterNameA(..  LP
23b00 43 53 54 52 20 6c 70 43 6f 6d 70 75 74 65 72 4e  CSTR lpComputerN
23b10 61 6d 65 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69  ame);..extern(Wi
23b20 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f  ndows) export BO
23b30 4f 4c 20 53 65 74 43 6f 6d 70 75 74 65 72 4e 61  OL SetComputerNa
23b40 6d 65 57 28 0d 0a 20 20 4c 50 43 57 53 54 52 20  meW(..  LPCWSTR 
23b50 6c 70 43 6f 6d 70 75 74 65 72 4e 61 6d 65 29 3b  lpComputerName);
23b60 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e 49 43  ..// #ifdef UNIC
23b70 4f 44 45 0d 0a 61 6c 69 61 73 20 53 65 74 43 6f  ODE..alias SetCo
23b80 6d 70 75 74 65 72 4e 61 6d 65 57 20 53 65 74 43  mputerNameW SetC
23b90 6f 6d 70 75 74 65 72 4e 61 6d 65 3b 0d 0a 2f 2f  omputerName;..//
23ba0 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d   #else..// #....
23bb0 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55  .// #endif // !U
23bc0 4e 49 43 4f 44 45 0d 0a 0d 0a 2f 2f 20 23 69 66  NICODE....// #if
23bd0 20 28 5f 57 49 4e 33 32 5f 57 49 4e 4e 54 20 3e   (_WIN32_WINNT >
23be0 3d 20 30 78 30 35 30 30 29 0d 0a 0d 0a 61 6c 69  = 0x0500)....ali
23bf0 61 73 20 69 6e 74 20 5f 43 4f 4d 50 55 54 45 52  as int _COMPUTER
23c00 5f 4e 41 4d 45 5f 46 4f 52 4d 41 54 3b 0d 0a 65  _NAME_FORMAT;..e
23c10 6e 75 6d 20 7b 0d 0a 20 20 43 6f 6d 70 75 74 65  num {..  Compute
23c20 72 4e 61 6d 65 4e 65 74 42 49 4f 53 2c 0d 0a 20  rNameNetBIOS,.. 
23c30 20 43 6f 6d 70 75 74 65 72 4e 61 6d 65 44 6e 73   ComputerNameDns
23c40 48 6f 73 74 6e 61 6d 65 2c 0d 0a 20 20 43 6f 6d  Hostname,..  Com
23c50 70 75 74 65 72 4e 61 6d 65 44 6e 73 44 6f 6d 61  puterNameDnsDoma
23c60 69 6e 2c 0d 0a 20 20 43 6f 6d 70 75 74 65 72 4e  in,..  ComputerN
23c70 61 6d 65 44 6e 73 46 75 6c 6c 79 51 75 61 6c 69  ameDnsFullyQuali
23c80 66 69 65 64 2c 0d 0a 20 20 43 6f 6d 70 75 74 65  fied,..  Compute
23c90 72 4e 61 6d 65 50 68 79 73 69 63 61 6c 4e 65 74  rNamePhysicalNet
23ca0 42 49 4f 53 2c 0d 0a 20 20 43 6f 6d 70 75 74 65  BIOS,..  Compute
23cb0 72 4e 61 6d 65 50 68 79 73 69 63 61 6c 44 6e 73  rNamePhysicalDns
23cc0 48 6f 73 74 6e 61 6d 65 2c 0d 0a 20 20 43 6f 6d  Hostname,..  Com
23cd0 70 75 74 65 72 4e 61 6d 65 50 68 79 73 69 63 61  puterNamePhysica
23ce0 6c 44 6e 73 44 6f 6d 61 69 6e 2c 0d 0a 20 20 43  lDnsDomain,..  C
23cf0 6f 6d 70 75 74 65 72 4e 61 6d 65 50 68 79 73 69  omputerNamePhysi
23d00 63 61 6c 44 6e 73 46 75 6c 6c 79 51 75 61 6c 69  calDnsFullyQuali
23d10 66 69 65 64 2c 0d 0a 20 20 43 6f 6d 70 75 74 65  fied,..  Compute
23d20 72 4e 61 6d 65 4d 61 78 2c 0d 0a 7d 0d 0a 61 6c  rNameMax,..}..al
23d30 69 61 73 20 5f 43 4f 4d 50 55 54 45 52 5f 4e 41  ias _COMPUTER_NA
23d40 4d 45 5f 46 4f 52 4d 41 54 20 43 4f 4d 50 55 54  ME_FORMAT COMPUT
23d50 45 52 5f 4e 41 4d 45 5f 46 4f 52 4d 41 54 3b 0d  ER_NAME_FORMAT;.
23d60 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ...extern(Window
23d70 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 47  s) export BOOL G
23d80 65 74 43 6f 6d 70 75 74 65 72 4e 61 6d 65 45 78  etComputerNameEx
23d90 41 28 0d 0a 20 20 43 4f 4d 50 55 54 45 52 5f 4e  A(..  COMPUTER_N
23da0 41 4d 45 5f 46 4f 52 4d 41 54 20 4e 61 6d 65 54  AME_FORMAT NameT
23db0 79 70 65 2c 0d 0a 20 20 4c 50 53 54 52 20 6c 70  ype,..  LPSTR lp
23dc0 42 75 66 66 65 72 2c 0d 0a 20 20 4c 50 44 57 4f  Buffer,..  LPDWO
23dd0 52 44 20 6e 53 69 7a 65 29 3b 0d 0a 65 78 74 65  RD nSize);..exte
23de0 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
23df0 72 74 20 42 4f 4f 4c 20 47 65 74 43 6f 6d 70 75  rt BOOL GetCompu
23e00 74 65 72 4e 61 6d 65 45 78 57 28 0d 0a 20 20 43  terNameExW(..  C
23e10 4f 4d 50 55 54 45 52 5f 4e 41 4d 45 5f 46 4f 52  OMPUTER_NAME_FOR
23e20 4d 41 54 20 4e 61 6d 65 54 79 70 65 2c 0d 0a 20  MAT NameType,.. 
23e30 20 4c 50 57 53 54 52 20 6c 70 42 75 66 66 65 72   LPWSTR lpBuffer
23e40 2c 0d 0a 20 20 4c 50 44 57 4f 52 44 20 6e 53 69  ,..  LPDWORD nSi
23e50 7a 65 29 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20  ze);..// #ifdef 
23e60 55 4e 49 43 4f 44 45 0d 0a 61 6c 69 61 73 20 47  UNICODE..alias G
23e70 65 74 43 6f 6d 70 75 74 65 72 4e 61 6d 65 45 78  etComputerNameEx
23e80 57 20 47 65 74 43 6f 6d 70 75 74 65 72 4e 61 6d  W GetComputerNam
23e90 65 45 78 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a  eEx;..// #else..
23ea0 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64  // #.....// #end
23eb0 69 66 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a  if // !UNICODE..
23ec0 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
23ed0 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 53 65  ) export BOOL Se
23ee0 74 43 6f 6d 70 75 74 65 72 4e 61 6d 65 45 78 41  tComputerNameExA
23ef0 28 0d 0a 20 20 43 4f 4d 50 55 54 45 52 5f 4e 41  (..  COMPUTER_NA
23f00 4d 45 5f 46 4f 52 4d 41 54 20 4e 61 6d 65 54 79  ME_FORMAT NameTy
23f10 70 65 2c 0d 0a 20 20 4c 50 43 53 54 52 20 6c 70  pe,..  LPCSTR lp
23f20 42 75 66 66 65 72 29 3b 0d 0a 65 78 74 65 72 6e  Buffer);..extern
23f30 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
23f40 20 42 4f 4f 4c 20 53 65 74 43 6f 6d 70 75 74 65   BOOL SetCompute
23f50 72 4e 61 6d 65 45 78 57 28 0d 0a 20 20 43 4f 4d  rNameExW(..  COM
23f60 50 55 54 45 52 5f 4e 41 4d 45 5f 46 4f 52 4d 41  PUTER_NAME_FORMA
23f70 54 20 4e 61 6d 65 54 79 70 65 2c 0d 0a 20 20 4c  T NameType,..  L
23f80 50 43 57 53 54 52 20 6c 70 42 75 66 66 65 72 29  PCWSTR lpBuffer)
23f90 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e 49  ;..// #ifdef UNI
23fa0 43 4f 44 45 0d 0a 61 6c 69 61 73 20 53 65 74 43  CODE..alias SetC
23fb0 6f 6d 70 75 74 65 72 4e 61 6d 65 45 78 57 20 53  omputerNameExW S
23fc0 65 74 43 6f 6d 70 75 74 65 72 4e 61 6d 65 45 78  etComputerNameEx
23fd0 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20  ;..// #else..// 
23fe0 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20  #.....// #endif 
23ff0 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65  // !UNICODE....e
24000 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
24010 78 70 6f 72 74 20 44 57 4f 52 44 20 41 64 64 4c  xport DWORD AddL
24020 6f 63 61 6c 41 6c 74 65 72 6e 61 74 65 43 6f 6d  ocalAlternateCom
24030 70 75 74 65 72 4e 61 6d 65 41 28 0d 0a 20 20 4c  puterNameA(..  L
24040 50 43 53 54 52 20 6c 70 44 6e 73 46 51 48 6f 73  PCSTR lpDnsFQHos
24050 74 6e 61 6d 65 2c 0d 0a 20 20 55 4c 4f 4e 47 20  tname,..  ULONG 
24060 75 6c 46 6c 61 67 73 29 3b 0d 0a 65 78 74 65 72  ulFlags);..exter
24070 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
24080 74 20 44 57 4f 52 44 20 41 64 64 4c 6f 63 61 6c  t DWORD AddLocal
24090 41 6c 74 65 72 6e 61 74 65 43 6f 6d 70 75 74 65  AlternateCompute
240a0 72 4e 61 6d 65 57 28 0d 0a 20 20 4c 50 43 57 53  rNameW(..  LPCWS
240b0 54 52 20 6c 70 44 6e 73 46 51 48 6f 73 74 6e 61  TR lpDnsFQHostna
240c0 6d 65 2c 0d 0a 20 20 55 4c 4f 4e 47 20 75 6c 46  me,..  ULONG ulF
240d0 6c 61 67 73 29 3b 0d 0a 2f 2f 20 23 69 66 64 65  lags);..// #ifde
240e0 66 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69 61 73  f UNICODE..alias
240f0 20 41 64 64 4c 6f 63 61 6c 41 6c 74 65 72 6e 61   AddLocalAlterna
24100 74 65 43 6f 6d 70 75 74 65 72 4e 61 6d 65 57 20  teComputerNameW 
24110 41 64 64 4c 6f 63 61 6c 41 6c 74 65 72 6e 61 74  AddLocalAlternat
24120 65 43 6f 6d 70 75 74 65 72 4e 61 6d 65 3b 0d 0a  eComputerName;..
24130 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e  // #else..// #..
24140 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20  ...// #endif // 
24150 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65  !UNICODE....exte
24160 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
24170 72 74 20 44 57 4f 52 44 20 52 65 6d 6f 76 65 4c  rt DWORD RemoveL
24180 6f 63 61 6c 41 6c 74 65 72 6e 61 74 65 43 6f 6d  ocalAlternateCom
24190 70 75 74 65 72 4e 61 6d 65 41 28 0d 0a 20 20 4c  puterNameA(..  L
241a0 50 43 53 54 52 20 6c 70 41 6c 74 44 6e 73 46 51  PCSTR lpAltDnsFQ
241b0 48 6f 73 74 6e 61 6d 65 2c 0d 0a 20 20 55 4c 4f  Hostname,..  ULO
241c0 4e 47 20 75 6c 46 6c 61 67 73 29 3b 0d 0a 65 78  NG ulFlags);..ex
241d0 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
241e0 70 6f 72 74 20 44 57 4f 52 44 20 52 65 6d 6f 76  port DWORD Remov
241f0 65 4c 6f 63 61 6c 41 6c 74 65 72 6e 61 74 65 43  eLocalAlternateC
24200 6f 6d 70 75 74 65 72 4e 61 6d 65 57 28 0d 0a 20  omputerNameW(.. 
24210 20 4c 50 43 57 53 54 52 20 6c 70 41 6c 74 44 6e   LPCWSTR lpAltDn
24220 73 46 51 48 6f 73 74 6e 61 6d 65 2c 0d 0a 20 20  sFQHostname,..  
24230 55 4c 4f 4e 47 20 75 6c 46 6c 61 67 73 29 3b 0d  ULONG ulFlags);.
24240 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e 49 43 4f  .// #ifdef UNICO
24250 44 45 0d 0a 61 6c 69 61 73 20 52 65 6d 6f 76 65  DE..alias Remove
24260 4c 6f 63 61 6c 41 6c 74 65 72 6e 61 74 65 43 6f  LocalAlternateCo
24270 6d 70 75 74 65 72 4e 61 6d 65 57 20 52 65 6d 6f  mputerNameW Remo
24280 76 65 4c 6f 63 61 6c 41 6c 74 65 72 6e 61 74 65  veLocalAlternate
24290 43 6f 6d 70 75 74 65 72 4e 61 6d 65 3b 0d 0a 2f  ComputerName;../
242a0 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e  / #else..// #...
242b0 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21  ..// #endif // !
242c0 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72  UNICODE....exter
242d0 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
242e0 74 20 44 57 4f 52 44 20 53 65 74 4c 6f 63 61 6c  t DWORD SetLocal
242f0 50 72 69 6d 61 72 79 43 6f 6d 70 75 74 65 72 4e  PrimaryComputerN
24300 61 6d 65 41 28 0d 0a 20 20 4c 50 43 53 54 52 20  ameA(..  LPCSTR 
24310 6c 70 41 6c 74 44 6e 73 46 51 48 6f 73 74 6e 61  lpAltDnsFQHostna
24320 6d 65 2c 0d 0a 20 20 55 4c 4f 4e 47 20 75 6c 46  me,..  ULONG ulF
24330 6c 61 67 73 29 3b 0d 0a 65 78 74 65 72 6e 28 57  lags);..extern(W
24340 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 44  indows) export D
24350 57 4f 52 44 20 53 65 74 4c 6f 63 61 6c 50 72 69  WORD SetLocalPri
24360 6d 61 72 79 43 6f 6d 70 75 74 65 72 4e 61 6d 65  maryComputerName
24370 57 28 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70  W(..  LPCWSTR lp
24380 41 6c 74 44 6e 73 46 51 48 6f 73 74 6e 61 6d 65  AltDnsFQHostname
24390 2c 0d 0a 20 20 55 4c 4f 4e 47 20 75 6c 46 6c 61  ,..  ULONG ulFla
243a0 67 73 29 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20  gs);..// #ifdef 
243b0 55 4e 49 43 4f 44 45 0d 0a 61 6c 69 61 73 20 53  UNICODE..alias S
243c0 65 74 4c 6f 63 61 6c 50 72 69 6d 61 72 79 43 6f  etLocalPrimaryCo
243d0 6d 70 75 74 65 72 4e 61 6d 65 57 20 53 65 74 4c  mputerNameW SetL
243e0 6f 63 61 6c 50 72 69 6d 61 72 79 43 6f 6d 70 75  ocalPrimaryCompu
243f0 74 65 72 4e 61 6d 65 3b 0d 0a 2f 2f 20 23 65 6c  terName;..// #el
24400 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20  se..// #.....// 
24410 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e 49 43 4f  #endif // !UNICO
24420 44 45 0d 0a 0d 0a 61 6c 69 61 73 20 69 6e 74 20  DE....alias int 
24430 5f 43 4f 4d 50 55 54 45 52 5f 4e 41 4d 45 5f 54  _COMPUTER_NAME_T
24440 59 50 45 3b 0d 0a 65 6e 75 6d 20 7b 0d 0a 20 20  YPE;..enum {..  
24450 50 72 69 6d 61 72 79 43 6f 6d 70 75 74 65 72 4e  PrimaryComputerN
24460 61 6d 65 2c 0d 0a 20 20 41 6c 74 65 72 6e 61 74  ame,..  Alternat
24470 65 43 6f 6d 70 75 74 65 72 4e 61 6d 65 73 2c 0d  eComputerNames,.
24480 0a 20 20 41 6c 6c 43 6f 6d 70 75 74 65 72 4e 61  .  AllComputerNa
24490 6d 65 73 2c 0d 0a 20 20 43 6f 6d 70 75 74 65 72  mes,..  Computer
244a0 4e 61 6d 65 54 79 70 65 4d 61 78 2c 0d 0a 7d 0d  NameTypeMax,..}.
244b0 0a 61 6c 69 61 73 20 5f 43 4f 4d 50 55 54 45 52  .alias _COMPUTER
244c0 5f 4e 41 4d 45 5f 54 59 50 45 20 43 4f 4d 50 55  _NAME_TYPE COMPU
244d0 54 45 52 5f 4e 41 4d 45 5f 54 59 50 45 3b 0d 0a  TER_NAME_TYPE;..
244e0 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
244f0 29 20 65 78 70 6f 72 74 20 44 57 4f 52 44 20 45  ) export DWORD E
24500 6e 75 6d 65 72 61 74 65 4c 6f 63 61 6c 43 6f 6d  numerateLocalCom
24510 70 75 74 65 72 4e 61 6d 65 73 41 28 0d 0a 20 20  puterNamesA(..  
24520 43 4f 4d 50 55 54 45 52 5f 4e 41 4d 45 5f 54 59  COMPUTER_NAME_TY
24530 50 45 20 4e 61 6d 65 54 79 70 65 2c 0d 0a 20 20  PE NameType,..  
24540 55 4c 4f 4e 47 20 75 6c 46 6c 61 67 73 2c 0d 0a  ULONG ulFlags,..
24550 20 20 4c 50 53 54 52 20 6c 70 44 6e 73 46 51 48    LPSTR lpDnsFQH
24560 6f 73 74 6e 61 6d 65 2c 0d 0a 20 20 4c 50 44 57  ostname,..  LPDW
24570 4f 52 44 20 6e 53 69 7a 65 29 3b 0d 0a 65 78 74  ORD nSize);..ext
24580 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
24590 6f 72 74 20 44 57 4f 52 44 20 45 6e 75 6d 65 72  ort DWORD Enumer
245a0 61 74 65 4c 6f 63 61 6c 43 6f 6d 70 75 74 65 72  ateLocalComputer
245b0 4e 61 6d 65 73 57 28 0d 0a 20 20 43 4f 4d 50 55  NamesW(..  COMPU
245c0 54 45 52 5f 4e 41 4d 45 5f 54 59 50 45 20 4e 61  TER_NAME_TYPE Na
245d0 6d 65 54 79 70 65 2c 0d 0a 20 20 55 4c 4f 4e 47  meType,..  ULONG
245e0 20 75 6c 46 6c 61 67 73 2c 0d 0a 20 20 4c 50 57   ulFlags,..  LPW
245f0 53 54 52 20 6c 70 44 6e 73 46 51 48 6f 73 74 6e  STR lpDnsFQHostn
24600 61 6d 65 2c 0d 0a 20 20 4c 50 44 57 4f 52 44 20  ame,..  LPDWORD 
24610 6e 53 69 7a 65 29 3b 0d 0a 2f 2f 20 23 69 66 64  nSize);..// #ifd
24620 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69 61  ef UNICODE..alia
24630 73 20 45 6e 75 6d 65 72 61 74 65 4c 6f 63 61 6c  s EnumerateLocal
24640 43 6f 6d 70 75 74 65 72 4e 61 6d 65 73 57 20 45  ComputerNamesW E
24650 6e 75 6d 65 72 61 74 65 4c 6f 63 61 6c 43 6f 6d  numerateLocalCom
24660 70 75 74 65 72 4e 61 6d 65 73 3b 0d 0a 2f 2f 20  puterNames;..// 
24670 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a  #else..// #.....
24680 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e  // #endif // !UN
24690 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72 6e 28  ICODE....extern(
246a0 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
246b0 42 4f 4f 4c 20 44 6e 73 48 6f 73 74 6e 61 6d 65  BOOL DnsHostname
246c0 54 6f 43 6f 6d 70 75 74 65 72 4e 61 6d 65 41 28  ToComputerNameA(
246d0 0d 0a 20 20 4c 50 43 53 54 52 20 48 6f 73 74 6e  ..  LPCSTR Hostn
246e0 61 6d 65 2c 0d 0a 20 20 4c 50 53 54 52 20 43 6f  ame,..  LPSTR Co
246f0 6d 70 75 74 65 72 4e 61 6d 65 2c 0d 0a 20 20 4c  mputerName,..  L
24700 50 44 57 4f 52 44 20 6e 53 69 7a 65 29 3b 0d 0a  PDWORD nSize);..
24710 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
24720 65 78 70 6f 72 74 20 42 4f 4f 4c 20 44 6e 73 48  export BOOL DnsH
24730 6f 73 74 6e 61 6d 65 54 6f 43 6f 6d 70 75 74 65  ostnameToCompute
24740 72 4e 61 6d 65 57 28 0d 0a 20 20 4c 50 43 57 53  rNameW(..  LPCWS
24750 54 52 20 48 6f 73 74 6e 61 6d 65 2c 0d 0a 20 20  TR Hostname,..  
24760 4c 50 57 53 54 52 20 43 6f 6d 70 75 74 65 72 4e  LPWSTR ComputerN
24770 61 6d 65 2c 0d 0a 20 20 4c 50 44 57 4f 52 44 20  ame,..  LPDWORD 
24780 6e 53 69 7a 65 29 3b 0d 0a 2f 2f 20 23 69 66 64  nSize);..// #ifd
24790 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69 61  ef UNICODE..alia
247a0 73 20 44 6e 73 48 6f 73 74 6e 61 6d 65 54 6f 43  s DnsHostnameToC
247b0 6f 6d 70 75 74 65 72 4e 61 6d 65 57 20 44 6e 73  omputerNameW Dns
247c0 48 6f 73 74 6e 61 6d 65 54 6f 43 6f 6d 70 75 74  HostnameToComput
247d0 65 72 4e 61 6d 65 3b 0d 0a 2f 2f 20 23 65 6c 73  erName;..// #els
247e0 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23  e..// #.....// #
247f0 65 6e 64 69 66 20 2f 2f 20 21 55 4e 49 43 4f 44  endif // !UNICOD
24800 45 0d 0a 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f  E....// #endif /
24810 2f 20 5f 57 49 4e 33 32 5f 57 49 4e 4e 54 0d 0a  / _WIN32_WINNT..
24820 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
24830 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 47 65  ) export BOOL Ge
24840 74 55 73 65 72 4e 61 6d 65 41 28 0d 0a 20 20 4c  tUserNameA(..  L
24850 50 53 54 52 20 6c 70 42 75 66 66 65 72 2c 0d 0a  PSTR lpBuffer,..
24860 20 20 4c 50 44 57 4f 52 44 20 6e 53 69 7a 65 29    LPDWORD nSize)
24870 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ;..extern(Window
24880 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 47  s) export BOOL G
24890 65 74 55 73 65 72 4e 61 6d 65 57 28 0d 0a 20 20  etUserNameW(..  
248a0 4c 50 57 53 54 52 20 6c 70 42 75 66 66 65 72 2c  LPWSTR lpBuffer,
248b0 0d 0a 20 20 4c 50 44 57 4f 52 44 20 6e 53 69 7a  ..  LPDWORD nSiz
248c0 65 29 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55  e);..// #ifdef U
248d0 4e 49 43 4f 44 45 0d 0a 61 6c 69 61 73 20 47 65  NICODE..alias Ge
248e0 74 55 73 65 72 4e 61 6d 65 57 20 47 65 74 55 73  tUserNameW GetUs
248f0 65 72 4e 61 6d 65 3b 0d 0a 2f 2f 20 23 65 6c 73  erName;..// #els
24900 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23  e..// #.....// #
24910 65 6e 64 69 66 20 2f 2f 20 21 55 4e 49 43 4f 44  endif // !UNICOD
24920 45 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  E....enum : uint
24930 20 7b 20 4c 4f 47 4f 4e 33 32 5f 4c 4f 47 4f 4e   { LOGON32_LOGON
24940 5f 49 4e 54 45 52 41 43 54 49 56 45 20 3d 20 32  _INTERACTIVE = 2
24950 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20   }..enum : uint 
24960 7b 20 4c 4f 47 4f 4e 33 32 5f 4c 4f 47 4f 4e 5f  { LOGON32_LOGON_
24970 4e 45 54 57 4f 52 4b 20 3d 20 33 20 7d 0d 0a 65  NETWORK = 3 }..e
24980 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 4c 4f 47  num : uint { LOG
24990 4f 4e 33 32 5f 4c 4f 47 4f 4e 5f 42 41 54 43 48  ON32_LOGON_BATCH
249a0 20 3d 20 34 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75   = 4 }..enum : u
249b0 69 6e 74 20 7b 20 4c 4f 47 4f 4e 33 32 5f 4c 4f  int { LOGON32_LO
249c0 47 4f 4e 5f 53 45 52 56 49 43 45 20 3d 20 35 20  GON_SERVICE = 5 
249d0 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b  }..enum : uint {
249e0 20 4c 4f 47 4f 4e 33 32 5f 4c 4f 47 4f 4e 5f 55   LOGON32_LOGON_U
249f0 4e 4c 4f 43 4b 20 3d 20 37 20 7d 0d 0a 2f 2f 20  NLOCK = 7 }..// 
24a00 23 69 66 28 5f 57 49 4e 33 32 5f 57 49 4e 4e 54  #if(_WIN32_WINNT
24a10 20 3e 3d 20 30 78 30 35 30 30 29 0d 0a 65 6e 75   >= 0x0500)..enu
24a20 6d 20 3a 20 75 69 6e 74 20 7b 20 4c 4f 47 4f 4e  m : uint { LOGON
24a30 33 32 5f 4c 4f 47 4f 4e 5f 4e 45 54 57 4f 52 4b  32_LOGON_NETWORK
24a40 5f 43 4c 45 41 52 54 45 58 54 20 3d 20 38 20 7d  _CLEARTEXT = 8 }
24a50 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20  ..enum : uint { 
24a60 4c 4f 47 4f 4e 33 32 5f 4c 4f 47 4f 4e 5f 4e 45  LOGON32_LOGON_NE
24a70 57 5f 43 52 45 44 45 4e 54 49 41 4c 53 20 3d 20  W_CREDENTIALS = 
24a80 39 20 7d 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f  9 }..// #endif /
24a90 2f 20 28 5f 57 49 4e 33 32 5f 57 49 4e 4e 54 20  / (_WIN32_WINNT 
24aa0 3e 3d 20 30 78 30 35 30 30 29 0d 0a 0d 0a 65 6e  >= 0x0500)....en
24ab0 75 6d 20 3a 20 75 69 6e 74 20 7b 20 4c 4f 47 4f  um : uint { LOGO
24ac0 4e 33 32 5f 50 52 4f 56 49 44 45 52 5f 44 45 46  N32_PROVIDER_DEF
24ad0 41 55 4c 54 20 3d 20 30 20 7d 0d 0a 65 6e 75 6d  AULT = 0 }..enum
24ae0 20 3a 20 75 69 6e 74 20 7b 20 4c 4f 47 4f 4e 33   : uint { LOGON3
24af0 32 5f 50 52 4f 56 49 44 45 52 5f 57 49 4e 4e 54  2_PROVIDER_WINNT
24b00 33 35 20 3d 20 31 20 7d 0d 0a 2f 2f 20 23 69 66  35 = 1 }..// #if
24b10 28 5f 57 49 4e 33 32 5f 57 49 4e 4e 54 20 3e 3d  (_WIN32_WINNT >=
24b20 20 30 78 30 34 30 30 29 0d 0a 65 6e 75 6d 20 3a   0x0400)..enum :
24b30 20 75 69 6e 74 20 7b 20 4c 4f 47 4f 4e 33 32 5f   uint { LOGON32_
24b40 50 52 4f 56 49 44 45 52 5f 57 49 4e 4e 54 34 30  PROVIDER_WINNT40
24b50 20 3d 20 32 20 7d 0d 0a 2f 2f 20 23 65 6e 64 69   = 2 }..// #endi
24b60 66 20 2f 2a 20 5f 57 49 4e 33 32 5f 57 49 4e 4e  f /* _WIN32_WINN
24b70 54 20 3e 3d 20 30 78 30 34 30 30 20 2a 2f 0d 0a  T >= 0x0400 */..
24b80 2f 2f 20 23 69 66 28 5f 57 49 4e 33 32 5f 57 49  // #if(_WIN32_WI
24b90 4e 4e 54 20 3e 3d 20 30 78 30 35 30 30 29 0d 0a  NNT >= 0x0500)..
24ba0 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 4c 4f  enum : uint { LO
24bb0 47 4f 4e 33 32 5f 50 52 4f 56 49 44 45 52 5f 57  GON32_PROVIDER_W
24bc0 49 4e 4e 54 35 30 20 3d 20 33 20 7d 0d 0a 2f 2f  INNT50 = 3 }..//
24bd0 20 23 65 6e 64 69 66 20 2f 2f 20 28 5f 57 49 4e   #endif // (_WIN
24be0 33 32 5f 57 49 4e 4e 54 20 3e 3d 20 30 78 30 35  32_WINNT >= 0x05
24bf0 30 30 29 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69  00)....extern(Wi
24c00 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f  ndows) export BO
24c10 4f 4c 20 4c 6f 67 6f 6e 55 73 65 72 41 28 0d 0a  OL LogonUserA(..
24c20 20 20 4c 50 53 54 52 20 6c 70 73 7a 55 73 65 72    LPSTR lpszUser
24c30 6e 61 6d 65 2c 0d 0a 20 20 4c 50 53 54 52 20 6c  name,..  LPSTR l
24c40 70 73 7a 44 6f 6d 61 69 6e 2c 0d 0a 20 20 4c 50  pszDomain,..  LP
24c50 53 54 52 20 6c 70 73 7a 50 61 73 73 77 6f 72 64  STR lpszPassword
24c60 2c 0d 0a 20 20 44 57 4f 52 44 20 64 77 4c 6f 67  ,..  DWORD dwLog
24c70 6f 6e 54 79 70 65 2c 0d 0a 20 20 44 57 4f 52 44  onType,..  DWORD
24c80 20 64 77 4c 6f 67 6f 6e 50 72 6f 76 69 64 65 72   dwLogonProvider
24c90 2c 0d 0a 20 20 50 48 41 4e 44 4c 45 20 70 68 54  ,..  PHANDLE phT
24ca0 6f 6b 65 6e 29 3b 0d 0a 65 78 74 65 72 6e 28 57  oken);..extern(W
24cb0 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42  indows) export B
24cc0 4f 4f 4c 20 4c 6f 67 6f 6e 55 73 65 72 57 28 0d  OOL LogonUserW(.
24cd0 0a 20 20 4c 50 57 53 54 52 20 6c 70 73 7a 55 73  .  LPWSTR lpszUs
24ce0 65 72 6e 61 6d 65 2c 0d 0a 20 20 4c 50 57 53 54  ername,..  LPWST
24cf0 52 20 6c 70 73 7a 44 6f 6d 61 69 6e 2c 0d 0a 20  R lpszDomain,.. 
24d00 20 4c 50 57 53 54 52 20 6c 70 73 7a 50 61 73 73   LPWSTR lpszPass
24d10 77 6f 72 64 2c 0d 0a 20 20 44 57 4f 52 44 20 64  word,..  DWORD d
24d20 77 4c 6f 67 6f 6e 54 79 70 65 2c 0d 0a 20 20 44  wLogonType,..  D
24d30 57 4f 52 44 20 64 77 4c 6f 67 6f 6e 50 72 6f 76  WORD dwLogonProv
24d40 69 64 65 72 2c 0d 0a 20 20 50 48 41 4e 44 4c 45  ider,..  PHANDLE
24d50 20 70 68 54 6f 6b 65 6e 29 3b 0d 0a 2f 2f 20 23   phToken);..// #
24d60 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61  ifdef UNICODE..a
24d70 6c 69 61 73 20 4c 6f 67 6f 6e 55 73 65 72 57 20  lias LogonUserW 
24d80 4c 6f 67 6f 6e 55 73 65 72 3b 0d 0a 2f 2f 20 23  LogonUser;..// #
24d90 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f  else..// #...../
24da0 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e 49  / #endif // !UNI
24db0 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72 6e 28 57  CODE....extern(W
24dc0 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42  indows) export B
24dd0 4f 4f 4c 20 4c 6f 67 6f 6e 55 73 65 72 45 78 41  OOL LogonUserExA
24de0 28 0d 0a 20 20 4c 50 53 54 52 20 6c 70 73 7a 55  (..  LPSTR lpszU
24df0 73 65 72 6e 61 6d 65 2c 0d 0a 20 20 4c 50 53 54  sername,..  LPST
24e00 52 20 6c 70 73 7a 44 6f 6d 61 69 6e 2c 0d 0a 20  R lpszDomain,.. 
24e10 20 4c 50 53 54 52 20 6c 70 73 7a 50 61 73 73 77   LPSTR lpszPassw
24e20 6f 72 64 2c 0d 0a 20 20 44 57 4f 52 44 20 64 77  ord,..  DWORD dw
24e30 4c 6f 67 6f 6e 54 79 70 65 2c 0d 0a 20 20 44 57  LogonType,..  DW
24e40 4f 52 44 20 64 77 4c 6f 67 6f 6e 50 72 6f 76 69  ORD dwLogonProvi
24e50 64 65 72 2c 0d 0a 20 20 50 48 41 4e 44 4c 45 20  der,..  PHANDLE 
24e60 70 68 54 6f 6b 65 6e 20 2c 0d 0a 20 20 50 53 49  phToken ,..  PSI
24e70 44 20 2a 70 70 4c 6f 67 6f 6e 53 69 64 20 2c 0d  D *ppLogonSid ,.
24e80 0a 20 20 50 56 4f 49 44 20 2a 70 70 50 72 6f 66  .  PVOID *ppProf
24e90 69 6c 65 42 75 66 66 65 72 20 2c 0d 0a 20 20 4c  ileBuffer ,..  L
24ea0 50 44 57 4f 52 44 20 70 64 77 50 72 6f 66 69 6c  PDWORD pdwProfil
24eb0 65 4c 65 6e 67 74 68 20 2c 0d 0a 20 20 50 51 55  eLength ,..  PQU
24ec0 4f 54 41 5f 4c 49 4d 49 54 53 20 70 51 75 6f 74  OTA_LIMITS pQuot
24ed0 61 4c 69 6d 69 74 73 20 29 3b 0d 0a 65 78 74 65  aLimits );..exte
24ee0 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
24ef0 72 74 20 42 4f 4f 4c 20 4c 6f 67 6f 6e 55 73 65  rt BOOL LogonUse
24f00 72 45 78 57 28 0d 0a 20 20 4c 50 57 53 54 52 20  rExW(..  LPWSTR 
24f10 6c 70 73 7a 55 73 65 72 6e 61 6d 65 2c 0d 0a 20  lpszUsername,.. 
24f20 20 4c 50 57 53 54 52 20 6c 70 73 7a 44 6f 6d 61   LPWSTR lpszDoma
24f30 69 6e 2c 0d 0a 20 20 4c 50 57 53 54 52 20 6c 70  in,..  LPWSTR lp
24f40 73 7a 50 61 73 73 77 6f 72 64 2c 0d 0a 20 20 44  szPassword,..  D
24f50 57 4f 52 44 20 64 77 4c 6f 67 6f 6e 54 79 70 65  WORD dwLogonType
24f60 2c 0d 0a 20 20 44 57 4f 52 44 20 64 77 4c 6f 67  ,..  DWORD dwLog
24f70 6f 6e 50 72 6f 76 69 64 65 72 2c 0d 0a 20 20 50  onProvider,..  P
24f80 48 41 4e 44 4c 45 20 70 68 54 6f 6b 65 6e 20 2c  HANDLE phToken ,
24f90 0d 0a 20 20 50 53 49 44 20 2a 70 70 4c 6f 67 6f  ..  PSID *ppLogo
24fa0 6e 53 69 64 20 2c 0d 0a 20 20 50 56 4f 49 44 20  nSid ,..  PVOID 
24fb0 2a 70 70 50 72 6f 66 69 6c 65 42 75 66 66 65 72  *ppProfileBuffer
24fc0 20 2c 0d 0a 20 20 4c 50 44 57 4f 52 44 20 70 64   ,..  LPDWORD pd
24fd0 77 50 72 6f 66 69 6c 65 4c 65 6e 67 74 68 20 2c  wProfileLength ,
24fe0 0d 0a 20 20 50 51 55 4f 54 41 5f 4c 49 4d 49 54  ..  PQUOTA_LIMIT
24ff0 53 20 70 51 75 6f 74 61 4c 69 6d 69 74 73 20 29  S pQuotaLimits )
25000 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e 49  ;..// #ifdef UNI
25010 43 4f 44 45 0d 0a 61 6c 69 61 73 20 4c 6f 67 6f  CODE..alias Logo
25020 6e 55 73 65 72 45 78 57 20 4c 6f 67 6f 6e 55 73  nUserExW LogonUs
25030 65 72 45 78 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d  erEx;..// #else.
25040 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e  .// #.....// #en
25050 64 69 66 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d  dif // !UNICODE.
25060 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ...extern(Window
25070 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 49  s) export BOOL I
25080 6d 70 65 72 73 6f 6e 61 74 65 4c 6f 67 67 65 64  mpersonateLogged
25090 4f 6e 55 73 65 72 28 0d 0a 20 20 48 41 4e 44 4c  OnUser(..  HANDL
250a0 45 20 68 54 6f 6b 65 6e 29 3b 0d 0a 0d 0a 65 78  E hToken);....ex
250b0 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
250c0 70 6f 72 74 20 42 4f 4f 4c 20 43 72 65 61 74 65  port BOOL Create
250d0 50 72 6f 63 65 73 73 41 73 55 73 65 72 41 28 0d  ProcessAsUserA(.
250e0 0a 20 20 48 41 4e 44 4c 45 20 68 54 6f 6b 65 6e  .  HANDLE hToken
250f0 2c 0d 0a 20 20 4c 50 43 53 54 52 20 6c 70 41 70  ,..  LPCSTR lpAp
25100 70 6c 69 63 61 74 69 6f 6e 4e 61 6d 65 2c 0d 0a  plicationName,..
25110 20 20 4c 50 53 54 52 20 6c 70 43 6f 6d 6d 61 6e    LPSTR lpComman
25120 64 4c 69 6e 65 2c 0d 0a 20 20 4c 50 53 45 43 55  dLine,..  LPSECU
25130 52 49 54 59 5f 41 54 54 52 49 42 55 54 45 53 20  RITY_ATTRIBUTES 
25140 6c 70 50 72 6f 63 65 73 73 41 74 74 72 69 62 75  lpProcessAttribu
25150 74 65 73 2c 0d 0a 20 20 4c 50 53 45 43 55 52 49  tes,..  LPSECURI
25160 54 59 5f 41 54 54 52 49 42 55 54 45 53 20 6c 70  TY_ATTRIBUTES lp
25170 54 68 72 65 61 64 41 74 74 72 69 62 75 74 65 73  ThreadAttributes
25180 2c 0d 0a 20 20 42 4f 4f 4c 20 62 49 6e 68 65 72  ,..  BOOL bInher
25190 69 74 48 61 6e 64 6c 65 73 2c 0d 0a 20 20 44 57  itHandles,..  DW
251a0 4f 52 44 20 64 77 43 72 65 61 74 69 6f 6e 46 6c  ORD dwCreationFl
251b0 61 67 73 2c 0d 0a 20 20 4c 50 56 4f 49 44 20 6c  ags,..  LPVOID l
251c0 70 45 6e 76 69 72 6f 6e 6d 65 6e 74 2c 0d 0a 20  pEnvironment,.. 
251d0 20 4c 50 43 53 54 52 20 6c 70 43 75 72 72 65 6e   LPCSTR lpCurren
251e0 74 44 69 72 65 63 74 6f 72 79 2c 0d 0a 20 20 4c  tDirectory,..  L
251f0 50 53 54 41 52 54 55 50 49 4e 46 4f 41 20 6c 70  PSTARTUPINFOA lp
25200 53 74 61 72 74 75 70 49 6e 66 6f 2c 0d 0a 20 20  StartupInfo,..  
25210 4c 50 50 52 4f 43 45 53 53 5f 49 4e 46 4f 52 4d  LPPROCESS_INFORM
25220 41 54 49 4f 4e 20 6c 70 50 72 6f 63 65 73 73 49  ATION lpProcessI
25230 6e 66 6f 72 6d 61 74 69 6f 6e 29 3b 0d 0a 65 78  nformation);..ex
25240 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
25250 70 6f 72 74 20 42 4f 4f 4c 20 43 72 65 61 74 65  port BOOL Create
25260 50 72 6f 63 65 73 73 41 73 55 73 65 72 57 28 0d  ProcessAsUserW(.
25270 0a 20 20 48 41 4e 44 4c 45 20 68 54 6f 6b 65 6e  .  HANDLE hToken
25280 2c 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 41  ,..  LPCWSTR lpA
25290 70 70 6c 69 63 61 74 69 6f 6e 4e 61 6d 65 2c 0d  pplicationName,.
252a0 0a 20 20 4c 50 57 53 54 52 20 6c 70 43 6f 6d 6d  .  LPWSTR lpComm
252b0 61 6e 64 4c 69 6e 65 2c 0d 0a 20 20 4c 50 53 45  andLine,..  LPSE
252c0 43 55 52 49 54 59 5f 41 54 54 52 49 42 55 54 45  CURITY_ATTRIBUTE
252d0 53 20 6c 70 50 72 6f 63 65 73 73 41 74 74 72 69  S lpProcessAttri
252e0 62 75 74 65 73 2c 0d 0a 20 20 4c 50 53 45 43 55  butes,..  LPSECU
252f0 52 49 54 59 5f 41 54 54 52 49 42 55 54 45 53 20  RITY_ATTRIBUTES 
25300 6c 70 54 68 72 65 61 64 41 74 74 72 69 62 75 74  lpThreadAttribut
25310 65 73 2c 0d 0a 20 20 42 4f 4f 4c 20 62 49 6e 68  es,..  BOOL bInh
25320 65 72 69 74 48 61 6e 64 6c 65 73 2c 0d 0a 20 20  eritHandles,..  
25330 44 57 4f 52 44 20 64 77 43 72 65 61 74 69 6f 6e  DWORD dwCreation
25340 46 6c 61 67 73 2c 0d 0a 20 20 4c 50 56 4f 49 44  Flags,..  LPVOID
25350 20 6c 70 45 6e 76 69 72 6f 6e 6d 65 6e 74 2c 0d   lpEnvironment,.
25360 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 43 75 72  .  LPCWSTR lpCur
25370 72 65 6e 74 44 69 72 65 63 74 6f 72 79 2c 0d 0a  rentDirectory,..
25380 20 20 4c 50 53 54 41 52 54 55 50 49 4e 46 4f 57    LPSTARTUPINFOW
25390 20 6c 70 53 74 61 72 74 75 70 49 6e 66 6f 2c 0d   lpStartupInfo,.
253a0 0a 20 20 4c 50 50 52 4f 43 45 53 53 5f 49 4e 46  .  LPPROCESS_INF
253b0 4f 52 4d 41 54 49 4f 4e 20 6c 70 50 72 6f 63 65  ORMATION lpProce
253c0 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 29 3b 0d  ssInformation);.
253d0 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e 49 43 4f  .// #ifdef UNICO
253e0 44 45 0d 0a 61 6c 69 61 73 20 43 72 65 61 74 65  DE..alias Create
253f0 50 72 6f 63 65 73 73 41 73 55 73 65 72 57 20 43  ProcessAsUserW C
25400 72 65 61 74 65 50 72 6f 63 65 73 73 41 73 55 73  reateProcessAsUs
25410 65 72 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f  er;..// #else../
25420 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69  / #.....// #endi
25430 66 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 0d  f // !UNICODE...
25440 0a 2f 2f 20 23 69 66 28 5f 57 49 4e 33 32 5f 57  .// #if(_WIN32_W
25450 49 4e 4e 54 20 3e 3d 20 30 78 30 35 30 30 29 0d  INNT >= 0x0500).
25460 0a 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b  ...enum : uint {
25470 20 4c 4f 47 4f 4e 5f 57 49 54 48 5f 50 52 4f 46   LOGON_WITH_PROF
25480 49 4c 45 20 3d 20 30 78 30 30 30 30 30 30 30 31  ILE = 0x00000001
25490 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20   }..enum : uint 
254a0 7b 20 4c 4f 47 4f 4e 5f 4e 45 54 43 52 45 44 45  { LOGON_NETCREDE
254b0 4e 54 49 41 4c 53 5f 4f 4e 4c 59 20 3d 20 30 78  NTIALS_ONLY = 0x
254c0 30 30 30 30 30 30 30 32 20 7d 0d 0a 0d 0a 65 78  00000002 }....ex
254d0 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
254e0 70 6f 72 74 20 42 4f 4f 4c 20 43 72 65 61 74 65  port BOOL Create
254f0 50 72 6f 63 65 73 73 57 69 74 68 4c 6f 67 6f 6e  ProcessWithLogon
25500 57 28 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70  W(..  LPCWSTR lp
25510 55 73 65 72 6e 61 6d 65 2c 0d 0a 20 20 4c 50 43  Username,..  LPC
25520 57 53 54 52 20 6c 70 44 6f 6d 61 69 6e 2c 0d 0a  WSTR lpDomain,..
25530 20 20 4c 50 43 57 53 54 52 20 6c 70 50 61 73 73    LPCWSTR lpPass
25540 77 6f 72 64 2c 0d 0a 20 20 44 57 4f 52 44 20 64  word,..  DWORD d
25550 77 4c 6f 67 6f 6e 46 6c 61 67 73 2c 0d 0a 20 20  wLogonFlags,..  
25560 4c 50 43 57 53 54 52 20 6c 70 41 70 70 6c 69 63  LPCWSTR lpApplic
25570 61 74 69 6f 6e 4e 61 6d 65 2c 0d 0a 20 20 4c 50  ationName,..  LP
25580 57 53 54 52 20 6c 70 43 6f 6d 6d 61 6e 64 4c 69  WSTR lpCommandLi
25590 6e 65 2c 0d 0a 20 20 44 57 4f 52 44 20 64 77 43  ne,..  DWORD dwC
255a0 72 65 61 74 69 6f 6e 46 6c 61 67 73 2c 0d 0a 20  reationFlags,.. 
255b0 20 4c 50 56 4f 49 44 20 6c 70 45 6e 76 69 72 6f   LPVOID lpEnviro
255c0 6e 6d 65 6e 74 2c 0d 0a 20 20 4c 50 43 57 53 54  nment,..  LPCWST
255d0 52 20 6c 70 43 75 72 72 65 6e 74 44 69 72 65 63  R lpCurrentDirec
255e0 74 6f 72 79 2c 0d 0a 20 20 4c 50 53 54 41 52 54  tory,..  LPSTART
255f0 55 50 49 4e 46 4f 57 20 6c 70 53 74 61 72 74 75  UPINFOW lpStartu
25600 70 49 6e 66 6f 2c 0d 0a 20 20 4c 50 50 52 4f 43  pInfo,..  LPPROC
25610 45 53 53 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 20  ESS_INFORMATION 
25620 6c 70 50 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61  lpProcessInforma
25630 74 69 6f 6e 29 3b 0d 0a 0d 0a 2f 2f 20 23 65 6e  tion);....// #en
25640 64 69 66 20 2f 2f 20 28 5f 57 49 4e 33 32 5f 57  dif // (_WIN32_W
25650 49 4e 4e 54 20 3e 3d 20 30 78 30 35 30 30 29 0d  INNT >= 0x0500).
25660 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ...extern(Window
25670 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 49  s) export BOOL I
25680 6d 70 65 72 73 6f 6e 61 74 65 41 6e 6f 6e 79 6d  mpersonateAnonym
25690 6f 75 73 54 6f 6b 65 6e 28 0d 0a 20 20 48 41 4e  ousToken(..  HAN
256a0 44 4c 45 20 54 68 72 65 61 64 48 61 6e 64 6c 65  DLE ThreadHandle
256b0 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e  );....extern(Win
256c0 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f  dows) export BOO
256d0 4c 20 44 75 70 6c 69 63 61 74 65 54 6f 6b 65 6e  L DuplicateToken
256e0 45 78 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68 45  Ex(..  HANDLE hE
256f0 78 69 73 74 69 6e 67 54 6f 6b 65 6e 2c 0d 0a 20  xistingToken,.. 
25700 20 44 57 4f 52 44 20 64 77 44 65 73 69 72 65 64   DWORD dwDesired
25710 41 63 63 65 73 73 2c 0d 0a 20 20 4c 50 53 45 43  Access,..  LPSEC
25720 55 52 49 54 59 5f 41 54 54 52 49 42 55 54 45 53  URITY_ATTRIBUTES
25730 20 6c 70 54 6f 6b 65 6e 41 74 74 72 69 62 75 74   lpTokenAttribut
25740 65 73 2c 0d 0a 20 20 53 45 43 55 52 49 54 59 5f  es,..  SECURITY_
25750 49 4d 50 45 52 53 4f 4e 41 54 49 4f 4e 5f 4c 45  IMPERSONATION_LE
25760 56 45 4c 20 49 6d 70 65 72 73 6f 6e 61 74 69 6f  VEL Impersonatio
25770 6e 4c 65 76 65 6c 2c 0d 0a 20 20 54 4f 4b 45 4e  nLevel,..  TOKEN
25780 5f 54 59 50 45 20 54 6f 6b 65 6e 54 79 70 65 2c  _TYPE TokenType,
25790 0d 0a 20 20 50 48 41 4e 44 4c 45 20 70 68 4e 65  ..  PHANDLE phNe
257a0 77 54 6f 6b 65 6e 29 3b 0d 0a 0d 0a 65 78 74 65  wToken);....exte
257b0 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
257c0 72 74 20 42 4f 4f 4c 20 43 72 65 61 74 65 52 65  rt BOOL CreateRe
257d0 73 74 72 69 63 74 65 64 54 6f 6b 65 6e 28 0d 0a  strictedToken(..
257e0 20 20 48 41 4e 44 4c 45 20 45 78 69 73 74 69 6e    HANDLE Existin
257f0 67 54 6f 6b 65 6e 48 61 6e 64 6c 65 2c 0d 0a 20  gTokenHandle,.. 
25800 20 44 57 4f 52 44 20 46 6c 61 67 73 2c 0d 0a 20   DWORD Flags,.. 
25810 20 44 57 4f 52 44 20 44 69 73 61 62 6c 65 53 69   DWORD DisableSi
25820 64 43 6f 75 6e 74 2c 0d 0a 20 20 50 53 49 44 5f  dCount,..  PSID_
25830 41 4e 44 5f 41 54 54 52 49 42 55 54 45 53 20 53  AND_ATTRIBUTES S
25840 69 64 73 54 6f 44 69 73 61 62 6c 65 20 2c 0d 0a  idsToDisable ,..
25850 20 20 44 57 4f 52 44 20 44 65 6c 65 74 65 50 72    DWORD DeletePr
25860 69 76 69 6c 65 67 65 43 6f 75 6e 74 2c 0d 0a 20  ivilegeCount,.. 
25870 20 50 4c 55 49 44 5f 41 4e 44 5f 41 54 54 52 49   PLUID_AND_ATTRI
25880 42 55 54 45 53 20 50 72 69 76 69 6c 65 67 65 73  BUTES Privileges
25890 54 6f 44 65 6c 65 74 65 20 2c 0d 0a 20 20 44 57  ToDelete ,..  DW
258a0 4f 52 44 20 52 65 73 74 72 69 63 74 65 64 53 69  ORD RestrictedSi
258b0 64 43 6f 75 6e 74 2c 0d 0a 20 20 50 53 49 44 5f  dCount,..  PSID_
258c0 41 4e 44 5f 41 54 54 52 49 42 55 54 45 53 20 53  AND_ATTRIBUTES S
258d0 69 64 73 54 6f 52 65 73 74 72 69 63 74 20 2c 0d  idsToRestrict ,.
258e0 0a 20 20 50 48 41 4e 44 4c 45 20 4e 65 77 54 6f  .  PHANDLE NewTo
258f0 6b 65 6e 48 61 6e 64 6c 65 29 3b 0d 0a 0d 0a 65  kenHandle);....e
25900 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
25910 78 70 6f 72 74 20 42 4f 4f 4c 20 49 73 54 6f 6b  xport BOOL IsTok
25920 65 6e 52 65 73 74 72 69 63 74 65 64 28 0d 0a 20  enRestricted(.. 
25930 20 48 41 4e 44 4c 45 20 54 6f 6b 65 6e 48 61 6e   HANDLE TokenHan
25940 64 6c 65 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28  dle);....extern(
25950 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
25960 42 4f 4f 4c 20 49 73 54 6f 6b 65 6e 55 6e 74 72  BOOL IsTokenUntr
25970 75 73 74 65 64 28 0d 0a 20 20 48 41 4e 44 4c 45  usted(..  HANDLE
25980 20 54 6f 6b 65 6e 48 61 6e 64 6c 65 29 3b 0d 0a   TokenHandle);..
25990 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
259a0 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 43 68  ) export BOOL Ch
259b0 65 63 6b 54 6f 6b 65 6e 4d 65 6d 62 65 72 73 68  eckTokenMembersh
259c0 69 70 28 0d 0a 20 20 48 41 4e 44 4c 45 20 54 6f  ip(..  HANDLE To
259d0 6b 65 6e 48 61 6e 64 6c 65 20 2c 0d 0a 20 20 50  kenHandle ,..  P
259e0 53 49 44 20 53 69 64 54 6f 43 68 65 63 6b 2c 0d  SID SidToCheck,.
259f0 0a 20 20 50 42 4f 4f 4c 20 49 73 4d 65 6d 62 65  .  PBOOL IsMembe
25a00 72 29 3b 0d 0a 0d 0a 2f 2f 20 23 69 66 20 28 5f  r);....// #if (_
25a10 57 49 4e 33 32 5f 57 49 4e 4e 54 20 3e 3d 20 30  WIN32_WINNT >= 0
25a20 78 30 35 30 30 29 0d 0a 0d 0a 61 6c 69 61 73 20  x0500)....alias 
25a30 57 41 49 54 4f 52 54 49 4d 45 52 43 41 4c 4c 42  WAITORTIMERCALLB
25a40 41 43 4b 46 55 4e 43 20 57 41 49 54 4f 52 54 49  ACKFUNC WAITORTI
25a50 4d 45 52 43 41 4c 4c 42 41 43 4b 3b 0d 0a 0d 0a  MERCALLBACK;....
25a60 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
25a70 65 78 70 6f 72 74 20 42 4f 4f 4c 20 52 65 67 69  export BOOL Regi
25a80 73 74 65 72 57 61 69 74 46 6f 72 53 69 6e 67 6c  sterWaitForSingl
25a90 65 4f 62 6a 65 63 74 28 0d 0a 20 20 50 48 41 4e  eObject(..  PHAN
25aa0 44 4c 45 20 70 68 4e 65 77 57 61 69 74 4f 62 6a  DLE phNewWaitObj
25ab0 65 63 74 2c 0d 0a 20 20 48 41 4e 44 4c 45 20 68  ect,..  HANDLE h
25ac0 4f 62 6a 65 63 74 2c 0d 0a 20 20 57 41 49 54 4f  Object,..  WAITO
25ad0 52 54 49 4d 45 52 43 41 4c 4c 42 41 43 4b 20 43  RTIMERCALLBACK C
25ae0 61 6c 6c 62 61 63 6b 2c 0d 0a 20 20 50 56 4f 49  allback,..  PVOI
25af0 44 20 43 6f 6e 74 65 78 74 2c 0d 0a 20 20 55 4c  D Context,..  UL
25b00 4f 4e 47 20 64 77 4d 69 6c 6c 69 73 65 63 6f 6e  ONG dwMillisecon
25b10 64 73 2c 0d 0a 20 20 55 4c 4f 4e 47 20 64 77 46  ds,..  ULONG dwF
25b20 6c 61 67 73 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e  lags);....extern
25b30 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
25b40 20 48 41 4e 44 4c 45 20 52 65 67 69 73 74 65 72   HANDLE Register
25b50 57 61 69 74 46 6f 72 53 69 6e 67 6c 65 4f 62 6a  WaitForSingleObj
25b60 65 63 74 45 78 28 0d 0a 20 20 48 41 4e 44 4c 45  ectEx(..  HANDLE
25b70 20 68 4f 62 6a 65 63 74 2c 0d 0a 20 20 57 41 49   hObject,..  WAI
25b80 54 4f 52 54 49 4d 45 52 43 41 4c 4c 42 41 43 4b  TORTIMERCALLBACK
25b90 20 43 61 6c 6c 62 61 63 6b 2c 0d 0a 20 20 50 56   Callback,..  PV
25ba0 4f 49 44 20 43 6f 6e 74 65 78 74 2c 0d 0a 20 20  OID Context,..  
25bb0 55 4c 4f 4e 47 20 64 77 4d 69 6c 6c 69 73 65 63  ULONG dwMillisec
25bc0 6f 6e 64 73 2c 0d 0a 20 20 55 4c 4f 4e 47 20 64  onds,..  ULONG d
25bd0 77 46 6c 61 67 73 29 3b 0d 0a 0d 0a 65 78 74 65  wFlags);....exte
25be0 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
25bf0 72 74 20 42 4f 4f 4c 20 55 6e 72 65 67 69 73 74  rt BOOL Unregist
25c00 65 72 57 61 69 74 28 0d 0a 20 20 48 41 4e 44 4c  erWait(..  HANDL
25c10 45 20 57 61 69 74 48 61 6e 64 6c 65 29 3b 0d 0a  E WaitHandle);..
25c20 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
25c30 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 55 6e  ) export BOOL Un
25c40 72 65 67 69 73 74 65 72 57 61 69 74 45 78 28 0d  registerWaitEx(.
25c50 0a 20 20 48 41 4e 44 4c 45 20 57 61 69 74 48 61  .  HANDLE WaitHa
25c60 6e 64 6c 65 2c 0d 0a 20 20 48 41 4e 44 4c 45 20  ndle,..  HANDLE 
25c70 43 6f 6d 70 6c 65 74 69 6f 6e 45 76 65 6e 74 29  CompletionEvent)
25c80 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  ;....extern(Wind
25c90 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c  ows) export BOOL
25ca0 20 51 75 65 75 65 55 73 65 72 57 6f 72 6b 49 74   QueueUserWorkIt
25cb0 65 6d 28 0d 0a 20 20 4c 50 54 48 52 45 41 44 5f  em(..  LPTHREAD_
25cc0 53 54 41 52 54 5f 52 4f 55 54 49 4e 45 20 46 75  START_ROUTINE Fu
25cd0 6e 63 74 69 6f 6e 2c 0d 0a 20 20 50 56 4f 49 44  nction,..  PVOID
25ce0 20 43 6f 6e 74 65 78 74 2c 0d 0a 20 20 55 4c 4f   Context,..  ULO
25cf0 4e 47 20 46 6c 61 67 73 29 3b 0d 0a 0d 0a 65 78  NG Flags);....ex
25d00 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
25d10 70 6f 72 74 20 42 4f 4f 4c 20 42 69 6e 64 49 6f  port BOOL BindIo
25d20 43 6f 6d 70 6c 65 74 69 6f 6e 43 61 6c 6c 62 61  CompletionCallba
25d30 63 6b 28 0d 0a 20 20 48 41 4e 44 4c 45 20 46 69  ck(..  HANDLE Fi
25d40 6c 65 48 61 6e 64 6c 65 2c 0d 0a 20 20 4c 50 4f  leHandle,..  LPO
25d50 56 45 52 4c 41 50 50 45 44 5f 43 4f 4d 50 4c 45  VERLAPPED_COMPLE
25d60 54 49 4f 4e 5f 52 4f 55 54 49 4e 45 20 46 75 6e  TION_ROUTINE Fun
25d70 63 74 69 6f 6e 2c 0d 0a 20 20 55 4c 4f 4e 47 20  ction,..  ULONG 
25d80 46 6c 61 67 73 29 3b 0d 0a 0d 0a 65 78 74 65 72  Flags);....exter
25d90 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
25da0 74 20 48 41 4e 44 4c 45 20 43 72 65 61 74 65 54  t HANDLE CreateT
25db0 69 6d 65 72 51 75 65 75 65 28 29 3b 0d 0a 0d 0a  imerQueue();....
25dc0 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
25dd0 65 78 70 6f 72 74 20 42 4f 4f 4c 20 43 72 65 61  export BOOL Crea
25de0 74 65 54 69 6d 65 72 51 75 65 75 65 54 69 6d 65  teTimerQueueTime
25df0 72 28 0d 0a 20 20 50 48 41 4e 44 4c 45 20 70 68  r(..  PHANDLE ph
25e00 4e 65 77 54 69 6d 65 72 2c 0d 0a 20 20 48 41 4e  NewTimer,..  HAN
25e10 44 4c 45 20 54 69 6d 65 72 51 75 65 75 65 2c 0d  DLE TimerQueue,.
25e20 0a 20 20 57 41 49 54 4f 52 54 49 4d 45 52 43 41  .  WAITORTIMERCA
25e30 4c 4c 42 41 43 4b 20 43 61 6c 6c 62 61 63 6b 2c  LLBACK Callback,
25e40 0d 0a 20 20 50 56 4f 49 44 20 50 61 72 61 6d 65  ..  PVOID Parame
25e50 74 65 72 2c 0d 0a 20 20 44 57 4f 52 44 20 44 75  ter,..  DWORD Du
25e60 65 54 69 6d 65 2c 0d 0a 20 20 44 57 4f 52 44 20  eTime,..  DWORD 
25e70 50 65 72 69 6f 64 2c 0d 0a 20 20 55 4c 4f 4e 47  Period,..  ULONG
25e80 20 46 6c 61 67 73 29 3b 0d 0a 0d 0a 65 78 74 65   Flags);....exte
25e90 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
25ea0 72 74 20 42 4f 4f 4c 20 43 68 61 6e 67 65 54 69  rt BOOL ChangeTi
25eb0 6d 65 72 51 75 65 75 65 54 69 6d 65 72 28 0d 0a  merQueueTimer(..
25ec0 20 20 48 41 4e 44 4c 45 20 54 69 6d 65 72 51 75    HANDLE TimerQu
25ed0 65 75 65 2c 0d 0a 20 20 48 41 4e 44 4c 45 20 54  eue,..  HANDLE T
25ee0 69 6d 65 72 2c 0d 0a 20 20 55 4c 4f 4e 47 20 44  imer,..  ULONG D
25ef0 75 65 54 69 6d 65 2c 0d 0a 20 20 55 4c 4f 4e 47  ueTime,..  ULONG
25f00 20 50 65 72 69 6f 64 29 3b 0d 0a 0d 0a 65 78 74   Period);....ext
25f10 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
25f20 6f 72 74 20 42 4f 4f 4c 20 44 65 6c 65 74 65 54  ort BOOL DeleteT
25f30 69 6d 65 72 51 75 65 75 65 54 69 6d 65 72 28 0d  imerQueueTimer(.
25f40 0a 20 20 48 41 4e 44 4c 45 20 54 69 6d 65 72 51  .  HANDLE TimerQ
25f50 75 65 75 65 2c 0d 0a 20 20 48 41 4e 44 4c 45 20  ueue,..  HANDLE 
25f60 54 69 6d 65 72 2c 0d 0a 20 20 48 41 4e 44 4c 45  Timer,..  HANDLE
25f70 20 43 6f 6d 70 6c 65 74 69 6f 6e 45 76 65 6e 74   CompletionEvent
25f80 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e  );....extern(Win
25f90 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f  dows) export BOO
25fa0 4c 20 44 65 6c 65 74 65 54 69 6d 65 72 51 75 65  L DeleteTimerQue
25fb0 75 65 45 78 28 0d 0a 20 20 48 41 4e 44 4c 45 20  ueEx(..  HANDLE 
25fc0 54 69 6d 65 72 51 75 65 75 65 2c 0d 0a 20 20 48  TimerQueue,..  H
25fd0 41 4e 44 4c 45 20 43 6f 6d 70 6c 65 74 69 6f 6e  ANDLE Completion
25fe0 45 76 65 6e 74 29 3b 0d 0a 0d 0a 65 78 74 65 72  Event);....exter
25ff0 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
26000 74 20 48 41 4e 44 4c 45 20 53 65 74 54 69 6d 65  t HANDLE SetTime
26010 72 51 75 65 75 65 54 69 6d 65 72 28 0d 0a 20 20  rQueueTimer(..  
26020 48 41 4e 44 4c 45 20 54 69 6d 65 72 51 75 65 75  HANDLE TimerQueu
26030 65 2c 0d 0a 20 20 57 41 49 54 4f 52 54 49 4d 45  e,..  WAITORTIME
26040 52 43 41 4c 4c 42 41 43 4b 20 43 61 6c 6c 62 61  RCALLBACK Callba
26050 63 6b 2c 0d 0a 20 20 50 56 4f 49 44 20 50 61 72  ck,..  PVOID Par
26060 61 6d 65 74 65 72 2c 0d 0a 20 20 44 57 4f 52 44  ameter,..  DWORD
26070 20 44 75 65 54 69 6d 65 2c 0d 0a 20 20 44 57 4f   DueTime,..  DWO
26080 52 44 20 50 65 72 69 6f 64 2c 0d 0a 20 20 42 4f  RD Period,..  BO
26090 4f 4c 20 50 72 65 66 65 72 49 6f 29 3b 0d 0a 0d  OL PreferIo);...
260a0 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29  .extern(Windows)
260b0 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 43 61 6e   export BOOL Can
260c0 63 65 6c 54 69 6d 65 72 51 75 65 75 65 54 69 6d  celTimerQueueTim
260d0 65 72 28 0d 0a 20 20 48 41 4e 44 4c 45 20 54 69  er(..  HANDLE Ti
260e0 6d 65 72 51 75 65 75 65 2c 0d 0a 20 20 48 41 4e  merQueue,..  HAN
260f0 44 4c 45 20 54 69 6d 65 72 29 3b 0d 0a 0d 0a 65  DLE Timer);....e
26100 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
26110 78 70 6f 72 74 20 42 4f 4f 4c 20 44 65 6c 65 74  xport BOOL Delet
26120 65 54 69 6d 65 72 51 75 65 75 65 28 0d 0a 20 20  eTimerQueue(..  
26130 48 41 4e 44 4c 45 20 54 69 6d 65 72 51 75 65 75  HANDLE TimerQueu
26140 65 29 3b 0d 0a 0d 0a 2f 2f 20 23 65 6e 64 69 66  e);....// #endif
26150 20 2f 2f 20 5f 57 49 4e 33 32 5f 57 49 4e 4e 54   // _WIN32_WINNT
26160 0d 0a 0d 0a 2f 2f 20 23 69 66 28 5f 57 49 4e 33  ....// #if(_WIN3
26170 32 5f 57 49 4e 4e 54 20 3e 3d 20 30 78 30 34 30  2_WINNT >= 0x040
26180 30 29 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e  0)....enum : uin
26190 74 20 7b 20 48 57 5f 50 52 4f 46 49 4c 45 5f 47  t { HW_PROFILE_G
261a0 55 49 44 4c 45 4e 20 3d 20 33 39 20 7d 0d 0a 65  UIDLEN = 39 }..e
261b0 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 4d 41 58  num : uint { MAX
261c0 5f 50 52 4f 46 49 4c 45 5f 4c 45 4e 20 3d 20 38  _PROFILE_LEN = 8
261d0 30 20 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 75 69  0 }....enum : ui
261e0 6e 74 20 7b 20 44 4f 43 4b 49 4e 46 4f 5f 55 4e  nt { DOCKINFO_UN
261f0 44 4f 43 4b 45 44 20 3d 20 30 78 31 20 7d 0d 0a  DOCKED = 0x1 }..
26200 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 44 4f  enum : uint { DO
26210 43 4b 49 4e 46 4f 5f 44 4f 43 4b 45 44 20 3d 20  CKINFO_DOCKED = 
26220 30 78 32 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69  0x2 }..enum : ui
26230 6e 74 20 7b 20 44 4f 43 4b 49 4e 46 4f 5f 55 53  nt { DOCKINFO_US
26240 45 52 5f 53 55 50 50 4c 49 45 44 20 3d 20 30 78  ER_SUPPLIED = 0x
26250 34 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  4 }..enum : uint
26260 20 7b 20 44 4f 43 4b 49 4e 46 4f 5f 55 53 45 52   { DOCKINFO_USER
26270 5f 55 4e 44 4f 43 4b 45 44 20 3d 20 44 4f 43 4b  _UNDOCKED = DOCK
26280 49 4e 46 4f 5f 55 53 45 52 5f 53 55 50 50 4c 49  INFO_USER_SUPPLI
26290 45 44 20 7c 20 44 4f 43 4b 49 4e 46 4f 5f 55 4e  ED | DOCKINFO_UN
262a0 44 4f 43 4b 45 44 20 7d 0d 0a 65 6e 75 6d 20 3a  DOCKED }..enum :
262b0 20 75 69 6e 74 20 7b 20 44 4f 43 4b 49 4e 46 4f   uint { DOCKINFO
262c0 5f 55 53 45 52 5f 44 4f 43 4b 45 44 20 3d 20 44  _USER_DOCKED = D
262d0 4f 43 4b 49 4e 46 4f 5f 55 53 45 52 5f 53 55 50  OCKINFO_USER_SUP
262e0 50 4c 49 45 44 20 7c 20 44 4f 43 4b 49 4e 46 4f  PLIED | DOCKINFO
262f0 5f 44 4f 43 4b 45 44 20 7d 0d 0a 0d 0a 73 74 72  _DOCKED }....str
26300 75 63 74 20 74 61 67 48 57 5f 50 52 4f 46 49 4c  uct tagHW_PROFIL
26310 45 5f 49 4e 46 4f 41 20 7b 0d 0a 20 20 44 57 4f  E_INFOA {..  DWO
26320 52 44 20 64 77 44 6f 63 6b 49 6e 66 6f 3b 0d 0a  RD dwDockInfo;..
26330 20 20 43 48 41 52 20 73 7a 48 77 50 72 6f 66 69    CHAR szHwProfi
26340 6c 65 47 75 69 64 5b 48 57 5f 50 52 4f 46 49 4c  leGuid[HW_PROFIL
26350 45 5f 47 55 49 44 4c 45 4e 5d 3b 0d 0a 20 20 43  E_GUIDLEN];..  C
26360 48 41 52 20 73 7a 48 77 50 72 6f 66 69 6c 65 4e  HAR szHwProfileN
26370 61 6d 65 5b 4d 41 58 5f 50 52 4f 46 49 4c 45 5f  ame[MAX_PROFILE_
26380 4c 45 4e 5d 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20  LEN];..}..alias 
26390 74 61 67 48 57 5f 50 52 4f 46 49 4c 45 5f 49 4e  tagHW_PROFILE_IN
263a0 46 4f 41 20 48 57 5f 50 52 4f 46 49 4c 45 5f 49  FOA HW_PROFILE_I
263b0 4e 46 4f 41 3b 0d 0a 61 6c 69 61 73 20 74 61 67  NFOA;..alias tag
263c0 48 57 5f 50 52 4f 46 49 4c 45 5f 49 4e 46 4f 41  HW_PROFILE_INFOA
263d0 2a 20 4c 50 48 57 5f 50 52 4f 46 49 4c 45 5f 49  * LPHW_PROFILE_I
263e0 4e 46 4f 41 3b 0d 0a 0d 0a 73 74 72 75 63 74 20  NFOA;....struct 
263f0 74 61 67 48 57 5f 50 52 4f 46 49 4c 45 5f 49 4e  tagHW_PROFILE_IN
26400 46 4f 57 20 7b 0d 0a 20 20 44 57 4f 52 44 20 64  FOW {..  DWORD d
26410 77 44 6f 63 6b 49 6e 66 6f 3b 0d 0a 20 20 57 43  wDockInfo;..  WC
26420 48 41 52 20 73 7a 48 77 50 72 6f 66 69 6c 65 47  HAR szHwProfileG
26430 75 69 64 5b 48 57 5f 50 52 4f 46 49 4c 45 5f 47  uid[HW_PROFILE_G
26440 55 49 44 4c 45 4e 5d 3b 0d 0a 20 20 57 43 48 41  UIDLEN];..  WCHA
26450 52 20 73 7a 48 77 50 72 6f 66 69 6c 65 4e 61 6d  R szHwProfileNam
26460 65 5b 4d 41 58 5f 50 52 4f 46 49 4c 45 5f 4c 45  e[MAX_PROFILE_LE
26470 4e 5d 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 74 61  N];..}..alias ta
26480 67 48 57 5f 50 52 4f 46 49 4c 45 5f 49 4e 46 4f  gHW_PROFILE_INFO
26490 57 20 48 57 5f 50 52 4f 46 49 4c 45 5f 49 4e 46  W HW_PROFILE_INF
264a0 4f 57 3b 0d 0a 61 6c 69 61 73 20 74 61 67 48 57  OW;..alias tagHW
264b0 5f 50 52 4f 46 49 4c 45 5f 49 4e 46 4f 57 2a 20  _PROFILE_INFOW* 
264c0 4c 50 48 57 5f 50 52 4f 46 49 4c 45 5f 49 4e 46  LPHW_PROFILE_INF
264d0 4f 57 3b 0d 0a 0d 0a 2f 2f 20 23 69 66 64 65 66  OW;....// #ifdef
264e0 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69 61 73 20   UNICODE..alias 
264f0 48 57 5f 50 52 4f 46 49 4c 45 5f 49 4e 46 4f 57  HW_PROFILE_INFOW
26500 20 48 57 5f 50 52 4f 46 49 4c 45 5f 49 4e 46 4f   HW_PROFILE_INFO
26510 3b 0d 0a 61 6c 69 61 73 20 4c 50 48 57 5f 50 52  ;..alias LPHW_PR
26520 4f 46 49 4c 45 5f 49 4e 46 4f 57 20 4c 50 48 57  OFILE_INFOW LPHW
26530 5f 50 52 4f 46 49 4c 45 5f 49 4e 46 4f 3b 0d 0a  _PROFILE_INFO;..
26540 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 2e 2e 2e  // #else..// ...
26550 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 55  ..// #endif // U
26560 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72 6e  NICODE....extern
26570 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
26580 20 42 4f 4f 4c 20 47 65 74 43 75 72 72 65 6e 74   BOOL GetCurrent
26590 48 77 50 72 6f 66 69 6c 65 41 28 0d 0a 20 20 4c  HwProfileA(..  L
265a0 50 48 57 5f 50 52 4f 46 49 4c 45 5f 49 4e 46 4f  PHW_PROFILE_INFO
265b0 41 20 6c 70 48 77 50 72 6f 66 69 6c 65 49 6e 66  A lpHwProfileInf
265c0 6f 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  o);..extern(Wind
265d0 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c  ows) export BOOL
265e0 20 47 65 74 43 75 72 72 65 6e 74 48 77 50 72 6f   GetCurrentHwPro
265f0 66 69 6c 65 57 28 0d 0a 20 20 4c 50 48 57 5f 50  fileW(..  LPHW_P
26600 52 4f 46 49 4c 45 5f 49 4e 46 4f 57 20 6c 70 48  ROFILE_INFOW lpH
26610 77 50 72 6f 66 69 6c 65 49 6e 66 6f 29 3b 0d 0a  wProfileInfo);..
26620 2f 2f 20 23 69 66 64 65 66 20 55 4e 49 43 4f 44  // #ifdef UNICOD
26630 45 0d 0a 61 6c 69 61 73 20 47 65 74 43 75 72 72  E..alias GetCurr
26640 65 6e 74 48 77 50 72 6f 66 69 6c 65 57 20 47 65  entHwProfileW Ge
26650 74 43 75 72 72 65 6e 74 48 77 50 72 6f 66 69 6c  tCurrentHwProfil
26660 65 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f  e;..// #else..//
26670 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66   #.....// #endif
26680 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 2f 2f   // !UNICODE..//
26690 20 23 65 6e 64 69 66 20 2f 2a 20 5f 57 49 4e 33   #endif /* _WIN3
266a0 32 5f 57 49 4e 4e 54 20 3e 3d 20 30 78 30 34 30  2_WINNT >= 0x040
266b0 30 20 2a 2f 0d 0a 0d 0a 65 78 74 65 72 6e 28 57  0 */....extern(W
266c0 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42  indows) export B
266d0 4f 4f 4c 20 51 75 65 72 79 50 65 72 66 6f 72 6d  OOL QueryPerform
266e0 61 6e 63 65 43 6f 75 6e 74 65 72 28 0d 0a 20 20  anceCounter(..  
266f0 4c 41 52 47 45 5f 49 4e 54 45 47 45 52 20 2a 6c  LARGE_INTEGER *l
26700 70 50 65 72 66 6f 72 6d 61 6e 63 65 43 6f 75 6e  pPerformanceCoun
26710 74 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69  t);....extern(Wi
26720 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f  ndows) export BO
26730 4f 4c 20 51 75 65 72 79 50 65 72 66 6f 72 6d 61  OL QueryPerforma
26740 6e 63 65 46 72 65 71 75 65 6e 63 79 28 0d 0a 20  nceFrequency(.. 
26750 20 4c 41 52 47 45 5f 49 4e 54 45 47 45 52 20 2a   LARGE_INTEGER *
26760 6c 70 46 72 65 71 75 65 6e 63 79 29 3b 0d 0a 0d  lpFrequency);...
26770 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29  .extern(Windows)
26780 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 47 65 74   export BOOL Get
26790 56 65 72 73 69 6f 6e 45 78 41 28 0d 0a 20 20 4c  VersionExA(..  L
267a0 50 4f 53 56 45 52 53 49 4f 4e 49 4e 46 4f 41 20  POSVERSIONINFOA 
267b0 6c 70 56 65 72 73 69 6f 6e 49 6e 66 6f 72 6d 61  lpVersionInforma
267c0 74 69 6f 6e 29 3b 0d 0a 65 78 74 65 72 6e 28 57  tion);..extern(W
267d0 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42  indows) export B
267e0 4f 4f 4c 20 47 65 74 56 65 72 73 69 6f 6e 45 78  OOL GetVersionEx
267f0 57 28 0d 0a 20 20 4c 50 4f 53 56 45 52 53 49 4f  W(..  LPOSVERSIO
26800 4e 49 4e 46 4f 57 20 6c 70 56 65 72 73 69 6f 6e  NINFOW lpVersion
26810 49 6e 66 6f 72 6d 61 74 69 6f 6e 29 3b 0d 0a 2f  Information);../
26820 2f 20 23 69 66 64 65 66 20 55 4e 49 43 4f 44 45  / #ifdef UNICODE
26830 0d 0a 61 6c 69 61 73 20 47 65 74 56 65 72 73 69  ..alias GetVersi
26840 6f 6e 45 78 57 20 47 65 74 56 65 72 73 69 6f 6e  onExW GetVersion
26850 45 78 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f  Ex;..// #else../
26860 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69  / #.....// #endi
26870 66 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 0d  f // !UNICODE...
26880 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29  .extern(Windows)
26890 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 56 65 72   export BOOL Ver
268a0 69 66 79 56 65 72 73 69 6f 6e 49 6e 66 6f 41 28  ifyVersionInfoA(
268b0 0d 0a 20 20 4c 50 4f 53 56 45 52 53 49 4f 4e 49  ..  LPOSVERSIONI
268c0 4e 46 4f 45 58 41 20 6c 70 56 65 72 73 69 6f 6e  NFOEXA lpVersion
268d0 49 6e 66 6f 72 6d 61 74 69 6f 6e 2c 0d 0a 20 20  Information,..  
268e0 44 57 4f 52 44 20 64 77 54 79 70 65 4d 61 73 6b  DWORD dwTypeMask
268f0 2c 0d 0a 20 20 44 57 4f 52 44 4c 4f 4e 47 20 64  ,..  DWORDLONG d
26900 77 6c 43 6f 6e 64 69 74 69 6f 6e 4d 61 73 6b 29  wlConditionMask)
26910 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ;..extern(Window
26920 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 56  s) export BOOL V
26930 65 72 69 66 79 56 65 72 73 69 6f 6e 49 6e 66 6f  erifyVersionInfo
26940 57 28 0d 0a 20 20 4c 50 4f 53 56 45 52 53 49 4f  W(..  LPOSVERSIO
26950 4e 49 4e 46 4f 45 58 57 20 6c 70 56 65 72 73 69  NINFOEXW lpVersi
26960 6f 6e 49 6e 66 6f 72 6d 61 74 69 6f 6e 2c 0d 0a  onInformation,..
26970 20 20 44 57 4f 52 44 20 64 77 54 79 70 65 4d 61    DWORD dwTypeMa
26980 73 6b 2c 0d 0a 20 20 44 57 4f 52 44 4c 4f 4e 47  sk,..  DWORDLONG
26990 20 64 77 6c 43 6f 6e 64 69 74 69 6f 6e 4d 61 73   dwlConditionMas
269a0 6b 29 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55  k);..// #ifdef U
269b0 4e 49 43 4f 44 45 0d 0a 61 6c 69 61 73 20 56 65  NICODE..alias Ve
269c0 72 69 66 79 56 65 72 73 69 6f 6e 49 6e 66 6f 57  rifyVersionInfoW
269d0 20 56 65 72 69 66 79 56 65 72 73 69 6f 6e 49 6e   VerifyVersionIn
269e0 66 6f 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f  fo;..// #else../
269f0 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69  / #.....// #endi
26a00 66 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 0d  f // !UNICODE...
26a10 0a 69 6d 70 6f 72 74 20 77 69 6e 33 32 2e 77 69  .import win32.wi
26a20 6e 65 72 72 6f 72 3b 0d 0a 0d 0a 65 6e 75 6d 20  nerror;....enum 
26a30 3a 20 75 69 6e 74 20 7b 20 54 43 5f 4e 4f 52 4d  : uint { TC_NORM
26a40 41 4c 20 3d 20 30 20 7d 0d 0a 65 6e 75 6d 20 3a  AL = 0 }..enum :
26a50 20 75 69 6e 74 20 7b 20 54 43 5f 48 41 52 44 45   uint { TC_HARDE
26a60 52 52 20 3d 20 31 20 7d 0d 0a 65 6e 75 6d 20 3a  RR = 1 }..enum :
26a70 20 75 69 6e 74 20 7b 20 54 43 5f 47 50 5f 54 52   uint { TC_GP_TR
26a80 41 50 20 3d 20 32 20 7d 0d 0a 65 6e 75 6d 20 3a  AP = 2 }..enum :
26a90 20 75 69 6e 74 20 7b 20 54 43 5f 53 49 47 4e 41   uint { TC_SIGNA
26aa0 4c 20 3d 20 33 20 7d 0d 0a 0d 0a 2f 2f 20 23 69  L = 3 }....// #i
26ab0 66 28 57 49 4e 56 45 52 20 3e 3d 20 30 78 30 34  f(WINVER >= 0x04
26ac0 30 30 29 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 75 69  00)....enum : ui
26ad0 6e 74 20 7b 20 41 43 5f 4c 49 4e 45 5f 4f 46 46  nt { AC_LINE_OFF
26ae0 4c 49 4e 45 20 3d 20 30 78 30 30 20 7d 0d 0a 65  LINE = 0x00 }..e
26af0 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 41 43 5f  num : uint { AC_
26b00 4c 49 4e 45 5f 4f 4e 4c 49 4e 45 20 3d 20 30 78  LINE_ONLINE = 0x
26b10 30 31 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e  01 }..enum : uin
26b20 74 20 7b 20 41 43 5f 4c 49 4e 45 5f 42 41 43 4b  t { AC_LINE_BACK
26b30 55 50 5f 50 4f 57 45 52 20 3d 20 30 78 30 32 20  UP_POWER = 0x02 
26b40 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b  }..enum : uint {
26b50 20 41 43 5f 4c 49 4e 45 5f 55 4e 4b 4e 4f 57 4e   AC_LINE_UNKNOWN
26b60 20 3d 20 30 78 46 46 20 7d 0d 0a 0d 0a 65 6e 75   = 0xFF }....enu
26b70 6d 20 3a 20 75 69 6e 74 20 7b 20 42 41 54 54 45  m : uint { BATTE
26b80 52 59 5f 46 4c 41 47 5f 48 49 47 48 20 3d 20 30  RY_FLAG_HIGH = 0
26b90 78 30 31 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69  x01 }..enum : ui
26ba0 6e 74 20 7b 20 42 41 54 54 45 52 59 5f 46 4c 41  nt { BATTERY_FLA
26bb0 47 5f 4c 4f 57 20 3d 20 30 78 30 32 20 7d 0d 0a  G_LOW = 0x02 }..
26bc0 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 42 41  enum : uint { BA
26bd0 54 54 45 52 59 5f 46 4c 41 47 5f 43 52 49 54 49  TTERY_FLAG_CRITI
26be0 43 41 4c 20 3d 20 30 78 30 34 20 7d 0d 0a 65 6e  CAL = 0x04 }..en
26bf0 75 6d 20 3a 20 75 69 6e 74 20 7b 20 42 41 54 54  um : uint { BATT
26c00 45 52 59 5f 46 4c 41 47 5f 43 48 41 52 47 49 4e  ERY_FLAG_CHARGIN
26c10 47 20 3d 20 30 78 30 38 20 7d 0d 0a 65 6e 75 6d  G = 0x08 }..enum
26c20 20 3a 20 75 69 6e 74 20 7b 20 42 41 54 54 45 52   : uint { BATTER
26c30 59 5f 46 4c 41 47 5f 4e 4f 5f 42 41 54 54 45 52  Y_FLAG_NO_BATTER
26c40 59 20 3d 20 30 78 38 30 20 7d 0d 0a 65 6e 75 6d  Y = 0x80 }..enum
26c50 20 3a 20 75 69 6e 74 20 7b 20 42 41 54 54 45 52   : uint { BATTER
26c60 59 5f 46 4c 41 47 5f 55 4e 4b 4e 4f 57 4e 20 3d  Y_FLAG_UNKNOWN =
26c70 20 30 78 46 46 20 7d 0d 0a 0d 0a 65 6e 75 6d 20   0xFF }....enum 
26c80 3a 20 75 69 6e 74 20 7b 20 42 41 54 54 45 52 59  : uint { BATTERY
26c90 5f 50 45 52 43 45 4e 54 41 47 45 5f 55 4e 4b 4e  _PERCENTAGE_UNKN
26ca0 4f 57 4e 20 3d 20 30 78 46 46 20 7d 0d 0a 0d 0a  OWN = 0xFF }....
26cb0 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 42 41  enum : uint { BA
26cc0 54 54 45 52 59 5f 4c 49 46 45 5f 55 4e 4b 4e 4f  TTERY_LIFE_UNKNO
26cd0 57 4e 20 3d 20 30 78 46 46 46 46 46 46 46 46 20  WN = 0xFFFFFFFF 
26ce0 7d 0d 0a 0d 0a 73 74 72 75 63 74 20 5f 53 59 53  }....struct _SYS
26cf0 54 45 4d 5f 50 4f 57 45 52 5f 53 54 41 54 55 53  TEM_POWER_STATUS
26d00 20 7b 0d 0a 20 20 42 59 54 45 20 41 43 4c 69 6e   {..  BYTE ACLin
26d10 65 53 74 61 74 75 73 3b 0d 0a 20 20 42 59 54 45  eStatus;..  BYTE
26d20 20 42 61 74 74 65 72 79 46 6c 61 67 3b 0d 0a 20   BatteryFlag;.. 
26d30 20 42 59 54 45 20 42 61 74 74 65 72 79 4c 69 66   BYTE BatteryLif
26d40 65 50 65 72 63 65 6e 74 3b 0d 0a 20 20 42 59 54  ePercent;..  BYT
26d50 45 20 52 65 73 65 72 76 65 64 31 3b 0d 0a 20 20  E Reserved1;..  
26d60 44 57 4f 52 44 20 42 61 74 74 65 72 79 4c 69 66  DWORD BatteryLif
26d70 65 54 69 6d 65 3b 0d 0a 20 20 44 57 4f 52 44 20  eTime;..  DWORD 
26d80 42 61 74 74 65 72 79 46 75 6c 6c 4c 69 66 65 54  BatteryFullLifeT
26d90 69 6d 65 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 5f  ime;..}..alias _
26da0 53 59 53 54 45 4d 5f 50 4f 57 45 52 5f 53 54 41  SYSTEM_POWER_STA
26db0 54 55 53 20 53 59 53 54 45 4d 5f 50 4f 57 45 52  TUS SYSTEM_POWER
26dc0 5f 53 54 41 54 55 53 3b 0d 0a 61 6c 69 61 73 20  _STATUS;..alias 
26dd0 5f 53 59 53 54 45 4d 5f 50 4f 57 45 52 5f 53 54  _SYSTEM_POWER_ST
26de0 41 54 55 53 2a 20 4c 50 53 59 53 54 45 4d 5f 50  ATUS* LPSYSTEM_P
26df0 4f 57 45 52 5f 53 54 41 54 55 53 3b 0d 0a 0d 0a  OWER_STATUS;....
26e00 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
26e10 65 78 70 6f 72 74 20 42 4f 4f 4c 20 47 65 74 53  export BOOL GetS
26e20 79 73 74 65 6d 50 6f 77 65 72 53 74 61 74 75 73  ystemPowerStatus
26e30 28 0d 0a 20 20 4c 50 53 59 53 54 45 4d 5f 50 4f  (..  LPSYSTEM_PO
26e40 57 45 52 5f 53 54 41 54 55 53 20 6c 70 53 79 73  WER_STATUS lpSys
26e50 74 65 6d 50 6f 77 65 72 53 74 61 74 75 73 29 3b  temPowerStatus);
26e60 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f  ....extern(Windo
26e70 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20  ws) export BOOL 
26e80 53 65 74 53 79 73 74 65 6d 50 6f 77 65 72 53 74  SetSystemPowerSt
26e90 61 74 65 28 0d 0a 20 20 42 4f 4f 4c 20 66 53 75  ate(..  BOOL fSu
26ea0 73 70 65 6e 64 2c 0d 0a 20 20 42 4f 4f 4c 20 66  spend,..  BOOL f
26eb0 46 6f 72 63 65 29 3b 0d 0a 0d 0a 2f 2f 20 23 65  Force);....// #e
26ec0 6e 64 69 66 20 2f 2a 20 57 49 4e 56 45 52 20 3e  ndif /* WINVER >
26ed0 3d 20 30 78 30 34 30 30 20 2a 2f 0d 0a 0d 0a 2f  = 0x0400 */..../
26ee0 2f 20 23 69 66 20 28 5f 57 49 4e 33 32 5f 57 49  / #if (_WIN32_WI
26ef0 4e 4e 54 20 3e 3d 20 30 78 30 35 30 30 29 0d 0a  NNT >= 0x0500)..
26f00 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
26f10 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 41 6c  ) export BOOL Al
26f20 6c 6f 63 61 74 65 55 73 65 72 50 68 79 73 69 63  locateUserPhysic
26f30 61 6c 50 61 67 65 73 28 0d 0a 20 20 48 41 4e 44  alPages(..  HAND
26f40 4c 45 20 68 50 72 6f 63 65 73 73 2c 0d 0a 20 20  LE hProcess,..  
26f50 50 55 4c 4f 4e 47 5f 50 54 52 20 4e 75 6d 62 65  PULONG_PTR Numbe
26f60 72 4f 66 50 61 67 65 73 2c 0d 0a 20 20 50 55 4c  rOfPages,..  PUL
26f70 4f 4e 47 5f 50 54 52 20 50 61 67 65 41 72 72 61  ONG_PTR PageArra
26f80 79 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69  y);....extern(Wi
26f90 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f  ndows) export BO
26fa0 4f 4c 20 46 72 65 65 55 73 65 72 50 68 79 73 69  OL FreeUserPhysi
26fb0 63 61 6c 50 61 67 65 73 28 0d 0a 20 20 48 41 4e  calPages(..  HAN
26fc0 44 4c 45 20 68 50 72 6f 63 65 73 73 2c 0d 0a 20  DLE hProcess,.. 
26fd0 20 50 55 4c 4f 4e 47 5f 50 54 52 20 4e 75 6d 62   PULONG_PTR Numb
26fe0 65 72 4f 66 50 61 67 65 73 2c 0d 0a 20 20 50 55  erOfPages,..  PU
26ff0 4c 4f 4e 47 5f 50 54 52 20 50 61 67 65 41 72 72  LONG_PTR PageArr
27000 61 79 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57  ay);....extern(W
27010 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42  indows) export B
27020 4f 4f 4c 20 4d 61 70 55 73 65 72 50 68 79 73 69  OOL MapUserPhysi
27030 63 61 6c 50 61 67 65 73 28 0d 0a 20 20 50 56 4f  calPages(..  PVO
27040 49 44 20 56 69 72 74 75 61 6c 41 64 64 72 65 73  ID VirtualAddres
27050 73 2c 0d 0a 20 20 55 4c 4f 4e 47 5f 50 54 52 20  s,..  ULONG_PTR 
27060 4e 75 6d 62 65 72 4f 66 50 61 67 65 73 2c 0d 0a  NumberOfPages,..
27070 20 20 50 55 4c 4f 4e 47 5f 50 54 52 20 50 61 67    PULONG_PTR Pag
27080 65 41 72 72 61 79 20 29 3b 0d 0a 0d 0a 65 78 74  eArray );....ext
27090 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
270a0 6f 72 74 20 42 4f 4f 4c 20 4d 61 70 55 73 65 72  ort BOOL MapUser
270b0 50 68 79 73 69 63 61 6c 50 61 67 65 73 53 63 61  PhysicalPagesSca
270c0 74 74 65 72 28 0d 0a 20 20 50 56 4f 49 44 20 2a  tter(..  PVOID *
270d0 56 69 72 74 75 61 6c 41 64 64 72 65 73 73 65 73  VirtualAddresses
270e0 2c 0d 0a 20 20 55 4c 4f 4e 47 5f 50 54 52 20 4e  ,..  ULONG_PTR N
270f0 75 6d 62 65 72 4f 66 50 61 67 65 73 2c 0d 0a 20  umberOfPages,.. 
27100 20 50 55 4c 4f 4e 47 5f 50 54 52 20 50 61 67 65   PULONG_PTR Page
27110 41 72 72 61 79 20 29 3b 0d 0a 0d 0a 65 78 74 65  Array );....exte
27120 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
27130 72 74 20 48 41 4e 44 4c 45 20 43 72 65 61 74 65  rt HANDLE Create
27140 4a 6f 62 4f 62 6a 65 63 74 41 28 0d 0a 20 20 4c  JobObjectA(..  L
27150 50 53 45 43 55 52 49 54 59 5f 41 54 54 52 49 42  PSECURITY_ATTRIB
27160 55 54 45 53 20 6c 70 4a 6f 62 41 74 74 72 69 62  UTES lpJobAttrib
27170 75 74 65 73 2c 0d 0a 20 20 4c 50 43 53 54 52 20  utes,..  LPCSTR 
27180 6c 70 4e 61 6d 65 29 3b 0d 0a 65 78 74 65 72 6e  lpName);..extern
27190 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
271a0 20 48 41 4e 44 4c 45 20 43 72 65 61 74 65 4a 6f   HANDLE CreateJo
271b0 62 4f 62 6a 65 63 74 57 28 0d 0a 20 20 4c 50 53  bObjectW(..  LPS
271c0 45 43 55 52 49 54 59 5f 41 54 54 52 49 42 55 54  ECURITY_ATTRIBUT
271d0 45 53 20 6c 70 4a 6f 62 41 74 74 72 69 62 75 74  ES lpJobAttribut
271e0 65 73 2c 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c  es,..  LPCWSTR l
271f0 70 4e 61 6d 65 29 3b 0d 0a 2f 2f 20 23 69 66 64  pName);..// #ifd
27200 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69 61  ef UNICODE..alia
27210 73 20 43 72 65 61 74 65 4a 6f 62 4f 62 6a 65 63  s CreateJobObjec
27220 74 57 20 43 72 65 61 74 65 4a 6f 62 4f 62 6a 65  tW CreateJobObje
27230 63 74 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f  ct;..// #else../
27240 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69  / #.....// #endi
27250 66 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 0d  f // !UNICODE...
27260 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29  .extern(Windows)
27270 20 65 78 70 6f 72 74 20 48 41 4e 44 4c 45 20 4f   export HANDLE O
27280 70 65 6e 4a 6f 62 4f 62 6a 65 63 74 41 28 0d 0a  penJobObjectA(..
27290 20 20 44 57 4f 52 44 20 64 77 44 65 73 69 72 65    DWORD dwDesire
272a0 64 41 63 63 65 73 73 2c 0d 0a 20 20 42 4f 4f 4c  dAccess,..  BOOL
272b0 20 62 49 6e 68 65 72 69 74 48 61 6e 64 6c 65 2c   bInheritHandle,
272c0 0d 0a 20 20 4c 50 43 53 54 52 20 6c 70 4e 61 6d  ..  LPCSTR lpNam
272d0 65 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  e);..extern(Wind
272e0 6f 77 73 29 20 65 78 70 6f 72 74 20 48 41 4e 44  ows) export HAND
272f0 4c 45 20 4f 70 65 6e 4a 6f 62 4f 62 6a 65 63 74  LE OpenJobObject
27300 57 28 0d 0a 20 20 44 57 4f 52 44 20 64 77 44 65  W(..  DWORD dwDe
27310 73 69 72 65 64 41 63 63 65 73 73 2c 0d 0a 20 20  siredAccess,..  
27320 42 4f 4f 4c 20 62 49 6e 68 65 72 69 74 48 61 6e  BOOL bInheritHan
27330 64 6c 65 2c 0d 0a 20 20 4c 50 43 57 53 54 52 20  dle,..  LPCWSTR 
27340 6c 70 4e 61 6d 65 29 3b 0d 0a 2f 2f 20 23 69 66  lpName);..// #if
27350 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69  def UNICODE..ali
27360 61 73 20 4f 70 65 6e 4a 6f 62 4f 62 6a 65 63 74  as OpenJobObject
27370 57 20 4f 70 65 6e 4a 6f 62 4f 62 6a 65 63 74 3b  W OpenJobObject;
27380 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23  ..// #else..// #
27390 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f  .....// #endif /
273a0 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78  / !UNICODE....ex
273b0 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
273c0 70 6f 72 74 20 42 4f 4f 4c 20 41 73 73 69 67 6e  port BOOL Assign
273d0 50 72 6f 63 65 73 73 54 6f 4a 6f 62 4f 62 6a 65  ProcessToJobObje
273e0 63 74 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68 4a  ct(..  HANDLE hJ
273f0 6f 62 2c 0d 0a 20 20 48 41 4e 44 4c 45 20 68 50  ob,..  HANDLE hP
27400 72 6f 63 65 73 73 29 3b 0d 0a 0d 0a 65 78 74 65  rocess);....exte
27410 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
27420 72 74 20 42 4f 4f 4c 20 54 65 72 6d 69 6e 61 74  rt BOOL Terminat
27430 65 4a 6f 62 4f 62 6a 65 63 74 28 0d 0a 20 20 48  eJobObject(..  H
27440 41 4e 44 4c 45 20 68 4a 6f 62 2c 0d 0a 20 20 55  ANDLE hJob,..  U
27450 49 4e 54 20 75 45 78 69 74 43 6f 64 65 29 3b 0d  INT uExitCode);.
27460 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ...extern(Window
27470 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 51  s) export BOOL Q
27480 75 65 72 79 49 6e 66 6f 72 6d 61 74 69 6f 6e 4a  ueryInformationJ
27490 6f 62 4f 62 6a 65 63 74 28 0d 0a 20 20 48 41 4e  obObject(..  HAN
274a0 44 4c 45 20 68 4a 6f 62 2c 0d 0a 20 20 4a 4f 42  DLE hJob,..  JOB
274b0 4f 42 4a 45 43 54 49 4e 46 4f 43 4c 41 53 53 20  OBJECTINFOCLASS 
274c0 4a 6f 62 4f 62 6a 65 63 74 49 6e 66 6f 72 6d 61  JobObjectInforma
274d0 74 69 6f 6e 43 6c 61 73 73 2c 0d 0a 20 20 4c 50  tionClass,..  LP
274e0 56 4f 49 44 20 6c 70 4a 6f 62 4f 62 6a 65 63 74  VOID lpJobObject
274f0 49 6e 66 6f 72 6d 61 74 69 6f 6e 2c 0d 0a 20 20  Information,..  
27500 44 57 4f 52 44 20 63 62 4a 6f 62 4f 62 6a 65 63  DWORD cbJobObjec
27510 74 49 6e 66 6f 72 6d 61 74 69 6f 6e 4c 65 6e 67  tInformationLeng
27520 74 68 2c 0d 0a 20 20 4c 50 44 57 4f 52 44 20 6c  th,..  LPDWORD l
27530 70 52 65 74 75 72 6e 4c 65 6e 67 74 68 29 3b 0d  pReturnLength);.
27540 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77  ...extern(Window
27550 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 53  s) export BOOL S
27560 65 74 49 6e 66 6f 72 6d 61 74 69 6f 6e 4a 6f 62  etInformationJob
27570 4f 62 6a 65 63 74 28 0d 0a 20 20 48 41 4e 44 4c  Object(..  HANDL
27580 45 20 68 4a 6f 62 2c 0d 0a 20 20 4a 4f 42 4f 42  E hJob,..  JOBOB
27590 4a 45 43 54 49 4e 46 4f 43 4c 41 53 53 20 4a 6f  JECTINFOCLASS Jo
275a0 62 4f 62 6a 65 63 74 49 6e 66 6f 72 6d 61 74 69  bObjectInformati
275b0 6f 6e 43 6c 61 73 73 2c 0d 0a 20 20 4c 50 56 4f  onClass,..  LPVO
275c0 49 44 20 6c 70 4a 6f 62 4f 62 6a 65 63 74 49 6e  ID lpJobObjectIn
275d0 66 6f 72 6d 61 74 69 6f 6e 2c 0d 0a 20 20 44 57  formation,..  DW
275e0 4f 52 44 20 63 62 4a 6f 62 4f 62 6a 65 63 74 49  ORD cbJobObjectI
275f0 6e 66 6f 72 6d 61 74 69 6f 6e 4c 65 6e 67 74 68  nformationLength
27600 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e  );....extern(Win
27610 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f  dows) export BOO
27620 4c 20 49 73 50 72 6f 63 65 73 73 49 6e 4a 6f 62  L IsProcessInJob
27630 28 0d 0a 20 20 48 41 4e 44 4c 45 20 50 72 6f 63  (..  HANDLE Proc
27640 65 73 73 48 61 6e 64 6c 65 2c 0d 0a 20 20 48 41  essHandle,..  HA
27650 4e 44 4c 45 20 4a 6f 62 48 61 6e 64 6c 65 2c 0d  NDLE JobHandle,.
27660 0a 20 20 50 42 4f 4f 4c 20 52 65 73 75 6c 74 29  .  PBOOL Result)
27670 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  ;....extern(Wind
27680 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c  ows) export BOOL
27690 20 43 72 65 61 74 65 4a 6f 62 53 65 74 28 0d 0a   CreateJobSet(..
276a0 20 20 55 4c 4f 4e 47 20 4e 75 6d 4a 6f 62 2c 0d    ULONG NumJob,.
276b0 0a 20 20 50 4a 4f 42 5f 53 45 54 5f 41 52 52 41  .  PJOB_SET_ARRA
276c0 59 20 55 73 65 72 4a 6f 62 53 65 74 2c 0d 0a 20  Y UserJobSet,.. 
276d0 20 55 4c 4f 4e 47 20 46 6c 61 67 73 29 3b 0d 0a   ULONG Flags);..
276e0 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
276f0 29 20 65 78 70 6f 72 74 20 50 56 4f 49 44 20 41  ) export PVOID A
27700 64 64 56 65 63 74 6f 72 65 64 45 78 63 65 70 74  ddVectoredExcept
27710 69 6f 6e 48 61 6e 64 6c 65 72 28 0d 0a 20 20 55  ionHandler(..  U
27720 4c 4f 4e 47 20 46 69 72 73 74 48 61 6e 64 6c 65  LONG FirstHandle
27730 72 2c 0d 0a 20 20 50 56 45 43 54 4f 52 45 44 5f  r,..  PVECTORED_
27740 45 58 43 45 50 54 49 4f 4e 5f 48 41 4e 44 4c 45  EXCEPTION_HANDLE
27750 52 20 56 65 63 74 6f 72 65 64 48 61 6e 64 6c 65  R VectoredHandle
27760 72 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69  r);....extern(Wi
27770 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 55 4c  ndows) export UL
27780 4f 4e 47 20 52 65 6d 6f 76 65 56 65 63 74 6f 72  ONG RemoveVector
27790 65 64 45 78 63 65 70 74 69 6f 6e 48 61 6e 64 6c  edExceptionHandl
277a0 65 72 28 0d 0a 20 20 50 56 4f 49 44 20 56 65 63  er(..  PVOID Vec
277b0 74 6f 72 65 64 48 61 6e 64 6c 65 72 48 61 6e 64  toredHandlerHand
277c0 6c 65 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57  le);....extern(W
277d0 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 48  indows) export H
277e0 41 4e 44 4c 45 20 46 69 6e 64 46 69 72 73 74 56  ANDLE FindFirstV
277f0 6f 6c 75 6d 65 41 28 0d 0a 20 20 4c 50 53 54 52  olumeA(..  LPSTR
27800 20 6c 70 73 7a 56 6f 6c 75 6d 65 4e 61 6d 65 2c   lpszVolumeName,
27810 0d 0a 20 20 44 57 4f 52 44 20 63 63 68 42 75 66  ..  DWORD cchBuf
27820 66 65 72 4c 65 6e 67 74 68 29 3b 0d 0a 65 78 74  ferLength);..ext
27830 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
27840 6f 72 74 20 48 41 4e 44 4c 45 20 46 69 6e 64 46  ort HANDLE FindF
27850 69 72 73 74 56 6f 6c 75 6d 65 57 28 0d 0a 20 20  irstVolumeW(..  
27860 4c 50 57 53 54 52 20 6c 70 73 7a 56 6f 6c 75 6d  LPWSTR lpszVolum
27870 65 4e 61 6d 65 2c 0d 0a 20 20 44 57 4f 52 44 20  eName,..  DWORD 
27880 63 63 68 42 75 66 66 65 72 4c 65 6e 67 74 68 29  cchBufferLength)
27890 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e 49  ;..// #ifdef UNI
278a0 43 4f 44 45 0d 0a 61 6c 69 61 73 20 46 69 6e 64  CODE..alias Find
278b0 46 69 72 73 74 56 6f 6c 75 6d 65 57 20 46 69 6e  FirstVolumeW Fin
278c0 64 46 69 72 73 74 56 6f 6c 75 6d 65 3b 0d 0a 2f  dFirstVolume;../
278d0 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e  / #else..// #...
278e0 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21  ..// #endif // !
278f0 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72  UNICODE....exter
27900 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
27910 74 20 42 4f 4f 4c 20 46 69 6e 64 4e 65 78 74 56  t BOOL FindNextV
27920 6f 6c 75 6d 65 41 28 0d 0a 20 20 48 41 4e 44 4c  olumeA(..  HANDL
27930 45 20 68 46 69 6e 64 56 6f 6c 75 6d 65 2c 0d 0a  E hFindVolume,..
27940 20 20 4c 50 53 54 52 20 6c 70 73 7a 56 6f 6c 75    LPSTR lpszVolu
27950 6d 65 4e 61 6d 65 2c 0d 0a 20 20 44 57 4f 52 44  meName,..  DWORD
27960 20 63 63 68 42 75 66 66 65 72 4c 65 6e 67 74 68   cchBufferLength
27970 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f  );..extern(Windo
27980 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20  ws) export BOOL 
27990 46 69 6e 64 4e 65 78 74 56 6f 6c 75 6d 65 57 28  FindNextVolumeW(
279a0 0d 0a 20 20 48 41 4e 44 4c 45 20 68 46 69 6e 64  ..  HANDLE hFind
279b0 56 6f 6c 75 6d 65 2c 0d 0a 20 20 4c 50 57 53 54  Volume,..  LPWST
279c0 52 20 6c 70 73 7a 56 6f 6c 75 6d 65 4e 61 6d 65  R lpszVolumeName
279d0 2c 0d 0a 20 20 44 57 4f 52 44 20 63 63 68 42 75  ,..  DWORD cchBu
279e0 66 66 65 72 4c 65 6e 67 74 68 29 3b 0d 0a 2f 2f  fferLength);..//
279f0 20 23 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d   #ifdef UNICODE.
27a00 0a 61 6c 69 61 73 20 46 69 6e 64 4e 65 78 74 56  .alias FindNextV
27a10 6f 6c 75 6d 65 57 20 46 69 6e 64 4e 65 78 74 56  olumeW FindNextV
27a20 6f 6c 75 6d 65 3b 0d 0a 2f 2f 20 23 65 6c 73 65  olume;..// #else
27a30 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65  ..// #.....// #e
27a40 6e 64 69 66 20 2f 2f 20 21 55 4e 49 43 4f 44 45  ndif // !UNICODE
27a50 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f  ....extern(Windo
27a60 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20  ws) export BOOL 
27a70 46 69 6e 64 56 6f 6c 75 6d 65 43 6c 6f 73 65 28  FindVolumeClose(
27a80 0d 0a 20 20 48 41 4e 44 4c 45 20 68 46 69 6e 64  ..  HANDLE hFind
27a90 56 6f 6c 75 6d 65 29 3b 0d 0a 0d 0a 65 78 74 65  Volume);....exte
27aa0 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
27ab0 72 74 20 48 41 4e 44 4c 45 20 46 69 6e 64 46 69  rt HANDLE FindFi
27ac0 72 73 74 56 6f 6c 75 6d 65 4d 6f 75 6e 74 50 6f  rstVolumeMountPo
27ad0 69 6e 74 41 28 0d 0a 20 20 4c 50 43 53 54 52 20  intA(..  LPCSTR 
27ae0 6c 70 73 7a 52 6f 6f 74 50 61 74 68 4e 61 6d 65  lpszRootPathName
27af0 2c 0d 0a 20 20 4c 50 53 54 52 20 6c 70 73 7a 56  ,..  LPSTR lpszV
27b00 6f 6c 75 6d 65 4d 6f 75 6e 74 50 6f 69 6e 74 2c  olumeMountPoint,
27b10 0d 0a 20 20 44 57 4f 52 44 20 63 63 68 42 75 66  ..  DWORD cchBuf
27b20 66 65 72 4c 65 6e 67 74 68 29 3b 0d 0a 65 78 74  ferLength);..ext
27b30 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
27b40 6f 72 74 20 48 41 4e 44 4c 45 20 46 69 6e 64 46  ort HANDLE FindF
27b50 69 72 73 74 56 6f 6c 75 6d 65 4d 6f 75 6e 74 50  irstVolumeMountP
27b60 6f 69 6e 74 57 28 0d 0a 20 20 4c 50 43 57 53 54  ointW(..  LPCWST
27b70 52 20 6c 70 73 7a 52 6f 6f 74 50 61 74 68 4e 61  R lpszRootPathNa
27b80 6d 65 2c 0d 0a 20 20 4c 50 57 53 54 52 20 6c 70  me,..  LPWSTR lp
27b90 73 7a 56 6f 6c 75 6d 65 4d 6f 75 6e 74 50 6f 69  szVolumeMountPoi
27ba0 6e 74 2c 0d 0a 20 20 44 57 4f 52 44 20 63 63 68  nt,..  DWORD cch
27bb0 42 75 66 66 65 72 4c 65 6e 67 74 68 29 3b 0d 0a  BufferLength);..
27bc0 2f 2f 20 23 69 66 64 65 66 20 55 4e 49 43 4f 44  // #ifdef UNICOD
27bd0 45 0d 0a 61 6c 69 61 73 20 46 69 6e 64 46 69 72  E..alias FindFir
27be0 73 74 56 6f 6c 75 6d 65 4d 6f 75 6e 74 50 6f 69  stVolumeMountPoi
27bf0 6e 74 57 20 46 69 6e 64 46 69 72 73 74 56 6f 6c  ntW FindFirstVol
27c00 75 6d 65 4d 6f 75 6e 74 50 6f 69 6e 74 3b 0d 0a  umeMountPoint;..
27c10 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e  // #else..// #..
27c20 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20  ...// #endif // 
27c30 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65  !UNICODE....exte
27c40 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
27c50 72 74 20 42 4f 4f 4c 20 46 69 6e 64 4e 65 78 74  rt BOOL FindNext
27c60 56 6f 6c 75 6d 65 4d 6f 75 6e 74 50 6f 69 6e 74  VolumeMountPoint
27c70 41 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68 46 69  A(..  HANDLE hFi
27c80 6e 64 56 6f 6c 75 6d 65 4d 6f 75 6e 74 50 6f 69  ndVolumeMountPoi
27c90 6e 74 2c 0d 0a 20 20 4c 50 53 54 52 20 6c 70 73  nt,..  LPSTR lps
27ca0 7a 56 6f 6c 75 6d 65 4d 6f 75 6e 74 50 6f 69 6e  zVolumeMountPoin
27cb0 74 2c 0d 0a 20 20 44 57 4f 52 44 20 63 63 68 42  t,..  DWORD cchB
27cc0 75 66 66 65 72 4c 65 6e 67 74 68 29 3b 0d 0a 65  ufferLength);..e
27cd0 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
27ce0 78 70 6f 72 74 20 42 4f 4f 4c 20 46 69 6e 64 4e  xport BOOL FindN
27cf0 65 78 74 56 6f 6c 75 6d 65 4d 6f 75 6e 74 50 6f  extVolumeMountPo
27d00 69 6e 74 57 28 0d 0a 20 20 48 41 4e 44 4c 45 20  intW(..  HANDLE 
27d10 68 46 69 6e 64 56 6f 6c 75 6d 65 4d 6f 75 6e 74  hFindVolumeMount
27d20 50 6f 69 6e 74 2c 0d 0a 20 20 4c 50 57 53 54 52  Point,..  LPWSTR
27d30 20 6c 70 73 7a 56 6f 6c 75 6d 65 4d 6f 75 6e 74   lpszVolumeMount
27d40 50 6f 69 6e 74 2c 0d 0a 20 20 44 57 4f 52 44 20  Point,..  DWORD 
27d50 63 63 68 42 75 66 66 65 72 4c 65 6e 67 74 68 29  cchBufferLength)
27d60 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e 49  ;..// #ifdef UNI
27d70 43 4f 44 45 0d 0a 61 6c 69 61 73 20 46 69 6e 64  CODE..alias Find
27d80 4e 65 78 74 56 6f 6c 75 6d 65 4d 6f 75 6e 74 50  NextVolumeMountP
27d90 6f 69 6e 74 57 20 46 69 6e 64 4e 65 78 74 56 6f  ointW FindNextVo
27da0 6c 75 6d 65 4d 6f 75 6e 74 50 6f 69 6e 74 3b 0d  lumeMountPoint;.
27db0 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e  .// #else..// #.
27dc0 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f  ....// #endif //
27dd0 20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78 74   !UNICODE....ext
27de0 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
27df0 6f 72 74 20 42 4f 4f 4c 20 46 69 6e 64 56 6f 6c  ort BOOL FindVol
27e00 75 6d 65 4d 6f 75 6e 74 50 6f 69 6e 74 43 6c 6f  umeMountPointClo
27e10 73 65 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68 46  se(..  HANDLE hF
27e20 69 6e 64 56 6f 6c 75 6d 65 4d 6f 75 6e 74 50 6f  indVolumeMountPo
27e30 69 6e 74 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28  int);....extern(
27e40 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20  Windows) export 
27e50 42 4f 4f 4c 20 53 65 74 56 6f 6c 75 6d 65 4d 6f  BOOL SetVolumeMo
27e60 75 6e 74 50 6f 69 6e 74 41 28 0d 0a 20 20 4c 50  untPointA(..  LP
27e70 43 53 54 52 20 6c 70 73 7a 56 6f 6c 75 6d 65 4d  CSTR lpszVolumeM
27e80 6f 75 6e 74 50 6f 69 6e 74 2c 0d 0a 20 20 4c 50  ountPoint,..  LP
27e90 43 53 54 52 20 6c 70 73 7a 56 6f 6c 75 6d 65 4e  CSTR lpszVolumeN
27ea0 61 6d 65 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69  ame);..extern(Wi
27eb0 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f  ndows) export BO
27ec0 4f 4c 20 53 65 74 56 6f 6c 75 6d 65 4d 6f 75 6e  OL SetVolumeMoun
27ed0 74 50 6f 69 6e 74 57 28 0d 0a 20 20 4c 50 43 57  tPointW(..  LPCW
27ee0 53 54 52 20 6c 70 73 7a 56 6f 6c 75 6d 65 4d 6f  STR lpszVolumeMo
27ef0 75 6e 74 50 6f 69 6e 74 2c 0d 0a 20 20 4c 50 43  untPoint,..  LPC
27f00 57 53 54 52 20 6c 70 73 7a 56 6f 6c 75 6d 65 4e  WSTR lpszVolumeN
27f10 61 6d 65 29 3b 0d 0a 2f 2f 20 23 69 66 64 65 66  ame);..// #ifdef
27f20 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69 61 73 20   UNICODE..alias 
27f30 53 65 74 56 6f 6c 75 6d 65 4d 6f 75 6e 74 50 6f  SetVolumeMountPo
27f40 69 6e 74 57 20 53 65 74 56 6f 6c 75 6d 65 4d 6f  intW SetVolumeMo
27f50 75 6e 74 50 6f 69 6e 74 3b 0d 0a 2f 2f 20 23 65  untPoint;..// #e
27f60 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f 2f  lse..// #.....//
27f70 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e 49 43   #endif // !UNIC
27f80 4f 44 45 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69  ODE....extern(Wi
27f90 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f  ndows) export BO
27fa0 4f 4c 20 44 65 6c 65 74 65 56 6f 6c 75 6d 65 4d  OL DeleteVolumeM
27fb0 6f 75 6e 74 50 6f 69 6e 74 41 28 0d 0a 20 20 4c  ountPointA(..  L
27fc0 50 43 53 54 52 20 6c 70 73 7a 56 6f 6c 75 6d 65  PCSTR lpszVolume
27fd0 4d 6f 75 6e 74 50 6f 69 6e 74 29 3b 0d 0a 65 78  MountPoint);..ex
27fe0 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
27ff0 70 6f 72 74 20 42 4f 4f 4c 20 44 65 6c 65 74 65  port BOOL Delete
28000 56 6f 6c 75 6d 65 4d 6f 75 6e 74 50 6f 69 6e 74  VolumeMountPoint
28010 57 28 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70  W(..  LPCWSTR lp
28020 73 7a 56 6f 6c 75 6d 65 4d 6f 75 6e 74 50 6f 69  szVolumeMountPoi
28030 6e 74 29 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20  nt);..// #ifdef 
28040 55 4e 49 43 4f 44 45 0d 0a 61 6c 69 61 73 20 44  UNICODE..alias D
28050 65 6c 65 74 65 56 6f 6c 75 6d 65 4d 6f 75 6e 74  eleteVolumeMount
28060 50 6f 69 6e 74 57 20 44 65 6c 65 74 65 56 6f 6c  PointW DeleteVol
28070 75 6d 65 4d 6f 75 6e 74 50 6f 69 6e 74 3b 0d 0a  umeMountPoint;..
28080 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e  // #else..// #..
28090 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20  ...// #endif // 
280a0 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65  !UNICODE....exte
280b0 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
280c0 72 74 20 42 4f 4f 4c 20 47 65 74 56 6f 6c 75 6d  rt BOOL GetVolum
280d0 65 4e 61 6d 65 46 6f 72 56 6f 6c 75 6d 65 4d 6f  eNameForVolumeMo
280e0 75 6e 74 50 6f 69 6e 74 41 28 0d 0a 20 20 4c 50  untPointA(..  LP
280f0 43 53 54 52 20 6c 70 73 7a 56 6f 6c 75 6d 65 4d  CSTR lpszVolumeM
28100 6f 75 6e 74 50 6f 69 6e 74 2c 0d 0a 20 20 4c 50  ountPoint,..  LP
28110 53 54 52 20 6c 70 73 7a 56 6f 6c 75 6d 65 4e 61  STR lpszVolumeNa
28120 6d 65 2c 0d 0a 20 20 44 57 4f 52 44 20 63 63 68  me,..  DWORD cch
28130 42 75 66 66 65 72 4c 65 6e 67 74 68 29 3b 0d 0a  BufferLength);..
28140 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
28150 65 78 70 6f 72 74 20 42 4f 4f 4c 20 47 65 74 56  export BOOL GetV
28160 6f 6c 75 6d 65 4e 61 6d 65 46 6f 72 56 6f 6c 75  olumeNameForVolu
28170 6d 65 4d 6f 75 6e 74 50 6f 69 6e 74 57 28 0d 0a  meMountPointW(..
28180 20 20 4c 50 43 57 53 54 52 20 6c 70 73 7a 56 6f    LPCWSTR lpszVo
28190 6c 75 6d 65 4d 6f 75 6e 74 50 6f 69 6e 74 2c 0d  lumeMountPoint,.
281a0 0a 20 20 4c 50 57 53 54 52 20 6c 70 73 7a 56 6f  .  LPWSTR lpszVo
281b0 6c 75 6d 65 4e 61 6d 65 2c 0d 0a 20 20 44 57 4f  lumeName,..  DWO
281c0 52 44 20 63 63 68 42 75 66 66 65 72 4c 65 6e 67  RD cchBufferLeng
281d0 74 68 29 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20  th);..// #ifdef 
281e0 55 4e 49 43 4f 44 45 0d 0a 61 6c 69 61 73 20 47  UNICODE..alias G
281f0 65 74 56 6f 6c 75 6d 65 4e 61 6d 65 46 6f 72 56  etVolumeNameForV
28200 6f 6c 75 6d 65 4d 6f 75 6e 74 50 6f 69 6e 74 57  olumeMountPointW
28210 20 47 65 74 56 6f 6c 75 6d 65 4e 61 6d 65 46 6f   GetVolumeNameFo
28220 72 56 6f 6c 75 6d 65 4d 6f 75 6e 74 50 6f 69 6e  rVolumeMountPoin
28230 74 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f  t;..// #else..//
28240 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66   #.....// #endif
28250 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a   // !UNICODE....
28260 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
28270 65 78 70 6f 72 74 20 42 4f 4f 4c 20 47 65 74 56  export BOOL GetV
28280 6f 6c 75 6d 65 50 61 74 68 4e 61 6d 65 41 28 0d  olumePathNameA(.
28290 0a 20 20 4c 50 43 53 54 52 20 6c 70 73 7a 46 69  .  LPCSTR lpszFi
282a0 6c 65 4e 61 6d 65 2c 0d 0a 20 20 4c 50 53 54 52  leName,..  LPSTR
282b0 20 6c 70 73 7a 56 6f 6c 75 6d 65 50 61 74 68 4e   lpszVolumePathN
282c0 61 6d 65 2c 0d 0a 20 20 44 57 4f 52 44 20 63 63  ame,..  DWORD cc
282d0 68 42 75 66 66 65 72 4c 65 6e 67 74 68 29 3b 0d  hBufferLength);.
282e0 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29  .extern(Windows)
282f0 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 47 65 74   export BOOL Get
28300 56 6f 6c 75 6d 65 50 61 74 68 4e 61 6d 65 57 28  VolumePathNameW(
28310 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 73 7a  ..  LPCWSTR lpsz
28320 46 69 6c 65 4e 61 6d 65 2c 0d 0a 20 20 4c 50 57  FileName,..  LPW
28330 53 54 52 20 6c 70 73 7a 56 6f 6c 75 6d 65 50 61  STR lpszVolumePa
28340 74 68 4e 61 6d 65 2c 0d 0a 20 20 44 57 4f 52 44  thName,..  DWORD
28350 20 63 63 68 42 75 66 66 65 72 4c 65 6e 67 74 68   cchBufferLength
28360 29 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20 55 4e  );..// #ifdef UN
28370 49 43 4f 44 45 0d 0a 61 6c 69 61 73 20 47 65 74  ICODE..alias Get
28380 56 6f 6c 75 6d 65 50 61 74 68 4e 61 6d 65 57 20  VolumePathNameW 
28390 47 65 74 56 6f 6c 75 6d 65 50 61 74 68 4e 61 6d  GetVolumePathNam
283a0 65 3b 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f  e;..// #else..//
283b0 20 23 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66   #.....// #endif
283c0 20 2f 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a   // !UNICODE....
283d0 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
283e0 65 78 70 6f 72 74 20 42 4f 4f 4c 20 47 65 74 56  export BOOL GetV
283f0 6f 6c 75 6d 65 50 61 74 68 4e 61 6d 65 73 46 6f  olumePathNamesFo
28400 72 56 6f 6c 75 6d 65 4e 61 6d 65 41 28 0d 0a 20  rVolumeNameA(.. 
28410 20 4c 50 43 53 54 52 20 6c 70 73 7a 56 6f 6c 75   LPCSTR lpszVolu
28420 6d 65 4e 61 6d 65 2c 0d 0a 20 20 4c 50 53 54 52  meName,..  LPSTR
28430 20 6c 70 73 7a 56 6f 6c 75 6d 65 50 61 74 68 4e   lpszVolumePathN
28440 61 6d 65 73 2c 0d 0a 20 20 44 57 4f 52 44 20 63  ames,..  DWORD c
28450 63 68 42 75 66 66 65 72 4c 65 6e 67 74 68 2c 0d  chBufferLength,.
28460 0a 20 20 50 44 57 4f 52 44 20 6c 70 63 63 68 52  .  PDWORD lpcchR
28470 65 74 75 72 6e 4c 65 6e 67 74 68 29 3b 0d 0a 65  eturnLength);..e
28480 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
28490 78 70 6f 72 74 20 42 4f 4f 4c 20 47 65 74 56 6f  xport BOOL GetVo
284a0 6c 75 6d 65 50 61 74 68 4e 61 6d 65 73 46 6f 72  lumePathNamesFor
284b0 56 6f 6c 75 6d 65 4e 61 6d 65 57 28 0d 0a 20 20  VolumeNameW(..  
284c0 4c 50 43 57 53 54 52 20 6c 70 73 7a 56 6f 6c 75  LPCWSTR lpszVolu
284d0 6d 65 4e 61 6d 65 2c 0d 0a 20 20 4c 50 57 53 54  meName,..  LPWST
284e0 52 20 6c 70 73 7a 56 6f 6c 75 6d 65 50 61 74 68  R lpszVolumePath
284f0 4e 61 6d 65 73 2c 0d 0a 20 20 44 57 4f 52 44 20  Names,..  DWORD 
28500 63 63 68 42 75 66 66 65 72 4c 65 6e 67 74 68 2c  cchBufferLength,
28510 0d 0a 20 20 50 44 57 4f 52 44 20 6c 70 63 63 68  ..  PDWORD lpcch
28520 52 65 74 75 72 6e 4c 65 6e 67 74 68 29 3b 0d 0a  ReturnLength);..
28530 2f 2f 20 23 69 66 64 65 66 20 55 4e 49 43 4f 44  // #ifdef UNICOD
28540 45 0d 0a 61 6c 69 61 73 20 47 65 74 56 6f 6c 75  E..alias GetVolu
28550 6d 65 50 61 74 68 4e 61 6d 65 73 46 6f 72 56 6f  mePathNamesForVo
28560 6c 75 6d 65 4e 61 6d 65 57 20 47 65 74 56 6f 6c  lumeNameW GetVol
28570 75 6d 65 50 61 74 68 4e 61 6d 65 73 46 6f 72 56  umePathNamesForV
28580 6f 6c 75 6d 65 4e 61 6d 65 3b 0d 0a 2f 2f 20 23  olumeName;..// #
28590 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 2f  else..// #...../
285a0 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21 55 4e 49  / #endif // !UNI
285b0 43 4f 44 45 0d 0a 0d 0a 2f 2f 20 23 65 6e 64 69  CODE....// #endi
285c0 66 0d 0a 0d 0a 2f 2f 20 23 69 66 20 28 5f 57 49  f....// #if (_WI
285d0 4e 33 32 5f 57 49 4e 4e 54 20 3e 3d 20 30 78 30  N32_WINNT >= 0x0
285e0 35 30 30 29 20 7c 7c 20 28 5f 57 49 4e 33 32 5f  500) || (_WIN32_
285f0 46 55 53 49 4f 4e 20 3e 3d 20 30 78 30 31 30 30  FUSION >= 0x0100
28600 29 20 7c 7c 20 49 53 4f 4c 41 54 49 4f 4e 5f 41  ) || ISOLATION_A
28610 57 41 52 45 5f 45 4e 41 42 4c 45 44 0d 0a 0d 0a  WARE_ENABLED....
28620 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 41 43  enum : uint { AC
28630 54 43 54 58 5f 46 4c 41 47 5f 50 52 4f 43 45 53  TCTX_FLAG_PROCES
28640 53 4f 52 5f 41 52 43 48 49 54 45 43 54 55 52 45  SOR_ARCHITECTURE
28650 5f 56 41 4c 49 44 20 3d 20 30 78 30 30 30 30 30  _VALID = 0x00000
28660 30 30 31 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69  001 }..enum : ui
28670 6e 74 20 7b 20 41 43 54 43 54 58 5f 46 4c 41 47  nt { ACTCTX_FLAG
28680 5f 4c 41 4e 47 49 44 5f 56 41 4c 49 44 20 3d 20  _LANGID_VALID = 
28690 30 78 30 30 30 30 30 30 30 32 20 7d 0d 0a 65 6e  0x00000002 }..en
286a0 75 6d 20 3a 20 75 69 6e 74 20 7b 20 41 43 54 43  um : uint { ACTC
286b0 54 58 5f 46 4c 41 47 5f 41 53 53 45 4d 42 4c 59  TX_FLAG_ASSEMBLY
286c0 5f 44 49 52 45 43 54 4f 52 59 5f 56 41 4c 49 44  _DIRECTORY_VALID
286d0 20 3d 20 30 78 30 30 30 30 30 30 30 34 20 7d 0d   = 0x00000004 }.
286e0 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 41  .enum : uint { A
286f0 43 54 43 54 58 5f 46 4c 41 47 5f 52 45 53 4f 55  CTCTX_FLAG_RESOU
28700 52 43 45 5f 4e 41 4d 45 5f 56 41 4c 49 44 20 3d  RCE_NAME_VALID =
28710 20 30 78 30 30 30 30 30 30 30 38 20 7d 0d 0a 65   0x00000008 }..e
28720 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 41 43 54  num : uint { ACT
28730 43 54 58 5f 46 4c 41 47 5f 53 45 54 5f 50 52 4f  CTX_FLAG_SET_PRO
28740 43 45 53 53 5f 44 45 46 41 55 4c 54 20 3d 20 30  CESS_DEFAULT = 0
28750 78 30 30 30 30 30 30 31 30 20 7d 0d 0a 65 6e 75  x00000010 }..enu
28760 6d 20 3a 20 75 69 6e 74 20 7b 20 41 43 54 43 54  m : uint { ACTCT
28770 58 5f 46 4c 41 47 5f 41 50 50 4c 49 43 41 54 49  X_FLAG_APPLICATI
28780 4f 4e 5f 4e 41 4d 45 5f 56 41 4c 49 44 20 3d 20  ON_NAME_VALID = 
28790 30 78 30 30 30 30 30 30 32 30 20 7d 0d 0a 65 6e  0x00000020 }..en
287a0 75 6d 20 3a 20 75 69 6e 74 20 7b 20 41 43 54 43  um : uint { ACTC
287b0 54 58 5f 46 4c 41 47 5f 53 4f 55 52 43 45 5f 49  TX_FLAG_SOURCE_I
287c0 53 5f 41 53 53 45 4d 42 4c 59 52 45 46 20 3d 20  S_ASSEMBLYREF = 
287d0 30 78 30 30 30 30 30 30 34 30 20 7d 0d 0a 65 6e  0x00000040 }..en
287e0 75 6d 20 3a 20 75 69 6e 74 20 7b 20 41 43 54 43  um : uint { ACTC
287f0 54 58 5f 46 4c 41 47 5f 48 4d 4f 44 55 4c 45 5f  TX_FLAG_HMODULE_
28800 56 41 4c 49 44 20 3d 20 30 78 30 30 30 30 30 30  VALID = 0x000000
28810 38 30 20 7d 0d 0a 0d 0a 73 74 72 75 63 74 20 74  80 }....struct t
28820 61 67 41 43 54 43 54 58 41 20 7b 0d 0a 20 20 55  agACTCTXA {..  U
28830 4c 4f 4e 47 20 63 62 53 69 7a 65 3b 0d 0a 20 20  LONG cbSize;..  
28840 44 57 4f 52 44 20 64 77 46 6c 61 67 73 3b 0d 0a  DWORD dwFlags;..
28850 20 20 4c 50 43 53 54 52 20 6c 70 53 6f 75 72 63    LPCSTR lpSourc
28860 65 3b 0d 0a 20 20 55 53 48 4f 52 54 20 77 50 72  e;..  USHORT wPr
28870 6f 63 65 73 73 6f 72 41 72 63 68 69 74 65 63 74  ocessorArchitect
28880 75 72 65 3b 0d 0a 20 20 4c 41 4e 47 49 44 20 77  ure;..  LANGID w
28890 4c 61 6e 67 49 64 3b 0d 0a 20 20 4c 50 43 53 54  LangId;..  LPCST
288a0 52 20 6c 70 41 73 73 65 6d 62 6c 79 44 69 72 65  R lpAssemblyDire
288b0 63 74 6f 72 79 3b 0d 0a 20 20 4c 50 43 53 54 52  ctory;..  LPCSTR
288c0 20 6c 70 52 65 73 6f 75 72 63 65 4e 61 6d 65 3b   lpResourceName;
288d0 0d 0a 20 20 4c 50 43 53 54 52 20 6c 70 41 70 70  ..  LPCSTR lpApp
288e0 6c 69 63 61 74 69 6f 6e 4e 61 6d 65 3b 0d 0a 20  licationName;.. 
288f0 20 48 4d 4f 44 55 4c 45 20 68 4d 6f 64 75 6c 65   HMODULE hModule
28900 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 74 61 67 41  ;..}..alias tagA
28910 43 54 43 54 58 41 20 41 43 54 43 54 58 41 3b 0d  CTCTXA ACTCTXA;.
28920 0a 61 6c 69 61 73 20 74 61 67 41 43 54 43 54 58  .alias tagACTCTX
28930 41 2a 20 50 41 43 54 43 54 58 41 3b 0d 0a 0d 0a  A* PACTCTXA;....
28940 73 74 72 75 63 74 20 74 61 67 41 43 54 43 54 58  struct tagACTCTX
28950 57 20 7b 0d 0a 20 20 55 4c 4f 4e 47 20 63 62 53  W {..  ULONG cbS
28960 69 7a 65 3b 0d 0a 20 20 44 57 4f 52 44 20 64 77  ize;..  DWORD dw
28970 46 6c 61 67 73 3b 0d 0a 20 20 4c 50 43 57 53 54  Flags;..  LPCWST
28980 52 20 6c 70 53 6f 75 72 63 65 3b 0d 0a 20 20 55  R lpSource;..  U
28990 53 48 4f 52 54 20 77 50 72 6f 63 65 73 73 6f 72  SHORT wProcessor
289a0 41 72 63 68 69 74 65 63 74 75 72 65 3b 0d 0a 20  Architecture;.. 
289b0 20 4c 41 4e 47 49 44 20 77 4c 61 6e 67 49 64 3b   LANGID wLangId;
289c0 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 41 73  ..  LPCWSTR lpAs
289d0 73 65 6d 62 6c 79 44 69 72 65 63 74 6f 72 79 3b  semblyDirectory;
289e0 0d 0a 20 20 4c 50 43 57 53 54 52 20 6c 70 52 65  ..  LPCWSTR lpRe
289f0 73 6f 75 72 63 65 4e 61 6d 65 3b 0d 0a 20 20 4c  sourceName;..  L
28a00 50 43 57 53 54 52 20 6c 70 41 70 70 6c 69 63 61  PCWSTR lpApplica
28a10 74 69 6f 6e 4e 61 6d 65 3b 0d 0a 20 20 48 4d 4f  tionName;..  HMO
28a20 44 55 4c 45 20 68 4d 6f 64 75 6c 65 3b 0d 0a 7d  DULE hModule;..}
28a30 0d 0a 61 6c 69 61 73 20 74 61 67 41 43 54 43 54  ..alias tagACTCT
28a40 58 57 20 41 43 54 43 54 58 57 3b 0d 0a 61 6c 69  XW ACTCTXW;..ali
28a50 61 73 20 74 61 67 41 43 54 43 54 58 57 2a 20 50  as tagACTCTXW* P
28a60 41 43 54 43 54 58 57 3b 0d 0a 0d 0a 2f 2f 20 23  ACTCTXW;....// #
28a70 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 2f  ifdef UNICODE../
28a80 2f 20 73 6b 69 70 20 74 79 70 65 64 65 66 20 41  / skip typedef A
28a90 43 54 43 54 58 57 20 41 43 54 43 54 58 3b 0d 0a  CTCTXW ACTCTX;..
28aa0 61 6c 69 61 73 20 50 41 43 54 43 54 58 57 20 50  alias PACTCTXW P
28ab0 41 43 54 43 54 58 3b 0d 0a 2f 2f 20 23 65 6c 73  ACTCTX;..// #els
28ac0 65 0d 0a 2f 2f 20 2e 2e 2e 0d 0a 2f 2f 20 23 65  e..// .....// #e
28ad0 6e 64 69 66 20 2f 2f 20 55 4e 49 43 4f 44 45 0d  ndif // UNICODE.
28ae0 0a 0d 0a 61 6c 69 61 73 20 41 43 54 43 54 58 41  ...alias ACTCTXA
28af0 2a 20 50 43 41 43 54 43 54 58 41 3b 0d 0a 61 6c  * PCACTCTXA;..al
28b00 69 61 73 20 41 43 54 43 54 58 57 2a 20 50 43 41  ias ACTCTXW* PCA
28b10 43 54 43 54 58 57 3b 0d 0a 2f 2f 20 23 69 66 64  CTCTXW;..// #ifd
28b20 65 66 20 55 4e 49 43 4f 44 45 0d 0a 2f 2f 20 73  ef UNICODE..// s
28b30 6b 69 70 20 74 79 70 65 64 65 66 20 41 43 54 43  kip typedef ACTC
28b40 54 58 57 20 41 43 54 43 54 58 3b 0d 0a 61 6c 69  TXW ACTCTX;..ali
28b50 61 73 20 50 43 41 43 54 43 54 58 57 20 50 43 41  as PCACTCTXW PCA
28b60 43 54 43 54 58 3b 0d 0a 2f 2f 20 23 65 6c 73 65  CTCTX;..// #else
28b70 0d 0a 2f 2f 20 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e  ..// .....// #en
28b80 64 69 66 20 2f 2f 20 55 4e 49 43 4f 44 45 0d 0a  dif // UNICODE..
28b90 0d 0a 2f 2f 20 23 65 6e 64 69 66 0d 0a 0d 0a 2f  ..// #endif..../
28ba0 2f 20 23 69 66 20 28 5f 57 49 4e 33 32 5f 57 49  / #if (_WIN32_WI
28bb0 4e 4e 54 20 3e 3d 20 30 78 30 35 30 30 29 20 7c  NNT >= 0x0500) |
28bc0 7c 20 28 5f 57 49 4e 33 32 5f 46 55 53 49 4f 4e  | (_WIN32_FUSION
28bd0 20 3e 3d 20 30 78 30 31 30 30 29 0d 0a 0d 0a 65   >= 0x0100)....e
28be0 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
28bf0 78 70 6f 72 74 20 48 41 4e 44 4c 45 20 43 72 65  xport HANDLE Cre
28c00 61 74 65 41 63 74 43 74 78 41 28 0d 0a 20 20 50  ateActCtxA(..  P
28c10 43 41 43 54 43 54 58 41 20 70 41 63 74 43 74 78  CACTCTXA pActCtx
28c20 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f  );..extern(Windo
28c30 77 73 29 20 65 78 70 6f 72 74 20 48 41 4e 44 4c  ws) export HANDL
28c40 45 20 43 72 65 61 74 65 41 63 74 43 74 78 57 28  E CreateActCtxW(
28c50 0d 0a 20 20 50 43 41 43 54 43 54 58 57 20 70 41  ..  PCACTCTXW pA
28c60 63 74 43 74 78 29 3b 0d 0a 2f 2f 20 23 69 66 64  ctCtx);..// #ifd
28c70 65 66 20 55 4e 49 43 4f 44 45 0d 0a 61 6c 69 61  ef UNICODE..alia
28c80 73 20 43 72 65 61 74 65 41 63 74 43 74 78 57 20  s CreateActCtxW 
28c90 43 72 65 61 74 65 41 63 74 43 74 78 3b 0d 0a 2f  CreateActCtx;../
28ca0 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23 2e 2e 2e  / #else..// #...
28cb0 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2f 20 21  ..// #endif // !
28cc0 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78 74 65 72  UNICODE....exter
28cd0 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
28ce0 74 20 56 4f 49 44 20 41 64 64 52 65 66 41 63 74  t VOID AddRefAct
28cf0 43 74 78 28 0d 0a 20 20 48 41 4e 44 4c 45 20 68  Ctx(..  HANDLE h
28d00 41 63 74 43 74 78 29 3b 0d 0a 0d 0a 65 78 74 65  ActCtx);....exte
28d10 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f  rn(Windows) expo
28d20 72 74 20 56 4f 49 44 20 52 65 6c 65 61 73 65 41  rt VOID ReleaseA
28d30 63 74 43 74 78 28 0d 0a 20 20 48 41 4e 44 4c 45  ctCtx(..  HANDLE
28d40 20 68 41 63 74 43 74 78 29 3b 0d 0a 0d 0a 65 78   hActCtx);....ex
28d50 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
28d60 70 6f 72 74 20 42 4f 4f 4c 20 5a 6f 6d 62 69 66  port BOOL Zombif
28d70 79 41 63 74 43 74 78 28 0d 0a 20 20 48 41 4e 44  yActCtx(..  HAND
28d80 4c 45 20 68 41 63 74 43 74 78 29 3b 0d 0a 0d 0a  LE hActCtx);....
28d90 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20  extern(Windows) 
28da0 65 78 70 6f 72 74 20 42 4f 4f 4c 20 41 63 74 69  export BOOL Acti
28db0 76 61 74 65 41 63 74 43 74 78 28 0d 0a 20 20 48  vateActCtx(..  H
28dc0 41 4e 44 4c 45 20 68 41 63 74 43 74 78 2c 0d 0a  ANDLE hActCtx,..
28dd0 20 20 55 4c 4f 4e 47 5f 50 54 52 20 2a 6c 70 43    ULONG_PTR *lpC
28de0 6f 6f 6b 69 65 29 3b 0d 0a 0d 0a 65 6e 75 6d 20  ookie);....enum 
28df0 3a 20 75 69 6e 74 20 7b 20 44 45 41 43 54 49 56  : uint { DEACTIV
28e00 41 54 45 5f 41 43 54 43 54 58 5f 46 4c 41 47 5f  ATE_ACTCTX_FLAG_
28e10 46 4f 52 43 45 5f 45 41 52 4c 59 5f 44 45 41 43  FORCE_EARLY_DEAC
28e20 54 49 56 41 54 49 4f 4e 20 3d 20 30 78 30 30 30  TIVATION = 0x000
28e30 30 30 30 30 31 20 7d 0d 0a 0d 0a 65 78 74 65 72  00001 }....exter
28e40 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72  n(Windows) expor
28e50 74 20 42 4f 4f 4c 20 44 65 61 63 74 69 76 61 74  t BOOL Deactivat
28e60 65 41 63 74 43 74 78 28 0d 0a 20 20 44 57 4f 52  eActCtx(..  DWOR
28e70 44 20 64 77 46 6c 61 67 73 2c 0d 0a 20 20 55 4c  D dwFlags,..  UL
28e80 4f 4e 47 5f 50 54 52 20 75 6c 43 6f 6f 6b 69 65  ONG_PTR ulCookie
28e90 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e  );....extern(Win
28ea0 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f  dows) export BOO
28eb0 4c 20 47 65 74 43 75 72 72 65 6e 74 41 63 74 43  L GetCurrentActC
28ec0 74 78 28 0d 0a 20 20 48 41 4e 44 4c 45 20 2a 6c  tx(..  HANDLE *l
28ed0 70 68 41 63 74 43 74 78 29 3b 0d 0a 0d 0a 2f 2f  phActCtx);....//
28ee0 20 23 65 6e 64 69 66 0d 0a 0d 0a 2f 2f 20 23 69   #endif....// #i
28ef0 66 20 28 5f 57 49 4e 33 32 5f 57 49 4e 4e 54 20  f (_WIN32_WINNT 
28f00 3e 3d 20 30 78 30 35 30 30 29 20 7c 7c 20 28 5f  >= 0x0500) || (_
28f10 57 49 4e 33 32 5f 46 55 53 49 4f 4e 20 3e 3d 20  WIN32_FUSION >= 
28f20 30 78 30 31 30 30 29 20 7c 7c 20 49 53 4f 4c 41  0x0100) || ISOLA
28f30 54 49 4f 4e 5f 41 57 41 52 45 5f 45 4e 41 42 4c  TION_AWARE_ENABL
28f40 45 44 0d 0a 0d 0a 73 74 72 75 63 74 20 74 61 67  ED....struct tag
28f50 41 43 54 43 54 58 5f 53 45 43 54 49 4f 4e 5f 4b  ACTCTX_SECTION_K
28f60 45 59 45 44 5f 44 41 54 41 20 7b 0d 0a 20 20 55  EYED_DATA {..  U
28f70 4c 4f 4e 47 20 63 62 53 69 7a 65 3b 0d 0a 20 20  LONG cbSize;..  
28f80 55 4c 4f 4e 47 20 75 6c 44 61 74 61 46 6f 72 6d  ULONG ulDataForm
28f90 61 74 56 65 72 73 69 6f 6e 3b 0d 0a 20 20 50 56  atVersion;..  PV
28fa0 4f 49 44 20 6c 70 44 61 74 61 3b 0d 0a 20 20 55  OID lpData;..  U
28fb0 4c 4f 4e 47 20 75 6c 4c 65 6e 67 74 68 3b 0d 0a  LONG ulLength;..
28fc0 20 20 50 56 4f 49 44 20 6c 70 53 65 63 74 69 6f    PVOID lpSectio
28fd0 6e 47 6c 6f 62 61 6c 44 61 74 61 3b 0d 0a 20 20  nGlobalData;..  
28fe0 55 4c 4f 4e 47 20 75 6c 53 65 63 74 69 6f 6e 47  ULONG ulSectionG
28ff0 6c 6f 62 61 6c 44 61 74 61 4c 65 6e 67 74 68 3b  lobalDataLength;
29000 0d 0a 20 20 50 56 4f 49 44 20 6c 70 53 65 63 74  ..  PVOID lpSect
29010 69 6f 6e 42 61 73 65 3b 0d 0a 20 20 55 4c 4f 4e  ionBase;..  ULON
29020 47 20 75 6c 53 65 63 74 69 6f 6e 54 6f 74 61 6c  G ulSectionTotal
29030 4c 65 6e 67 74 68 3b 0d 0a 20 20 48 41 4e 44 4c  Length;..  HANDL
29040 45 20 68 41 63 74 43 74 78 3b 0d 0a 20 20 55 4c  E hActCtx;..  UL
29050 4f 4e 47 20 75 6c 41 73 73 65 6d 62 6c 79 52 6f  ONG ulAssemblyRo
29060 73 74 65 72 49 6e 64 65 78 3b 0d 0a 7d 0d 0a 61  sterIndex;..}..a
29070 6c 69 61 73 20 74 61 67 41 43 54 43 54 58 5f 53  lias tagACTCTX_S
29080 45 43 54 49 4f 4e 5f 4b 45 59 45 44 5f 44 41 54  ECTION_KEYED_DAT
29090 41 20 41 43 54 43 54 58 5f 53 45 43 54 49 4f 4e  A ACTCTX_SECTION
290a0 5f 4b 45 59 45 44 5f 44 41 54 41 3b 0d 0a 61 6c  _KEYED_DATA;..al
290b0 69 61 73 20 74 61 67 41 43 54 43 54 58 5f 53 45  ias tagACTCTX_SE
290c0 43 54 49 4f 4e 5f 4b 45 59 45 44 5f 44 41 54 41  CTION_KEYED_DATA
290d0 2a 20 50 41 43 54 43 54 58 5f 53 45 43 54 49 4f  * PACTCTX_SECTIO
290e0 4e 5f 4b 45 59 45 44 5f 44 41 54 41 3b 0d 0a 0d  N_KEYED_DATA;...
290f0 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 46  .enum : uint { F
29100 49 4e 44 5f 41 43 54 43 54 58 5f 53 45 43 54 49  IND_ACTCTX_SECTI
29110 4f 4e 5f 4b 45 59 5f 52 45 54 55 52 4e 5f 48 41  ON_KEY_RETURN_HA
29120 43 54 43 54 58 20 3d 20 30 78 30 30 30 30 30 30  CTCTX = 0x000000
29130 30 31 20 7d 0d 0a 0d 0a 2f 2f 20 23 65 6e 64 69  01 }....// #endi
29140 66 0d 0a 0d 0a 2f 2f 20 23 69 66 20 28 5f 57 49  f....// #if (_WI
29150 4e 33 32 5f 57 49 4e 4e 54 20 3e 3d 20 30 78 30  N32_WINNT >= 0x0
29160 35 30 30 29 20 7c 7c 20 28 5f 57 49 4e 33 32 5f  500) || (_WIN32_
29170 46 55 53 49 4f 4e 20 3e 3d 20 30 78 30 31 30 30  FUSION >= 0x0100
29180 29 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  )....extern(Wind
29190 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c  ows) export BOOL
291a0 20 46 69 6e 64 41 63 74 43 74 78 53 65 63 74 69   FindActCtxSecti
291b0 6f 6e 53 74 72 69 6e 67 41 28 0d 0a 20 20 44 57  onStringA(..  DW
291c0 4f 52 44 20 64 77 46 6c 61 67 73 2c 0d 0a 20 20  ORD dwFlags,..  
291d0 47 55 49 44 20 2a 6c 70 45 78 74 65 6e 73 69 6f  GUID *lpExtensio
291e0 6e 47 75 69 64 2c 0d 0a 20 20 55 4c 4f 4e 47 20  nGuid,..  ULONG 
291f0 75 6c 53 65 63 74 69 6f 6e 49 64 2c 0d 0a 20 20  ulSectionId,..  
29200 4c 50 43 53 54 52 20 6c 70 53 74 72 69 6e 67 54  LPCSTR lpStringT
29210 6f 46 69 6e 64 2c 0d 0a 20 20 50 41 43 54 43 54  oFind,..  PACTCT
29220 58 5f 53 45 43 54 49 4f 4e 5f 4b 45 59 45 44 5f  X_SECTION_KEYED_
29230 44 41 54 41 20 52 65 74 75 72 6e 65 64 44 61 74  DATA ReturnedDat
29240 61 29 3b 0d 0a 65 78 74 65 72 6e 28 57 69 6e 64  a);..extern(Wind
29250 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f 4c  ows) export BOOL
29260 20 46 69 6e 64 41 63 74 43 74 78 53 65 63 74 69   FindActCtxSecti
29270 6f 6e 53 74 72 69 6e 67 57 28 0d 0a 20 20 44 57  onStringW(..  DW
29280 4f 52 44 20 64 77 46 6c 61 67 73 2c 0d 0a 20 20  ORD dwFlags,..  
29290 47 55 49 44 20 2a 6c 70 45 78 74 65 6e 73 69 6f  GUID *lpExtensio
292a0 6e 47 75 69 64 2c 0d 0a 20 20 55 4c 4f 4e 47 20  nGuid,..  ULONG 
292b0 75 6c 53 65 63 74 69 6f 6e 49 64 2c 0d 0a 20 20  ulSectionId,..  
292c0 4c 50 43 57 53 54 52 20 6c 70 53 74 72 69 6e 67  LPCWSTR lpString
292d0 54 6f 46 69 6e 64 2c 0d 0a 20 20 50 41 43 54 43  ToFind,..  PACTC
292e0 54 58 5f 53 45 43 54 49 4f 4e 5f 4b 45 59 45 44  TX_SECTION_KEYED
292f0 5f 44 41 54 41 20 52 65 74 75 72 6e 65 64 44 61  _DATA ReturnedDa
29300 74 61 29 3b 0d 0a 2f 2f 20 23 69 66 64 65 66 20  ta);..// #ifdef 
29310 55 4e 49 43 4f 44 45 0d 0a 61 6c 69 61 73 20 46  UNICODE..alias F
29320 69 6e 64 41 63 74 43 74 78 53 65 63 74 69 6f 6e  indActCtxSection
29330 53 74 72 69 6e 67 57 20 46 69 6e 64 41 63 74 43  StringW FindActC
29340 74 78 53 65 63 74 69 6f 6e 53 74 72 69 6e 67 3b  txSectionString;
29350 0d 0a 2f 2f 20 23 65 6c 73 65 0d 0a 2f 2f 20 23  ..// #else..// #
29360 2e 2e 2e 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f  .....// #endif /
29370 2f 20 21 55 4e 49 43 4f 44 45 0d 0a 0d 0a 65 78  / !UNICODE....ex
29380 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
29390 70 6f 72 74 20 42 4f 4f 4c 20 46 69 6e 64 41 63  port BOOL FindAc
293a0 74 43 74 78 53 65 63 74 69 6f 6e 47 75 69 64 28  tCtxSectionGuid(
293b0 0d 0a 20 20 44 57 4f 52 44 20 64 77 46 6c 61 67  ..  DWORD dwFlag
293c0 73 2c 0d 0a 20 20 47 55 49 44 20 2a 6c 70 45 78  s,..  GUID *lpEx
293d0 74 65 6e 73 69 6f 6e 47 75 69 64 2c 0d 0a 20 20  tensionGuid,..  
293e0 55 4c 4f 4e 47 20 75 6c 53 65 63 74 69 6f 6e 49  ULONG ulSectionI
293f0 64 2c 0d 0a 20 20 47 55 49 44 20 2a 6c 70 47 75  d,..  GUID *lpGu
29400 69 64 54 6f 46 69 6e 64 2c 0d 0a 20 20 50 41 43  idToFind,..  PAC
29410 54 43 54 58 5f 53 45 43 54 49 4f 4e 5f 4b 45 59  TCTX_SECTION_KEY
29420 45 44 5f 44 41 54 41 20 52 65 74 75 72 6e 65 64  ED_DATA Returned
29430 44 61 74 61 29 3b 0d 0a 0d 0a 2f 2f 20 23 65 6e  Data);....// #en
29440 64 69 66 0d 0a 0d 0a 2f 2f 20 23 69 66 20 28 5f  dif....// #if (_
29450 57 49 4e 33 32 5f 57 49 4e 4e 54 20 3e 3d 20 30  WIN32_WINNT >= 0
29460 78 30 35 30 30 29 20 7c 7c 20 28 5f 57 49 4e 33  x0500) || (_WIN3
29470 32 5f 46 55 53 49 4f 4e 20 3e 3d 20 30 78 30 31  2_FUSION >= 0x01
29480 30 30 29 20 7c 7c 20 49 53 4f 4c 41 54 49 4f 4e  00) || ISOLATION
29490 5f 41 57 41 52 45 5f 45 4e 41 42 4c 45 44 0d 0a  _AWARE_ENABLED..
294a0 0d 0a 2f 2f 20 23 69 66 20 21 64 65 66 69 6e 65  ..// #if !define
294b0 64 28 52 43 5f 49 4e 56 4f 4b 45 44 29 20 2f 2a  d(RC_INVOKED) /*
294c0 20 52 43 20 63 6f 6d 70 6c 61 69 6e 73 20 61 62   RC complains ab
294d0 6f 75 74 20 6c 6f 6e 67 20 73 79 6d 62 6f 6c 73  out long symbols
294e0 20 69 6e 20 23 69 66 73 20 2a 2f 0d 0a 2f 2f 20   in #ifs */..// 
294f0 23 69 66 20 21 64 65 66 69 6e 65 64 28 41 43 54  #if !defined(ACT
29500 49 56 41 54 49 4f 4e 5f 43 4f 4e 54 45 58 54 5f  IVATION_CONTEXT_
29510 42 41 53 49 43 5f 49 4e 46 4f 52 4d 41 54 49 4f  BASIC_INFORMATIO
29520 4e 5f 44 45 46 49 4e 45 44 29 0d 0a 0d 0a 2f 2f  N_DEFINED)....//
29530 20 2e 2e 2e 0d 0a 0d 0a 2f 2f 20 2e 2e 2e 0d 0a   .......// .....
29540 0d 0a 2f 2f 20 23 2e 2e 2e 0d 0a 0d 0a 2f 2f 20  ..// #.......// 
29550 23 65 6e 64 69 66 20 2f 2f 20 21 64 65 66 69 6e  #endif // !defin
29560 65 64 28 41 43 54 49 56 41 54 49 4f 4e 5f 43 4f  ed(ACTIVATION_CO
29570 4e 54 45 58 54 5f 42 41 53 49 43 5f 49 4e 46 4f  NTEXT_BASIC_INFO
29580 52 4d 41 54 49 4f 4e 5f 44 45 46 49 4e 45 44 29  RMATION_DEFINED)
29590 0d 0a 2f 2f 20 23 65 6e 64 69 66 0d 0a 0d 0a 65  ..// #endif....e
295a0 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 51 55 45  num : uint { QUE
295b0 52 59 5f 41 43 54 43 54 58 5f 46 4c 41 47 5f 55  RY_ACTCTX_FLAG_U
295c0 53 45 5f 41 43 54 49 56 45 5f 41 43 54 43 54 58  SE_ACTIVE_ACTCTX
295d0 20 3d 20 30 78 30 30 30 30 30 30 30 34 20 7d 0d   = 0x00000004 }.
295e0 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 20 51  .enum : uint { Q
295f0 55 45 52 59 5f 41 43 54 43 54 58 5f 46 4c 41 47  UERY_ACTCTX_FLAG
29600 5f 41 43 54 43 54 58 5f 49 53 5f 48 4d 4f 44 55  _ACTCTX_IS_HMODU
29610 4c 45 20 3d 20 30 78 30 30 30 30 30 30 30 38 20  LE = 0x00000008 
29620 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b  }..enum : uint {
29630 20 51 55 45 52 59 5f 41 43 54 43 54 58 5f 46 4c   QUERY_ACTCTX_FL
29640 41 47 5f 41 43 54 43 54 58 5f 49 53 5f 41 44 44  AG_ACTCTX_IS_ADD
29650 52 45 53 53 20 3d 20 30 78 30 30 30 30 30 30 31  RESS = 0x0000001
29660 30 20 7d 0d 0a 65 6e 75 6d 20 3a 20 75 69 6e 74  0 }..enum : uint
29670 20 7b 20 51 55 45 52 59 5f 41 43 54 43 54 58 5f   { QUERY_ACTCTX_
29680 46 4c 41 47 5f 4e 4f 5f 41 44 44 52 45 46 20 3d  FLAG_NO_ADDREF =
29690 20 30 78 38 30 30 30 30 30 30 30 20 7d 0d 0a 0d   0x80000000 }...
296a0 0a 2f 2f 20 23 65 6e 64 69 66 0d 0a 0d 0a 2f 2f  .// #endif....//
296b0 20 23 69 66 20 28 5f 57 49 4e 33 32 5f 57 49 4e   #if (_WIN32_WIN
296c0 4e 54 20 3e 3d 20 30 78 30 35 30 30 29 20 7c 7c  NT >= 0x0500) ||
296d0 20 28 5f 57 49 4e 33 32 5f 46 55 53 49 4f 4e 20   (_WIN32_FUSION 
296e0 3e 3d 20 30 78 30 31 30 30 29 0d 0a 0d 0a 65 78  >= 0x0100)....ex
296f0 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
29700 70 6f 72 74 20 42 4f 4f 4c 20 51 75 65 72 79 41  port BOOL QueryA
29710 63 74 43 74 78 57 28 0d 0a 20 20 44 57 4f 52 44  ctCtxW(..  DWORD
29720 20 64 77 46 6c 61 67 73 2c 0d 0a 20 20 48 41 4e   dwFlags,..  HAN
29730 44 4c 45 20 68 41 63 74 43 74 78 2c 0d 0a 20 20  DLE hActCtx,..  
29740 50 56 4f 49 44 20 70 76 53 75 62 49 6e 73 74 61  PVOID pvSubInsta
29750 6e 63 65 2c 0d 0a 20 20 55 4c 4f 4e 47 20 75 6c  nce,..  ULONG ul
29760 49 6e 66 6f 43 6c 61 73 73 2c 0d 0a 20 20 50 56  InfoClass,..  PV
29770 4f 49 44 20 70 76 42 75 66 66 65 72 2c 0d 0a 20  OID pvBuffer,.. 
29780 20 53 49 5a 45 5f 54 20 63 62 42 75 66 66 65 72   SIZE_T cbBuffer
29790 20 2c 0d 0a 20 20 53 49 5a 45 5f 54 20 2a 70 63   ,..  SIZE_T *pc
297a0 62 57 72 69 74 74 65 6e 4f 72 52 65 71 75 69 72  bWrittenOrRequir
297b0 65 64 20 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28  ed );....extern(
297c0 57 69 6e 64 6f 77 73 29 20 61 6c 69 61 73 20 42  Windows) alias B
297d0 4f 4f 4c 20 66 75 6e 63 74 69 6f 6e 28 20 20 44  OOL function(  D
297e0 57 4f 52 44 20 64 77 46 6c 61 67 73 2c 20 20 48  WORD dwFlags,  H
297f0 41 4e 44 4c 45 20 68 41 63 74 43 74 78 2c 20 20  ANDLE hActCtx,  
29800 50 56 4f 49 44 20 70 76 53 75 62 49 6e 73 74 61  PVOID pvSubInsta
29810 6e 63 65 2c 20 20 55 4c 4f 4e 47 20 75 6c 49 6e  nce,  ULONG ulIn
29820 66 6f 43 6c 61 73 73 2c 20 20 50 56 4f 49 44 20  foClass,  PVOID 
29830 70 76 42 75 66 66 65 72 2c 20 20 53 49 5a 45 5f  pvBuffer,  SIZE_
29840 54 20 63 62 42 75 66 66 65 72 20 2c 20 20 53 49  T cbBuffer ,  SI
29850 5a 45 5f 54 20 2a 70 63 62 57 72 69 74 74 65 6e  ZE_T *pcbWritten
29860 4f 72 52 65 71 75 69 72 65 64 20 20 29 20 50 51  OrRequired  ) PQ
29870 55 45 52 59 41 43 54 43 54 58 57 5f 46 55 4e 43  UERYACTCTXW_FUNC
29880 3b 0d 0a 0d 0a 2f 2f 20 23 65 6e 64 69 66 20 2f  ;....// #endif /
29890 2f 20 28 5f 57 49 4e 33 32 5f 57 49 4e 4e 54 20  / (_WIN32_WINNT 
298a0 3e 20 30 78 30 35 30 30 29 20 7c 7c 20 28 5f 57  > 0x0500) || (_W
298b0 49 4e 33 32 5f 46 55 53 49 4f 4e 20 3e 3d 20 30  IN32_FUSION >= 0
298c0 78 30 31 30 30 29 0d 0a 0d 0a 65 78 74 65 72 6e  x0100)....extern
298d0 28 57 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74  (Windows) export
298e0 20 42 4f 4f 4c 20 50 72 6f 63 65 73 73 49 64 54   BOOL ProcessIdT
298f0 6f 53 65 73 73 69 6f 6e 49 64 28 0d 0a 20 20 44  oSessionId(..  D
29900 57 4f 52 44 20 64 77 50 72 6f 63 65 73 73 49 64  WORD dwProcessId
29910 2c 0d 0a 20 20 44 57 4f 52 44 20 2a 70 53 65 73  ,..  DWORD *pSes
29920 73 69 6f 6e 49 64 29 3b 0d 0a 0d 0a 2f 2f 20 23  sionId);....// #
29930 69 66 20 5f 57 49 4e 33 32 5f 57 49 4e 4e 54 20  if _WIN32_WINNT 
29940 3e 3d 20 30 78 30 35 30 31 0d 0a 0d 0a 65 78 74  >= 0x0501....ext
29950 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
29960 6f 72 74 20 44 57 4f 52 44 20 57 54 53 47 65 74  ort DWORD WTSGet
29970 41 63 74 69 76 65 43 6f 6e 73 6f 6c 65 53 65 73  ActiveConsoleSes
29980 73 69 6f 6e 49 64 28 29 3b 0d 0a 0d 0a 65 78 74  sionId();....ext
29990 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78 70  ern(Windows) exp
299a0 6f 72 74 20 42 4f 4f 4c 20 49 73 57 6f 77 36 34  ort BOOL IsWow64
299b0 50 72 6f 63 65 73 73 28 0d 0a 20 20 48 41 4e 44  Process(..  HAND
299c0 4c 45 20 68 50 72 6f 63 65 73 73 2c 0d 0a 20 20  LE hProcess,..  
299d0 50 42 4f 4f 4c 20 57 6f 77 36 34 50 72 6f 63 65  PBOOL Wow64Proce
299e0 73 73 29 3b 0d 0a 0d 0a 2f 2f 20 23 65 6e 64 69  ss);....// #endi
299f0 66 20 2f 2f 20 28 5f 57 49 4e 33 32 5f 57 49 4e  f // (_WIN32_WIN
29a00 4e 54 20 3e 3d 20 30 78 30 35 30 31 29 0d 0a 0d  NT >= 0x0501)...
29a10 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29  .extern(Windows)
29a20 20 65 78 70 6f 72 74 20 42 4f 4f 4c 20 47 65 74   export BOOL Get
29a30 4e 75 6d 61 48 69 67 68 65 73 74 4e 6f 64 65 4e  NumaHighestNodeN
29a40 75 6d 62 65 72 28 0d 0a 20 20 50 55 4c 4f 4e 47  umber(..  PULONG
29a50 20 48 69 67 68 65 73 74 4e 6f 64 65 4e 75 6d 62   HighestNodeNumb
29a60 65 72 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57  er);....extern(W
29a70 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42  indows) export B
29a80 4f 4f 4c 20 47 65 74 4e 75 6d 61 50 72 6f 63 65  OOL GetNumaProce
29a90 73 73 6f 72 4e 6f 64 65 28 0d 0a 20 20 55 43 48  ssorNode(..  UCH
29aa0 41 52 20 50 72 6f 63 65 73 73 6f 72 2c 0d 0a 20  AR Processor,.. 
29ab0 20 50 55 43 48 41 52 20 4e 6f 64 65 4e 75 6d 62   PUCHAR NodeNumb
29ac0 65 72 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57  er);....extern(W
29ad0 69 6e 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42  indows) export B
29ae0 4f 4f 4c 20 47 65 74 4e 75 6d 61 4e 6f 64 65 50  OOL GetNumaNodeP
29af0 72 6f 63 65 73 73 6f 72 4d 61 73 6b 28 0d 0a 20  rocessorMask(.. 
29b00 20 55 43 48 41 52 20 4e 6f 64 65 2c 0d 0a 20 20   UCHAR Node,..  
29b10 50 55 4c 4f 4e 47 4c 4f 4e 47 20 50 72 6f 63 65  PULONGLONG Proce
29b20 73 73 6f 72 4d 61 73 6b 29 3b 0d 0a 0d 0a 65 78  ssorMask);....ex
29b30 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65 78  tern(Windows) ex
29b40 70 6f 72 74 20 42 4f 4f 4c 20 47 65 74 4e 75 6d  port BOOL GetNum
29b50 61 50 72 6f 63 65 73 73 6f 72 4d 61 70 28 0d 0a  aProcessorMap(..
29b60 20 20 50 53 59 53 54 45 4d 5f 4e 55 4d 41 5f 49    PSYSTEM_NUMA_I
29b70 4e 46 4f 52 4d 41 54 49 4f 4e 20 4d 61 70 2c 0d  NFORMATION Map,.
29b80 0a 20 20 55 4c 4f 4e 47 20 4c 65 6e 67 74 68 2c  .  ULONG Length,
29b90 0d 0a 20 20 50 55 4c 4f 4e 47 20 52 65 74 75 72  ..  PULONG Retur
29ba0 6e 65 64 4c 65 6e 67 74 68 29 3b 0d 0a 0d 0a 65  nedLength);....e
29bb0 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
29bc0 78 70 6f 72 74 20 42 4f 4f 4c 20 47 65 74 4e 75  xport BOOL GetNu
29bd0 6d 61 41 76 61 69 6c 61 62 6c 65 4d 65 6d 6f 72  maAvailableMemor
29be0 79 28 0d 0a 20 20 50 53 59 53 54 45 4d 5f 4e 55  y(..  PSYSTEM_NU
29bf0 4d 41 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 20 4d  MA_INFORMATION M
29c00 65 6d 6f 72 79 2c 0d 0a 20 20 55 4c 4f 4e 47 20  emory,..  ULONG 
29c10 4c 65 6e 67 74 68 2c 0d 0a 20 20 50 55 4c 4f 4e  Length,..  PULON
29c20 47 20 52 65 74 75 72 6e 65 64 4c 65 6e 67 74 68  G ReturnedLength
29c30 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 28 57 69 6e  );....extern(Win
29c40 64 6f 77 73 29 20 65 78 70 6f 72 74 20 42 4f 4f  dows) export BOO
29c50 4c 20 47 65 74 4e 75 6d 61 41 76 61 69 6c 61 62  L GetNumaAvailab
29c60 6c 65 4d 65 6d 6f 72 79 4e 6f 64 65 28 0d 0a 20  leMemoryNode(.. 
29c70 20 55 43 48 41 52 20 4e 6f 64 65 2c 0d 0a 20 20   UCHAR Node,..  
29c80 50 55 4c 4f 4e 47 4c 4f 4e 47 20 41 76 61 69 6c  PULONGLONG Avail
29c90 61 62 6c 65 42 79 74 65 73 29 3b 0d 0a 0d 0a 65  ableBytes);....e
29ca0 78 74 65 72 6e 28 57 69 6e 64 6f 77 73 29 20 65  xtern(Windows) e
29cb0 78 70 6f 72 74 20 55 4c 4f 4e 47 4c 4f 4e 47 20  xport ULONGLONG 
29cc0 4e 75 6d 61 56 69 72 74 75 61 6c 51 75 65 72 79  NumaVirtualQuery
29cd0 4e 6f 64 65 28 0d 0a 20 20 55 4c 4f 4e 47 20 4e  Node(..  ULONG N
29ce0 75 6d 62 65 72 4f 66 52 61 6e 67 65 73 2c 0d 0a  umberOfRanges,..
29cf0 20 20 50 55 4c 4f 4e 47 5f 50 54 52 20 52 61 6e    PULONG_PTR Ran
29d00 67 65 4c 69 73 74 2c 0d 0a 20 20 50 55 4c 4f 4e  geList,..  PULON
29d10 47 5f 50 54 52 20 56 69 72 74 75 61 6c 50 61 67  G_PTR VirtualPag
29d20 65 41 6e 64 4e 6f 64 65 2c 0d 0a 20 20 53 49 5a  eAndNode,..  SIZ
29d30 45 5f 54 20 4d 61 78 69 6d 75 6d 4f 75 74 70 75  E_T MaximumOutpu
29d40 74 4c 65 6e 67 74 68 29 3b 0d 0a 0d 0a 2f 2f 20  tLength);....// 
29d50 23 69 66 20 21 64 65 66 69 6e 65 64 28 52 43 5f  #if !defined(RC_
29d60 49 4e 56 4f 4b 45 44 29 20 2f 2a 20 52 43 20 63  INVOKED) /* RC c
29d70 6f 6d 70 6c 61 69 6e 73 20 61 62 6f 75 74 20 6c  omplains about l
29d80 6f 6e 67 20 73 79 6d 62 6f 6c 73 20 69 6e 20 23  ong symbols in #
29d90 69 66 73 20 2a 2f 0d 0a 2f 2f 20 23 69 66 20 49  ifs */..// #if I
29da0 53 4f 4c 41 54 49 4f 4e 5f 41 57 41 52 45 5f 45  SOLATION_AWARE_E
29db0 4e 41 42 4c 45 44 0d 0a 2f 2f 20 23 2e 2e 2e 0d  NABLED..// #....
29dc0 0a 2f 2f 20 23 65 6e 64 69 66 20 2f 2a 20 49 53  .// #endif /* IS
29dd0 4f 4c 41 54 49 4f 4e 5f 41 57 41 52 45 5f 45 4e  OLATION_AWARE_EN
29de0 41 42 4c 45 44 20 2a 2f 0d 0a 2f 2f 20 23 65 6e  ABLED */..// #en
29df0 64 69 66 20 2f 2a 20 52 43 20 2a 2f 0d 0a 0d 0a  dif /* RC */....
29e00 2f 2f 20 23 69 66 64 65 66 20 5f 5f 63 70 6c 75  // #ifdef __cplu
29e10 73 70 6c 75 73 0d 0a 2f 2f 20 7d 0d 0a 2f 2f 20  splus..// }..// 
29e20 23 65 6e 64 69 66 0d 0a 0d 0a 2f 2f 20 23 65 6e  #endif....// #en
29e30 64 69 66 20 2f 2f 20 5f 57 49 4e 42 41 53 45 5f  dif // _WINBASE_
29e40 0d 0a 0d 0a                                      ....