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 ....