0000: 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a /***************
0010: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
0020: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
0030: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
0040: 2a 2a 2a 2a 2a 2a 2a 2a 5c 0a 2a 20 20 20 20 20 ********\.*
0050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0060: 20 20 20 20 20 20 20 20 20 20 61 63 63 63 74 72 accctr
0070: 6c 2e 64 20 20 20 20 20 20 20 20 20 20 20 20 20 l.d
0080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0090: 20 20 2a 0a 2a 20 20 20 20 20 20 20 20 20 20 20 *.*
00a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00d0: 20 20 20 20 20 20 20 20 20 20 20 20 2a 0a 2a 20 *.*
00e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00f0: 20 20 20 20 20 20 57 69 6e 64 6f 77 73 20 41 50 Windows AP
0100: 49 20 68 65 61 64 65 72 20 6d 6f 64 75 6c 65 20 I header module
0110: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0120: 20 20 20 20 20 20 2a 0a 2a 20 20 20 20 20 20 20 *.*
0130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0170: 2a 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 *.*
0180: 20 20 20 20 54 72 61 6e 73 6c 61 74 65 64 20 66 Translated f
0190: 72 6f 6d 20 4d 69 6e 47 57 20 57 69 6e 64 6f 77 rom MinGW Window
01a0: 73 20 68 65 61 64 65 72 73 20 20 20 20 20 20 20 s headers
01b0: 20 20 20 20 20 20 20 20 20 20 2a 0a 2a 20 20 20 *.*
01c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01d0: 20 20 20 20 20 20 20 20 62 79 20 53 74 65 77 61 by Stewa
01e0: 72 74 20 47 6f 72 64 6f 6e 20 20 20 20 20 20 20 rt Gordon
01f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0200: 20 20 20 20 2a 0a 2a 20 20 20 20 20 20 20 20 20 *.*
0210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0220: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0230: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0240: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0a *.
0250: 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 *
0260: 20 20 20 20 20 20 20 20 50 6c 61 63 65 64 20 69 Placed i
0270: 6e 74 6f 20 70 75 62 6c 69 63 20 64 6f 6d 61 69 nto public domai
0280: 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n
0290: 20 20 20 20 20 20 20 20 2a 0a 5c 2a 2a 2a 2a 2a *.\*****
02a0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
02b0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
02c0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
02d0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
02e0: 2a 2a 2f 0a 6d 6f 64 75 6c 65 20 77 69 6e 33 32 **/.module win32
02f0: 2e 61 63 63 63 74 72 6c 3b 0a 0a 70 72 69 76 61 .accctrl;..priva
0300: 74 65 20 69 6d 70 6f 72 74 20 77 69 6e 33 32 2e te import win32.
0310: 62 61 73 65 74 79 70 73 2c 20 77 69 6e 33 32 2e basetyps, win32.
0320: 77 33 32 61 70 69 2c 20 77 69 6e 33 32 2e 77 69 w32api, win32.wi
0330: 6e 62 61 73 65 2c 20 77 69 6e 33 32 2e 77 69 6e nbase, win32.win
0340: 64 65 66 3b 0a 0a 2f 2f 20 46 49 58 4d 45 3a 20 def;..// FIXME:
0350: 63 68 65 63 6b 20 74 79 70 65 73 20 61 6e 64 20 check types and
0360: 67 72 6f 75 70 69 6e 67 20 6f 66 20 63 6f 6e 73 grouping of cons
0370: 74 61 6e 74 73 0a 2f 2f 20 46 49 58 4d 45 3a 20 tants.// FIXME:
0380: 63 68 65 63 6b 20 57 69 6e 64 6f 77 73 20 76 65 check Windows ve
0390: 72 73 69 6f 6e 20 73 75 70 70 6f 72 74 0a 0a 73 rsion support..s
03a0: 74 61 74 69 63 20 61 73 73 65 72 74 20 28 5f 57 tatic assert (_W
03b0: 49 4e 33 32 5f 57 49 4e 4e 54 5f 4f 4e 4c 59 2c IN32_WINNT_ONLY,
03c0: 0a 09 22 77 69 6e 33 32 2e 61 63 63 63 74 72 6c .."win32.accctrl
03d0: 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 6f 6e is available on
03e0: 6c 79 20 69 66 20 76 65 72 73 69 6f 6e 20 57 69 ly if version Wi
03f0: 6e 64 6f 77 73 4e 54 6f 6e 6c 79 2c 20 57 69 6e ndowsNTonly, Win
0400: 64 6f 77 73 58 50 2c 20 22 0a 09 22 57 69 6e 64 dowsXP, ".."Wind
0410: 6f 77 73 32 30 30 33 20 6f 72 20 57 69 6e 64 6f ows2003 or Windo
0420: 77 73 56 69 73 74 61 20 69 73 20 73 65 74 22 29 wsVista is set")
0430: 3b 0a 0a 61 6c 69 61 73 20 4c 6f 63 61 6c 46 72 ;..alias LocalFr
0440: 65 65 20 41 63 63 46 72 65 65 3b 0a 0a 63 6f 6e ee AccFree;..con
0450: 73 74 20 75 69 6e 74 0a 09 41 43 54 52 4c 5f 52 st uint..ACTRL_R
0460: 45 53 45 52 56 45 44 20 20 20 20 20 20 20 20 20 ESERVED
0470: 20 20 20 3d 20 30 78 30 30 30 30 30 30 30 30 2c = 0x00000000,
0480: 0a 09 41 43 54 52 4c 5f 41 43 43 45 53 53 5f 50 ..ACTRL_ACCESS_P
0490: 52 4f 54 45 43 54 45 44 20 20 20 20 3d 20 30 78 ROTECTED = 0x
04a0: 30 30 30 30 30 30 30 31 2c 0a 09 41 43 54 52 4c 00000001,..ACTRL
04b0: 5f 41 43 43 45 53 53 5f 41 4c 4c 4f 57 45 44 20 _ACCESS_ALLOWED
04c0: 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 30 30 = 0x0000000
04d0: 31 2c 0a 09 41 43 54 52 4c 5f 41 43 43 45 53 53 1,..ACTRL_ACCESS
04e0: 5f 44 45 4e 49 45 44 20 20 20 20 20 20 20 3d 20 _DENIED =
04f0: 30 78 30 30 30 30 30 30 30 32 2c 0a 09 41 43 54 0x00000002,..ACT
0500: 52 4c 5f 41 55 44 49 54 5f 53 55 43 43 45 53 53 RL_AUDIT_SUCCESS
0510: 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 = 0x00000
0520: 30 30 34 2c 0a 09 41 43 54 52 4c 5f 41 55 44 49 004,..ACTRL_AUDI
0530: 54 5f 46 41 49 4c 55 52 45 20 20 20 20 20 20 20 T_FAILURE
0540: 3d 20 30 78 30 30 30 30 30 30 30 38 2c 0a 09 41 = 0x00000008,..A
0550: 43 54 52 4c 5f 53 59 53 54 45 4d 5f 41 43 43 45 CTRL_SYSTEM_ACCE
0560: 53 53 20 20 20 20 20 20 20 3d 20 30 78 30 34 30 SS = 0x040
0570: 30 30 30 30 30 2c 0a 09 41 43 54 52 4c 5f 44 45 00000,..ACTRL_DE
0580: 4c 45 54 45 20 20 20 20 20 20 20 20 20 20 20 20 LETE
0590: 20 20 3d 20 30 78 30 38 30 30 30 30 30 30 2c 0a = 0x08000000,.
05a0: 09 41 43 54 52 4c 5f 52 45 41 44 5f 43 4f 4e 54 .ACTRL_READ_CONT
05b0: 52 4f 4c 20 20 20 20 20 20 20 20 3d 20 30 78 31 ROL = 0x1
05c0: 30 30 30 30 30 30 30 2c 0a 09 41 43 54 52 4c 5f 0000000,..ACTRL_
05d0: 43 48 41 4e 47 45 5f 41 43 43 45 53 53 20 20 20 CHANGE_ACCESS
05e0: 20 20 20 20 3d 20 30 78 32 30 30 30 30 30 30 30 = 0x20000000
05f0: 2c 0a 09 41 43 54 52 4c 5f 43 48 41 4e 47 45 5f ,..ACTRL_CHANGE_
0600: 4f 57 4e 45 52 20 20 20 20 20 20 20 20 3d 20 30 OWNER = 0
0610: 78 34 30 30 30 30 30 30 30 2c 0a 09 41 43 54 52 x40000000,..ACTR
0620: 4c 5f 53 59 4e 43 48 52 4f 4e 49 5a 45 20 20 20 L_SYNCHRONIZE
0630: 20 20 20 20 20 20 3d 20 30 78 38 30 30 30 30 30 = 0x800000
0640: 30 30 2c 0a 09 41 43 54 52 4c 5f 53 54 44 5f 52 00,..ACTRL_STD_R
0650: 49 47 48 54 53 5f 41 4c 4c 20 20 20 20 20 20 3d IGHTS_ALL =
0660: 20 30 78 66 38 30 30 30 30 30 30 3b 0a 0a 63 6f 0xf8000000;..co
0670: 6e 73 74 20 75 69 6e 74 0a 09 41 43 54 52 4c 5f nst uint..ACTRL_
0680: 46 49 4c 45 5f 52 45 41 44 20 20 20 20 20 20 20 FILE_READ
0690: 20 20 20 20 3d 20 30 78 30 30 30 30 30 30 30 31 = 0x00000001
06a0: 2c 0a 09 41 43 54 52 4c 5f 46 49 4c 45 5f 57 52 ,..ACTRL_FILE_WR
06b0: 49 54 45 20 20 20 20 20 20 20 20 20 20 3d 20 30 ITE = 0
06c0: 78 30 30 30 30 30 30 30 32 2c 0a 09 41 43 54 52 x00000002,..ACTR
06d0: 4c 5f 46 49 4c 45 5f 41 50 50 45 4e 44 20 20 20 L_FILE_APPEND
06e0: 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 30 = 0x000000
06f0: 30 34 2c 0a 09 41 43 54 52 4c 5f 46 49 4c 45 5f 04,..ACTRL_FILE_
0700: 52 45 41 44 5f 50 52 4f 50 20 20 20 20 20 20 3d READ_PROP =
0710: 20 30 78 30 30 30 30 30 30 30 38 2c 0a 09 41 43 0x00000008,..AC
0720: 54 52 4c 5f 46 49 4c 45 5f 57 52 49 54 45 5f 50 TRL_FILE_WRITE_P
0730: 52 4f 50 20 20 20 20 20 3d 20 30 78 30 30 30 30 ROP = 0x0000
0740: 30 30 31 30 2c 0a 09 41 43 54 52 4c 5f 46 49 4c 0010,..ACTRL_FIL
0750: 45 5f 45 58 45 43 55 54 45 20 20 20 20 20 20 20 E_EXECUTE
0760: 20 3d 20 30 78 30 30 30 30 30 30 32 30 2c 0a 09 = 0x00000020,..
0770: 41 43 54 52 4c 5f 46 49 4c 45 5f 52 45 41 44 5f ACTRL_FILE_READ_
0780: 41 54 54 52 49 42 20 20 20 20 3d 20 30 78 30 30 ATTRIB = 0x00
0790: 30 30 30 30 38 30 2c 0a 09 41 43 54 52 4c 5f 46 000080,..ACTRL_F
07a0: 49 4c 45 5f 57 52 49 54 45 5f 41 54 54 52 49 42 ILE_WRITE_ATTRIB
07b0: 20 20 20 3d 20 30 78 30 30 30 30 30 31 30 30 2c = 0x00000100,
07c0: 0a 09 41 43 54 52 4c 5f 46 49 4c 45 5f 43 52 45 ..ACTRL_FILE_CRE
07d0: 41 54 45 5f 50 49 50 45 20 20 20 20 3d 20 30 78 ATE_PIPE = 0x
07e0: 30 30 30 30 30 32 30 30 3b 0a 0a 63 6f 6e 73 74 00000200;..const
07f0: 20 75 69 6e 74 0a 09 41 43 54 52 4c 5f 44 49 52 uint..ACTRL_DIR
0800: 5f 4c 49 53 54 20 20 20 20 20 20 20 20 20 20 20 _LIST
0810: 20 3d 20 30 78 30 30 30 30 30 30 30 31 2c 0a 09 = 0x00000001,..
0820: 41 43 54 52 4c 5f 44 49 52 5f 43 52 45 41 54 45 ACTRL_DIR_CREATE
0830: 5f 4f 42 4a 45 43 54 20 20 20 3d 20 30 78 30 30 _OBJECT = 0x00
0840: 30 30 30 30 30 32 2c 0a 09 41 43 54 52 4c 5f 44 000002,..ACTRL_D
0850: 49 52 5f 43 52 45 41 54 45 5f 43 48 49 4c 44 20 IR_CREATE_CHILD
0860: 20 20 20 3d 20 30 78 30 30 30 30 30 30 30 34 2c = 0x00000004,
0870: 0a 09 41 43 54 52 4c 5f 44 49 52 5f 44 45 4c 45 ..ACTRL_DIR_DELE
0880: 54 45 5f 43 48 49 4c 44 20 20 20 20 3d 20 30 78 TE_CHILD = 0x
0890: 30 30 30 30 30 30 34 30 2c 0a 09 41 43 54 52 4c 00000040,..ACTRL
08a0: 5f 44 49 52 5f 54 52 41 56 45 52 53 45 20 20 20 _DIR_TRAVERSE
08b0: 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 30 32 = 0x0000002
08c0: 30 3b 0a 0a 63 6f 6e 73 74 20 75 69 6e 74 0a 09 0;..const uint..
08d0: 41 43 54 52 4c 5f 4b 45 52 4e 45 4c 5f 54 45 52 ACTRL_KERNEL_TER
08e0: 4d 49 4e 41 54 45 20 20 20 20 3d 20 30 78 30 30 MINATE = 0x00
08f0: 30 30 30 30 30 31 2c 0a 09 41 43 54 52 4c 5f 4b 000001,..ACTRL_K
0900: 45 52 4e 45 4c 5f 54 48 52 45 41 44 20 20 20 20 ERNEL_THREAD
0910: 20 20 20 3d 20 30 78 30 30 30 30 30 30 30 32 2c = 0x00000002,
0920: 0a 09 41 43 54 52 4c 5f 4b 45 52 4e 45 4c 5f 56 ..ACTRL_KERNEL_V
0930: 4d 20 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 M = 0x
0940: 30 30 30 30 30 30 30 34 2c 0a 09 41 43 54 52 4c 00000004,..ACTRL
0950: 5f 4b 45 52 4e 45 4c 5f 56 4d 5f 52 45 41 44 20 _KERNEL_VM_READ
0960: 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 30 30 = 0x0000000
0970: 38 2c 0a 09 41 43 54 52 4c 5f 4b 45 52 4e 45 4c 8,..ACTRL_KERNEL
0980: 5f 56 4d 5f 57 52 49 54 45 20 20 20 20 20 3d 20 _VM_WRITE =
0990: 30 78 30 30 30 30 30 30 31 30 2c 0a 09 41 43 54 0x00000010,..ACT
09a0: 52 4c 5f 4b 45 52 4e 45 4c 5f 44 55 50 5f 48 41 RL_KERNEL_DUP_HA
09b0: 4e 44 4c 45 20 20 20 3d 20 30 78 30 30 30 30 30 NDLE = 0x00000
09c0: 30 32 30 2c 0a 09 41 43 54 52 4c 5f 4b 45 52 4e 020,..ACTRL_KERN
09d0: 45 4c 5f 50 52 4f 43 45 53 53 20 20 20 20 20 20 EL_PROCESS
09e0: 3d 20 30 78 30 30 30 30 30 30 34 30 2c 0a 09 41 = 0x00000040,..A
09f0: 43 54 52 4c 5f 4b 45 52 4e 45 4c 5f 53 45 54 5f CTRL_KERNEL_SET_
0a00: 49 4e 46 4f 20 20 20 20 20 3d 20 30 78 30 30 30 INFO = 0x000
0a10: 30 30 30 38 30 2c 0a 09 41 43 54 52 4c 5f 4b 45 00080,..ACTRL_KE
0a20: 52 4e 45 4c 5f 47 45 54 5f 49 4e 46 4f 20 20 20 RNEL_GET_INFO
0a30: 20 20 3d 20 30 78 30 30 30 30 30 31 30 30 2c 0a = 0x00000100,.
0a40: 09 41 43 54 52 4c 5f 4b 45 52 4e 45 4c 5f 43 4f .ACTRL_KERNEL_CO
0a50: 4e 54 52 4f 4c 20 20 20 20 20 20 3d 20 30 78 30 NTROL = 0x0
0a60: 30 30 30 30 32 30 30 2c 0a 09 41 43 54 52 4c 5f 0000200,..ACTRL_
0a70: 4b 45 52 4e 45 4c 5f 41 4c 45 52 54 20 20 20 20 KERNEL_ALERT
0a80: 20 20 20 20 3d 20 30 78 30 30 30 30 30 34 30 30 = 0x00000400
0a90: 2c 0a 09 41 43 54 52 4c 5f 4b 45 52 4e 45 4c 5f ,..ACTRL_KERNEL_
0aa0: 47 45 54 5f 43 4f 4e 54 45 58 54 20 20 3d 20 30 GET_CONTEXT = 0
0ab0: 78 30 30 30 30 30 38 30 30 2c 0a 09 41 43 54 52 x00000800,..ACTR
0ac0: 4c 5f 4b 45 52 4e 45 4c 5f 53 45 54 5f 43 4f 4e L_KERNEL_SET_CON
0ad0: 54 45 58 54 20 20 3d 20 30 78 30 30 30 30 31 30 TEXT = 0x000010
0ae0: 30 30 2c 0a 09 41 43 54 52 4c 5f 4b 45 52 4e 45 00,..ACTRL_KERNE
0af0: 4c 5f 54 4f 4b 45 4e 20 20 20 20 20 20 20 20 3d L_TOKEN =
0b00: 20 30 78 30 30 30 30 32 30 30 30 2c 0a 09 41 43 0x00002000,..AC
0b10: 54 52 4c 5f 4b 45 52 4e 45 4c 5f 49 4d 50 45 52 TRL_KERNEL_IMPER
0b20: 53 4f 4e 41 54 45 20 20 3d 20 30 78 30 30 30 30 SONATE = 0x0000
0b30: 34 30 30 30 2c 0a 09 41 43 54 52 4c 5f 4b 45 52 4000,..ACTRL_KER
0b40: 4e 45 4c 5f 44 49 4d 50 45 52 53 4f 4e 41 54 45 NEL_DIMPERSONATE
0b50: 20 3d 20 30 78 30 30 30 30 38 30 30 30 3b 0a 0a = 0x00008000;..
0b60: 63 6f 6e 73 74 20 75 69 6e 74 0a 09 41 43 54 52 const uint..ACTR
0b70: 4c 5f 50 52 49 4e 54 5f 53 41 44 4d 49 4e 20 20 L_PRINT_SADMIN
0b80: 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 30 = 0x000000
0b90: 30 31 2c 0a 09 41 43 54 52 4c 5f 50 52 49 4e 54 01,..ACTRL_PRINT
0ba0: 5f 53 4c 49 53 54 20 20 20 20 20 20 20 20 20 3d _SLIST =
0bb0: 20 30 78 30 30 30 30 30 30 30 32 2c 0a 09 41 43 0x00000002,..AC
0bc0: 54 52 4c 5f 50 52 49 4e 54 5f 50 41 44 4d 49 4e TRL_PRINT_PADMIN
0bd0: 20 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 = 0x0000
0be0: 30 30 30 34 2c 0a 09 41 43 54 52 4c 5f 50 52 49 0004,..ACTRL_PRI
0bf0: 4e 54 5f 50 55 53 45 20 20 20 20 20 20 20 20 20 NT_PUSE
0c00: 20 3d 20 30 78 30 30 30 30 30 30 30 38 2c 0a 09 = 0x00000008,..
0c10: 41 43 54 52 4c 5f 50 52 49 4e 54 5f 4a 41 44 4d ACTRL_PRINT_JADM
0c20: 49 4e 20 20 20 20 20 20 20 20 3d 20 30 78 30 30 IN = 0x00
0c30: 30 30 30 30 31 30 3b 0a 0a 63 6f 6e 73 74 20 75 000010;..const u
0c40: 69 6e 74 0a 09 41 43 54 52 4c 5f 53 56 43 5f 47 int..ACTRL_SVC_G
0c50: 45 54 5f 49 4e 46 4f 20 20 20 20 20 20 20 20 3d ET_INFO =
0c60: 20 30 78 30 30 30 30 30 30 30 31 2c 0a 09 41 43 0x00000001,..AC
0c70: 54 52 4c 5f 53 56 43 5f 53 45 54 5f 49 4e 46 4f TRL_SVC_SET_INFO
0c80: 20 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 = 0x0000
0c90: 30 30 30 32 2c 0a 09 41 43 54 52 4c 5f 53 56 43 0002,..ACTRL_SVC
0ca0: 5f 53 54 41 54 55 53 20 20 20 20 20 20 20 20 20 _STATUS
0cb0: 20 3d 20 30 78 30 30 30 30 30 30 30 34 2c 0a 09 = 0x00000004,..
0cc0: 41 43 54 52 4c 5f 53 56 43 5f 4c 49 53 54 20 20 ACTRL_SVC_LIST
0cd0: 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 30 = 0x00
0ce0: 30 30 30 30 30 38 2c 0a 09 41 43 54 52 4c 5f 53 000008,..ACTRL_S
0cf0: 56 43 5f 53 54 41 52 54 20 20 20 20 20 20 20 20 VC_START
0d00: 20 20 20 3d 20 30 78 30 30 30 30 30 30 31 30 2c = 0x00000010,
0d10: 0a 09 41 43 54 52 4c 5f 53 56 43 5f 53 54 4f 50 ..ACTRL_SVC_STOP
0d20: 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 = 0x
0d30: 30 30 30 30 30 30 32 30 2c 0a 09 41 43 54 52 4c 00000020,..ACTRL
0d40: 5f 53 56 43 5f 50 41 55 53 45 20 20 20 20 20 20 _SVC_PAUSE
0d50: 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 30 34 = 0x0000004
0d60: 30 2c 0a 09 41 43 54 52 4c 5f 53 56 43 5f 49 4e 0,..ACTRL_SVC_IN
0d70: 54 45 52 52 4f 47 41 54 45 20 20 20 20 20 3d 20 TERROGATE =
0d80: 30 78 30 30 30 30 30 30 38 30 2c 0a 09 41 43 54 0x00000080,..ACT
0d90: 52 4c 5f 53 56 43 5f 55 43 4f 4e 54 52 4f 4c 20 RL_SVC_UCONTROL
0da0: 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 = 0x00000
0db0: 31 30 30 3b 0a 0a 63 6f 6e 73 74 20 75 69 6e 74 100;..const uint
0dc0: 0a 09 41 43 54 52 4c 5f 52 45 47 5f 51 55 45 52 ..ACTRL_REG_QUER
0dd0: 59 20 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 Y = 0x
0de0: 30 30 30 30 30 30 30 31 2c 0a 09 41 43 54 52 4c 00000001,..ACTRL
0df0: 5f 52 45 47 5f 53 45 54 20 20 20 20 20 20 20 20 _REG_SET
0e00: 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 30 30 = 0x0000000
0e10: 32 2c 0a 09 41 43 54 52 4c 5f 52 45 47 5f 43 52 2,..ACTRL_REG_CR
0e20: 45 41 54 45 5f 43 48 49 4c 44 20 20 20 20 3d 20 EATE_CHILD =
0e30: 30 78 30 30 30 30 30 30 30 34 2c 0a 09 41 43 54 0x00000004,..ACT
0e40: 52 4c 5f 52 45 47 5f 4c 49 53 54 20 20 20 20 20 RL_REG_LIST
0e50: 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 = 0x00000
0e60: 30 30 38 2c 0a 09 41 43 54 52 4c 5f 52 45 47 5f 008,..ACTRL_REG_
0e70: 4e 4f 54 49 46 59 20 20 20 20 20 20 20 20 20 20 NOTIFY
0e80: 3d 20 30 78 30 30 30 30 30 30 31 30 2c 0a 09 41 = 0x00000010,..A
0e90: 43 54 52 4c 5f 52 45 47 5f 4c 49 4e 4b 20 20 20 CTRL_REG_LINK
0ea0: 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 = 0x000
0eb0: 30 30 30 32 30 3b 0a 0a 63 6f 6e 73 74 20 75 69 00020;..const ui
0ec0: 6e 74 0a 09 41 43 54 52 4c 5f 57 49 4e 5f 43 4c nt..ACTRL_WIN_CL
0ed0: 49 50 42 52 44 20 20 20 20 20 20 20 20 20 3d 20 IPBRD =
0ee0: 30 78 30 30 30 30 30 30 30 31 2c 0a 09 41 43 54 0x00000001,..ACT
0ef0: 52 4c 5f 57 49 4e 5f 47 4c 4f 42 41 4c 5f 41 54 RL_WIN_GLOBAL_AT
0f00: 4f 4d 53 20 20 20 20 3d 20 30 78 30 30 30 30 30 OMS = 0x00000
0f10: 30 30 32 2c 0a 09 41 43 54 52 4c 5f 57 49 4e 5f 002,..ACTRL_WIN_
0f20: 43 52 45 41 54 45 20 20 20 20 20 20 20 20 20 20 CREATE
0f30: 3d 20 30 78 30 30 30 30 30 30 30 34 2c 0a 09 41 = 0x00000004,..A
0f40: 43 54 52 4c 5f 57 49 4e 5f 4c 49 53 54 5f 44 45 CTRL_WIN_LIST_DE
0f50: 53 4b 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 SK = 0x000
0f60: 30 30 30 30 38 2c 0a 09 41 43 54 52 4c 5f 57 49 00008,..ACTRL_WI
0f70: 4e 5f 4c 49 53 54 20 20 20 20 20 20 20 20 20 20 N_LIST
0f80: 20 20 3d 20 30 78 30 30 30 30 30 30 31 30 2c 0a = 0x00000010,.
0f90: 09 41 43 54 52 4c 5f 57 49 4e 5f 52 45 41 44 5f .ACTRL_WIN_READ_
0fa0: 41 54 54 52 49 42 53 20 20 20 20 3d 20 30 78 30 ATTRIBS = 0x0
0fb0: 30 30 30 30 30 32 30 2c 0a 09 41 43 54 52 4c 5f 0000020,..ACTRL_
0fc0: 57 49 4e 5f 57 52 49 54 45 5f 41 54 54 52 49 42 WIN_WRITE_ATTRIB
0fd0: 53 20 20 20 3d 20 30 78 30 30 30 30 30 30 34 30 S = 0x00000040
0fe0: 2c 0a 09 41 43 54 52 4c 5f 57 49 4e 5f 53 43 52 ,..ACTRL_WIN_SCR
0ff0: 45 45 4e 20 20 20 20 20 20 20 20 20 20 3d 20 30 EEN = 0
1000: 78 30 30 30 30 30 30 38 30 2c 0a 09 41 43 54 52 x00000080,..ACTR
1010: 4c 5f 57 49 4e 5f 45 58 49 54 20 20 20 20 20 20 L_WIN_EXIT
1020: 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 31 = 0x000001
1030: 30 30 3b 0a 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 00;..enum : uint
1040: 20 7b 0a 09 41 43 54 52 4c 5f 41 43 43 45 53 53 {..ACTRL_ACCESS
1050: 5f 4e 4f 5f 4f 50 54 49 4f 4e 53 20 20 20 20 20 _NO_OPTIONS
1060: 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 = 0x000
1070: 30 30 30 30 30 2c 0a 09 41 43 54 52 4c 5f 41 43 00000,..ACTRL_AC
1080: 43 45 53 53 5f 53 55 50 50 4f 52 54 53 5f 4f 42 CESS_SUPPORTS_OB
1090: 4a 45 43 54 5f 45 4e 54 52 49 45 53 20 3d 20 30 JECT_ENTRIES = 0
10a0: 78 30 30 30 30 30 30 30 31 0a 7d 0a 0a 63 6f 6e x00000001.}..con
10b0: 73 74 20 54 43 48 41 52 5b 5d 20 41 43 43 43 54 st TCHAR[] ACCCT
10c0: 52 4c 5f 44 45 46 41 55 4c 54 5f 50 52 4f 56 49 RL_DEFAULT_PROVI
10d0: 44 45 52 20 3d 20 22 57 69 6e 64 6f 77 73 20 4e DER = "Windows N
10e0: 54 20 41 63 63 65 73 73 20 50 72 6f 76 69 64 65 T Access Provide
10f0: 72 22 3b 0a 0a 63 6f 6e 73 74 20 75 69 6e 74 0a r";..const uint.
1100: 09 54 52 55 53 54 45 45 5f 41 43 43 45 53 53 5f .TRUSTEE_ACCESS_
1110: 41 4c 4c 4f 57 45 44 20 20 20 20 3d 20 30 78 30 ALLOWED = 0x0
1120: 30 30 30 30 30 30 31 2c 0a 09 54 52 55 53 54 45 0000001,..TRUSTE
1130: 45 5f 41 43 43 45 53 53 5f 52 45 41 44 20 20 20 E_ACCESS_READ
1140: 20 20 20 20 3d 20 30 78 30 30 30 30 30 30 30 32 = 0x00000002
1150: 2c 0a 09 54 52 55 53 54 45 45 5f 41 43 43 45 53 ,..TRUSTEE_ACCES
1160: 53 5f 57 52 49 54 45 20 20 20 20 20 20 3d 20 30 S_WRITE = 0
1170: 78 30 30 30 30 30 30 30 34 2c 0a 09 54 52 55 53 x00000004,..TRUS
1180: 54 45 45 5f 41 43 43 45 53 53 5f 45 58 50 4c 49 TEE_ACCESS_EXPLI
1190: 43 49 54 20 20 20 3d 20 30 78 30 30 30 30 30 30 CIT = 0x000000
11a0: 30 31 2c 0a 09 54 52 55 53 54 45 45 5f 41 43 43 01,..TRUSTEE_ACC
11b0: 45 53 53 5f 52 45 41 44 5f 57 52 49 54 45 20 3d ESS_READ_WRITE =
11c0: 20 30 78 30 30 30 30 30 30 30 36 2c 0a 09 54 52 0x00000006,..TR
11d0: 55 53 54 45 45 5f 41 43 43 45 53 53 5f 41 4c 4c USTEE_ACCESS_ALL
11e0: 20 20 20 20 20 20 20 20 3d 20 30 78 46 46 46 46 = 0xFFFF
11f0: 46 46 46 46 3b 0a 0a 63 6f 6e 73 74 20 75 69 6e FFFF;..const uin
1200: 74 0a 09 4e 4f 5f 49 4e 48 45 52 49 54 41 4e 43 t..NO_INHERITANC
1210: 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 E
1220: 20 20 20 20 20 20 3d 20 30 78 30 2c 0a 09 53 55 = 0x0,..SU
1230: 42 5f 4f 42 4a 45 43 54 53 5f 4f 4e 4c 59 5f 49 B_OBJECTS_ONLY_I
1240: 4e 48 45 52 49 54 20 20 20 20 20 20 20 20 20 20 NHERIT
1250: 20 3d 20 30 78 31 2c 0a 09 53 55 42 5f 43 4f 4e = 0x1,..SUB_CON
1260: 54 41 49 4e 45 52 53 5f 4f 4e 4c 59 5f 49 4e 48 TAINERS_ONLY_INH
1270: 45 52 49 54 20 20 20 20 20 20 20 20 3d 20 30 78 ERIT = 0x
1280: 32 2c 0a 09 53 55 42 5f 43 4f 4e 54 41 49 4e 45 2,..SUB_CONTAINE
1290: 52 53 5f 41 4e 44 5f 4f 42 4a 45 43 54 53 5f 49 RS_AND_OBJECTS_I
12a0: 4e 48 45 52 49 54 20 3d 20 30 78 33 2c 0a 09 49 NHERIT = 0x3,..I
12b0: 4e 48 45 52 49 54 5f 4e 4f 5f 50 52 4f 50 41 47 NHERIT_NO_PROPAG
12c0: 41 54 45 20 20 20 20 20 20 20 20 20 20 20 20 20 ATE
12d0: 20 20 3d 20 30 78 34 2c 0a 09 49 4e 48 45 52 49 = 0x4,..INHERI
12e0: 54 5f 4f 4e 4c 59 20 20 20 20 20 20 20 20 20 20 T_ONLY
12f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 30 = 0
1300: 78 38 2c 0a 09 49 4e 48 45 52 49 54 45 44 5f 41 x8,..INHERITED_A
1310: 43 43 45 53 53 5f 45 4e 54 52 59 20 20 20 20 20 CCESS_ENTRY
1320: 20 20 20 20 20 20 20 20 3d 20 30 78 31 30 2c 0a = 0x10,.
1330: 09 49 4e 48 45 52 49 54 45 44 5f 50 41 52 45 4e .INHERITED_PAREN
1340: 54 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 T
1350: 20 20 20 20 3d 20 30 78 31 30 30 30 30 30 30 30 = 0x10000000
1360: 2c 0a 09 49 4e 48 45 52 49 54 45 44 5f 47 52 41 ,..INHERITED_GRA
1370: 4e 44 50 41 52 45 4e 54 20 20 20 20 20 20 20 20 NDPARENT
1380: 20 20 20 20 20 20 3d 20 30 78 32 30 30 30 30 30 = 0x200000
1390: 30 30 3b 0a 0a 61 6c 69 61 73 20 55 4c 4f 4e 47 00;..alias ULONG
13a0: 20 49 4e 48 45 52 49 54 5f 46 4c 41 47 53 2c 20 INHERIT_FLAGS,
13b0: 41 43 43 45 53 53 5f 52 49 47 48 54 53 3b 0a 61 ACCESS_RIGHTS;.a
13c0: 6c 69 61 73 20 55 4c 4f 4e 47 2a 20 50 49 4e 48 lias ULONG* PINH
13d0: 45 52 49 54 5f 46 4c 41 47 53 2c 20 50 41 43 43 ERIT_FLAGS, PACC
13e0: 45 53 53 5f 52 49 47 48 54 53 3b 0a 0a 65 6e 75 ESS_RIGHTS;..enu
13f0: 6d 20 41 43 43 45 53 53 5f 4d 4f 44 45 20 7b 0a m ACCESS_MODE {.
1400: 09 4e 4f 54 5f 55 53 45 44 5f 41 43 43 45 53 53 .NOT_USED_ACCESS
1410: 2c 0a 09 47 52 41 4e 54 5f 41 43 43 45 53 53 2c ,..GRANT_ACCESS,
1420: 0a 09 53 45 54 5f 41 43 43 45 53 53 2c 0a 09 44 ..SET_ACCESS,..D
1430: 45 4e 59 5f 41 43 43 45 53 53 2c 0a 09 52 45 56 ENY_ACCESS,..REV
1440: 4f 4b 45 5f 41 43 43 45 53 53 2c 0a 09 53 45 54 OKE_ACCESS,..SET
1450: 5f 41 55 44 49 54 5f 53 55 43 43 45 53 53 2c 0a _AUDIT_SUCCESS,.
1460: 09 53 45 54 5f 41 55 44 49 54 5f 46 41 49 4c 55 .SET_AUDIT_FAILU
1470: 52 45 0a 7d 0a 0a 65 6e 75 6d 20 53 45 5f 4f 42 RE.}..enum SE_OB
1480: 4a 45 43 54 5f 54 59 50 45 20 7b 0a 09 53 45 5f JECT_TYPE {..SE_
1490: 55 4e 4b 4e 4f 57 4e 5f 4f 42 4a 45 43 54 5f 54 UNKNOWN_OBJECT_T
14a0: 59 50 45 2c 0a 09 53 45 5f 46 49 4c 45 5f 4f 42 YPE,..SE_FILE_OB
14b0: 4a 45 43 54 2c 0a 09 53 45 5f 53 45 52 56 49 43 JECT,..SE_SERVIC
14c0: 45 2c 0a 09 53 45 5f 50 52 49 4e 54 45 52 2c 0a E,..SE_PRINTER,.
14d0: 09 53 45 5f 52 45 47 49 53 54 52 59 5f 4b 45 59 .SE_REGISTRY_KEY
14e0: 2c 0a 09 53 45 5f 4c 4d 53 48 41 52 45 2c 0a 09 ,..SE_LMSHARE,..
14f0: 53 45 5f 4b 45 52 4e 45 4c 5f 4f 42 4a 45 43 54 SE_KERNEL_OBJECT
1500: 2c 0a 09 53 45 5f 57 49 4e 44 4f 57 5f 4f 42 4a ,..SE_WINDOW_OBJ
1510: 45 43 54 2c 0a 09 53 45 5f 44 53 5f 4f 42 4a 45 ECT,..SE_DS_OBJE
1520: 43 54 2c 0a 09 53 45 5f 44 53 5f 4f 42 4a 45 43 CT,..SE_DS_OBJEC
1530: 54 5f 41 4c 4c 2c 0a 09 53 45 5f 50 52 4f 56 49 T_ALL,..SE_PROVI
1540: 44 45 52 5f 44 45 46 49 4e 45 44 5f 4f 42 4a 45 DER_DEFINED_OBJE
1550: 43 54 2c 0a 09 53 45 5f 57 4d 49 47 55 49 44 5f CT,..SE_WMIGUID_
1560: 4f 42 4a 45 43 54 2c 0a 09 53 45 5f 52 45 47 49 OBJECT,..SE_REGI
1570: 53 54 52 59 5f 57 4f 57 36 34 5f 33 32 4b 45 59 STRY_WOW64_32KEY
1580: 0a 7d 0a 0a 65 6e 75 6d 20 54 52 55 53 54 45 45 .}..enum TRUSTEE
1590: 5f 54 59 50 45 20 7b 0a 09 54 52 55 53 54 45 45 _TYPE {..TRUSTEE
15a0: 5f 49 53 5f 55 4e 4b 4e 4f 57 4e 2c 0a 09 54 52 _IS_UNKNOWN,..TR
15b0: 55 53 54 45 45 5f 49 53 5f 55 53 45 52 2c 0a 09 USTEE_IS_USER,..
15c0: 54 52 55 53 54 45 45 5f 49 53 5f 47 52 4f 55 50 TRUSTEE_IS_GROUP
15d0: 2c 0a 09 54 52 55 53 54 45 45 5f 49 53 5f 44 4f ,..TRUSTEE_IS_DO
15e0: 4d 41 49 4e 2c 0a 09 54 52 55 53 54 45 45 5f 49 MAIN,..TRUSTEE_I
15f0: 53 5f 41 4c 49 41 53 2c 0a 09 54 52 55 53 54 45 S_ALIAS,..TRUSTE
1600: 45 5f 49 53 5f 57 45 4c 4c 5f 4b 4e 4f 57 4e 5f E_IS_WELL_KNOWN_
1610: 47 52 4f 55 50 2c 0a 09 54 52 55 53 54 45 45 5f GROUP,..TRUSTEE_
1620: 49 53 5f 44 45 4c 45 54 45 44 2c 0a 09 54 52 55 IS_DELETED,..TRU
1630: 53 54 45 45 5f 49 53 5f 49 4e 56 41 4c 49 44 2c STEE_IS_INVALID,
1640: 0a 09 54 52 55 53 54 45 45 5f 49 53 5f 43 4f 4d ..TRUSTEE_IS_COM
1650: 50 55 54 45 52 0a 7d 0a 0a 65 6e 75 6d 20 54 52 PUTER.}..enum TR
1660: 55 53 54 45 45 5f 46 4f 52 4d 20 7b 0a 09 54 52 USTEE_FORM {..TR
1670: 55 53 54 45 45 5f 49 53 5f 53 49 44 2c 0a 09 54 USTEE_IS_SID,..T
1680: 52 55 53 54 45 45 5f 49 53 5f 4e 41 4d 45 2c 0a RUSTEE_IS_NAME,.
1690: 09 54 52 55 53 54 45 45 5f 42 41 44 5f 46 4f 52 .TRUSTEE_BAD_FOR
16a0: 4d 2c 0a 09 54 52 55 53 54 45 45 5f 49 53 5f 4f M,..TRUSTEE_IS_O
16b0: 42 4a 45 43 54 53 5f 41 4e 44 5f 53 49 44 2c 0a BJECTS_AND_SID,.
16c0: 09 54 52 55 53 54 45 45 5f 49 53 5f 4f 42 4a 45 .TRUSTEE_IS_OBJE
16d0: 43 54 53 5f 41 4e 44 5f 4e 41 4d 45 0a 7d 0a 0a CTS_AND_NAME.}..
16e0: 65 6e 75 6d 20 4d 55 4c 54 49 50 4c 45 5f 54 52 enum MULTIPLE_TR
16f0: 55 53 54 45 45 5f 4f 50 45 52 41 54 49 4f 4e 20 USTEE_OPERATION
1700: 7b 0a 09 4e 4f 5f 4d 55 4c 54 49 50 4c 45 5f 54 {..NO_MULTIPLE_T
1710: 52 55 53 54 45 45 2c 0a 09 54 52 55 53 54 45 45 RUSTEE,..TRUSTEE
1720: 5f 49 53 5f 49 4d 50 45 52 53 4f 4e 41 54 45 0a _IS_IMPERSONATE.
1730: 7d 0a 0a 73 74 72 75 63 74 20 54 52 55 53 54 45 }..struct TRUSTE
1740: 45 5f 41 20 7b 0a 09 54 52 55 53 54 45 45 5f 41 E_A {..TRUSTEE_A
1750: 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 *
1760: 20 20 70 4d 75 6c 74 69 70 6c 65 54 72 75 73 74 pMultipleTrust
1770: 65 65 3b 0a 09 4d 55 4c 54 49 50 4c 45 5f 54 52 ee;..MULTIPLE_TR
1780: 55 53 54 45 45 5f 4f 50 45 52 41 54 49 4f 4e 20 USTEE_OPERATION
1790: 4d 75 6c 74 69 70 6c 65 54 72 75 73 74 65 65 4f MultipleTrusteeO
17a0: 70 65 72 61 74 69 6f 6e 3b 0a 09 54 52 55 53 54 peration;..TRUST
17b0: 45 45 5f 46 4f 52 4d 20 20 20 20 20 20 20 20 20 EE_FORM
17c0: 20 20 20 20 20 20 54 72 75 73 74 65 65 46 6f 72 TrusteeFor
17d0: 6d 3b 0a 09 54 52 55 53 54 45 45 5f 54 59 50 45 m;..TRUSTEE_TYPE
17e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 54 T
17f0: 72 75 73 74 65 65 54 79 70 65 3b 0a 09 4c 50 53 rusteeType;..LPS
1800: 54 52 20 20 20 20 20 20 20 20 20 20 20 20 20 20 TR
1810: 20 20 20 20 20 20 20 20 70 74 73 74 72 4e 61 6d ptstrNam
1820: 65 3b 0a 7d 0a 61 6c 69 61 73 20 54 52 55 53 54 e;.}.alias TRUST
1830: 45 45 5f 41 20 54 52 55 53 54 45 45 41 3b 0a 61 EE_A TRUSTEEA;.a
1840: 6c 69 61 73 20 54 52 55 53 54 45 45 5f 41 2a 20 lias TRUSTEE_A*
1850: 50 54 52 55 53 54 45 45 5f 41 2c 20 50 54 52 55 PTRUSTEE_A, PTRU
1860: 53 54 45 45 41 3b 0a 0a 73 74 72 75 63 74 20 54 STEEA;..struct T
1870: 52 55 53 54 45 45 5f 57 20 7b 0a 09 54 52 55 53 RUSTEE_W {..TRUS
1880: 54 45 45 5f 57 2a 20 20 20 20 20 20 20 20 20 20 TEE_W*
1890: 20 20 20 20 20 20 20 70 4d 75 6c 74 69 70 6c 65 pMultiple
18a0: 54 72 75 73 74 65 65 3b 0a 09 4d 55 4c 54 49 50 Trustee;..MULTIP
18b0: 4c 45 5f 54 52 55 53 54 45 45 5f 4f 50 45 52 41 LE_TRUSTEE_OPERA
18c0: 54 49 4f 4e 20 4d 75 6c 74 69 70 6c 65 54 72 75 TION MultipleTru
18d0: 73 74 65 65 4f 70 65 72 61 74 69 6f 6e 3b 0a 09 steeOperation;..
18e0: 54 52 55 53 54 45 45 5f 46 4f 52 4d 20 20 20 20 TRUSTEE_FORM
18f0: 20 20 20 20 20 20 20 20 20 20 20 54 72 75 73 74 Trust
1900: 65 65 46 6f 72 6d 3b 0a 09 54 52 55 53 54 45 45 eeForm;..TRUSTEE
1910: 5f 54 59 50 45 20 20 20 20 20 20 20 20 20 20 20 _TYPE
1920: 20 20 20 20 54 72 75 73 74 65 65 54 79 70 65 3b TrusteeType;
1930: 0a 09 4c 50 57 53 54 52 20 20 20 20 20 20 20 20 ..LPWSTR
1940: 20 20 20 20 20 20 20 20 20 20 20 20 20 70 74 73 pts
1950: 74 72 4e 61 6d 65 3b 0a 7d 0a 61 6c 69 61 73 20 trName;.}.alias
1960: 54 52 55 53 54 45 45 5f 57 20 54 52 55 53 54 45 TRUSTEE_W TRUSTE
1970: 45 57 3b 0a 61 6c 69 61 73 20 54 52 55 53 54 45 EW;.alias TRUSTE
1980: 45 57 2a 20 50 54 52 55 53 54 45 45 5f 57 2c 20 EW* PTRUSTEE_W,
1990: 50 54 52 55 53 54 45 45 57 3b 0a 0a 73 74 72 75 PTRUSTEEW;..stru
19a0: 63 74 20 41 43 54 52 4c 5f 41 43 43 45 53 53 5f ct ACTRL_ACCESS_
19b0: 45 4e 54 52 59 41 20 7b 0a 09 54 52 55 53 54 45 ENTRYA {..TRUSTE
19c0: 45 5f 41 20 20 20 20 20 54 72 75 73 74 65 65 3b E_A Trustee;
19d0: 0a 09 55 4c 4f 4e 47 20 20 20 20 20 20 20 20 20 ..ULONG
19e0: 66 41 63 63 65 73 73 46 6c 61 67 73 3b 0a 09 41 fAccessFlags;..A
19f0: 43 43 45 53 53 5f 52 49 47 48 54 53 20 41 63 63 CCESS_RIGHTS Acc
1a00: 65 73 73 3b 0a 09 41 43 43 45 53 53 5f 52 49 47 ess;..ACCESS_RIG
1a10: 48 54 53 20 50 72 6f 76 53 70 65 63 69 66 69 63 HTS ProvSpecific
1a20: 41 63 63 65 73 73 3b 0a 09 49 4e 48 45 52 49 54 Access;..INHERIT
1a30: 5f 46 4c 41 47 53 20 49 6e 68 65 72 69 74 61 6e _FLAGS Inheritan
1a40: 63 65 3b 0a 09 4c 50 43 53 54 52 20 20 20 20 20 ce;..LPCSTR
1a50: 20 20 20 6c 70 49 6e 68 65 72 69 74 50 72 6f 70 lpInheritProp
1a60: 65 72 74 79 3b 0a 7d 0a 61 6c 69 61 73 20 41 43 erty;.}.alias AC
1a70: 54 52 4c 5f 41 43 43 45 53 53 5f 45 4e 54 52 59 TRL_ACCESS_ENTRY
1a80: 41 2a 20 50 41 43 54 52 4c 5f 41 43 43 45 53 53 A* PACTRL_ACCESS
1a90: 5f 45 4e 54 52 59 41 3b 0a 0a 73 74 72 75 63 74 _ENTRYA;..struct
1aa0: 20 41 43 54 52 4c 5f 41 43 43 45 53 53 5f 45 4e ACTRL_ACCESS_EN
1ab0: 54 52 59 57 20 7b 0a 09 54 52 55 53 54 45 45 5f TRYW {..TRUSTEE_
1ac0: 57 20 20 20 20 20 54 72 75 73 74 65 65 3b 0a 09 W Trustee;..
1ad0: 55 4c 4f 4e 47 20 20 20 20 20 20 20 20 20 66 41 ULONG fA
1ae0: 63 63 65 73 73 46 6c 61 67 73 3b 0a 09 41 43 43 ccessFlags;..ACC
1af0: 45 53 53 5f 52 49 47 48 54 53 20 41 63 63 65 73 ESS_RIGHTS Acces
1b00: 73 3b 0a 09 41 43 43 45 53 53 5f 52 49 47 48 54 s;..ACCESS_RIGHT
1b10: 53 20 50 72 6f 76 53 70 65 63 69 66 69 63 41 63 S ProvSpecificAc
1b20: 63 65 73 73 3b 0a 09 49 4e 48 45 52 49 54 5f 46 cess;..INHERIT_F
1b30: 4c 41 47 53 20 49 6e 68 65 72 69 74 61 6e 63 65 LAGS Inheritance
1b40: 3b 0a 09 4c 50 43 57 53 54 52 20 20 20 20 20 20 ;..LPCWSTR
1b50: 20 6c 70 49 6e 68 65 72 69 74 50 72 6f 70 65 72 lpInheritProper
1b60: 74 79 3b 0a 7d 0a 61 6c 69 61 73 20 41 43 54 52 ty;.}.alias ACTR
1b70: 4c 5f 41 43 43 45 53 53 5f 45 4e 54 52 59 57 2a L_ACCESS_ENTRYW*
1b80: 20 50 41 43 54 52 4c 5f 41 43 43 45 53 53 5f 45 PACTRL_ACCESS_E
1b90: 4e 54 52 59 57 3b 0a 0a 73 74 72 75 63 74 20 41 NTRYW;..struct A
1ba0: 43 54 52 4c 5f 41 43 43 45 53 53 5f 45 4e 54 52 CTRL_ACCESS_ENTR
1bb0: 59 5f 4c 49 53 54 41 20 7b 0a 09 55 4c 4f 4e 47 Y_LISTA {..ULONG
1bc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1bd0: 63 45 6e 74 72 69 65 73 3b 0a 09 41 43 54 52 4c cEntries;..ACTRL
1be0: 5f 41 43 43 45 53 53 5f 45 4e 54 52 59 41 2a 20 _ACCESS_ENTRYA*
1bf0: 70 41 63 63 65 73 73 4c 69 73 74 3b 0a 7d 0a 61 pAccessList;.}.a
1c00: 6c 69 61 73 20 41 43 54 52 4c 5f 41 43 43 45 53 lias ACTRL_ACCES
1c10: 53 5f 45 4e 54 52 59 5f 4c 49 53 54 41 2a 20 50 S_ENTRY_LISTA* P
1c20: 41 43 54 52 4c 5f 41 43 43 45 53 53 5f 45 4e 54 ACTRL_ACCESS_ENT
1c30: 52 59 5f 4c 49 53 54 41 3b 0a 0a 73 74 72 75 63 RY_LISTA;..struc
1c40: 74 20 41 43 54 52 4c 5f 41 43 43 45 53 53 5f 45 t ACTRL_ACCESS_E
1c50: 4e 54 52 59 5f 4c 49 53 54 57 20 7b 0a 09 55 4c NTRY_LISTW {..UL
1c60: 4f 4e 47 20 20 20 20 20 20 20 20 20 20 20 20 20 ONG
1c70: 20 20 20 63 45 6e 74 72 69 65 73 3b 0a 09 41 43 cEntries;..AC
1c80: 54 52 4c 5f 41 43 43 45 53 53 5f 45 4e 54 52 59 TRL_ACCESS_ENTRY
1c90: 57 2a 20 70 41 63 63 65 73 73 4c 69 73 74 3b 0a W* pAccessList;.
1ca0: 7d 0a 61 6c 69 61 73 20 41 43 54 52 4c 5f 41 43 }.alias ACTRL_AC
1cb0: 43 45 53 53 5f 45 4e 54 52 59 5f 4c 49 53 54 57 CESS_ENTRY_LISTW
1cc0: 2a 20 50 41 43 54 52 4c 5f 41 43 43 45 53 53 5f * PACTRL_ACCESS_
1cd0: 45 4e 54 52 59 5f 4c 49 53 54 57 3b 0a 0a 73 74 ENTRY_LISTW;..st
1ce0: 72 75 63 74 20 41 43 54 52 4c 5f 50 52 4f 50 45 ruct ACTRL_PROPE
1cf0: 52 54 59 5f 45 4e 54 52 59 41 20 7b 0a 09 4c 50 RTY_ENTRYA {..LP
1d00: 43 53 54 52 20 20 20 20 20 20 20 20 20 20 20 20 CSTR
1d10: 20 20 20 20 20 20 20 20 6c 70 50 72 6f 70 65 72 lpProper
1d20: 74 79 3b 0a 09 50 41 43 54 52 4c 5f 41 43 43 45 ty;..PACTRL_ACCE
1d30: 53 53 5f 45 4e 54 52 59 5f 4c 49 53 54 41 20 70 SS_ENTRY_LISTA p
1d40: 41 63 63 65 73 73 45 6e 74 72 79 4c 69 73 74 3b AccessEntryList;
1d50: 0a 09 55 4c 4f 4e 47 20 20 20 20 20 20 20 20 20 ..ULONG
1d60: 20 20 20 20 20 20 20 20 20 20 20 20 66 4c 69 73 fLis
1d70: 74 46 6c 61 67 73 3b 0a 7d 0a 61 6c 69 61 73 20 tFlags;.}.alias
1d80: 41 43 54 52 4c 5f 50 52 4f 50 45 52 54 59 5f 45 ACTRL_PROPERTY_E
1d90: 4e 54 52 59 41 2a 20 50 41 43 54 52 4c 5f 50 52 NTRYA* PACTRL_PR
1da0: 4f 50 45 52 54 59 5f 45 4e 54 52 59 41 3b 0a 0a OPERTY_ENTRYA;..
1db0: 73 74 72 75 63 74 20 41 43 54 52 4c 5f 50 52 4f struct ACTRL_PRO
1dc0: 50 45 52 54 59 5f 45 4e 54 52 59 57 20 7b 0a 09 PERTY_ENTRYW {..
1dd0: 4c 50 43 57 53 54 52 20 20 20 20 20 20 20 20 20 LPCWSTR
1de0: 20 20 20 20 20 20 20 20 20 20 6c 70 50 72 6f 70 lpProp
1df0: 65 72 74 79 3b 0a 09 50 41 43 54 52 4c 5f 41 43 erty;..PACTRL_AC
1e00: 43 45 53 53 5f 45 4e 54 52 59 5f 4c 49 53 54 57 CESS_ENTRY_LISTW
1e10: 20 70 41 63 63 65 73 73 45 6e 74 72 79 4c 69 73 pAccessEntryLis
1e20: 74 3b 0a 09 55 4c 4f 4e 47 20 20 20 20 20 20 20 t;..ULONG
1e30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 4c fL
1e40: 69 73 74 46 6c 61 67 73 3b 0a 7d 0a 61 6c 69 61 istFlags;.}.alia
1e50: 73 20 41 43 54 52 4c 5f 50 52 4f 50 45 52 54 59 s ACTRL_PROPERTY
1e60: 5f 45 4e 54 52 59 57 2a 20 50 41 43 54 52 4c 5f _ENTRYW* PACTRL_
1e70: 50 52 4f 50 45 52 54 59 5f 45 4e 54 52 59 57 3b PROPERTY_ENTRYW;
1e80: 0a 0a 73 74 72 75 63 74 20 41 43 54 52 4c 5f 41 ..struct ACTRL_A
1e90: 43 43 45 53 53 41 20 7b 0a 09 55 4c 4f 4e 47 20 CCESSA {..ULONG
1ea0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1eb0: 20 63 45 6e 74 72 69 65 73 3b 0a 09 50 41 43 54 cEntries;..PACT
1ec0: 52 4c 5f 50 52 4f 50 45 52 54 59 5f 45 4e 54 52 RL_PROPERTY_ENTR
1ed0: 59 41 20 70 50 72 6f 70 65 72 74 79 41 63 63 65 YA pPropertyAcce
1ee0: 73 73 4c 69 73 74 3b 0a 7d 0a 61 6c 69 61 73 20 ssList;.}.alias
1ef0: 41 43 54 52 4c 5f 41 43 43 45 53 53 41 20 41 43 ACTRL_ACCESSA AC
1f00: 54 52 4c 5f 41 55 44 49 54 41 3b 0a 61 6c 69 61 TRL_AUDITA;.alia
1f10: 73 20 41 43 54 52 4c 5f 41 43 43 45 53 53 41 2a s ACTRL_ACCESSA*
1f20: 20 50 41 43 54 52 4c 5f 41 43 43 45 53 53 41 2c PACTRL_ACCESSA,
1f30: 20 50 41 43 54 52 4c 5f 41 55 44 49 54 41 3b 0a PACTRL_AUDITA;.
1f40: 0a 73 74 72 75 63 74 20 41 43 54 52 4c 5f 41 43 .struct ACTRL_AC
1f50: 43 45 53 53 57 20 7b 0a 09 55 4c 4f 4e 47 20 20 CESSW {..ULONG
1f60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1f70: 63 45 6e 74 72 69 65 73 3b 0a 09 50 41 43 54 52 cEntries;..PACTR
1f80: 4c 5f 50 52 4f 50 45 52 54 59 5f 45 4e 54 52 59 L_PROPERTY_ENTRY
1f90: 57 20 70 50 72 6f 70 65 72 74 79 41 63 63 65 73 W pPropertyAcces
1fa0: 73 4c 69 73 74 3b 0a 7d 0a 61 6c 69 61 73 20 41 sList;.}.alias A
1fb0: 43 54 52 4c 5f 41 43 43 45 53 53 57 20 41 43 54 CTRL_ACCESSW ACT
1fc0: 52 4c 5f 41 55 44 49 54 57 3b 0a 61 6c 69 61 73 RL_AUDITW;.alias
1fd0: 20 41 43 54 52 4c 5f 41 43 43 45 53 53 57 2a 20 ACTRL_ACCESSW*
1fe0: 50 41 43 54 52 4c 5f 41 43 43 45 53 53 57 2c 20 PACTRL_ACCESSW,
1ff0: 50 41 43 54 52 4c 5f 41 55 44 49 54 57 3b 0a 0a PACTRL_AUDITW;..
2000: 73 74 72 75 63 74 20 54 52 55 53 54 45 45 5f 41 struct TRUSTEE_A
2010: 43 43 45 53 53 41 20 7b 0a 09 4c 50 53 54 52 20 CCESSA {..LPSTR
2020: 20 20 20 20 20 20 20 20 6c 70 50 72 6f 70 65 72 lpProper
2030: 74 79 3b 0a 09 41 43 43 45 53 53 5f 52 49 47 48 ty;..ACCESS_RIGH
2040: 54 53 20 41 63 63 65 73 73 3b 0a 09 55 4c 4f 4e TS Access;..ULON
2050: 47 20 20 20 20 20 20 20 20 20 66 41 63 63 65 73 G fAcces
2060: 73 46 6c 61 67 73 3b 0a 09 55 4c 4f 4e 47 20 20 sFlags;..ULONG
2070: 20 20 20 20 20 20 20 66 52 65 74 75 72 6e 65 64 fReturned
2080: 41 63 63 65 73 73 3b 0a 7d 0a 61 6c 69 61 73 20 Access;.}.alias
2090: 54 52 55 53 54 45 45 5f 41 43 43 45 53 53 41 2a TRUSTEE_ACCESSA*
20a0: 20 50 54 52 55 53 54 45 45 5f 41 43 43 45 53 53 PTRUSTEE_ACCESS
20b0: 41 3b 0a 0a 73 74 72 75 63 74 20 54 52 55 53 54 A;..struct TRUST
20c0: 45 45 5f 41 43 43 45 53 53 57 20 7b 0a 09 4c 50 EE_ACCESSW {..LP
20d0: 57 53 54 52 20 20 20 20 20 20 20 20 6c 70 50 72 WSTR lpPr
20e0: 6f 70 65 72 74 79 3b 0a 09 41 43 43 45 53 53 5f operty;..ACCESS_
20f0: 52 49 47 48 54 53 20 41 63 63 65 73 73 3b 0a 09 RIGHTS Access;..
2100: 55 4c 4f 4e 47 20 20 20 20 20 20 20 20 20 66 41 ULONG fA
2110: 63 63 65 73 73 46 6c 61 67 73 3b 0a 09 55 4c 4f ccessFlags;..ULO
2120: 4e 47 20 20 20 20 20 20 20 20 20 66 52 65 74 75 NG fRetu
2130: 72 6e 65 64 41 63 63 65 73 73 3b 0a 7d 0a 61 6c rnedAccess;.}.al
2140: 69 61 73 20 54 52 55 53 54 45 45 5f 41 43 43 45 ias TRUSTEE_ACCE
2150: 53 53 57 2a 20 50 54 52 55 53 54 45 45 5f 41 43 SSW* PTRUSTEE_AC
2160: 43 45 53 53 57 3b 0a 0a 73 74 72 75 63 74 20 41 CESSW;..struct A
2170: 43 54 52 4c 5f 4f 56 45 52 4c 41 50 50 45 44 20 CTRL_OVERLAPPED
2180: 7b 0a 09 75 6e 69 6f 6e 20 7b 0a 09 09 50 56 4f {..union {...PVO
2190: 49 44 20 50 72 6f 76 69 64 65 72 3b 0a 09 09 55 ID Provider;...U
21a0: 4c 4f 4e 47 20 52 65 73 65 72 76 65 64 31 3b 0a LONG Reserved1;.
21b0: 09 7d 0a 09 55 4c 4f 4e 47 20 20 20 20 20 52 65 .}..ULONG Re
21c0: 73 65 72 76 65 64 32 3b 0a 09 48 41 4e 44 4c 45 served2;..HANDLE
21d0: 20 20 20 20 68 45 76 65 6e 74 3b 0a 7d 0a 61 6c hEvent;.}.al
21e0: 69 61 73 20 41 43 54 52 4c 5f 4f 56 45 52 4c 41 ias ACTRL_OVERLA
21f0: 50 50 45 44 2a 20 50 41 43 54 52 4c 5f 4f 56 45 PPED* PACTRL_OVE
2200: 52 4c 41 50 50 45 44 3b 0a 0a 73 74 72 75 63 74 RLAPPED;..struct
2210: 20 41 43 54 52 4c 5f 41 43 43 45 53 53 5f 49 4e ACTRL_ACCESS_IN
2220: 46 4f 41 20 7b 0a 09 55 4c 4f 4e 47 20 66 41 63 FOA {..ULONG fAc
2230: 63 65 73 73 50 65 72 6d 69 73 73 69 6f 6e 3b 0a cessPermission;.
2240: 09 4c 50 53 54 52 20 6c 70 41 63 63 65 73 73 50 .LPSTR lpAccessP
2250: 65 72 6d 69 73 73 69 6f 6e 4e 61 6d 65 3b 0a 7d ermissionName;.}
2260: 0a 61 6c 69 61 73 20 41 43 54 52 4c 5f 41 43 43 .alias ACTRL_ACC
2270: 45 53 53 5f 49 4e 46 4f 41 2a 20 50 41 43 54 52 ESS_INFOA* PACTR
2280: 4c 5f 41 43 43 45 53 53 5f 49 4e 46 4f 41 3b 0a L_ACCESS_INFOA;.
2290: 0a 73 74 72 75 63 74 20 41 43 54 52 4c 5f 41 43 .struct ACTRL_AC
22a0: 43 45 53 53 5f 49 4e 46 4f 57 20 7b 0a 09 55 4c CESS_INFOW {..UL
22b0: 4f 4e 47 20 20 66 41 63 63 65 73 73 50 65 72 6d ONG fAccessPerm
22c0: 69 73 73 69 6f 6e 3b 0a 09 4c 50 57 53 54 52 20 ission;..LPWSTR
22d0: 6c 70 41 63 63 65 73 73 50 65 72 6d 69 73 73 69 lpAccessPermissi
22e0: 6f 6e 4e 61 6d 65 3b 0a 7d 0a 61 6c 69 61 73 20 onName;.}.alias
22f0: 41 43 54 52 4c 5f 41 43 43 45 53 53 5f 49 4e 46 ACTRL_ACCESS_INF
2300: 4f 57 2a 20 50 41 43 54 52 4c 5f 41 43 43 45 53 OW* PACTRL_ACCES
2310: 53 5f 49 4e 46 4f 57 3b 0a 0a 73 74 72 75 63 74 S_INFOW;..struct
2320: 20 41 43 54 52 4c 5f 43 4f 4e 54 52 4f 4c 5f 49 ACTRL_CONTROL_I
2330: 4e 46 4f 41 20 7b 0a 09 4c 50 53 54 52 20 6c 70 NFOA {..LPSTR lp
2340: 43 6f 6e 74 72 6f 6c 49 64 3b 0a 09 4c 50 53 54 ControlId;..LPST
2350: 52 20 6c 70 43 6f 6e 74 72 6f 6c 4e 61 6d 65 3b R lpControlName;
2360: 0a 7d 0a 61 6c 69 61 73 20 41 43 54 52 4c 5f 43 .}.alias ACTRL_C
2370: 4f 4e 54 52 4f 4c 5f 49 4e 46 4f 41 2a 20 50 41 ONTROL_INFOA* PA
2380: 43 54 52 4c 5f 43 4f 4e 54 52 4f 4c 5f 49 4e 46 CTRL_CONTROL_INF
2390: 4f 41 3b 0a 0a 73 74 72 75 63 74 20 41 43 54 52 OA;..struct ACTR
23a0: 4c 5f 43 4f 4e 54 52 4f 4c 5f 49 4e 46 4f 57 20 L_CONTROL_INFOW
23b0: 7b 0a 09 4c 50 57 53 54 52 20 6c 70 43 6f 6e 74 {..LPWSTR lpCont
23c0: 72 6f 6c 49 64 3b 0a 09 4c 50 57 53 54 52 20 6c rolId;..LPWSTR l
23d0: 70 43 6f 6e 74 72 6f 6c 4e 61 6d 65 3b 0a 7d 0a pControlName;.}.
23e0: 61 6c 69 61 73 20 41 43 54 52 4c 5f 43 4f 4e 54 alias ACTRL_CONT
23f0: 52 4f 4c 5f 49 4e 46 4f 57 2a 20 50 41 43 54 52 ROL_INFOW* PACTR
2400: 4c 5f 43 4f 4e 54 52 4f 4c 5f 49 4e 46 4f 57 3b L_CONTROL_INFOW;
2410: 0a 0a 73 74 72 75 63 74 20 45 58 50 4c 49 43 49 ..struct EXPLICI
2420: 54 5f 41 43 43 45 53 53 5f 41 20 7b 0a 09 44 57 T_ACCESS_A {..DW
2430: 4f 52 44 20 20 20 20 20 20 20 67 72 66 41 63 63 ORD grfAcc
2440: 65 73 73 50 65 72 6d 69 73 73 69 6f 6e 73 3b 0a essPermissions;.
2450: 09 41 43 43 45 53 53 5f 4d 4f 44 45 20 67 72 66 .ACCESS_MODE grf
2460: 41 63 63 65 73 73 4d 6f 64 65 3b 0a 09 44 57 4f AccessMode;..DWO
2470: 52 44 20 20 20 20 20 20 20 67 72 66 49 6e 68 65 RD grfInhe
2480: 72 69 74 61 6e 63 65 3b 0a 09 54 52 55 53 54 45 ritance;..TRUSTE
2490: 45 5f 41 20 20 20 54 72 75 73 74 65 65 3b 0a 7d E_A Trustee;.}
24a0: 0a 61 6c 69 61 73 20 45 58 50 4c 49 43 49 54 5f .alias EXPLICIT_
24b0: 41 43 43 45 53 53 5f 41 20 45 58 50 4c 49 43 49 ACCESS_A EXPLICI
24c0: 54 5f 41 43 43 45 53 53 41 3b 0a 61 6c 69 61 73 T_ACCESSA;.alias
24d0: 20 45 58 50 4c 49 43 49 54 5f 41 43 43 45 53 53 EXPLICIT_ACCESS
24e0: 5f 41 2a 20 50 45 58 50 4c 49 43 49 54 5f 41 43 _A* PEXPLICIT_AC
24f0: 43 45 53 53 5f 41 2c 20 50 45 58 50 4c 49 43 49 CESS_A, PEXPLICI
2500: 54 5f 41 43 43 45 53 53 41 3b 0a 0a 73 74 72 75 T_ACCESSA;..stru
2510: 63 74 20 45 58 50 4c 49 43 49 54 5f 41 43 43 45 ct EXPLICIT_ACCE
2520: 53 53 5f 57 20 7b 0a 09 44 57 4f 52 44 20 20 20 SS_W {..DWORD
2530: 20 20 20 20 67 72 66 41 63 63 65 73 73 50 65 72 grfAccessPer
2540: 6d 69 73 73 69 6f 6e 73 3b 0a 09 41 43 43 45 53 missions;..ACCES
2550: 53 5f 4d 4f 44 45 20 67 72 66 41 63 63 65 73 73 S_MODE grfAccess
2560: 4d 6f 64 65 3b 0a 09 44 57 4f 52 44 20 20 20 20 Mode;..DWORD
2570: 20 20 20 67 72 66 49 6e 68 65 72 69 74 61 6e 63 grfInheritanc
2580: 65 3b 0a 09 54 52 55 53 54 45 45 5f 57 20 20 20 e;..TRUSTEE_W
2590: 54 72 75 73 74 65 65 3b 0a 7d 0a 61 6c 69 61 73 Trustee;.}.alias
25a0: 20 45 58 50 4c 49 43 49 54 5f 41 43 43 45 53 53 EXPLICIT_ACCESS
25b0: 5f 57 20 45 58 50 4c 49 43 49 54 5f 41 43 43 45 _W EXPLICIT_ACCE
25c0: 53 53 57 3b 0a 61 6c 69 61 73 20 45 58 50 4c 49 SSW;.alias EXPLI
25d0: 43 49 54 5f 41 43 43 45 53 53 5f 57 2a 20 50 45 CIT_ACCESS_W* PE
25e0: 58 50 4c 49 43 49 54 5f 41 43 43 45 53 53 5f 57 XPLICIT_ACCESS_W
25f0: 2c 20 50 45 58 50 4c 49 43 49 54 5f 41 43 43 45 , PEXPLICIT_ACCE
2600: 53 53 57 3b 0a 0a 73 74 72 75 63 74 20 4f 42 4a SSW;..struct OBJ
2610: 45 43 54 53 5f 41 4e 44 5f 53 49 44 20 7b 0a 09 ECTS_AND_SID {..
2620: 44 57 4f 52 44 20 4f 62 6a 65 63 74 73 50 72 65 DWORD ObjectsPre
2630: 73 65 6e 74 3b 0a 09 47 55 49 44 20 20 4f 62 6a sent;..GUID Obj
2640: 65 63 74 54 79 70 65 47 75 69 64 3b 0a 09 47 55 ectTypeGuid;..GU
2650: 49 44 20 20 49 6e 68 65 72 69 74 65 64 4f 62 6a ID InheritedObj
2660: 65 63 74 54 79 70 65 47 75 69 64 3b 0a 09 53 49 ectTypeGuid;..SI
2670: 44 2a 20 20 70 53 69 64 3b 0a 7d 0a 61 6c 69 61 D* pSid;.}.alia
2680: 73 20 4f 42 4a 45 43 54 53 5f 41 4e 44 5f 53 49 s OBJECTS_AND_SI
2690: 44 2a 20 50 4f 42 4a 45 43 54 53 5f 41 4e 44 5f D* POBJECTS_AND_
26a0: 53 49 44 3b 0a 0a 73 74 72 75 63 74 20 4f 42 4a SID;..struct OBJ
26b0: 45 43 54 53 5f 41 4e 44 5f 4e 41 4d 45 5f 41 20 ECTS_AND_NAME_A
26c0: 7b 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 {..DWORD
26d0: 20 20 4f 62 6a 65 63 74 73 50 72 65 73 65 6e 74 ObjectsPresent
26e0: 3b 0a 09 53 45 5f 4f 42 4a 45 43 54 5f 54 59 50 ;..SE_OBJECT_TYP
26f0: 45 20 4f 62 6a 65 63 74 54 79 70 65 3b 0a 09 4c E ObjectType;..L
2700: 50 53 54 52 20 20 20 20 20 20 20 20 20 20 4f 62 PSTR Ob
2710: 6a 65 63 74 54 79 70 65 4e 61 6d 65 3b 0a 09 4c jectTypeName;..L
2720: 50 53 54 52 20 20 20 20 20 20 20 20 20 20 49 6e PSTR In
2730: 68 65 72 69 74 65 64 4f 62 6a 65 63 74 54 79 70 heritedObjectTyp
2740: 65 4e 61 6d 65 3b 0a 09 4c 50 53 54 52 20 20 20 eName;..LPSTR
2750: 20 20 20 20 20 20 20 70 74 73 74 72 4e 61 6d 65 ptstrName
2760: 3b 0a 7d 0a 61 6c 69 61 73 20 4f 42 4a 45 43 54 ;.}.alias OBJECT
2770: 53 5f 41 4e 44 5f 4e 41 4d 45 5f 41 2a 20 50 4f S_AND_NAME_A* PO
2780: 42 4a 45 43 54 53 5f 41 4e 44 5f 4e 41 4d 45 5f BJECTS_AND_NAME_
2790: 41 3b 0a 0a 73 74 72 75 63 74 20 4f 42 4a 45 43 A;..struct OBJEC
27a0: 54 53 5f 41 4e 44 5f 4e 41 4d 45 5f 57 20 7b 0a TS_AND_NAME_W {.
27b0: 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 20 .DWORD
27c0: 4f 62 6a 65 63 74 73 50 72 65 73 65 6e 74 3b 0a ObjectsPresent;.
27d0: 09 53 45 5f 4f 42 4a 45 43 54 5f 54 59 50 45 20 .SE_OBJECT_TYPE
27e0: 4f 62 6a 65 63 74 54 79 70 65 3b 0a 09 4c 50 57 ObjectType;..LPW
27f0: 53 54 52 20 20 20 20 20 20 20 20 20 4f 62 6a 65 STR Obje
2800: 63 74 54 79 70 65 4e 61 6d 65 3b 0a 09 4c 50 57 ctTypeName;..LPW
2810: 53 54 52 20 20 20 20 20 20 20 20 20 49 6e 68 65 STR Inhe
2820: 72 69 74 65 64 4f 62 6a 65 63 74 54 79 70 65 4e ritedObjectTypeN
2830: 61 6d 65 3b 0a 09 4c 50 57 53 54 52 20 20 20 20 ame;..LPWSTR
2840: 20 20 20 20 20 70 74 73 74 72 4e 61 6d 65 3b 0a ptstrName;.
2850: 7d 0a 61 6c 69 61 73 20 4f 42 4a 45 43 54 53 5f }.alias OBJECTS_
2860: 41 4e 44 5f 4e 41 4d 45 5f 57 2a 20 50 4f 42 4a AND_NAME_W* POBJ
2870: 45 43 54 53 5f 41 4e 44 5f 4e 41 4d 45 5f 57 3b ECTS_AND_NAME_W;
2880: 0a 0a 73 74 61 74 69 63 20 69 66 20 28 57 49 4e ..static if (WIN
2890: 56 45 52 20 3e 3d 20 30 78 35 30 31 29 20 7b 0a VER >= 0x501) {.
28a0: 09 73 74 72 75 63 74 20 49 4e 48 45 52 49 54 45 .struct INHERITE
28b0: 44 5f 46 52 4f 4d 41 20 7b 0a 09 09 4c 4f 4e 47 D_FROMA {...LONG
28c0: 20 20 47 65 6e 65 72 61 74 69 6f 6e 47 61 70 3b GenerationGap;
28d0: 0a 09 09 4c 50 53 54 52 20 41 6e 63 65 73 74 6f ...LPSTR Ancesto
28e0: 72 4e 61 6d 65 3b 0a 09 7d 0a 09 61 6c 69 61 73 rName;..}..alias
28f0: 20 49 4e 48 45 52 49 54 45 44 5f 46 52 4f 4d 41 INHERITED_FROMA
2900: 2a 20 50 49 4e 48 45 52 49 54 45 44 5f 46 52 4f * PINHERITED_FRO
2910: 4d 41 3b 0a 0a 09 73 74 72 75 63 74 20 49 4e 48 MA;...struct INH
2920: 45 52 49 54 45 44 5f 46 52 4f 4d 57 20 7b 0a 09 ERITED_FROMW {..
2930: 09 4c 4f 4e 47 20 20 20 47 65 6e 65 72 61 74 69 .LONG Generati
2940: 6f 6e 47 61 70 3b 0a 09 09 4c 50 57 53 54 52 20 onGap;...LPWSTR
2950: 41 6e 63 65 73 74 6f 72 4e 61 6d 65 3b 0a 09 7d AncestorName;..}
2960: 0a 09 61 6c 69 61 73 20 49 4e 48 45 52 49 54 45 ..alias INHERITE
2970: 44 5f 46 52 4f 4d 57 2a 20 50 49 4e 48 45 52 49 D_FROMW* PINHERI
2980: 54 45 44 5f 46 52 4f 4d 57 3b 0a 7d 0a 0a 76 65 TED_FROMW;.}..ve
2990: 72 73 69 6f 6e 20 28 55 6e 69 63 6f 64 65 29 20 rsion (Unicode)
29a0: 7b 0a 09 61 6c 69 61 73 20 54 52 55 53 54 45 45 {..alias TRUSTEE
29b0: 57 20 54 52 55 53 54 45 45 3b 0a 09 61 6c 69 61 W TRUSTEE;..alia
29c0: 73 20 41 43 54 52 4c 5f 41 43 43 45 53 53 57 20 s ACTRL_ACCESSW
29d0: 41 43 54 52 4c 5f 41 43 43 45 53 53 3b 0a 09 61 ACTRL_ACCESS;..a
29e0: 6c 69 61 73 20 41 43 54 52 4c 5f 41 43 43 45 53 lias ACTRL_ACCES
29f0: 53 5f 45 4e 54 52 59 5f 4c 49 53 54 57 20 41 43 S_ENTRY_LISTW AC
2a00: 54 52 4c 5f 41 43 43 45 53 53 5f 45 4e 54 52 59 TRL_ACCESS_ENTRY
2a10: 5f 4c 49 53 54 3b 0a 09 61 6c 69 61 73 20 41 43 _LIST;..alias AC
2a20: 54 52 4c 5f 41 43 43 45 53 53 5f 49 4e 46 4f 57 TRL_ACCESS_INFOW
2a30: 20 41 43 54 52 4c 5f 41 43 43 45 53 53 5f 49 4e ACTRL_ACCESS_IN
2a40: 46 4f 3b 0a 09 61 6c 69 61 73 20 41 43 54 52 4c FO;..alias ACTRL
2a50: 5f 41 43 43 45 53 53 5f 45 4e 54 52 59 57 20 41 _ACCESS_ENTRYW A
2a60: 43 54 52 4c 5f 41 43 43 45 53 53 5f 45 4e 54 52 CTRL_ACCESS_ENTR
2a70: 59 3b 0a 09 61 6c 69 61 73 20 41 43 54 52 4c 5f Y;..alias ACTRL_
2a80: 41 55 44 49 54 57 20 41 43 54 52 4c 5f 41 55 44 AUDITW ACTRL_AUD
2a90: 49 54 3b 0a 09 61 6c 69 61 73 20 41 43 54 52 4c IT;..alias ACTRL
2aa0: 5f 43 4f 4e 54 52 4f 4c 5f 49 4e 46 4f 57 20 41 _CONTROL_INFOW A
2ab0: 43 54 52 4c 5f 43 4f 4e 54 52 4f 4c 5f 49 4e 46 CTRL_CONTROL_INF
2ac0: 4f 3b 0a 09 61 6c 69 61 73 20 45 58 50 4c 49 43 O;..alias EXPLIC
2ad0: 49 54 5f 41 43 43 45 53 53 57 20 45 58 50 4c 49 IT_ACCESSW EXPLI
2ae0: 43 49 54 5f 41 43 43 45 53 53 3b 0a 09 61 6c 69 CIT_ACCESS;..ali
2af0: 61 73 20 54 52 55 53 54 45 45 5f 41 43 43 45 53 as TRUSTEE_ACCES
2b00: 53 57 20 54 52 55 53 54 45 45 5f 41 43 43 45 53 SW TRUSTEE_ACCES
2b10: 53 3b 0a 09 61 6c 69 61 73 20 4f 42 4a 45 43 54 S;..alias OBJECT
2b20: 53 5f 41 4e 44 5f 4e 41 4d 45 5f 57 20 4f 42 4a S_AND_NAME_W OBJ
2b30: 45 43 54 53 5f 41 4e 44 5f 4e 41 4d 45 5f 3b 0a ECTS_AND_NAME_;.
2b40: 09 73 74 61 74 69 63 20 69 66 20 28 57 49 4e 56 .static if (WINV
2b50: 45 52 20 3e 3d 20 30 78 35 30 31 29 20 7b 0a 09 ER >= 0x501) {..
2b60: 09 61 6c 69 61 73 20 49 4e 48 45 52 49 54 45 44 .alias INHERITED
2b70: 5f 46 52 4f 4d 57 20 49 4e 48 45 52 49 54 45 44 _FROMW INHERITED
2b80: 5f 46 52 4f 4d 3b 0a 09 7d 0a 7d 20 65 6c 73 65 _FROM;..}.} else
2b90: 20 7b 0a 09 61 6c 69 61 73 20 54 52 55 53 54 45 {..alias TRUSTE
2ba0: 45 41 20 54 52 55 53 54 45 45 3b 0a 09 61 6c 69 EA TRUSTEE;..ali
2bb0: 61 73 20 41 43 54 52 4c 5f 41 43 43 45 53 53 41 as ACTRL_ACCESSA
2bc0: 20 41 43 54 52 4c 5f 41 43 43 45 53 53 3b 0a 09 ACTRL_ACCESS;..
2bd0: 61 6c 69 61 73 20 41 43 54 52 4c 5f 41 43 43 45 alias ACTRL_ACCE
2be0: 53 53 5f 45 4e 54 52 59 5f 4c 49 53 54 41 20 41 SS_ENTRY_LISTA A
2bf0: 43 54 52 4c 5f 41 43 43 45 53 53 5f 45 4e 54 52 CTRL_ACCESS_ENTR
2c00: 59 5f 4c 49 53 54 3b 0a 09 61 6c 69 61 73 20 41 Y_LIST;..alias A
2c10: 43 54 52 4c 5f 41 43 43 45 53 53 5f 49 4e 46 4f CTRL_ACCESS_INFO
2c20: 41 20 41 43 54 52 4c 5f 41 43 43 45 53 53 5f 49 A ACTRL_ACCESS_I
2c30: 4e 46 4f 3b 0a 09 61 6c 69 61 73 20 41 43 54 52 NFO;..alias ACTR
2c40: 4c 5f 41 43 43 45 53 53 5f 45 4e 54 52 59 41 20 L_ACCESS_ENTRYA
2c50: 41 43 54 52 4c 5f 41 43 43 45 53 53 5f 45 4e 54 ACTRL_ACCESS_ENT
2c60: 52 59 3b 0a 09 61 6c 69 61 73 20 41 43 54 52 4c RY;..alias ACTRL
2c70: 5f 41 55 44 49 54 41 20 41 43 54 52 4c 5f 41 55 _AUDITA ACTRL_AU
2c80: 44 49 54 3b 0a 09 61 6c 69 61 73 20 41 43 54 52 DIT;..alias ACTR
2c90: 4c 5f 43 4f 4e 54 52 4f 4c 5f 49 4e 46 4f 41 20 L_CONTROL_INFOA
2ca0: 41 43 54 52 4c 5f 43 4f 4e 54 52 4f 4c 5f 49 4e ACTRL_CONTROL_IN
2cb0: 46 4f 3b 0a 09 61 6c 69 61 73 20 45 58 50 4c 49 FO;..alias EXPLI
2cc0: 43 49 54 5f 41 43 43 45 53 53 41 20 45 58 50 4c CIT_ACCESSA EXPL
2cd0: 49 43 49 54 5f 41 43 43 45 53 53 3b 0a 09 61 6c ICIT_ACCESS;..al
2ce0: 69 61 73 20 54 52 55 53 54 45 45 5f 41 43 43 45 ias TRUSTEE_ACCE
2cf0: 53 53 41 20 54 52 55 53 54 45 45 5f 41 43 43 45 SSA TRUSTEE_ACCE
2d00: 53 53 3b 0a 09 61 6c 69 61 73 20 4f 42 4a 45 43 SS;..alias OBJEC
2d10: 54 53 5f 41 4e 44 5f 4e 41 4d 45 5f 41 20 4f 42 TS_AND_NAME_A OB
2d20: 4a 45 43 54 53 5f 41 4e 44 5f 4e 41 4d 45 5f 3b JECTS_AND_NAME_;
2d30: 0a 09 73 74 61 74 69 63 20 69 66 20 28 57 49 4e ..static if (WIN
2d40: 56 45 52 20 3e 3d 20 30 78 35 30 31 29 20 7b 0a VER >= 0x501) {.
2d50: 09 09 61 6c 69 61 73 20 49 4e 48 45 52 49 54 45 ..alias INHERITE
2d60: 44 5f 46 52 4f 4d 41 20 49 4e 48 45 52 49 54 45 D_FROMA INHERITE
2d70: 44 5f 46 52 4f 4d 3b 0a 09 7d 0a 7d 0a 0a 61 6c D_FROM;..}.}..al
2d80: 69 61 73 20 54 52 55 53 54 45 45 20 54 52 55 53 ias TRUSTEE TRUS
2d90: 54 45 45 5f 3b 0a 61 6c 69 61 73 20 54 52 55 53 TEE_;.alias TRUS
2da0: 54 45 45 2a 20 50 54 52 55 53 54 45 45 2c 20 50 TEE* PTRUSTEE, P
2db0: 54 52 55 53 54 45 45 5f 3b 0a 61 6c 69 61 73 20 TRUSTEE_;.alias
2dc0: 41 43 54 52 4c 5f 41 43 43 45 53 53 2a 20 50 41 ACTRL_ACCESS* PA
2dd0: 43 54 52 4c 5f 41 43 43 45 53 53 3b 0a 61 6c 69 CTRL_ACCESS;.ali
2de0: 61 73 20 41 43 54 52 4c 5f 41 43 43 45 53 53 5f as ACTRL_ACCESS_
2df0: 45 4e 54 52 59 5f 4c 49 53 54 2a 20 50 41 43 54 ENTRY_LIST* PACT
2e00: 52 4c 5f 41 43 43 45 53 53 5f 45 4e 54 52 59 5f RL_ACCESS_ENTRY_
2e10: 4c 49 53 54 3b 0a 61 6c 69 61 73 20 41 43 54 52 LIST;.alias ACTR
2e20: 4c 5f 41 43 43 45 53 53 5f 49 4e 46 4f 2a 20 50 L_ACCESS_INFO* P
2e30: 41 43 54 52 4c 5f 41 43 43 45 53 53 5f 49 4e 46 ACTRL_ACCESS_INF
2e40: 4f 3b 0a 61 6c 69 61 73 20 41 43 54 52 4c 5f 41 O;.alias ACTRL_A
2e50: 43 43 45 53 53 5f 45 4e 54 52 59 2a 20 50 41 43 CCESS_ENTRY* PAC
2e60: 54 52 4c 5f 41 43 43 45 53 53 5f 45 4e 54 52 59 TRL_ACCESS_ENTRY
2e70: 3b 0a 61 6c 69 61 73 20 41 43 54 52 4c 5f 41 55 ;.alias ACTRL_AU
2e80: 44 49 54 2a 20 50 41 43 54 52 4c 5f 41 55 44 49 DIT* PACTRL_AUDI
2e90: 54 3b 0a 61 6c 69 61 73 20 41 43 54 52 4c 5f 43 T;.alias ACTRL_C
2ea0: 4f 4e 54 52 4f 4c 5f 49 4e 46 4f 2a 20 50 41 43 ONTROL_INFO* PAC
2eb0: 54 52 4c 5f 43 4f 4e 54 52 4f 4c 5f 49 4e 46 4f TRL_CONTROL_INFO
2ec0: 3b 0a 61 6c 69 61 73 20 45 58 50 4c 49 43 49 54 ;.alias EXPLICIT
2ed0: 5f 41 43 43 45 53 53 20 45 58 50 4c 49 43 49 54 _ACCESS EXPLICIT
2ee0: 5f 41 43 43 45 53 53 5f 3b 0a 61 6c 69 61 73 20 _ACCESS_;.alias
2ef0: 45 58 50 4c 49 43 49 54 5f 41 43 43 45 53 53 2a EXPLICIT_ACCESS*
2f00: 20 50 45 58 50 4c 49 43 49 54 5f 41 43 43 45 53 PEXPLICIT_ACCES
2f10: 53 2c 20 50 45 58 50 4c 49 43 49 54 5f 41 43 43 S, PEXPLICIT_ACC
2f20: 45 53 53 5f 3b 0a 61 6c 69 61 73 20 54 52 55 53 ESS_;.alias TRUS
2f30: 54 45 45 5f 41 43 43 45 53 53 2a 20 50 54 52 55 TEE_ACCESS* PTRU
2f40: 53 54 45 45 5f 41 43 43 45 53 53 3b 0a 61 6c 69 STEE_ACCESS;.ali
2f50: 61 73 20 4f 42 4a 45 43 54 53 5f 41 4e 44 5f 4e as OBJECTS_AND_N
2f60: 41 4d 45 5f 2a 20 50 4f 42 4a 45 43 54 53 5f 41 AME_* POBJECTS_A
2f70: 4e 44 5f 4e 41 4d 45 5f 3b 0a 73 74 61 74 69 63 ND_NAME_;.static
2f80: 20 69 66 20 28 57 49 4e 56 45 52 20 3e 3d 20 30 if (WINVER >= 0
2f90: 78 35 30 31 29 20 7b 0a 09 61 6c 69 61 73 20 49 x501) {..alias I
2fa0: 4e 48 45 52 49 54 45 44 5f 46 52 4f 4d 2a 20 50 NHERITED_FROM* P
2fb0: 49 4e 48 45 52 49 54 45 44 5f 46 52 4f 4d 3b 0a INHERITED_FROM;.
2fc0: 7d 0a }.