11 VOID WINAPI
BuildExplicitAccessWithNameA(_Inout_ PEXPLICIT_ACCESS_A
, _In_opt_ LPSTR
, _In_ DWORD
, _In_ ACCESS_MODE
, _In_ DWORD
);
12 VOID WINAPI
BuildExplicitAccessWithNameW(_Inout_ PEXPLICIT_ACCESS_W
, _In_opt_ LPWSTR
, _In_ DWORD
, _In_ ACCESS_MODE
, _In_ DWORD
);
16 BuildSecurityDescriptorA(
17 _In_opt_ PTRUSTEE_A pOwner
,
18 _In_opt_ PTRUSTEE_A pGroup
,
19 _In_ ULONG cCountOfAccessEntries
,
20 _In_reads_opt_(cCountOfAccessEntries
) PEXPLICIT_ACCESS_A pListOfAccessEntries
,
21 _In_ ULONG cCountOfAuditEntries
,
22 _In_reads_opt_(cCountOfAuditEntries
) PEXPLICIT_ACCESS_A pListOfAuditEntries
,
23 _In_opt_ PSECURITY_DESCRIPTOR pOldSD
,
24 _Out_ PULONG pSizeNewSD
,
25 _Outptr_result_bytebuffer_(*pSizeNewSD
) PSECURITY_DESCRIPTOR
*pNewSD
);
29 BuildSecurityDescriptorW(
30 _In_opt_ PTRUSTEE_W pOwner
,
31 _In_opt_ PTRUSTEE_W pGroup
,
32 _In_ ULONG cCountOfAccessEntries
,
33 _In_reads_opt_(cCountOfAccessEntries
) PEXPLICIT_ACCESS_W pListOfAccessEntries
,
34 _In_ ULONG cCountOfAuditEntries
,
35 _In_reads_opt_(cCountOfAuditEntries
) PEXPLICIT_ACCESS_W pListOfAuditEntries
,
36 _In_opt_ PSECURITY_DESCRIPTOR pOldSD
,
37 _Out_ PULONG pSizeNewSD
,
38 _Outptr_result_bytebuffer_(*pSizeNewSD
) PSECURITY_DESCRIPTOR
*pNewSD
);
40 VOID WINAPI
BuildTrusteeWithNameA(_Inout_ PTRUSTEE_A
, _In_opt_ LPSTR
);
41 VOID WINAPI
BuildTrusteeWithNameW(_Inout_ PTRUSTEE_W
, _In_opt_ LPWSTR
);
42 VOID WINAPI
BuildTrusteeWithObjectsAndNameA(_Inout_ PTRUSTEE_A
, _In_opt_ POBJECTS_AND_NAME_A
, _In_opt_ SE_OBJECT_TYPE
, _In_opt_ LPSTR
, _In_opt_ LPSTR
, _In_opt_ LPSTR
);
43 VOID WINAPI
BuildTrusteeWithObjectsAndNameW(_Inout_ PTRUSTEE_W
, _In_opt_ POBJECTS_AND_NAME_W
, _In_opt_ SE_OBJECT_TYPE
, _In_opt_ LPWSTR
, _In_opt_ LPWSTR
, _In_opt_ LPWSTR
);
44 VOID WINAPI
BuildTrusteeWithObjectsAndSidA(_Inout_ PTRUSTEE_A
, _In_opt_ POBJECTS_AND_SID
, _In_opt_ GUID
*, _In_opt_ GUID
*, _In_opt_ PSID
);
45 VOID WINAPI
BuildTrusteeWithObjectsAndSidW(_Inout_ PTRUSTEE_W
, _In_opt_ POBJECTS_AND_SID
, _In_opt_ GUID
*, _In_opt_ GUID
*, _In_opt_ PSID
);
46 VOID WINAPI
BuildTrusteeWithSidA(_Inout_ PTRUSTEE_A
, _In_opt_ PSID
);
47 VOID WINAPI
BuildTrusteeWithSidW(_Inout_ PTRUSTEE_W
, _In_opt_ PSID
);
49 #if (_WIN32_WINNT >= 0x0501)
52 FreeInheritedFromArray(
53 _In_reads_(AceCnt
) PINHERITED_FROMW pInheritArray
,
55 _In_opt_ PFN_OBJECT_MGR_FUNCTS pfnArray
);
58 DWORD WINAPI
GetAuditedPermissionsFromAclA(_In_ PACL
, _In_ PTRUSTEE_A
, _Out_ PACCESS_MASK
, _Out_ PACCESS_MASK
);
59 DWORD WINAPI
GetAuditedPermissionsFromAclW(_In_ PACL
, _In_ PTRUSTEE_W
, _Out_ PACCESS_MASK
, _Out_ PACCESS_MASK
);
60 DWORD WINAPI
GetEffectiveRightsFromAclA(_In_ PACL
, _In_ PTRUSTEE_A
, _Out_ PACCESS_MASK
);
61 DWORD WINAPI
GetEffectiveRightsFromAclW(_In_ PACL
, _In_ PTRUSTEE_W
, _Out_ PACCESS_MASK
);
65 GetExplicitEntriesFromAclA(
67 _Out_ PULONG pcCountOfExplicitEntries
,
68 _Outptr_result_buffer_(*pcCountOfExplicitEntries
) PEXPLICIT_ACCESS_A
*pListOfExplicitEntries
);
72 GetExplicitEntriesFromAclW(
74 _Out_ PULONG pcCountOfExplicitEntries
,
75 _Outptr_result_buffer_(*pcCountOfExplicitEntries
) PEXPLICIT_ACCESS_W
*pListOfExplicitEntries
);
77 #if (_WIN32_WINNT >= 0x0501)
81 GetInheritanceSourceA(
82 _In_ LPSTR pObjectName
,
83 _In_ SE_OBJECT_TYPE ObjectType
,
84 _In_ SECURITY_INFORMATION SecurityInfo
,
86 _In_reads_opt_(GuidCount
) GUID
**pObjectClassGuids
,
89 _In_opt_ PFN_OBJECT_MGR_FUNCTS pfnArray
,
90 _In_ PGENERIC_MAPPING pGenericMapping
,
91 _Out_ PINHERITED_FROMA pInheritArray
);
95 GetInheritanceSourceW(
96 _In_ LPWSTR pObjectName
,
97 _In_ SE_OBJECT_TYPE ObjectType
,
98 _In_ SECURITY_INFORMATION SecurityInfo
,
100 _In_reads_opt_(GuidCount
) GUID
**pObjectClassGuids
,
101 _In_ DWORD GuidCount
,
103 _In_opt_ PFN_OBJECT_MGR_FUNCTS pfnArray
,
104 _In_ PGENERIC_MAPPING pGenericMapping
,
105 _Out_ PINHERITED_FROMW pInheritArray
);
111 GetNamedSecurityInfoA(
112 _In_ LPSTR pObjectName
,
113 _In_ SE_OBJECT_TYPE ObjectType
,
114 _In_ SECURITY_INFORMATION SecurityInfo
,
115 _Out_opt_ PSID
*ppsidOwner
,
116 _Out_opt_ PSID
*ppsidGroup
,
117 _Out_opt_ PACL
*ppDacl
,
118 _Out_opt_ PACL
*ppSacl
,
119 _Out_ PSECURITY_DESCRIPTOR
*ppSecurityDescriptor
);
123 GetNamedSecurityInfoW(
124 _In_ LPWSTR pObjectName
,
125 _In_ SE_OBJECT_TYPE ObjectType
,
126 _In_ SECURITY_INFORMATION SecurityInfo
,
127 _Out_opt_ PSID
*ppsidOwner
,
128 _Out_opt_ PSID
*ppsidGroup
,
129 _Out_opt_ PACL
*ppDacl
,
130 _Out_opt_ PACL
*ppSacl
,
131 _Out_ PSECURITY_DESCRIPTOR
*ppSecurityDescriptor
);
137 _In_ SE_OBJECT_TYPE ObjectType
,
138 _In_ SECURITY_INFORMATION SecurityInfo
,
139 _Out_opt_ PSID
*ppsidOwner
,
140 _Out_opt_ PSID
*ppsidGroup
,
141 _Out_opt_ PACL
*ppDacl
,
142 _Out_opt_ PACL
*ppSacl
,
143 _Out_opt_ PSECURITY_DESCRIPTOR
*ppSecurityDescriptor
);
145 TRUSTEE_FORM WINAPI
GetTrusteeFormA(_In_ PTRUSTEE_A
);
146 TRUSTEE_FORM WINAPI
GetTrusteeFormW(_In_ PTRUSTEE_W
);
147 LPSTR WINAPI
GetTrusteeNameA(_In_ PTRUSTEE_A
);
148 LPWSTR WINAPI
GetTrusteeNameW(_In_ PTRUSTEE_W
);
149 TRUSTEE_TYPE WINAPI
GetTrusteeTypeA(_In_opt_ PTRUSTEE_A
);
150 TRUSTEE_TYPE WINAPI
GetTrusteeTypeW(_In_opt_ PTRUSTEE_W
);
154 LookupSecurityDescriptorPartsA(
155 _Out_opt_ PTRUSTEE_A
*ppOwner
,
156 _Out_opt_ PTRUSTEE_A
*ppGroup
,
157 _Out_opt_ PULONG pcCountOfAccessEntries
,
158 _Outptr_result_buffer_maybenull_(*pcCountOfAccessEntries
) PEXPLICIT_ACCESS_A
*ppListOfAccessEntries
,
159 _Out_opt_ PULONG pcCountOfAuditEntries
,
160 _Outptr_result_buffer_maybenull_(*pcCountOfAuditEntries
) PEXPLICIT_ACCESS_A
*ppListOfAuditEntries
,
161 _In_ PSECURITY_DESCRIPTOR pSD
);
165 LookupSecurityDescriptorPartsW(
166 _Out_opt_ PTRUSTEE_W
*ppOwner
,
167 _Out_opt_ PTRUSTEE_W
*ppGroup
,
168 _Out_opt_ PULONG pcCountOfAccessEntries
,
169 _Outptr_result_buffer_maybenull_(*pcCountOfAccessEntries
) PEXPLICIT_ACCESS_W
*ppListOfAccessEntries
,
170 _Out_opt_ PULONG pcCountOfAuditEntries
,
171 _Outptr_result_buffer_maybenull_(*pcCountOfAuditEntries
) PEXPLICIT_ACCESS_W
*ppListOfAuditEntries
,
172 _In_ PSECURITY_DESCRIPTOR pSD
);
177 _In_ ULONG cCountOfExplicitEntries
,
178 _In_reads_opt_(cCountOfExplicitEntries
) PEXPLICIT_ACCESS_A pListOfExplicitEntries
,
179 _In_opt_ PACL OldAcl
,
185 _In_ ULONG cCountOfExplicitEntries
,
186 _In_reads_opt_(cCountOfExplicitEntries
) PEXPLICIT_ACCESS_W pListOfExplicitEntries
,
187 _In_opt_ PACL OldAcl
,
190 DWORD WINAPI
SetNamedSecurityInfoA(_In_ LPSTR
, _In_ SE_OBJECT_TYPE
, _In_ SECURITY_INFORMATION
, _In_opt_ PSID
, _In_opt_ PSID
, _In_opt_ PACL
, _In_opt_ PACL
);
191 DWORD WINAPI
SetNamedSecurityInfoW(_In_ LPWSTR
, _In_ SE_OBJECT_TYPE
, _In_ SECURITY_INFORMATION
, _In_opt_ PSID
, _In_opt_ PSID
, _In_opt_ PACL
, _In_opt_ PACL
);
192 DWORD WINAPI
SetSecurityInfo(_In_ HANDLE
, _In_ SE_OBJECT_TYPE
, _In_ SECURITY_INFORMATION
, _In_opt_ PSID
, _In_opt_ PSID
, _In_opt_ PACL
, _In_opt_ PACL
);
193 VOID WINAPI
BuildImpersonateExplicitAccessWithNameA(_Inout_ PEXPLICIT_ACCESS_A
, _In_opt_ LPSTR
, _In_opt_ PTRUSTEE_A
, _In_ DWORD
, _In_ ACCESS_MODE
, _In_ DWORD
);
194 VOID WINAPI
BuildImpersonateExplicitAccessWithNameW(_Inout_ PEXPLICIT_ACCESS_W
, _In_opt_ LPWSTR
, _In_opt_ PTRUSTEE_W
, _In_ DWORD
, _In_ ACCESS_MODE
, _In_ DWORD
);
195 VOID WINAPI
BuildImpersonateTrusteeA(_Inout_ PTRUSTEE_A
, _In_opt_ PTRUSTEE_A
);
196 VOID WINAPI
BuildImpersonateTrusteeW(_Inout_ PTRUSTEE_W
, _In_opt_ PTRUSTEE_W
);
197 PTRUSTEE_A WINAPI
GetMultipleTrusteeA(_In_opt_ PTRUSTEE_A
);
198 PTRUSTEE_W WINAPI
GetMultipleTrusteeW(_In_opt_ PTRUSTEE_W
);
199 MULTIPLE_TRUSTEE_OPERATION WINAPI
GetMultipleTrusteeOperationA(_In_opt_ PTRUSTEE_A
);
200 MULTIPLE_TRUSTEE_OPERATION WINAPI
GetMultipleTrusteeOperationW(_In_opt_ PTRUSTEE_W
);
203 #define BuildExplicitAccessWithName BuildExplicitAccessWithNameW
204 #define BuildSecurityDescriptor BuildSecurityDescriptorW
205 #define BuildTrusteeWithName BuildTrusteeWithNameW
206 #define BuildTrusteeWithObjectsAndName BuildTrusteeWithObjectsAndNameW
207 #define BuildTrusteeWithObjectsAndSid BuildTrusteeWithObjectsAndSidW
208 #define BuildTrusteeWithSid BuildTrusteeWithSidW
209 #define GetAuditedPermissionsFromAcl GetAuditedPermissionsFromAclW
210 #define GetEffectiveRightsFromAcl GetEffectiveRightsFromAclW
211 #define GetExplicitEntriesFromAcl GetExplicitEntriesFromAclW
212 #define GetInheritanceSource GetInheritanceSourceW
213 #define GetNamedSecurityInfo GetNamedSecurityInfoW
214 #define GetTrusteeForm GetTrusteeFormW
215 #define GetTrusteeName GetTrusteeNameW
216 #define GetTrusteeType GetTrusteeTypeW
217 #define LookupSecurityDescriptorParts LookupSecurityDescriptorPartsW
218 #define SetEntriesInAcl SetEntriesInAclW
219 #define SetNamedSecurityInfo SetNamedSecurityInfoW
220 #define BuildImpersonateExplicitAccessWithName BuildImpersonateExplicitAccessWithNameW
221 #define BuildImpersonateTrustee BuildImpersonateTrusteeW
222 #define GetMultipleTrustee GetMultipleTrusteeW
223 #define GetMultipleTrusteeOperation GetMultipleTrusteeOperationW
225 #define BuildExplicitAccessWithName BuildExplicitAccessWithNameA
226 #define BuildSecurityDescriptor BuildSecurityDescriptorA
227 #define BuildTrusteeWithName BuildTrusteeWithNameA
228 #define BuildTrusteeWithObjectsAndName BuildTrusteeWithObjectsAndNameA
229 #define BuildTrusteeWithObjectsAndSid BuildTrusteeWithObjectsAndSidA
230 #define BuildTrusteeWithSid BuildTrusteeWithSidA
231 #define GetAuditedPermissionsFromAcl GetAuditedPermissionsFromAclA
232 #define GetEffectiveRightsFromAcl GetEffectiveRightsFromAclA
233 #define GetExplicitEntriesFromAcl GetExplicitEntriesFromAclA
234 #define GetInheritanceSource GetInheritanceSourceA
235 #define GetNamedSecurityInfo GetNamedSecurityInfoA
236 #define GetTrusteeForm GetTrusteeFormA
237 #define GetTrusteeName GetTrusteeNameA
238 #define GetTrusteeType GetTrusteeTypeA
239 #define LookupSecurityDescriptorParts LookupSecurityDescriptorPartsA
240 #define SetEntriesInAcl SetEntriesInAclA
241 #define SetNamedSecurityInfo SetNamedSecurityInfoA
242 #define BuildImpersonateExplicitAccessWithName BuildImpersonateExplicitAccessWithNameA
243 #define BuildImpersonateTrustee BuildImpersonateTrusteeA
244 #define GetMultipleTrustee GetMultipleTrusteeA
245 #define GetMultipleTrusteeOperation GetMultipleTrusteeOperationA