Something went wrong. Try again.
Reactos
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252#ifndef _ACLAPI_H#define _ACLAPI_H
#include <windows.h>#include <accctrl.h>
#ifdef __cplusplusextern "C" {#endif
VOID WINAPI BuildExplicitAccessWithNameA(_Inout_ PEXPLICIT_ACCESS_A, _In_opt_ LPSTR, _In_ DWORD, _In_ ACCESS_MODE, _In_ DWORD);VOID WINAPI BuildExplicitAccessWithNameW(_Inout_ PEXPLICIT_ACCESS_W, _In_opt_ LPWSTR, _In_ DWORD, _In_ ACCESS_MODE, _In_ DWORD);
DWORDWINAPIBuildSecurityDescriptorA( _In_opt_ PTRUSTEE_A pOwner, _In_opt_ PTRUSTEE_A pGroup, _In_ ULONG cCountOfAccessEntries, _In_reads_opt_(cCountOfAccessEntries) PEXPLICIT_ACCESS_A pListOfAccessEntries, _In_ ULONG cCountOfAuditEntries, _In_reads_opt_(cCountOfAuditEntries) PEXPLICIT_ACCESS_A pListOfAuditEntries, _In_opt_ PSECURITY_DESCRIPTOR pOldSD, _Out_ PULONG pSizeNewSD, _Outptr_result_bytebuffer_(*pSizeNewSD) PSECURITY_DESCRIPTOR *pNewSD);
DWORDWINAPIBuildSecurityDescriptorW( _In_opt_ PTRUSTEE_W pOwner, _In_opt_ PTRUSTEE_W pGroup, _In_ ULONG cCountOfAccessEntries, _In_reads_opt_(cCountOfAccessEntries) PEXPLICIT_ACCESS_W pListOfAccessEntries, _In_ ULONG cCountOfAuditEntries, _In_reads_opt_(cCountOfAuditEntries) PEXPLICIT_ACCESS_W pListOfAuditEntries, _In_opt_ PSECURITY_DESCRIPTOR pOldSD, _Out_ PULONG pSizeNewSD, _Outptr_result_bytebuffer_(*pSizeNewSD) PSECURITY_DESCRIPTOR *pNewSD);
VOID WINAPI BuildTrusteeWithNameA(_Inout_ PTRUSTEE_A, _In_opt_ LPSTR);VOID WINAPI BuildTrusteeWithNameW(_Inout_ PTRUSTEE_W, _In_opt_ LPWSTR);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);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);VOID WINAPI BuildTrusteeWithObjectsAndSidA(_Inout_ PTRUSTEE_A, _In_opt_ POBJECTS_AND_SID, _In_opt_ GUID*, _In_opt_ GUID*, _In_opt_ PSID);VOID WINAPI BuildTrusteeWithObjectsAndSidW(_Inout_ PTRUSTEE_W, _In_opt_ POBJECTS_AND_SID, _In_opt_ GUID*, _In_opt_ GUID*, _In_opt_ PSID);VOID WINAPI BuildTrusteeWithSidA(_Inout_ PTRUSTEE_A, _In_opt_ PSID);VOID WINAPI BuildTrusteeWithSidW(_Inout_ PTRUSTEE_W, _In_opt_ PSID);
#if (_WIN32_WINNT >= 0x0501)DWORDWINAPIFreeInheritedFromArray( _In_reads_(AceCnt) PINHERITED_FROMW pInheritArray, _In_ USHORT AceCnt, _In_opt_ PFN_OBJECT_MGR_FUNCTS pfnArray);#endif
DWORD WINAPI GetAuditedPermissionsFromAclA(_In_ PACL, _In_ PTRUSTEE_A, _Out_ PACCESS_MASK, _Out_ PACCESS_MASK);DWORD WINAPI GetAuditedPermissionsFromAclW(_In_ PACL, _In_ PTRUSTEE_W, _Out_ PACCESS_MASK, _Out_ PACCESS_MASK);DWORD WINAPI GetEffectiveRightsFromAclA(_In_ PACL, _In_ PTRUSTEE_A, _Out_ PACCESS_MASK);DWORD WINAPI GetEffectiveRightsFromAclW(_In_ PACL, _In_ PTRUSTEE_W, _Out_ PACCESS_MASK);
DWORDWINAPIGetExplicitEntriesFromAclA( _In_ PACL pacl, _Out_ PULONG pcCountOfExplicitEntries, _Outptr_result_buffer_(*pcCountOfExplicitEntries) PEXPLICIT_ACCESS_A *pListOfExplicitEntries);
DWORDWINAPIGetExplicitEntriesFromAclW( _In_ PACL pacl, _Out_ PULONG pcCountOfExplicitEntries, _Outptr_result_buffer_(*pcCountOfExplicitEntries) PEXPLICIT_ACCESS_W *pListOfExplicitEntries);
#if (_WIN32_WINNT >= 0x0501)
DWORDWINAPIGetInheritanceSourceA( _In_ LPSTR pObjectName, _In_ SE_OBJECT_TYPE ObjectType, _In_ SECURITY_INFORMATION SecurityInfo, _In_ BOOL Container, _In_reads_opt_(GuidCount) GUID **pObjectClassGuids, _In_ DWORD GuidCount, _In_ PACL pAcl, _In_opt_ PFN_OBJECT_MGR_FUNCTS pfnArray, _In_ PGENERIC_MAPPING pGenericMapping, _Out_ PINHERITED_FROMA pInheritArray);
DWORDWINAPIGetInheritanceSourceW( _In_ LPWSTR pObjectName, _In_ SE_OBJECT_TYPE ObjectType, _In_ SECURITY_INFORMATION SecurityInfo, _In_ BOOL Container, _In_reads_opt_(GuidCount) GUID **pObjectClassGuids, _In_ DWORD GuidCount, _In_ PACL pAcl, _In_opt_ PFN_OBJECT_MGR_FUNCTS pfnArray, _In_ PGENERIC_MAPPING pGenericMapping, _Out_ PINHERITED_FROMW pInheritArray);
#endif
DWORDWINAPIGetNamedSecurityInfoA( _In_ LPSTR pObjectName, _In_ SE_OBJECT_TYPE ObjectType, _In_ SECURITY_INFORMATION SecurityInfo, _Out_opt_ PSID *ppsidOwner, _Out_opt_ PSID *ppsidGroup, _Out_opt_ PACL *ppDacl, _Out_opt_ PACL *ppSacl, _Out_ PSECURITY_DESCRIPTOR *ppSecurityDescriptor);
DWORDWINAPIGetNamedSecurityInfoW( _In_ LPWSTR pObjectName, _In_ SE_OBJECT_TYPE ObjectType, _In_ SECURITY_INFORMATION SecurityInfo, _Out_opt_ PSID *ppsidOwner, _Out_opt_ PSID *ppsidGroup, _Out_opt_ PACL *ppDacl, _Out_opt_ PACL *ppSacl, _Out_ PSECURITY_DESCRIPTOR *ppSecurityDescriptor);
DWORDWINAPIGetSecurityInfo( _In_ HANDLE handle, _In_ SE_OBJECT_TYPE ObjectType, _In_ SECURITY_INFORMATION SecurityInfo, _Out_opt_ PSID *ppsidOwner, _Out_opt_ PSID *ppsidGroup, _Out_opt_ PACL *ppDacl, _Out_opt_ PACL *ppSacl, _Out_opt_ PSECURITY_DESCRIPTOR *ppSecurityDescriptor);
TRUSTEE_FORM WINAPI GetTrusteeFormA(_In_ PTRUSTEE_A);TRUSTEE_FORM WINAPI GetTrusteeFormW(_In_ PTRUSTEE_W);LPSTR WINAPI GetTrusteeNameA(_In_ PTRUSTEE_A);LPWSTR WINAPI GetTrusteeNameW(_In_ PTRUSTEE_W);TRUSTEE_TYPE WINAPI GetTrusteeTypeA(_In_opt_ PTRUSTEE_A);TRUSTEE_TYPE WINAPI GetTrusteeTypeW(_In_opt_ PTRUSTEE_W);
DWORDWINAPILookupSecurityDescriptorPartsA( _Out_opt_ PTRUSTEE_A *ppOwner, _Out_opt_ PTRUSTEE_A *ppGroup, _Out_opt_ PULONG pcCountOfAccessEntries, _Outptr_result_buffer_maybenull_(*pcCountOfAccessEntries) PEXPLICIT_ACCESS_A *ppListOfAccessEntries, _Out_opt_ PULONG pcCountOfAuditEntries, _Outptr_result_buffer_maybenull_(*pcCountOfAuditEntries) PEXPLICIT_ACCESS_A *ppListOfAuditEntries, _In_ PSECURITY_DESCRIPTOR pSD);
DWORDWINAPILookupSecurityDescriptorPartsW( _Out_opt_ PTRUSTEE_W *ppOwner, _Out_opt_ PTRUSTEE_W *ppGroup, _Out_opt_ PULONG pcCountOfAccessEntries, _Outptr_result_buffer_maybenull_(*pcCountOfAccessEntries) PEXPLICIT_ACCESS_W *ppListOfAccessEntries, _Out_opt_ PULONG pcCountOfAuditEntries, _Outptr_result_buffer_maybenull_(*pcCountOfAuditEntries) PEXPLICIT_ACCESS_W *ppListOfAuditEntries, _In_ PSECURITY_DESCRIPTOR pSD);
DWORDWINAPISetEntriesInAclA( _In_ ULONG cCountOfExplicitEntries, _In_reads_opt_(cCountOfExplicitEntries) PEXPLICIT_ACCESS_A pListOfExplicitEntries, _In_opt_ PACL OldAcl, _Out_ PACL *NewAcl);
DWORDWINAPISetEntriesInAclW( _In_ ULONG cCountOfExplicitEntries, _In_reads_opt_(cCountOfExplicitEntries) PEXPLICIT_ACCESS_W pListOfExplicitEntries, _In_opt_ PACL OldAcl, _Out_ PACL *NewAcl);
DWORD WINAPI SetNamedSecurityInfoA(_In_ LPSTR, _In_ SE_OBJECT_TYPE, _In_ SECURITY_INFORMATION, _In_opt_ PSID, _In_opt_ PSID, _In_opt_ PACL, _In_opt_ PACL);DWORD WINAPI SetNamedSecurityInfoW(_In_ LPWSTR, _In_ SE_OBJECT_TYPE, _In_ SECURITY_INFORMATION, _In_opt_ PSID, _In_opt_ PSID, _In_opt_ PACL, _In_opt_ PACL);DWORD WINAPI SetSecurityInfo(_In_ HANDLE, _In_ SE_OBJECT_TYPE, _In_ SECURITY_INFORMATION, _In_opt_ PSID, _In_opt_ PSID, _In_opt_ PACL, _In_opt_ PACL);VOID WINAPI BuildImpersonateExplicitAccessWithNameA(_Inout_ PEXPLICIT_ACCESS_A, _In_opt_ LPSTR, _In_opt_ PTRUSTEE_A, _In_ DWORD, _In_ ACCESS_MODE, _In_ DWORD);VOID WINAPI BuildImpersonateExplicitAccessWithNameW(_Inout_ PEXPLICIT_ACCESS_W, _In_opt_ LPWSTR, _In_opt_ PTRUSTEE_W, _In_ DWORD, _In_ ACCESS_MODE, _In_ DWORD);VOID WINAPI BuildImpersonateTrusteeA(_Inout_ PTRUSTEE_A, _In_opt_ PTRUSTEE_A);VOID WINAPI BuildImpersonateTrusteeW(_Inout_ PTRUSTEE_W, _In_opt_ PTRUSTEE_W);PTRUSTEE_A WINAPI GetMultipleTrusteeA(_In_opt_ PTRUSTEE_A);PTRUSTEE_W WINAPI GetMultipleTrusteeW(_In_opt_ PTRUSTEE_W);MULTIPLE_TRUSTEE_OPERATION WINAPI GetMultipleTrusteeOperationA(_In_opt_ PTRUSTEE_A);MULTIPLE_TRUSTEE_OPERATION WINAPI GetMultipleTrusteeOperationW(_In_opt_ PTRUSTEE_W);
#ifdef UNICODE#define BuildExplicitAccessWithName BuildExplicitAccessWithNameW#define BuildSecurityDescriptor BuildSecurityDescriptorW#define BuildTrusteeWithName BuildTrusteeWithNameW#define BuildTrusteeWithObjectsAndName BuildTrusteeWithObjectsAndNameW#define BuildTrusteeWithObjectsAndSid BuildTrusteeWithObjectsAndSidW#define BuildTrusteeWithSid BuildTrusteeWithSidW#define GetAuditedPermissionsFromAcl GetAuditedPermissionsFromAclW#define GetEffectiveRightsFromAcl GetEffectiveRightsFromAclW#define GetExplicitEntriesFromAcl GetExplicitEntriesFromAclW#define GetInheritanceSource GetInheritanceSourceW#define GetNamedSecurityInfo GetNamedSecurityInfoW#define GetTrusteeForm GetTrusteeFormW#define GetTrusteeName GetTrusteeNameW#define GetTrusteeType GetTrusteeTypeW#define LookupSecurityDescriptorParts LookupSecurityDescriptorPartsW#define SetEntriesInAcl SetEntriesInAclW#define SetNamedSecurityInfo SetNamedSecurityInfoW#define BuildImpersonateExplicitAccessWithName BuildImpersonateExplicitAccessWithNameW#define BuildImpersonateTrustee BuildImpersonateTrusteeW#define GetMultipleTrustee GetMultipleTrusteeW#define GetMultipleTrusteeOperation GetMultipleTrusteeOperationW#else#define BuildExplicitAccessWithName BuildExplicitAccessWithNameA#define BuildSecurityDescriptor BuildSecurityDescriptorA#define BuildTrusteeWithName BuildTrusteeWithNameA#define BuildTrusteeWithObjectsAndName BuildTrusteeWithObjectsAndNameA#define BuildTrusteeWithObjectsAndSid BuildTrusteeWithObjectsAndSidA#define BuildTrusteeWithSid BuildTrusteeWithSidA#define GetAuditedPermissionsFromAcl GetAuditedPermissionsFromAclA#define GetEffectiveRightsFromAcl GetEffectiveRightsFromAclA#define GetExplicitEntriesFromAcl GetExplicitEntriesFromAclA#define GetInheritanceSource GetInheritanceSourceA#define GetNamedSecurityInfo GetNamedSecurityInfoA#define GetTrusteeForm GetTrusteeFormA#define GetTrusteeName GetTrusteeNameA#define GetTrusteeType GetTrusteeTypeA#define LookupSecurityDescriptorParts LookupSecurityDescriptorPartsA#define SetEntriesInAcl SetEntriesInAclA#define SetNamedSecurityInfo SetNamedSecurityInfoA#define BuildImpersonateExplicitAccessWithName BuildImpersonateExplicitAccessWithNameA#define BuildImpersonateTrustee BuildImpersonateTrusteeA#define GetMultipleTrustee GetMultipleTrusteeA#define GetMultipleTrusteeOperation GetMultipleTrusteeOperationA#endif /* UNICODE */
#ifdef __cplusplus}#endif#endif