|
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 WINADVAPI VOID WINAPI BuildExplicitAccessWithNameA(PEXPLICIT_ACCESS_A,LPSTR,DWORD,ACCESS_MODE,DWORD); |
|
15 WINADVAPI VOID WINAPI BuildExplicitAccessWithNameW(PEXPLICIT_ACCESS_W,LPWSTR,DWORD,ACCESS_MODE,DWORD); |
|
16 WINADVAPI DWORD WINAPI BuildSecurityDescriptorA(PTRUSTEE_A,PTRUSTEE_A ,ULONG,PEXPLICIT_ACCESS_A, |
|
17 ULONG,PEXPLICIT_ACCESS_A,PSECURITY_DESCRIPTOR,PULONG,PSECURITY_DESCRIPTOR*); |
|
18 WINADVAPI DWORD WINAPI BuildSecurityDescriptorW(PTRUSTEE_W,PTRUSTEE_W ,ULONG,PEXPLICIT_ACCESS_W, |
|
19 ULONG,PEXPLICIT_ACCESS_W,PSECURITY_DESCRIPTOR,PULONG,PSECURITY_DESCRIPTOR*); |
|
20 WINADVAPI VOID WINAPI BuildTrusteeWithNameA(PTRUSTEE_A,LPSTR); |
|
21 WINADVAPI VOID WINAPI BuildTrusteeWithNameW(PTRUSTEE_W,LPWSTR); |
|
22 WINADVAPI VOID WINAPI BuildTrusteeWithObjectsAndNameA(PTRUSTEE_A,POBJECTS_AND_NAME_A,SE_OBJECT_TYPE, |
|
23 LPSTR,LPSTR,LPSTR); |
|
24 WINADVAPI VOID WINAPI BuildTrusteeWithObjectsAndNameW(PTRUSTEE_W,POBJECTS_AND_NAME_W,SE_OBJECT_TYPE, |
|
25 LPWSTR,LPWSTR,LPWSTR); |
|
26 WINADVAPI VOID WINAPI BuildTrusteeWithObjectsAndSidA(PTRUSTEE_A,POBJECTS_AND_SID,GUID*,GUID*,PSID); |
|
27 WINADVAPI VOID WINAPI BuildTrusteeWithObjectsAndSidW(PTRUSTEE_W,POBJECTS_AND_SID,GUID*,GUID*,PSID); |
|
28 WINADVAPI VOID WINAPI BuildTrusteeWithSidA(PTRUSTEE_A,PSID); |
|
29 WINADVAPI VOID WINAPI BuildTrusteeWithSidW(PTRUSTEE_W,PSID); |
|
30 WINADVAPI DWORD WINAPI GetAuditedPermissionsFromAclA(PACL,PTRUSTEE_A,PACCESS_MASK,PACCESS_MASK); |
|
31 WINADVAPI DWORD WINAPI GetAuditedPermissionsFromAclW(PACL,PTRUSTEE_W,PACCESS_MASK,PACCESS_MASK); |
|
32 WINADVAPI DWORD WINAPI GetEffectiveRightsFromAclA(PACL,PTRUSTEE_A,PACCESS_MASK); |
|
33 WINADVAPI DWORD WINAPI GetEffectiveRightsFromAclW(PACL,PTRUSTEE_W,PACCESS_MASK); |
|
34 WINADVAPI DWORD WINAPI GetExplicitEntriesFromAclA(PACL,PULONG,PEXPLICIT_ACCESS_A*); |
|
35 WINADVAPI DWORD WINAPI GetExplicitEntriesFromAclW(PACL,PULONG,PEXPLICIT_ACCESS_W*); |
|
36 #if (_WIN32_WINNT >= 0x0501) |
|
37 WINADVAPI DWORD WINAPI GetInheritanceSourceA(LPSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,BOOL,GUID**,DWORD,PACL,void*,PGENERIC_MAPPING,PINHERITED_FROMA); |
|
38 WINADVAPI DWORD WINAPI GetInheritanceSourceW(LPWSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,BOOL,GUID**,DWORD,PACL,void*,PGENERIC_MAPPING,PINHERITED_FROMW); |
|
39 #endif |
|
40 WINADVAPI DWORD WINAPI GetNamedSecurityInfoA(LPSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION, |
|
41 PSID*,PSID*,PACL*,PACL*,PSECURITY_DESCRIPTOR*); |
|
42 WINADVAPI DWORD WINAPI GetNamedSecurityInfoW(LPWSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION, |
|
43 PSID*,PSID*,PACL*,PACL*,PSECURITY_DESCRIPTOR*); |
|
44 WINADVAPI DWORD WINAPI GetSecurityInfo(HANDLE,SE_OBJECT_TYPE,SECURITY_INFORMATION, |
|
45 PSID*,PSID*,PACL*,PACL*,PSECURITY_DESCRIPTOR*); |
|
46 WINADVAPI TRUSTEE_FORM WINAPI GetTrusteeFormA(PTRUSTEE_A); |
|
47 WINADVAPI TRUSTEE_FORM WINAPI GetTrusteeFormW(PTRUSTEE_W); |
|
48 WINADVAPI LPSTR WINAPI GetTrusteeNameA(PTRUSTEE_A); |
|
49 WINADVAPI LPWSTR WINAPI GetTrusteeNameW(PTRUSTEE_W); |
|
50 WINADVAPI TRUSTEE_TYPE WINAPI GetTrusteeTypeA(PTRUSTEE_A); |
|
51 WINADVAPI TRUSTEE_TYPE WINAPI GetTrusteeTypeW(PTRUSTEE_W); |
|
52 WINADVAPI DWORD WINAPI LookupSecurityDescriptorPartsA(PTRUSTEE_A*,PTRUSTEE_A*,PULONG,PEXPLICIT_ACCESS_A*, |
|
53 PULONG,PEXPLICIT_ACCESS_A*,PSECURITY_DESCRIPTOR); |
|
54 WINADVAPI DWORD WINAPI LookupSecurityDescriptorPartsW(PTRUSTEE_W*,PTRUSTEE_W*,PULONG,PEXPLICIT_ACCESS_W*, |
|
55 PULONG,PEXPLICIT_ACCESS_W*,PSECURITY_DESCRIPTOR); |
|
56 WINADVAPI DWORD WINAPI SetEntriesInAclA(ULONG,PEXPLICIT_ACCESS_A,PACL,PACL*); |
|
57 WINADVAPI DWORD WINAPI SetEntriesInAclW(ULONG,PEXPLICIT_ACCESS_W,PACL,PACL*); |
|
58 WINADVAPI DWORD WINAPI SetNamedSecurityInfoA(LPSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,PSID,PSID,PACL,PACL); |
|
59 WINADVAPI DWORD WINAPI SetNamedSecurityInfoW(LPWSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,PSID,PSID,PACL,PACL); |
|
60 WINADVAPI DWORD WINAPI SetSecurityInfo(HANDLE,SE_OBJECT_TYPE,SECURITY_INFORMATION,PSID,PSID,PACL,PACL); |
|
61 WINADVAPI VOID WINAPI BuildImpersonateExplicitAccessWithNameA(PEXPLICIT_ACCESS_A,LPSTR,PTRUSTEE_A,DWORD,ACCESS_MODE,DWORD); |
|
62 WINADVAPI VOID WINAPI BuildImpersonateExplicitAccessWithNameW(PEXPLICIT_ACCESS_W,LPWSTR,PTRUSTEE_W,DWORD,ACCESS_MODE,DWORD); |
|
63 WINADVAPI VOID WINAPI BuildImpersonateTrusteeA(PTRUSTEE_A,PTRUSTEE_A); |
|
64 WINADVAPI VOID WINAPI BuildImpersonateTrusteeW(PTRUSTEE_W,PTRUSTEE_W); |
|
65 WINADVAPI PTRUSTEE_A WINAPI GetMultipleTrusteeA(PTRUSTEE_A); |
|
66 WINADVAPI PTRUSTEE_W WINAPI GetMultipleTrusteeW(PTRUSTEE_W); |
|
67 WINADVAPI MULTIPLE_TRUSTEE_OPERATION WINAPI GetMultipleTrusteeOperationA(PTRUSTEE_A); |
|
68 WINADVAPI MULTIPLE_TRUSTEE_OPERATION WINAPI GetMultipleTrusteeOperationW(PTRUSTEE_W); |
|
69 |
|
70 #ifdef UNICODE |
|
71 #define BuildExplicitAccessWithName BuildExplicitAccessWithNameW |
|
72 #define BuildSecurityDescriptor BuildSecurityDescriptorW |
|
73 #define BuildTrusteeWithName BuildTrusteeWithNameW |
|
74 #define BuildTrusteeWithObjectsAndName BuildTrusteeWithObjectsAndNameW |
|
75 #define BuildTrusteeWithObjectsAndSid BuildTrusteeWithObjectsAndSidW |
|
76 #define BuildTrusteeWithSid BuildTrusteeWithSidW |
|
77 #define GetAuditedPermissionsFromAcl GetAuditedPermissionsFromAclW |
|
78 #define GetEffectiveRightsFromAcl GetEffectiveRightsFromAclW |
|
79 #define GetExplicitEntriesFromAcl GetExplicitEntriesFromAclW |
|
80 #define GetNamedSecurityInfo GetNamedSecurityInfoW |
|
81 #define GetTrusteeForm GetTrusteeFormW |
|
82 #define GetTrusteeName GetTrusteeNameW |
|
83 #define GetTrusteeType GetTrusteeTypeW |
|
84 #define LookupSecurityDescriptorParts LookupSecurityDescriptorPartsW |
|
85 #define SetEntriesInAcl SetEntriesInAclW |
|
86 #define SetNamedSecurityInfo SetNamedSecurityInfoW |
|
87 #define BuildImpersonateExplicitAccessWithName BuildImpersonateExplicitAccessWithNameW |
|
88 #define BuildImpersonateTrustee BuildImpersonateTrusteeW |
|
89 #define GetMultipleTrustee GetMultipleTrusteeW |
|
90 #define GetMultipleTrusteeOperation GetMultipleTrusteeOperationW |
|
91 #else |
|
92 #define BuildExplicitAccessWithName BuildExplicitAccessWithNameA |
|
93 #define BuildSecurityDescriptor BuildSecurityDescriptorA |
|
94 #define BuildTrusteeWithName BuildTrusteeWithNameA |
|
95 #define BuildTrusteeWithObjectsAndName BuildTrusteeWithObjectsAndNameA |
|
96 #define BuildTrusteeWithObjectsAndSid BuildTrusteeWithObjectsAndSidA |
|
97 #define BuildTrusteeWithSid BuildTrusteeWithSidA |
|
98 #define GetAuditedPermissionsFromAcl GetAuditedPermissionsFromAclA |
|
99 #define GetEffectiveRightsFromAcl GetEffectiveRightsFromAclA |
|
100 #define GetExplicitEntriesFromAcl GetExplicitEntriesFromAclA |
|
101 #define GetNamedSecurityInfo GetNamedSecurityInfoA |
|
102 #define GetTrusteeForm GetTrusteeFormA |
|
103 #define GetTrusteeName GetTrusteeNameA |
|
104 #define GetTrusteeType GetTrusteeTypeA |
|
105 #define LookupSecurityDescriptorParts LookupSecurityDescriptorPartsA |
|
106 #define SetEntriesInAcl SetEntriesInAclA |
|
107 #define SetNamedSecurityInfo SetNamedSecurityInfoA |
|
108 #define BuildImpersonateExplicitAccessWithName BuildImpersonateExplicitAccessWithNameA |
|
109 #define BuildImpersonateTrustee BuildImpersonateTrusteeA |
|
110 #define GetMultipleTrustee GetMultipleTrusteeA |
|
111 #define GetMultipleTrusteeOperation GetMultipleTrusteeOperationA |
|
112 #endif /* UNICODE */ |
|
113 |
|
114 #ifdef __cplusplus |
|
115 } |
|
116 #endif |
|
117 #endif |