Of course, I forgot to commit the new file in revision 22049...
[reactos.git] / reactos / include / aclapi.h
1 #ifndef _ACLAPI_H
2 #define _ACLAPI_H
3 #if __GNUC__ >= 3
4 #pragma GCC system_header
5 #endif
6
7 #include <windows.h>
8 #include <accctrl.h>
9
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13
14 VOID WINAPI BuildExplicitAccessWithNameA(PEXPLICIT_ACCESS_A,LPSTR,DWORD,ACCESS_MODE,DWORD);
15 VOID WINAPI BuildExplicitAccessWithNameW(PEXPLICIT_ACCESS_W,LPWSTR,DWORD,ACCESS_MODE,DWORD);
16 DWORD WINAPI BuildSecurityDescriptorA(PTRUSTEE_A,PTRUSTEE_A ,ULONG,PEXPLICIT_ACCESS_A,
17 ULONG,PEXPLICIT_ACCESS_A,PSECURITY_DESCRIPTOR,PULONG,PSECURITY_DESCRIPTOR*);
18 DWORD WINAPI BuildSecurityDescriptorW(PTRUSTEE_W,PTRUSTEE_W ,ULONG,PEXPLICIT_ACCESS_W,
19 ULONG,PEXPLICIT_ACCESS_W,PSECURITY_DESCRIPTOR,PULONG,PSECURITY_DESCRIPTOR*);
20 VOID WINAPI BuildTrusteeWithNameA(PTRUSTEE_A,LPSTR);
21 VOID WINAPI BuildTrusteeWithNameW(PTRUSTEE_W,LPWSTR);
22 VOID WINAPI BuildTrusteeWithObjectsAndNameA(PTRUSTEE_A,POBJECTS_AND_NAME_A,SE_OBJECT_TYPE,
23 LPSTR,LPSTR,LPSTR);
24 VOID WINAPI BuildTrusteeWithObjectsAndNameW(PTRUSTEE_W,POBJECTS_AND_NAME_W,SE_OBJECT_TYPE,
25 LPWSTR,LPWSTR,LPWSTR);
26 VOID WINAPI BuildTrusteeWithObjectsAndSidA(PTRUSTEE_A,POBJECTS_AND_SID,GUID*,GUID*,PSID);
27 VOID WINAPI BuildTrusteeWithObjectsAndSidW(PTRUSTEE_W,POBJECTS_AND_SID,GUID*,GUID*,PSID);
28 VOID WINAPI BuildTrusteeWithSidA(PTRUSTEE_A,PSID);
29 VOID WINAPI BuildTrusteeWithSidW(PTRUSTEE_W,PSID);
30 DWORD WINAPI FreeInheritedFromArray(PINHERITED_FROMW,USHORT,PFN_OBJECT_MGR_FUNCTS);
31 DWORD WINAPI GetAuditedPermissionsFromAclA(PACL,PTRUSTEE_A,PACCESS_MASK,PACCESS_MASK);
32 DWORD WINAPI GetAuditedPermissionsFromAclW(PACL,PTRUSTEE_W,PACCESS_MASK,PACCESS_MASK);
33 DWORD WINAPI GetEffectiveRightsFromAclA(PACL,PTRUSTEE_A,PACCESS_MASK);
34 DWORD WINAPI GetEffectiveRightsFromAclW(PACL,PTRUSTEE_W,PACCESS_MASK);
35 DWORD WINAPI GetExplicitEntriesFromAclA(PACL,PULONG,PEXPLICIT_ACCESS_A*);
36 DWORD WINAPI GetExplicitEntriesFromAclW(PACL,PULONG,PEXPLICIT_ACCESS_W*);
37 #if (_WIN32_WINNT >= 0x0501)
38 DWORD WINAPI GetInheritanceSourceA(LPSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,BOOL,GUID**,DWORD,PACL,PFN_OBJECT_MGR_FUNCTS,PGENERIC_MAPPING,PINHERITED_FROMA);
39 DWORD WINAPI GetInheritanceSourceW(LPWSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,BOOL,GUID**,DWORD,PACL,PFN_OBJECT_MGR_FUNCTS,PGENERIC_MAPPING,PINHERITED_FROMW);
40 #endif
41 DWORD WINAPI GetNamedSecurityInfoA(LPSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,
42 PSID*,PSID*,PACL*,PACL*,PSECURITY_DESCRIPTOR*);
43 DWORD WINAPI GetNamedSecurityInfoW(LPWSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,
44 PSID*,PSID*,PACL*,PACL*,PSECURITY_DESCRIPTOR*);
45 DWORD WINAPI GetSecurityInfo(HANDLE,SE_OBJECT_TYPE,SECURITY_INFORMATION,
46 PSID*,PSID*,PACL*,PACL*,PSECURITY_DESCRIPTOR*);
47 TRUSTEE_FORM WINAPI GetTrusteeFormA(PTRUSTEE_A);
48 TRUSTEE_FORM WINAPI GetTrusteeFormW(PTRUSTEE_W);
49 LPSTR WINAPI GetTrusteeNameA(PTRUSTEE_A);
50 LPWSTR WINAPI GetTrusteeNameW(PTRUSTEE_W);
51 TRUSTEE_TYPE WINAPI GetTrusteeTypeA(PTRUSTEE_A);
52 TRUSTEE_TYPE WINAPI GetTrusteeTypeW(PTRUSTEE_W);
53 DWORD WINAPI LookupSecurityDescriptorPartsA(PTRUSTEE_A*,PTRUSTEE_A*,PULONG,PEXPLICIT_ACCESS_A*,
54 PULONG,PEXPLICIT_ACCESS_A*,PSECURITY_DESCRIPTOR);
55 DWORD WINAPI LookupSecurityDescriptorPartsW(PTRUSTEE_W*,PTRUSTEE_W*,PULONG,PEXPLICIT_ACCESS_W*,
56 PULONG,PEXPLICIT_ACCESS_W*,PSECURITY_DESCRIPTOR);
57 DWORD WINAPI SetEntriesInAclA(ULONG,PEXPLICIT_ACCESS_A,PACL,PACL*);
58 DWORD WINAPI SetEntriesInAclW(ULONG,PEXPLICIT_ACCESS_W,PACL,PACL*);
59 DWORD WINAPI SetNamedSecurityInfoA(LPSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,PSID,PSID,PACL,PACL);
60 DWORD WINAPI SetNamedSecurityInfoW(LPWSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,PSID,PSID,PACL,PACL);
61 DWORD WINAPI SetSecurityInfo(HANDLE,SE_OBJECT_TYPE,SECURITY_INFORMATION,PSID,PSID,PACL,PACL);
62 VOID WINAPI BuildImpersonateExplicitAccessWithNameA(PEXPLICIT_ACCESS_A,LPSTR,PTRUSTEE_A,DWORD,ACCESS_MODE,DWORD);
63 VOID WINAPI BuildImpersonateExplicitAccessWithNameW(PEXPLICIT_ACCESS_W,LPWSTR,PTRUSTEE_W,DWORD,ACCESS_MODE,DWORD);
64 VOID WINAPI BuildImpersonateTrusteeA(PTRUSTEE_A,PTRUSTEE_A);
65 VOID WINAPI BuildImpersonateTrusteeW(PTRUSTEE_W,PTRUSTEE_W);
66 PTRUSTEE_A WINAPI GetMultipleTrusteeA(PTRUSTEE_A);
67 PTRUSTEE_W WINAPI GetMultipleTrusteeW(PTRUSTEE_W);
68 MULTIPLE_TRUSTEE_OPERATION WINAPI GetMultipleTrusteeOperationA(PTRUSTEE_A);
69 MULTIPLE_TRUSTEE_OPERATION WINAPI GetMultipleTrusteeOperationW(PTRUSTEE_W);
70
71 #ifdef UNICODE
72 #define BuildExplicitAccessWithName BuildExplicitAccessWithNameW
73 #define BuildSecurityDescriptor BuildSecurityDescriptorW
74 #define BuildTrusteeWithName BuildTrusteeWithNameW
75 #define BuildTrusteeWithObjectsAndName BuildTrusteeWithObjectsAndNameW
76 #define BuildTrusteeWithObjectsAndSid BuildTrusteeWithObjectsAndSidW
77 #define BuildTrusteeWithSid BuildTrusteeWithSidW
78 #define GetAuditedPermissionsFromAcl GetAuditedPermissionsFromAclW
79 #define GetEffectiveRightsFromAcl GetEffectiveRightsFromAclW
80 #define GetExplicitEntriesFromAcl GetExplicitEntriesFromAclW
81 #define GetInheritanceSource GetInheritanceSourceW
82 #define GetNamedSecurityInfo GetNamedSecurityInfoW
83 #define GetTrusteeForm GetTrusteeFormW
84 #define GetTrusteeName GetTrusteeNameW
85 #define GetTrusteeType GetTrusteeTypeW
86 #define LookupSecurityDescriptorParts LookupSecurityDescriptorPartsW
87 #define SetEntriesInAcl SetEntriesInAclW
88 #define SetNamedSecurityInfo SetNamedSecurityInfoW
89 #define BuildImpersonateExplicitAccessWithName BuildImpersonateExplicitAccessWithNameW
90 #define BuildImpersonateTrustee BuildImpersonateTrusteeW
91 #define GetMultipleTrustee GetMultipleTrusteeW
92 #define GetMultipleTrusteeOperation GetMultipleTrusteeOperationW
93 #else
94 #define BuildExplicitAccessWithName BuildExplicitAccessWithNameA
95 #define BuildSecurityDescriptor BuildSecurityDescriptorA
96 #define BuildTrusteeWithName BuildTrusteeWithNameA
97 #define BuildTrusteeWithObjectsAndName BuildTrusteeWithObjectsAndNameA
98 #define BuildTrusteeWithObjectsAndSid BuildTrusteeWithObjectsAndSidA
99 #define BuildTrusteeWithSid BuildTrusteeWithSidA
100 #define GetAuditedPermissionsFromAcl GetAuditedPermissionsFromAclA
101 #define GetEffectiveRightsFromAcl GetEffectiveRightsFromAclA
102 #define GetExplicitEntriesFromAcl GetExplicitEntriesFromAclA
103 #define GetInheritanceSource GetInheritanceSourceA
104 #define GetNamedSecurityInfo GetNamedSecurityInfoA
105 #define GetTrusteeForm GetTrusteeFormA
106 #define GetTrusteeName GetTrusteeNameA
107 #define GetTrusteeType GetTrusteeTypeA
108 #define LookupSecurityDescriptorParts LookupSecurityDescriptorPartsA
109 #define SetEntriesInAcl SetEntriesInAclA
110 #define SetNamedSecurityInfo SetNamedSecurityInfoA
111 #define BuildImpersonateExplicitAccessWithName BuildImpersonateExplicitAccessWithNameA
112 #define BuildImpersonateTrustee BuildImpersonateTrusteeA
113 #define GetMultipleTrustee GetMultipleTrusteeA
114 #define GetMultipleTrusteeOperation GetMultipleTrusteeOperationA
115 #endif /* UNICODE */
116
117 #ifdef __cplusplus
118 }
119 #endif
120 #endif