Hex Artifact Content

Not logged in

Artifact e316536fe0a88b95d9d0ec4de1ed8f8dc3e2f37a:


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