From 41065e4d3c00c8b50e8c01a02563707213e9fd4e Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Sat, 2 Mar 2013 20:40:44 +0000 Subject: [PATCH] [PSDK] * Annotate aclapi.h. svn path=/trunk/; revision=58407 --- reactos/include/psdk/aclapi.h | 240 ++++++++++++++++++++++++++-------- 1 file changed, 186 insertions(+), 54 deletions(-) diff --git a/reactos/include/psdk/aclapi.h b/reactos/include/psdk/aclapi.h index 4b3b5e1336a..ad78bb76b0a 100644 --- a/reactos/include/psdk/aclapi.h +++ b/reactos/include/psdk/aclapi.h @@ -8,64 +8,196 @@ extern "C" { #endif -VOID WINAPI BuildExplicitAccessWithNameA(PEXPLICIT_ACCESS_A,LPSTR,DWORD,ACCESS_MODE,DWORD); -VOID WINAPI BuildExplicitAccessWithNameW(PEXPLICIT_ACCESS_W,LPWSTR,DWORD,ACCESS_MODE,DWORD); -DWORD WINAPI BuildSecurityDescriptorA(PTRUSTEE_A,PTRUSTEE_A ,ULONG,PEXPLICIT_ACCESS_A, - ULONG,PEXPLICIT_ACCESS_A,PSECURITY_DESCRIPTOR,PULONG,PSECURITY_DESCRIPTOR*); -DWORD WINAPI BuildSecurityDescriptorW(PTRUSTEE_W,PTRUSTEE_W ,ULONG,PEXPLICIT_ACCESS_W, - ULONG,PEXPLICIT_ACCESS_W,PSECURITY_DESCRIPTOR,PULONG,PSECURITY_DESCRIPTOR*); -VOID WINAPI BuildTrusteeWithNameA(PTRUSTEE_A,LPSTR); -VOID WINAPI BuildTrusteeWithNameW(PTRUSTEE_W,LPWSTR); -VOID WINAPI BuildTrusteeWithObjectsAndNameA(PTRUSTEE_A,POBJECTS_AND_NAME_A,SE_OBJECT_TYPE, - LPSTR,LPSTR,LPSTR); -VOID WINAPI BuildTrusteeWithObjectsAndNameW(PTRUSTEE_W,POBJECTS_AND_NAME_W,SE_OBJECT_TYPE, - LPWSTR,LPWSTR,LPWSTR); -VOID WINAPI BuildTrusteeWithObjectsAndSidA(PTRUSTEE_A,POBJECTS_AND_SID,GUID*,GUID*,PSID); -VOID WINAPI BuildTrusteeWithObjectsAndSidW(PTRUSTEE_W,POBJECTS_AND_SID,GUID*,GUID*,PSID); -VOID WINAPI BuildTrusteeWithSidA(PTRUSTEE_A,PSID); -VOID WINAPI BuildTrusteeWithSidW(PTRUSTEE_W,PSID); +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); + +DWORD +WINAPI +BuildSecurityDescriptorA( + _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); + +DWORD +WINAPI +BuildSecurityDescriptorW( + _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) -DWORD WINAPI FreeInheritedFromArray(PINHERITED_FROMW,USHORT,PFN_OBJECT_MGR_FUNCTS); +DWORD +WINAPI +FreeInheritedFromArray( + _In_reads_(AceCnt) PINHERITED_FROMW pInheritArray, + _In_ USHORT AceCnt, + _In_opt_ PFN_OBJECT_MGR_FUNCTS pfnArray); #endif -DWORD WINAPI GetAuditedPermissionsFromAclA(PACL,PTRUSTEE_A,PACCESS_MASK,PACCESS_MASK); -DWORD WINAPI GetAuditedPermissionsFromAclW(PACL,PTRUSTEE_W,PACCESS_MASK,PACCESS_MASK); -DWORD WINAPI GetEffectiveRightsFromAclA(PACL,PTRUSTEE_A,PACCESS_MASK); -DWORD WINAPI GetEffectiveRightsFromAclW(PACL,PTRUSTEE_W,PACCESS_MASK); -DWORD WINAPI GetExplicitEntriesFromAclA(PACL,PULONG,PEXPLICIT_ACCESS_A*); -DWORD WINAPI GetExplicitEntriesFromAclW(PACL,PULONG,PEXPLICIT_ACCESS_W*); + +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); + +DWORD +WINAPI +GetExplicitEntriesFromAclA( + _In_ PACL pacl, + _Out_ PULONG pcCountOfExplicitEntries, + _Outptr_result_buffer_(*pcCountOfExplicitEntries) PEXPLICIT_ACCESS_A *pListOfExplicitEntries); + +DWORD +WINAPI +GetExplicitEntriesFromAclW( + _In_ PACL pacl, + _Out_ PULONG pcCountOfExplicitEntries, + _Outptr_result_buffer_(*pcCountOfExplicitEntries) PEXPLICIT_ACCESS_W *pListOfExplicitEntries); + #if (_WIN32_WINNT >= 0x0501) -DWORD WINAPI GetInheritanceSourceA(LPSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,BOOL,GUID**,DWORD,PACL,PFN_OBJECT_MGR_FUNCTS,PGENERIC_MAPPING,PINHERITED_FROMA); -DWORD WINAPI GetInheritanceSourceW(LPWSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,BOOL,GUID**,DWORD,PACL,PFN_OBJECT_MGR_FUNCTS,PGENERIC_MAPPING,PINHERITED_FROMW); + +DWORD +WINAPI +GetInheritanceSourceA( + _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); + +DWORD +WINAPI +GetInheritanceSourceW( + _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 -DWORD WINAPI GetNamedSecurityInfoA(LPSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION, - PSID*,PSID*,PACL*,PACL*,PSECURITY_DESCRIPTOR*); -DWORD WINAPI GetNamedSecurityInfoW(LPWSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION, - PSID*,PSID*,PACL*,PACL*,PSECURITY_DESCRIPTOR*); -DWORD WINAPI GetSecurityInfo(HANDLE,SE_OBJECT_TYPE,SECURITY_INFORMATION, - PSID*,PSID*,PACL*,PACL*,PSECURITY_DESCRIPTOR*); -TRUSTEE_FORM WINAPI GetTrusteeFormA(PTRUSTEE_A); -TRUSTEE_FORM WINAPI GetTrusteeFormW(PTRUSTEE_W); -LPSTR WINAPI GetTrusteeNameA(PTRUSTEE_A); -LPWSTR WINAPI GetTrusteeNameW(PTRUSTEE_W); -TRUSTEE_TYPE WINAPI GetTrusteeTypeA(PTRUSTEE_A); -TRUSTEE_TYPE WINAPI GetTrusteeTypeW(PTRUSTEE_W); -DWORD WINAPI LookupSecurityDescriptorPartsA(PTRUSTEE_A*,PTRUSTEE_A*,PULONG,PEXPLICIT_ACCESS_A*, - PULONG,PEXPLICIT_ACCESS_A*,PSECURITY_DESCRIPTOR); -DWORD WINAPI LookupSecurityDescriptorPartsW(PTRUSTEE_W*,PTRUSTEE_W*,PULONG,PEXPLICIT_ACCESS_W*, - PULONG,PEXPLICIT_ACCESS_W*,PSECURITY_DESCRIPTOR); -DWORD WINAPI SetEntriesInAclA(ULONG,PEXPLICIT_ACCESS_A,PACL,PACL*); -DWORD WINAPI SetEntriesInAclW(ULONG,PEXPLICIT_ACCESS_W,PACL,PACL*); -DWORD WINAPI SetNamedSecurityInfoA(LPSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,PSID,PSID,PACL,PACL); -DWORD WINAPI SetNamedSecurityInfoW(LPWSTR,SE_OBJECT_TYPE,SECURITY_INFORMATION,PSID,PSID,PACL,PACL); -DWORD WINAPI SetSecurityInfo(HANDLE,SE_OBJECT_TYPE,SECURITY_INFORMATION,PSID,PSID,PACL,PACL); -VOID WINAPI BuildImpersonateExplicitAccessWithNameA(PEXPLICIT_ACCESS_A,LPSTR,PTRUSTEE_A,DWORD,ACCESS_MODE,DWORD); -VOID WINAPI BuildImpersonateExplicitAccessWithNameW(PEXPLICIT_ACCESS_W,LPWSTR,PTRUSTEE_W,DWORD,ACCESS_MODE,DWORD); -VOID WINAPI BuildImpersonateTrusteeA(PTRUSTEE_A,PTRUSTEE_A); -VOID WINAPI BuildImpersonateTrusteeW(PTRUSTEE_W,PTRUSTEE_W); -PTRUSTEE_A WINAPI GetMultipleTrusteeA(PTRUSTEE_A); -PTRUSTEE_W WINAPI GetMultipleTrusteeW(PTRUSTEE_W); -MULTIPLE_TRUSTEE_OPERATION WINAPI GetMultipleTrusteeOperationA(PTRUSTEE_A); -MULTIPLE_TRUSTEE_OPERATION WINAPI GetMultipleTrusteeOperationW(PTRUSTEE_W); + +DWORD +WINAPI +GetNamedSecurityInfoA( + _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); + +DWORD +WINAPI +GetNamedSecurityInfoW( + _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); + +DWORD +WINAPI +GetSecurityInfo( + _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); + +DWORD +WINAPI +LookupSecurityDescriptorPartsA( + _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); + +DWORD +WINAPI +LookupSecurityDescriptorPartsW( + _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); + +DWORD +WINAPI +SetEntriesInAclA( + _In_ ULONG cCountOfExplicitEntries, + _In_reads_opt_(cCountOfExplicitEntries) PEXPLICIT_ACCESS_A pListOfExplicitEntries, + _In_opt_ PACL OldAcl, + _Out_ PACL *NewAcl); + +DWORD +WINAPI +SetEntriesInAclW( + _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