#ifndef _ACLAPI_H #define _ACLAPI_H #if __GNUC__ >= 3 #pragma GCC system_header #endif #include #include #ifdef __cplusplus extern "C" { #endif WINADVAPI VOID WINAPI BuildExplicitAccessWithNameA(PEXPLICIT_ACCESS_A,LPSTR,DWORD,ACCESS_MODE,DWORD); WINADVAPI VOID WINAPI BuildExplicitAccessWithNameW(PEXPLICIT_ACCESS_W,LPWSTR,DWORD,ACCESS_MODE,DWORD); WINADVAPI DWORD WINAPI BuildSecurityDescriptorA(PTRUSTEE_A,PTRUSTEE_A ,ULONG,PEXPLICIT_ACCESS_A, ULONG,PEXPLICIT_ACCESS_A,PSECURITY_DESCRIPTOR,PULONG,PSECURITY_DESCRIPTOR*); WINADVAPI DWORD WINAPI BuildSecurityDescriptorW(PTRUSTEE_W,PTRUSTEE_W ,ULONG,PEXPLICIT_ACCESS_W, ULONG,PEXPLICIT_ACCESS_W,PSECURITY_DESCRIPTOR,PULONG,PSECURITY_DESCRIPTOR*); WINADVAPI VOID WINAPI BuildTrusteeWithNameA(PTRUSTEE_A,LPSTR); WINADVAPI VOID WINAPI BuildTrusteeWithNameW(PTRUSTEE_W,LPWSTR); WINADVAPI VOID WINAPI BuildTrusteeWithObjectsAndNameA(PTRUSTEE_A,POBJECTS_AND_NAME_A,SE_OBJECT_TYPE, LPSTR,LPSTR,LPSTR); WINADVAPI VOID WINAPI BuildTrusteeWithObjectsAndNameW(PTRUSTEE_W,POBJECTS_AND_NAME_W,SE_OBJECT_TYPE, LPWSTR,LPWSTR,LPWSTR); WINADVAPI VOID WINAPI BuildTrusteeWithObjectsAndSidA(PTRUSTEE_A,POBJECTS_AND_SID,GUID*,GUID*,PSID); WINADVAPI VOID WINAPI BuildTrusteeWithObjectsAndSidW(PTRUSTEE_W,POBJECTS_AND_SID,GUID*,GUID*,PSID); WINADVAPI VOID WINAPI BuildTrusteeWithSidA(PTRUSTEE_A,PSID); WINADVAPI VOID WINAPI BuildTrusteeWithSidW(PTRUSTEE_W,PSID); WINADVAPI DWORD WINAPI GetAuditedPermissionsFromAclA(PACL,PTRUSTEE_A,PACCESS_MASK,PACCESS_MASK); WINADVAPI DWORD WINAPI GetAuditedPermissionsFromAclW(PACL,PTRUSTEE_W,PACCESS_MASK,PACCESS_MASK); WINADVAPI DWORD WINAPI GetEffectiveRightsFromAclA(PACL,PTRUSTEE_A,PACCESS_MASK); WINADVAPI DWORD WINAPI GetEffectiveRightsFromAclW(PACL,PTRUSTEE_W,PACCESS_MASK); WINADVAPI DWORD WINAPI GetExplicitEntriesFromAclA(PACL,PULONG,PEXPLICIT_ACCESS_A*); WINADVAPI DWORD WINAPI GetExplicitEntriesFromAclW(PACL,PULONG,PEXPLICIT_ACCESS_W*); #if (_WIN32_WINNT >= 0x0501) WINADVAPI DWORD WINAPI GetInheritanceSourceA(LPSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,BOOL,GUID**,DWORD,PACL,void*,PGENERIC_MAPPING,PINHERITED_FROMA); WINADVAPI DWORD WINAPI GetInheritanceSourceW(LPWSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,BOOL,GUID**,DWORD,PACL,void*,PGENERIC_MAPPING,PINHERITED_FROMW); #endif WINADVAPI DWORD WINAPI GetNamedSecurityInfoA(LPSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION, PSID*,PSID*,PACL*,PACL*,PSECURITY_DESCRIPTOR*); WINADVAPI DWORD WINAPI GetNamedSecurityInfoW(LPWSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION, PSID*,PSID*,PACL*,PACL*,PSECURITY_DESCRIPTOR*); WINADVAPI DWORD WINAPI GetSecurityInfo(HANDLE,SE_OBJECT_TYPE,SECURITY_INFORMATION, PSID*,PSID*,PACL*,PACL*,PSECURITY_DESCRIPTOR*); WINADVAPI TRUSTEE_FORM WINAPI GetTrusteeFormA(PTRUSTEE_A); WINADVAPI TRUSTEE_FORM WINAPI GetTrusteeFormW(PTRUSTEE_W); WINADVAPI LPSTR WINAPI GetTrusteeNameA(PTRUSTEE_A); WINADVAPI LPWSTR WINAPI GetTrusteeNameW(PTRUSTEE_W); WINADVAPI TRUSTEE_TYPE WINAPI GetTrusteeTypeA(PTRUSTEE_A); WINADVAPI TRUSTEE_TYPE WINAPI GetTrusteeTypeW(PTRUSTEE_W); WINADVAPI DWORD WINAPI LookupSecurityDescriptorPartsA(PTRUSTEE_A*,PTRUSTEE_A*,PULONG,PEXPLICIT_ACCESS_A*, PULONG,PEXPLICIT_ACCESS_A*,PSECURITY_DESCRIPTOR); WINADVAPI DWORD WINAPI LookupSecurityDescriptorPartsW(PTRUSTEE_W*,PTRUSTEE_W*,PULONG,PEXPLICIT_ACCESS_W*, PULONG,PEXPLICIT_ACCESS_W*,PSECURITY_DESCRIPTOR); WINADVAPI DWORD WINAPI SetEntriesInAclA(ULONG,PEXPLICIT_ACCESS_A,PACL,PACL*); WINADVAPI DWORD WINAPI SetEntriesInAclW(ULONG,PEXPLICIT_ACCESS_W,PACL,PACL*); WINADVAPI DWORD WINAPI SetNamedSecurityInfoA(LPSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,PSID,PSID,PACL,PACL); WINADVAPI DWORD WINAPI SetNamedSecurityInfoW(LPWSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,PSID,PSID,PACL,PACL); WINADVAPI DWORD WINAPI SetSecurityInfo(HANDLE,SE_OBJECT_TYPE,SECURITY_INFORMATION,PSID,PSID,PACL,PACL); WINADVAPI VOID WINAPI BuildImpersonateExplicitAccessWithNameA(PEXPLICIT_ACCESS_A,LPSTR,PTRUSTEE_A,DWORD,ACCESS_MODE,DWORD); WINADVAPI VOID WINAPI BuildImpersonateExplicitAccessWithNameW(PEXPLICIT_ACCESS_W,LPWSTR,PTRUSTEE_W,DWORD,ACCESS_MODE,DWORD); WINADVAPI VOID WINAPI BuildImpersonateTrusteeA(PTRUSTEE_A,PTRUSTEE_A); WINADVAPI VOID WINAPI BuildImpersonateTrusteeW(PTRUSTEE_W,PTRUSTEE_W); WINADVAPI PTRUSTEE_A WINAPI GetMultipleTrusteeA(PTRUSTEE_A); WINADVAPI PTRUSTEE_W WINAPI GetMultipleTrusteeW(PTRUSTEE_W); WINADVAPI MULTIPLE_TRUSTEE_OPERATION WINAPI GetMultipleTrusteeOperationA(PTRUSTEE_A); WINADVAPI MULTIPLE_TRUSTEE_OPERATION WINAPI GetMultipleTrusteeOperationW(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 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 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