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 20 61 63 6c 61 70 aclap
0070: 69 2e 64 20 20 20 20 20 20 20 20 20 20 20 20 20 i.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 6c 61 70 69 3b 0a 70 72 61 67 6d 61 28 .aclapi;.pragma(
0300: 6c 69 62 2c 20 22 61 64 76 61 70 69 33 32 2e 6c lib, "advapi32.l
0310: 69 62 22 29 3b 0a 0a 69 6d 70 6f 72 74 20 77 69 ib");..import wi
0320: 6e 33 32 2e 77 69 6e 64 6f 77 73 2c 20 77 69 6e n32.windows, win
0330: 33 32 2e 61 63 63 63 74 72 6c 3b 0a 0a 73 74 61 32.accctrl;..sta
0340: 74 69 63 20 61 73 73 65 72 74 20 28 5f 57 49 4e tic assert (_WIN
0350: 33 32 5f 57 49 4e 4e 54 5f 4f 4e 4c 59 2c 0a 09 32_WINNT_ONLY,..
0360: 22 77 69 6e 33 32 2e 61 63 6c 61 70 69 20 69 73 "win32.aclapi is
0370: 20 61 76 61 69 6c 61 62 6c 65 20 6f 6e 6c 79 20 available only
0380: 69 66 20 76 65 72 73 69 6f 6e 20 57 69 6e 64 6f if version Windo
0390: 77 73 4e 54 6f 6e 6c 79 2c 20 57 69 6e 64 6f 77 wsNTonly, Window
03a0: 73 58 50 2c 20 22 0a 09 22 57 69 6e 64 6f 77 73 sXP, ".."Windows
03b0: 32 30 30 33 20 6f 72 20 57 69 6e 64 6f 77 73 56 2003 or WindowsV
03c0: 69 73 74 61 20 69 73 20 73 65 74 22 29 3b 0a 0a ista is set");..
03d0: 65 78 74 65 72 6e 20 28 57 69 6e 64 6f 77 73 29 extern (Windows)
03e0: 20 7b 0a 09 56 4f 49 44 20 42 75 69 6c 64 45 78 {..VOID BuildEx
03f0: 70 6c 69 63 69 74 41 63 63 65 73 73 57 69 74 68 plicitAccessWith
0400: 4e 61 6d 65 41 28 50 45 58 50 4c 49 43 49 54 5f NameA(PEXPLICIT_
0410: 41 43 43 45 53 53 5f 41 2c 20 4c 50 53 54 52 2c ACCESS_A, LPSTR,
0420: 20 44 57 4f 52 44 2c 0a 09 20 20 41 43 43 45 53 DWORD,.. ACCES
0430: 53 5f 4d 4f 44 45 2c 20 44 57 4f 52 44 29 3b 0a S_MODE, DWORD);.
0440: 09 56 4f 49 44 20 42 75 69 6c 64 45 78 70 6c 69 .VOID BuildExpli
0450: 63 69 74 41 63 63 65 73 73 57 69 74 68 4e 61 6d citAccessWithNam
0460: 65 57 28 50 45 58 50 4c 49 43 49 54 5f 41 43 43 eW(PEXPLICIT_ACC
0470: 45 53 53 5f 57 2c 20 4c 50 57 53 54 52 2c 20 44 ESS_W, LPWSTR, D
0480: 57 4f 52 44 2c 0a 09 20 20 41 43 43 45 53 53 5f WORD,.. ACCESS_
0490: 4d 4f 44 45 2c 20 44 57 4f 52 44 29 3b 0a 09 44 MODE, DWORD);..D
04a0: 57 4f 52 44 20 42 75 69 6c 64 53 65 63 75 72 69 WORD BuildSecuri
04b0: 74 79 44 65 73 63 72 69 70 74 6f 72 41 28 50 54 tyDescriptorA(PT
04c0: 52 55 53 54 45 45 5f 41 2c 20 50 54 52 55 53 54 RUSTEE_A, PTRUST
04d0: 45 45 5f 41 20 2c 20 55 4c 4f 4e 47 2c 0a 09 20 EE_A , ULONG,..
04e0: 20 50 45 58 50 4c 49 43 49 54 5f 41 43 43 45 53 PEXPLICIT_ACCES
04f0: 53 5f 41 2c 20 55 4c 4f 4e 47 2c 20 50 45 58 50 S_A, ULONG, PEXP
0500: 4c 49 43 49 54 5f 41 43 43 45 53 53 5f 41 2c 20 LICIT_ACCESS_A,
0510: 50 53 45 43 55 52 49 54 59 5f 44 45 53 43 52 49 PSECURITY_DESCRI
0520: 50 54 4f 52 2c 0a 09 20 20 50 55 4c 4f 4e 47 2c PTOR,.. PULONG,
0530: 20 50 53 45 43 55 52 49 54 59 5f 44 45 53 43 52 PSECURITY_DESCR
0540: 49 50 54 4f 52 2a 29 3b 0a 09 44 57 4f 52 44 20 IPTOR*);..DWORD
0550: 42 75 69 6c 64 53 65 63 75 72 69 74 79 44 65 73 BuildSecurityDes
0560: 63 72 69 70 74 6f 72 57 28 50 54 52 55 53 54 45 criptorW(PTRUSTE
0570: 45 5f 57 2c 20 50 54 52 55 53 54 45 45 5f 57 20 E_W, PTRUSTEE_W
0580: 2c 20 55 4c 4f 4e 47 2c 0a 09 20 20 50 45 58 50 , ULONG,.. PEXP
0590: 4c 49 43 49 54 5f 41 43 43 45 53 53 5f 57 2c 20 LICIT_ACCESS_W,
05a0: 55 4c 4f 4e 47 2c 20 50 45 58 50 4c 49 43 49 54 ULONG, PEXPLICIT
05b0: 5f 41 43 43 45 53 53 5f 57 2c 20 50 53 45 43 55 _ACCESS_W, PSECU
05c0: 52 49 54 59 5f 44 45 53 43 52 49 50 54 4f 52 2c RITY_DESCRIPTOR,
05d0: 0a 09 20 20 50 55 4c 4f 4e 47 2c 20 50 53 45 43 .. PULONG, PSEC
05e0: 55 52 49 54 59 5f 44 45 53 43 52 49 50 54 4f 52 URITY_DESCRIPTOR
05f0: 2a 29 3b 0a 09 56 4f 49 44 20 42 75 69 6c 64 54 *);..VOID BuildT
0600: 72 75 73 74 65 65 57 69 74 68 4e 61 6d 65 41 28 rusteeWithNameA(
0610: 50 54 52 55 53 54 45 45 5f 41 2c 20 4c 50 53 54 PTRUSTEE_A, LPST
0620: 52 29 3b 0a 09 56 4f 49 44 20 42 75 69 6c 64 54 R);..VOID BuildT
0630: 72 75 73 74 65 65 57 69 74 68 4e 61 6d 65 57 28 rusteeWithNameW(
0640: 50 54 52 55 53 54 45 45 5f 57 2c 20 4c 50 57 53 PTRUSTEE_W, LPWS
0650: 54 52 29 3b 0a 09 56 4f 49 44 20 42 75 69 6c 64 TR);..VOID Build
0660: 54 72 75 73 74 65 65 57 69 74 68 4f 62 6a 65 63 TrusteeWithObjec
0670: 74 73 41 6e 64 4e 61 6d 65 41 28 50 54 52 55 53 tsAndNameA(PTRUS
0680: 54 45 45 5f 41 2c 20 50 4f 42 4a 45 43 54 53 5f TEE_A, POBJECTS_
0690: 41 4e 44 5f 4e 41 4d 45 5f 41 2c 0a 09 20 20 53 AND_NAME_A,.. S
06a0: 45 5f 4f 42 4a 45 43 54 5f 54 59 50 45 2c 20 4c E_OBJECT_TYPE, L
06b0: 50 53 54 52 2c 20 4c 50 53 54 52 2c 20 4c 50 53 PSTR, LPSTR, LPS
06c0: 54 52 29 3b 0a 09 56 4f 49 44 20 42 75 69 6c 64 TR);..VOID Build
06d0: 54 72 75 73 74 65 65 57 69 74 68 4f 62 6a 65 63 TrusteeWithObjec
06e0: 74 73 41 6e 64 4e 61 6d 65 57 28 50 54 52 55 53 tsAndNameW(PTRUS
06f0: 54 45 45 5f 57 2c 20 50 4f 42 4a 45 43 54 53 5f TEE_W, POBJECTS_
0700: 41 4e 44 5f 4e 41 4d 45 5f 57 2c 0a 09 20 20 53 AND_NAME_W,.. S
0710: 45 5f 4f 42 4a 45 43 54 5f 54 59 50 45 2c 20 4c E_OBJECT_TYPE, L
0720: 50 57 53 54 52 2c 20 4c 50 57 53 54 52 2c 20 4c PWSTR, LPWSTR, L
0730: 50 57 53 54 52 29 3b 0a 09 56 4f 49 44 20 42 75 PWSTR);..VOID Bu
0740: 69 6c 64 54 72 75 73 74 65 65 57 69 74 68 4f 62 ildTrusteeWithOb
0750: 6a 65 63 74 73 41 6e 64 53 69 64 41 28 50 54 52 jectsAndSidA(PTR
0760: 55 53 54 45 45 5f 41 2c 20 50 4f 42 4a 45 43 54 USTEE_A, POBJECT
0770: 53 5f 41 4e 44 5f 53 49 44 2c 0a 09 20 20 47 55 S_AND_SID,.. GU
0780: 49 44 2a 2c 20 47 55 49 44 2a 2c 20 50 53 49 44 ID*, GUID*, PSID
0790: 29 3b 0a 09 56 4f 49 44 20 42 75 69 6c 64 54 72 );..VOID BuildTr
07a0: 75 73 74 65 65 57 69 74 68 4f 62 6a 65 63 74 73 usteeWithObjects
07b0: 41 6e 64 53 69 64 57 28 50 54 52 55 53 54 45 45 AndSidW(PTRUSTEE
07c0: 5f 57 2c 20 50 4f 42 4a 45 43 54 53 5f 41 4e 44 _W, POBJECTS_AND
07d0: 5f 53 49 44 2c 0a 09 20 20 47 55 49 44 2a 2c 20 _SID,.. GUID*,
07e0: 47 55 49 44 2a 2c 20 50 53 49 44 29 3b 0a 09 56 GUID*, PSID);..V
07f0: 4f 49 44 20 42 75 69 6c 64 54 72 75 73 74 65 65 OID BuildTrustee
0800: 57 69 74 68 53 69 64 41 28 50 54 52 55 53 54 45 WithSidA(PTRUSTE
0810: 45 5f 41 2c 20 50 53 49 44 29 3b 0a 09 56 4f 49 E_A, PSID);..VOI
0820: 44 20 42 75 69 6c 64 54 72 75 73 74 65 65 57 69 D BuildTrusteeWi
0830: 74 68 53 69 64 57 28 50 54 52 55 53 54 45 45 5f thSidW(PTRUSTEE_
0840: 57 2c 20 50 53 49 44 29 3b 0a 09 44 57 4f 52 44 W, PSID);..DWORD
0850: 20 47 65 74 41 75 64 69 74 65 64 50 65 72 6d 69 GetAuditedPermi
0860: 73 73 69 6f 6e 73 46 72 6f 6d 41 63 6c 41 28 50 ssionsFromAclA(P
0870: 41 43 4c 2c 20 50 54 52 55 53 54 45 45 5f 41 2c ACL, PTRUSTEE_A,
0880: 20 50 41 43 43 45 53 53 5f 4d 41 53 4b 2c 0a 09 PACCESS_MASK,..
0890: 20 20 50 41 43 43 45 53 53 5f 4d 41 53 4b 29 3b PACCESS_MASK);
08a0: 0a 09 44 57 4f 52 44 20 47 65 74 41 75 64 69 74 ..DWORD GetAudit
08b0: 65 64 50 65 72 6d 69 73 73 69 6f 6e 73 46 72 6f edPermissionsFro
08c0: 6d 41 63 6c 57 28 50 41 43 4c 2c 20 50 54 52 55 mAclW(PACL, PTRU
08d0: 53 54 45 45 5f 57 2c 20 50 41 43 43 45 53 53 5f STEE_W, PACCESS_
08e0: 4d 41 53 4b 2c 0a 09 20 20 50 41 43 43 45 53 53 MASK,.. PACCESS
08f0: 5f 4d 41 53 4b 29 3b 0a 09 44 57 4f 52 44 20 47 _MASK);..DWORD G
0900: 65 74 45 66 66 65 63 74 69 76 65 52 69 67 68 74 etEffectiveRight
0910: 73 46 72 6f 6d 41 63 6c 41 28 50 41 43 4c 2c 20 sFromAclA(PACL,
0920: 50 54 52 55 53 54 45 45 5f 41 2c 20 50 41 43 43 PTRUSTEE_A, PACC
0930: 45 53 53 5f 4d 41 53 4b 29 3b 0a 09 44 57 4f 52 ESS_MASK);..DWOR
0940: 44 20 47 65 74 45 66 66 65 63 74 69 76 65 52 69 D GetEffectiveRi
0950: 67 68 74 73 46 72 6f 6d 41 63 6c 57 28 50 41 43 ghtsFromAclW(PAC
0960: 4c 2c 20 50 54 52 55 53 54 45 45 5f 57 2c 20 50 L, PTRUSTEE_W, P
0970: 41 43 43 45 53 53 5f 4d 41 53 4b 29 3b 0a 09 44 ACCESS_MASK);..D
0980: 57 4f 52 44 20 47 65 74 45 78 70 6c 69 63 69 74 WORD GetExplicit
0990: 45 6e 74 72 69 65 73 46 72 6f 6d 41 63 6c 41 28 EntriesFromAclA(
09a0: 50 41 43 4c 2c 20 50 55 4c 4f 4e 47 2c 20 50 45 PACL, PULONG, PE
09b0: 58 50 4c 49 43 49 54 5f 41 43 43 45 53 53 5f 41 XPLICIT_ACCESS_A
09c0: 2a 29 3b 0a 09 44 57 4f 52 44 20 47 65 74 45 78 *);..DWORD GetEx
09d0: 70 6c 69 63 69 74 45 6e 74 72 69 65 73 46 72 6f plicitEntriesFro
09e0: 6d 41 63 6c 57 28 50 41 43 4c 2c 20 50 55 4c 4f mAclW(PACL, PULO
09f0: 4e 47 2c 20 50 45 58 50 4c 49 43 49 54 5f 41 43 NG, PEXPLICIT_AC
0a00: 43 45 53 53 5f 57 2a 29 3b 0a 09 73 74 61 74 69 CESS_W*);..stati
0a10: 63 20 69 66 20 28 57 49 4e 56 45 52 20 3e 3d 20 c if (WINVER >=
0a20: 30 78 35 30 31 29 20 7b 0a 09 09 44 57 4f 52 44 0x501) {...DWORD
0a30: 20 47 65 74 49 6e 68 65 72 69 74 61 6e 63 65 53 GetInheritanceS
0a40: 6f 75 72 63 65 41 28 4c 50 53 54 52 2c 20 53 45 ourceA(LPSTR, SE
0a50: 5f 4f 42 4a 45 43 54 5f 54 59 50 45 2c 0a 09 09 _OBJECT_TYPE,...
0a60: 20 20 53 45 43 55 52 49 54 59 5f 49 4e 46 4f 52 SECURITY_INFOR
0a70: 4d 41 54 49 4f 4e 2c 20 42 4f 4f 4c 2c 20 47 55 MATION, BOOL, GU
0a80: 49 44 2a 2a 2c 20 44 57 4f 52 44 2c 20 50 41 43 ID**, DWORD, PAC
0a90: 4c 2c 20 76 6f 69 64 2a 2c 0a 09 09 20 20 50 47 L, void*,... PG
0aa0: 45 4e 45 52 49 43 5f 4d 41 50 50 49 4e 47 2c 20 ENERIC_MAPPING,
0ab0: 50 49 4e 48 45 52 49 54 45 44 5f 46 52 4f 4d 41 PINHERITED_FROMA
0ac0: 29 3b 0a 09 09 44 57 4f 52 44 20 47 65 74 49 6e );...DWORD GetIn
0ad0: 68 65 72 69 74 61 6e 63 65 53 6f 75 72 63 65 57 heritanceSourceW
0ae0: 28 4c 50 57 53 54 52 2c 20 53 45 5f 4f 42 4a 45 (LPWSTR, SE_OBJE
0af0: 43 54 5f 54 59 50 45 2c 0a 09 09 20 20 53 45 43 CT_TYPE,... SEC
0b00: 55 52 49 54 59 5f 49 4e 46 4f 52 4d 41 54 49 4f URITY_INFORMATIO
0b10: 4e 2c 20 42 4f 4f 4c 2c 20 47 55 49 44 2a 2a 2c N, BOOL, GUID**,
0b20: 20 44 57 4f 52 44 2c 20 50 41 43 4c 2c 20 76 6f DWORD, PACL, vo
0b30: 69 64 2a 2c 0a 09 09 20 20 50 47 45 4e 45 52 49 id*,... PGENERI
0b40: 43 5f 4d 41 50 50 49 4e 47 2c 20 50 49 4e 48 45 C_MAPPING, PINHE
0b50: 52 49 54 45 44 5f 46 52 4f 4d 57 29 3b 0a 09 7d RITED_FROMW);..}
0b60: 0a 09 44 57 4f 52 44 20 47 65 74 4e 61 6d 65 64 ..DWORD GetNamed
0b70: 53 65 63 75 72 69 74 79 49 6e 66 6f 41 28 4c 50 SecurityInfoA(LP
0b80: 53 54 52 2c 20 53 45 5f 4f 42 4a 45 43 54 5f 54 STR, SE_OBJECT_T
0b90: 59 50 45 2c 20 53 45 43 55 52 49 54 59 5f 49 4e YPE, SECURITY_IN
0ba0: 46 4f 52 4d 41 54 49 4f 4e 2c 0a 09 20 20 50 53 FORMATION,.. PS
0bb0: 49 44 2a 2c 20 50 53 49 44 2a 2c 20 50 41 43 4c ID*, PSID*, PACL
0bc0: 2a 2c 20 50 41 43 4c 2a 2c 20 50 53 45 43 55 52 *, PACL*, PSECUR
0bd0: 49 54 59 5f 44 45 53 43 52 49 50 54 4f 52 2a 29 ITY_DESCRIPTOR*)
0be0: 3b 0a 09 44 57 4f 52 44 20 47 65 74 4e 61 6d 65 ;..DWORD GetName
0bf0: 64 53 65 63 75 72 69 74 79 49 6e 66 6f 57 28 4c dSecurityInfoW(L
0c00: 50 57 53 54 52 2c 20 53 45 5f 4f 42 4a 45 43 54 PWSTR, SE_OBJECT
0c10: 5f 54 59 50 45 2c 20 53 45 43 55 52 49 54 59 5f _TYPE, SECURITY_
0c20: 49 4e 46 4f 52 4d 41 54 49 4f 4e 2c 0a 09 20 20 INFORMATION,..
0c30: 50 53 49 44 2a 2c 20 50 53 49 44 2a 2c 20 50 41 PSID*, PSID*, PA
0c40: 43 4c 2a 2c 20 50 41 43 4c 2a 2c 20 50 53 45 43 CL*, PACL*, PSEC
0c50: 55 52 49 54 59 5f 44 45 53 43 52 49 50 54 4f 52 URITY_DESCRIPTOR
0c60: 2a 29 3b 0a 09 44 57 4f 52 44 20 47 65 74 53 65 *);..DWORD GetSe
0c70: 63 75 72 69 74 79 49 6e 66 6f 28 48 41 4e 44 4c curityInfo(HANDL
0c80: 45 2c 20 53 45 5f 4f 42 4a 45 43 54 5f 54 59 50 E, SE_OBJECT_TYP
0c90: 45 2c 20 53 45 43 55 52 49 54 59 5f 49 4e 46 4f E, SECURITY_INFO
0ca0: 52 4d 41 54 49 4f 4e 2c 0a 09 20 20 50 53 49 44 RMATION,.. PSID
0cb0: 2a 2c 20 50 53 49 44 2a 2c 20 50 41 43 4c 2a 2c *, PSID*, PACL*,
0cc0: 20 50 41 43 4c 2a 2c 20 50 53 45 43 55 52 49 54 PACL*, PSECURIT
0cd0: 59 5f 44 45 53 43 52 49 50 54 4f 52 2a 29 3b 0a Y_DESCRIPTOR*);.
0ce0: 09 54 52 55 53 54 45 45 5f 46 4f 52 4d 20 47 65 .TRUSTEE_FORM Ge
0cf0: 74 54 72 75 73 74 65 65 46 6f 72 6d 41 28 50 54 tTrusteeFormA(PT
0d00: 52 55 53 54 45 45 5f 41 29 3b 0a 09 54 52 55 53 RUSTEE_A);..TRUS
0d10: 54 45 45 5f 46 4f 52 4d 20 47 65 74 54 72 75 73 TEE_FORM GetTrus
0d20: 74 65 65 46 6f 72 6d 57 28 50 54 52 55 53 54 45 teeFormW(PTRUSTE
0d30: 45 5f 57 29 3b 0a 09 4c 50 53 54 52 20 47 65 74 E_W);..LPSTR Get
0d40: 54 72 75 73 74 65 65 4e 61 6d 65 41 28 50 54 52 TrusteeNameA(PTR
0d50: 55 53 54 45 45 5f 41 29 3b 0a 09 4c 50 57 53 54 USTEE_A);..LPWST
0d60: 52 20 47 65 74 54 72 75 73 74 65 65 4e 61 6d 65 R GetTrusteeName
0d70: 57 28 50 54 52 55 53 54 45 45 5f 57 29 3b 0a 09 W(PTRUSTEE_W);..
0d80: 54 52 55 53 54 45 45 5f 54 59 50 45 20 47 65 74 TRUSTEE_TYPE Get
0d90: 54 72 75 73 74 65 65 54 79 70 65 41 28 50 54 52 TrusteeTypeA(PTR
0da0: 55 53 54 45 45 5f 41 29 3b 0a 09 54 52 55 53 54 USTEE_A);..TRUST
0db0: 45 45 5f 54 59 50 45 20 47 65 74 54 72 75 73 74 EE_TYPE GetTrust
0dc0: 65 65 54 79 70 65 57 28 50 54 52 55 53 54 45 45 eeTypeW(PTRUSTEE
0dd0: 5f 57 29 3b 0a 09 44 57 4f 52 44 20 4c 6f 6f 6b _W);..DWORD Look
0de0: 75 70 53 65 63 75 72 69 74 79 44 65 73 63 72 69 upSecurityDescri
0df0: 70 74 6f 72 50 61 72 74 73 41 28 50 54 52 55 53 ptorPartsA(PTRUS
0e00: 54 45 45 5f 41 2a 2c 20 50 54 52 55 53 54 45 45 TEE_A*, PTRUSTEE
0e10: 5f 41 2a 2c 20 50 55 4c 4f 4e 47 2c 0a 09 20 20 _A*, PULONG,..
0e20: 50 45 58 50 4c 49 43 49 54 5f 41 43 43 45 53 53 PEXPLICIT_ACCESS
0e30: 5f 41 2a 2c 20 50 55 4c 4f 4e 47 2c 20 50 45 58 _A*, PULONG, PEX
0e40: 50 4c 49 43 49 54 5f 41 43 43 45 53 53 5f 41 2a PLICIT_ACCESS_A*
0e50: 2c 0a 09 20 20 50 53 45 43 55 52 49 54 59 5f 44 ,.. PSECURITY_D
0e60: 45 53 43 52 49 50 54 4f 52 29 3b 0a 09 44 57 4f ESCRIPTOR);..DWO
0e70: 52 44 20 4c 6f 6f 6b 75 70 53 65 63 75 72 69 74 RD LookupSecurit
0e80: 79 44 65 73 63 72 69 70 74 6f 72 50 61 72 74 73 yDescriptorParts
0e90: 57 28 50 54 52 55 53 54 45 45 5f 57 2a 2c 20 50 W(PTRUSTEE_W*, P
0ea0: 54 52 55 53 54 45 45 5f 57 2a 2c 20 50 55 4c 4f TRUSTEE_W*, PULO
0eb0: 4e 47 2c 0a 09 20 20 50 45 58 50 4c 49 43 49 54 NG,.. PEXPLICIT
0ec0: 5f 41 43 43 45 53 53 5f 57 2a 2c 20 50 55 4c 4f _ACCESS_W*, PULO
0ed0: 4e 47 2c 20 50 45 58 50 4c 49 43 49 54 5f 41 43 NG, PEXPLICIT_AC
0ee0: 43 45 53 53 5f 57 2a 2c 0a 09 20 20 50 53 45 43 CESS_W*,.. PSEC
0ef0: 55 52 49 54 59 5f 44 45 53 43 52 49 50 54 4f 52 URITY_DESCRIPTOR
0f00: 29 3b 0a 09 44 57 4f 52 44 20 53 65 74 45 6e 74 );..DWORD SetEnt
0f10: 72 69 65 73 49 6e 41 63 6c 41 28 55 4c 4f 4e 47 riesInAclA(ULONG
0f20: 2c 20 50 45 58 50 4c 49 43 49 54 5f 41 43 43 45 , PEXPLICIT_ACCE
0f30: 53 53 5f 41 2c 20 50 41 43 4c 2c 20 50 41 43 4c SS_A, PACL, PACL
0f40: 2a 29 3b 0a 09 44 57 4f 52 44 20 53 65 74 45 6e *);..DWORD SetEn
0f50: 74 72 69 65 73 49 6e 41 63 6c 57 28 55 4c 4f 4e triesInAclW(ULON
0f60: 47 2c 20 50 45 58 50 4c 49 43 49 54 5f 41 43 43 G, PEXPLICIT_ACC
0f70: 45 53 53 5f 57 2c 20 50 41 43 4c 2c 20 50 41 43 ESS_W, PACL, PAC
0f80: 4c 2a 29 3b 0a 09 44 57 4f 52 44 20 53 65 74 4e L*);..DWORD SetN
0f90: 61 6d 65 64 53 65 63 75 72 69 74 79 49 6e 66 6f amedSecurityInfo
0fa0: 41 28 4c 50 53 54 52 2c 20 53 45 5f 4f 42 4a 45 A(LPSTR, SE_OBJE
0fb0: 43 54 5f 54 59 50 45 2c 20 53 45 43 55 52 49 54 CT_TYPE, SECURIT
0fc0: 59 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 2c 0a 09 Y_INFORMATION,..
0fd0: 20 20 50 53 49 44 2c 20 50 53 49 44 2c 20 50 41 PSID, PSID, PA
0fe0: 43 4c 2c 20 50 41 43 4c 29 3b 0a 09 44 57 4f 52 CL, PACL);..DWOR
0ff0: 44 20 53 65 74 4e 61 6d 65 64 53 65 63 75 72 69 D SetNamedSecuri
1000: 74 79 49 6e 66 6f 57 28 4c 50 57 53 54 52 2c 20 tyInfoW(LPWSTR,
1010: 53 45 5f 4f 42 4a 45 43 54 5f 54 59 50 45 2c 20 SE_OBJECT_TYPE,
1020: 53 45 43 55 52 49 54 59 5f 49 4e 46 4f 52 4d 41 SECURITY_INFORMA
1030: 54 49 4f 4e 2c 0a 09 20 20 50 53 49 44 2c 20 50 TION,.. PSID, P
1040: 53 49 44 2c 20 50 41 43 4c 2c 20 50 41 43 4c 29 SID, PACL, PACL)
1050: 3b 0a 09 44 57 4f 52 44 20 53 65 74 53 65 63 75 ;..DWORD SetSecu
1060: 72 69 74 79 49 6e 66 6f 28 48 41 4e 44 4c 45 2c rityInfo(HANDLE,
1070: 20 53 45 5f 4f 42 4a 45 43 54 5f 54 59 50 45 2c SE_OBJECT_TYPE,
1080: 20 53 45 43 55 52 49 54 59 5f 49 4e 46 4f 52 4d SECURITY_INFORM
1090: 41 54 49 4f 4e 2c 20 50 53 49 44 2c 0a 09 20 20 ATION, PSID,..
10a0: 50 53 49 44 2c 20 50 41 43 4c 2c 20 50 41 43 4c PSID, PACL, PACL
10b0: 29 3b 0a 09 56 4f 49 44 20 42 75 69 6c 64 49 6d );..VOID BuildIm
10c0: 70 65 72 73 6f 6e 61 74 65 45 78 70 6c 69 63 69 personateExplici
10d0: 74 41 63 63 65 73 73 57 69 74 68 4e 61 6d 65 41 tAccessWithNameA
10e0: 28 50 45 58 50 4c 49 43 49 54 5f 41 43 43 45 53 (PEXPLICIT_ACCES
10f0: 53 5f 41 2c 20 4c 50 53 54 52 2c 0a 09 20 20 50 S_A, LPSTR,.. P
1100: 54 52 55 53 54 45 45 5f 41 2c 20 44 57 4f 52 44 TRUSTEE_A, DWORD
1110: 2c 20 41 43 43 45 53 53 5f 4d 4f 44 45 2c 20 44 , ACCESS_MODE, D
1120: 57 4f 52 44 29 3b 0a 09 56 4f 49 44 20 42 75 69 WORD);..VOID Bui
1130: 6c 64 49 6d 70 65 72 73 6f 6e 61 74 65 45 78 70 ldImpersonateExp
1140: 6c 69 63 69 74 41 63 63 65 73 73 57 69 74 68 4e licitAccessWithN
1150: 61 6d 65 57 28 50 45 58 50 4c 49 43 49 54 5f 41 ameW(PEXPLICIT_A
1160: 43 43 45 53 53 5f 57 2c 20 4c 50 57 53 54 52 2c CCESS_W, LPWSTR,
1170: 0a 09 20 20 50 54 52 55 53 54 45 45 5f 57 2c 20 .. PTRUSTEE_W,
1180: 44 57 4f 52 44 2c 20 41 43 43 45 53 53 5f 4d 4f DWORD, ACCESS_MO
1190: 44 45 2c 20 44 57 4f 52 44 29 3b 0a 09 56 4f 49 DE, DWORD);..VOI
11a0: 44 20 42 75 69 6c 64 49 6d 70 65 72 73 6f 6e 61 D BuildImpersona
11b0: 74 65 54 72 75 73 74 65 65 41 28 50 54 52 55 53 teTrusteeA(PTRUS
11c0: 54 45 45 5f 41 2c 20 50 54 52 55 53 54 45 45 5f TEE_A, PTRUSTEE_
11d0: 41 29 3b 0a 09 56 4f 49 44 20 42 75 69 6c 64 49 A);..VOID BuildI
11e0: 6d 70 65 72 73 6f 6e 61 74 65 54 72 75 73 74 65 mpersonateTruste
11f0: 65 57 28 50 54 52 55 53 54 45 45 5f 57 2c 20 50 eW(PTRUSTEE_W, P
1200: 54 52 55 53 54 45 45 5f 57 29 3b 0a 09 50 54 52 TRUSTEE_W);..PTR
1210: 55 53 54 45 45 5f 41 20 47 65 74 4d 75 6c 74 69 USTEE_A GetMulti
1220: 70 6c 65 54 72 75 73 74 65 65 41 28 50 54 52 55 pleTrusteeA(PTRU
1230: 53 54 45 45 5f 41 29 3b 0a 09 50 54 52 55 53 54 STEE_A);..PTRUST
1240: 45 45 5f 57 20 47 65 74 4d 75 6c 74 69 70 6c 65 EE_W GetMultiple
1250: 54 72 75 73 74 65 65 57 28 50 54 52 55 53 54 45 TrusteeW(PTRUSTE
1260: 45 5f 57 29 3b 0a 09 4d 55 4c 54 49 50 4c 45 5f E_W);..MULTIPLE_
1270: 54 52 55 53 54 45 45 5f 4f 50 45 52 41 54 49 4f TRUSTEE_OPERATIO
1280: 4e 20 47 65 74 4d 75 6c 74 69 70 6c 65 54 72 75 N GetMultipleTru
1290: 73 74 65 65 4f 70 65 72 61 74 69 6f 6e 41 28 50 steeOperationA(P
12a0: 54 52 55 53 54 45 45 5f 41 29 3b 0a 09 4d 55 4c TRUSTEE_A);..MUL
12b0: 54 49 50 4c 45 5f 54 52 55 53 54 45 45 5f 4f 50 TIPLE_TRUSTEE_OP
12c0: 45 52 41 54 49 4f 4e 20 47 65 74 4d 75 6c 74 69 ERATION GetMulti
12d0: 70 6c 65 54 72 75 73 74 65 65 4f 70 65 72 61 74 pleTrusteeOperat
12e0: 69 6f 6e 57 28 50 54 52 55 53 54 45 45 5f 57 29 ionW(PTRUSTEE_W)
12f0: 3b 0a 7d 0a 0a 76 65 72 73 69 6f 6e 20 28 55 6e ;.}..version (Un
1300: 69 63 6f 64 65 29 20 7b 0a 09 61 6c 69 61 73 20 icode) {..alias
1310: 42 75 69 6c 64 45 78 70 6c 69 63 69 74 41 63 63 BuildExplicitAcc
1320: 65 73 73 57 69 74 68 4e 61 6d 65 57 20 42 75 69 essWithNameW Bui
1330: 6c 64 45 78 70 6c 69 63 69 74 41 63 63 65 73 73 ldExplicitAccess
1340: 57 69 74 68 4e 61 6d 65 3b 0a 09 61 6c 69 61 73 WithName;..alias
1350: 20 42 75 69 6c 64 53 65 63 75 72 69 74 79 44 65 BuildSecurityDe
1360: 73 63 72 69 70 74 6f 72 57 20 42 75 69 6c 64 53 scriptorW BuildS
1370: 65 63 75 72 69 74 79 44 65 73 63 72 69 70 74 6f ecurityDescripto
1380: 72 3b 0a 09 61 6c 69 61 73 20 42 75 69 6c 64 54 r;..alias BuildT
1390: 72 75 73 74 65 65 57 69 74 68 4e 61 6d 65 57 20 rusteeWithNameW
13a0: 42 75 69 6c 64 54 72 75 73 74 65 65 57 69 74 68 BuildTrusteeWith
13b0: 4e 61 6d 65 3b 0a 09 61 6c 69 61 73 20 42 75 69 Name;..alias Bui
13c0: 6c 64 54 72 75 73 74 65 65 57 69 74 68 4f 62 6a ldTrusteeWithObj
13d0: 65 63 74 73 41 6e 64 4e 61 6d 65 57 20 42 75 69 ectsAndNameW Bui
13e0: 6c 64 54 72 75 73 74 65 65 57 69 74 68 4f 62 6a ldTrusteeWithObj
13f0: 65 63 74 73 41 6e 64 4e 61 6d 65 3b 0a 09 61 6c ectsAndName;..al
1400: 69 61 73 20 42 75 69 6c 64 54 72 75 73 74 65 65 ias BuildTrustee
1410: 57 69 74 68 4f 62 6a 65 63 74 73 41 6e 64 53 69 WithObjectsAndSi
1420: 64 57 20 42 75 69 6c 64 54 72 75 73 74 65 65 57 dW BuildTrusteeW
1430: 69 74 68 4f 62 6a 65 63 74 73 41 6e 64 53 69 64 ithObjectsAndSid
1440: 3b 0a 09 61 6c 69 61 73 20 42 75 69 6c 64 54 72 ;..alias BuildTr
1450: 75 73 74 65 65 57 69 74 68 53 69 64 57 20 42 75 usteeWithSidW Bu
1460: 69 6c 64 54 72 75 73 74 65 65 57 69 74 68 53 69 ildTrusteeWithSi
1470: 64 3b 0a 09 61 6c 69 61 73 20 47 65 74 41 75 64 d;..alias GetAud
1480: 69 74 65 64 50 65 72 6d 69 73 73 69 6f 6e 73 46 itedPermissionsF
1490: 72 6f 6d 41 63 6c 57 20 47 65 74 41 75 64 69 74 romAclW GetAudit
14a0: 65 64 50 65 72 6d 69 73 73 69 6f 6e 73 46 72 6f edPermissionsFro
14b0: 6d 41 63 6c 3b 0a 09 61 6c 69 61 73 20 47 65 74 mAcl;..alias Get
14c0: 45 66 66 65 63 74 69 76 65 52 69 67 68 74 73 46 EffectiveRightsF
14d0: 72 6f 6d 41 63 6c 57 20 47 65 74 45 66 66 65 63 romAclW GetEffec
14e0: 74 69 76 65 52 69 67 68 74 73 46 72 6f 6d 41 63 tiveRightsFromAc
14f0: 6c 3b 0a 09 61 6c 69 61 73 20 47 65 74 45 78 70 l;..alias GetExp
1500: 6c 69 63 69 74 45 6e 74 72 69 65 73 46 72 6f 6d licitEntriesFrom
1510: 41 63 6c 57 20 47 65 74 45 78 70 6c 69 63 69 74 AclW GetExplicit
1520: 45 6e 74 72 69 65 73 46 72 6f 6d 41 63 6c 3b 0a EntriesFromAcl;.
1530: 09 61 6c 69 61 73 20 47 65 74 4e 61 6d 65 64 53 .alias GetNamedS
1540: 65 63 75 72 69 74 79 49 6e 66 6f 57 20 47 65 74 ecurityInfoW Get
1550: 4e 61 6d 65 64 53 65 63 75 72 69 74 79 49 6e 66 NamedSecurityInf
1560: 6f 3b 0a 09 61 6c 69 61 73 20 47 65 74 54 72 75 o;..alias GetTru
1570: 73 74 65 65 46 6f 72 6d 57 20 47 65 74 54 72 75 steeFormW GetTru
1580: 73 74 65 65 46 6f 72 6d 3b 0a 09 61 6c 69 61 73 steeForm;..alias
1590: 20 47 65 74 54 72 75 73 74 65 65 4e 61 6d 65 57 GetTrusteeNameW
15a0: 20 47 65 74 54 72 75 73 74 65 65 4e 61 6d 65 3b GetTrusteeName;
15b0: 0a 09 61 6c 69 61 73 20 47 65 74 54 72 75 73 74 ..alias GetTrust
15c0: 65 65 54 79 70 65 57 20 47 65 74 54 72 75 73 74 eeTypeW GetTrust
15d0: 65 65 54 79 70 65 3b 0a 09 61 6c 69 61 73 20 4c eeType;..alias L
15e0: 6f 6f 6b 75 70 53 65 63 75 72 69 74 79 44 65 73 ookupSecurityDes
15f0: 63 72 69 70 74 6f 72 50 61 72 74 73 57 20 4c 6f criptorPartsW Lo
1600: 6f 6b 75 70 53 65 63 75 72 69 74 79 44 65 73 63 okupSecurityDesc
1610: 72 69 70 74 6f 72 50 61 72 74 73 3b 0a 09 61 6c riptorParts;..al
1620: 69 61 73 20 53 65 74 45 6e 74 72 69 65 73 49 6e ias SetEntriesIn
1630: 41 63 6c 57 20 53 65 74 45 6e 74 72 69 65 73 49 AclW SetEntriesI
1640: 6e 41 63 6c 3b 0a 09 61 6c 69 61 73 20 53 65 74 nAcl;..alias Set
1650: 4e 61 6d 65 64 53 65 63 75 72 69 74 79 49 6e 66 NamedSecurityInf
1660: 6f 57 20 53 65 74 4e 61 6d 65 64 53 65 63 75 72 oW SetNamedSecur
1670: 69 74 79 49 6e 66 6f 3b 0a 09 61 6c 69 61 73 20 ityInfo;..alias
1680: 42 75 69 6c 64 49 6d 70 65 72 73 6f 6e 61 74 65 BuildImpersonate
1690: 45 78 70 6c 69 63 69 74 41 63 63 65 73 73 57 69 ExplicitAccessWi
16a0: 74 68 4e 61 6d 65 57 0a 09 20 20 42 75 69 6c 64 thNameW.. Build
16b0: 49 6d 70 65 72 73 6f 6e 61 74 65 45 78 70 6c 69 ImpersonateExpli
16c0: 63 69 74 41 63 63 65 73 73 57 69 74 68 4e 61 6d citAccessWithNam
16d0: 65 3b 0a 09 61 6c 69 61 73 20 42 75 69 6c 64 49 e;..alias BuildI
16e0: 6d 70 65 72 73 6f 6e 61 74 65 54 72 75 73 74 65 mpersonateTruste
16f0: 65 57 20 42 75 69 6c 64 49 6d 70 65 72 73 6f 6e eW BuildImperson
1700: 61 74 65 54 72 75 73 74 65 65 3b 0a 09 61 6c 69 ateTrustee;..ali
1710: 61 73 20 47 65 74 4d 75 6c 74 69 70 6c 65 54 72 as GetMultipleTr
1720: 75 73 74 65 65 57 20 47 65 74 4d 75 6c 74 69 70 usteeW GetMultip
1730: 6c 65 54 72 75 73 74 65 65 3b 0a 09 61 6c 69 61 leTrustee;..alia
1740: 73 20 47 65 74 4d 75 6c 74 69 70 6c 65 54 72 75 s GetMultipleTru
1750: 73 74 65 65 4f 70 65 72 61 74 69 6f 6e 57 20 47 steeOperationW G
1760: 65 74 4d 75 6c 74 69 70 6c 65 54 72 75 73 74 65 etMultipleTruste
1770: 65 4f 70 65 72 61 74 69 6f 6e 3b 0a 7d 20 65 6c eOperation;.} el
1780: 73 65 20 7b 0a 09 61 6c 69 61 73 20 42 75 69 6c se {..alias Buil
1790: 64 45 78 70 6c 69 63 69 74 41 63 63 65 73 73 57 dExplicitAccessW
17a0: 69 74 68 4e 61 6d 65 41 20 42 75 69 6c 64 45 78 ithNameA BuildEx
17b0: 70 6c 69 63 69 74 41 63 63 65 73 73 57 69 74 68 plicitAccessWith
17c0: 4e 61 6d 65 3b 0a 09 61 6c 69 61 73 20 42 75 69 Name;..alias Bui
17d0: 6c 64 53 65 63 75 72 69 74 79 44 65 73 63 72 69 ldSecurityDescri
17e0: 70 74 6f 72 41 20 42 75 69 6c 64 53 65 63 75 72 ptorA BuildSecur
17f0: 69 74 79 44 65 73 63 72 69 70 74 6f 72 3b 0a 09 ityDescriptor;..
1800: 61 6c 69 61 73 20 42 75 69 6c 64 54 72 75 73 74 alias BuildTrust
1810: 65 65 57 69 74 68 4e 61 6d 65 41 20 42 75 69 6c eeWithNameA Buil
1820: 64 54 72 75 73 74 65 65 57 69 74 68 4e 61 6d 65 dTrusteeWithName
1830: 3b 0a 09 61 6c 69 61 73 20 42 75 69 6c 64 54 72 ;..alias BuildTr
1840: 75 73 74 65 65 57 69 74 68 4f 62 6a 65 63 74 73 usteeWithObjects
1850: 41 6e 64 4e 61 6d 65 41 20 42 75 69 6c 64 54 72 AndNameA BuildTr
1860: 75 73 74 65 65 57 69 74 68 4f 62 6a 65 63 74 73 usteeWithObjects
1870: 41 6e 64 4e 61 6d 65 3b 0a 09 61 6c 69 61 73 20 AndName;..alias
1880: 42 75 69 6c 64 54 72 75 73 74 65 65 57 69 74 68 BuildTrusteeWith
1890: 4f 62 6a 65 63 74 73 41 6e 64 53 69 64 41 20 42 ObjectsAndSidA B
18a0: 75 69 6c 64 54 72 75 73 74 65 65 57 69 74 68 4f uildTrusteeWithO
18b0: 62 6a 65 63 74 73 41 6e 64 53 69 64 3b 0a 09 61 bjectsAndSid;..a
18c0: 6c 69 61 73 20 42 75 69 6c 64 54 72 75 73 74 65 lias BuildTruste
18d0: 65 57 69 74 68 53 69 64 41 20 42 75 69 6c 64 54 eWithSidA BuildT
18e0: 72 75 73 74 65 65 57 69 74 68 53 69 64 3b 0a 09 rusteeWithSid;..
18f0: 61 6c 69 61 73 20 47 65 74 41 75 64 69 74 65 64 alias GetAudited
1900: 50 65 72 6d 69 73 73 69 6f 6e 73 46 72 6f 6d 41 PermissionsFromA
1910: 63 6c 41 20 47 65 74 41 75 64 69 74 65 64 50 65 clA GetAuditedPe
1920: 72 6d 69 73 73 69 6f 6e 73 46 72 6f 6d 41 63 6c rmissionsFromAcl
1930: 3b 0a 09 61 6c 69 61 73 20 47 65 74 45 66 66 65 ;..alias GetEffe
1940: 63 74 69 76 65 52 69 67 68 74 73 46 72 6f 6d 41 ctiveRightsFromA
1950: 63 6c 41 20 47 65 74 45 66 66 65 63 74 69 76 65 clA GetEffective
1960: 52 69 67 68 74 73 46 72 6f 6d 41 63 6c 3b 0a 09 RightsFromAcl;..
1970: 61 6c 69 61 73 20 47 65 74 45 78 70 6c 69 63 69 alias GetExplici
1980: 74 45 6e 74 72 69 65 73 46 72 6f 6d 41 63 6c 41 tEntriesFromAclA
1990: 20 47 65 74 45 78 70 6c 69 63 69 74 45 6e 74 72 GetExplicitEntr
19a0: 69 65 73 46 72 6f 6d 41 63 6c 3b 0a 09 61 6c 69 iesFromAcl;..ali
19b0: 61 73 20 47 65 74 4e 61 6d 65 64 53 65 63 75 72 as GetNamedSecur
19c0: 69 74 79 49 6e 66 6f 41 20 47 65 74 4e 61 6d 65 ityInfoA GetName
19d0: 64 53 65 63 75 72 69 74 79 49 6e 66 6f 3b 0a 09 dSecurityInfo;..
19e0: 61 6c 69 61 73 20 47 65 74 54 72 75 73 74 65 65 alias GetTrustee
19f0: 46 6f 72 6d 41 20 47 65 74 54 72 75 73 74 65 65 FormA GetTrustee
1a00: 46 6f 72 6d 3b 0a 09 61 6c 69 61 73 20 47 65 74 Form;..alias Get
1a10: 54 72 75 73 74 65 65 4e 61 6d 65 41 20 47 65 74 TrusteeNameA Get
1a20: 54 72 75 73 74 65 65 4e 61 6d 65 3b 0a 09 61 6c TrusteeName;..al
1a30: 69 61 73 20 47 65 74 54 72 75 73 74 65 65 54 79 ias GetTrusteeTy
1a40: 70 65 41 20 47 65 74 54 72 75 73 74 65 65 54 79 peA GetTrusteeTy
1a50: 70 65 3b 0a 09 61 6c 69 61 73 20 4c 6f 6f 6b 75 pe;..alias Looku
1a60: 70 53 65 63 75 72 69 74 79 44 65 73 63 72 69 70 pSecurityDescrip
1a70: 74 6f 72 50 61 72 74 73 41 20 4c 6f 6f 6b 75 70 torPartsA Lookup
1a80: 53 65 63 75 72 69 74 79 44 65 73 63 72 69 70 74 SecurityDescript
1a90: 6f 72 50 61 72 74 73 3b 0a 09 61 6c 69 61 73 20 orParts;..alias
1aa0: 53 65 74 45 6e 74 72 69 65 73 49 6e 41 63 6c 41 SetEntriesInAclA
1ab0: 20 53 65 74 45 6e 74 72 69 65 73 49 6e 41 63 6c SetEntriesInAcl
1ac0: 3b 0a 09 61 6c 69 61 73 20 53 65 74 4e 61 6d 65 ;..alias SetName
1ad0: 64 53 65 63 75 72 69 74 79 49 6e 66 6f 41 20 53 dSecurityInfoA S
1ae0: 65 74 4e 61 6d 65 64 53 65 63 75 72 69 74 79 49 etNamedSecurityI
1af0: 6e 66 6f 3b 0a 09 61 6c 69 61 73 20 42 75 69 6c nfo;..alias Buil
1b00: 64 49 6d 70 65 72 73 6f 6e 61 74 65 45 78 70 6c dImpersonateExpl
1b10: 69 63 69 74 41 63 63 65 73 73 57 69 74 68 4e 61 icitAccessWithNa
1b20: 6d 65 41 0a 09 20 20 42 75 69 6c 64 49 6d 70 65 meA.. BuildImpe
1b30: 72 73 6f 6e 61 74 65 45 78 70 6c 69 63 69 74 41 rsonateExplicitA
1b40: 63 63 65 73 73 57 69 74 68 4e 61 6d 65 3b 0a 09 ccessWithName;..
1b50: 61 6c 69 61 73 20 42 75 69 6c 64 49 6d 70 65 72 alias BuildImper
1b60: 73 6f 6e 61 74 65 54 72 75 73 74 65 65 41 20 42 sonateTrusteeA B
1b70: 75 69 6c 64 49 6d 70 65 72 73 6f 6e 61 74 65 54 uildImpersonateT
1b80: 72 75 73 74 65 65 3b 0a 09 61 6c 69 61 73 20 47 rustee;..alias G
1b90: 65 74 4d 75 6c 74 69 70 6c 65 54 72 75 73 74 65 etMultipleTruste
1ba0: 65 41 20 47 65 74 4d 75 6c 74 69 70 6c 65 54 72 eA GetMultipleTr
1bb0: 75 73 74 65 65 3b 0a 09 61 6c 69 61 73 20 47 65 ustee;..alias Ge
1bc0: 74 4d 75 6c 74 69 70 6c 65 54 72 75 73 74 65 65 tMultipleTrustee
1bd0: 4f 70 65 72 61 74 69 6f 6e 41 20 47 65 74 4d 75 OperationA GetMu
1be0: 6c 74 69 70 6c 65 54 72 75 73 74 65 65 4f 70 65 ltipleTrusteeOpe
1bf0: 72 61 74 69 6f 6e 3b 0a 7d 0a ration;.}.