home *** CD-ROM | disk | FTP | other *** search
- /*++ BUILD Version: 0001 // Increment this if a change has global effects
-
- Copyright (c) 1993-1999, Microsoft Corporation
-
- Module Name:
-
- aclapi.h
-
- Abstract:
-
- Public
- Structure/constant definitions and typedefines for the Win32 Access
- Control APIs
-
- --*/
- #ifndef __ACCESS_CONTROL_API__
- #pragma option push -b -a8 -pc -A- /*P_O_Push*/
- #define __ACCESS_CONTROL_API__
-
- #include <windows.h>
- #include <accctrl.h>
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- WINADVAPI
- DWORD
- WINAPI
- SetEntriesInAclA(
- IN ULONG cCountOfExplicitEntries,
- IN PEXPLICIT_ACCESS_A pListOfExplicitEntries,
- IN PACL OldAcl,
- OUT PACL * NewAcl
- );
- WINADVAPI
- DWORD
- WINAPI
- SetEntriesInAclW(
- IN ULONG cCountOfExplicitEntries,
- IN PEXPLICIT_ACCESS_W pListOfExplicitEntries,
- IN PACL OldAcl,
- OUT PACL * NewAcl
- );
- #ifdef UNICODE
- #define SetEntriesInAcl SetEntriesInAclW
- #else
- #define SetEntriesInAcl SetEntriesInAclA
- #endif // !UNICODE
-
-
- WINADVAPI
- DWORD
- WINAPI
- GetExplicitEntriesFromAclA(
- IN PACL pacl,
- OUT PULONG pcCountOfExplicitEntries,
- OUT PEXPLICIT_ACCESS_A * pListOfExplicitEntries
- );
- WINADVAPI
- DWORD
- WINAPI
- GetExplicitEntriesFromAclW(
- IN PACL pacl,
- OUT PULONG pcCountOfExplicitEntries,
- OUT PEXPLICIT_ACCESS_W * pListOfExplicitEntries
- );
- #ifdef UNICODE
- #define GetExplicitEntriesFromAcl GetExplicitEntriesFromAclW
- #else
- #define GetExplicitEntriesFromAcl GetExplicitEntriesFromAclA
- #endif // !UNICODE
-
-
- WINADVAPI
- DWORD
- WINAPI
- GetEffectiveRightsFromAclA(
- IN PACL pacl,
- IN PTRUSTEE_A pTrustee,
- OUT PACCESS_MASK pAccessRights
- );
- WINADVAPI
- DWORD
- WINAPI
- GetEffectiveRightsFromAclW(
- IN PACL pacl,
- IN PTRUSTEE_W pTrustee,
- OUT PACCESS_MASK pAccessRights
- );
- #ifdef UNICODE
- #define GetEffectiveRightsFromAcl GetEffectiveRightsFromAclW
- #else
- #define GetEffectiveRightsFromAcl GetEffectiveRightsFromAclA
- #endif // !UNICODE
-
-
- WINADVAPI
- DWORD
- WINAPI
- GetAuditedPermissionsFromAclA(
- IN PACL pacl,
- IN PTRUSTEE_A pTrustee,
- OUT PACCESS_MASK pSuccessfulAuditedRights,
- OUT PACCESS_MASK pFailedAuditRights
- );
- WINADVAPI
- DWORD
- WINAPI
- GetAuditedPermissionsFromAclW(
- IN PACL pacl,
- IN PTRUSTEE_W pTrustee,
- OUT PACCESS_MASK pSuccessfulAuditedRights,
- OUT PACCESS_MASK pFailedAuditRights
- );
- #ifdef UNICODE
- #define GetAuditedPermissionsFromAcl GetAuditedPermissionsFromAclW
- #else
- #define GetAuditedPermissionsFromAcl GetAuditedPermissionsFromAclA
- #endif // !UNICODE
-
- WINADVAPI
- DWORD
- WINAPI
- GetNamedSecurityInfoA(
- IN LPSTR pObjectName,
- IN SE_OBJECT_TYPE ObjectType,
- IN SECURITY_INFORMATION SecurityInfo,
- OUT PSID * ppsidOwner,
- OUT PSID * ppsidGroup,
- OUT PACL * ppDacl,
- OUT PACL * ppSacl,
- OUT PSECURITY_DESCRIPTOR * ppSecurityDescriptor
- );
- WINADVAPI
- DWORD
- WINAPI
- GetNamedSecurityInfoW(
- IN LPWSTR pObjectName,
- IN SE_OBJECT_TYPE ObjectType,
- IN SECURITY_INFORMATION SecurityInfo,
- OUT PSID * ppsidOwner,
- OUT PSID * ppsidGroup,
- OUT PACL * ppDacl,
- OUT PACL * ppSacl,
- OUT PSECURITY_DESCRIPTOR * ppSecurityDescriptor
- );
- #ifdef UNICODE
- #define GetNamedSecurityInfo GetNamedSecurityInfoW
- #else
- #define GetNamedSecurityInfo GetNamedSecurityInfoA
- #endif // !UNICODE
-
- WINADVAPI
- DWORD
- WINAPI
- GetSecurityInfo(
- IN HANDLE handle,
- IN SE_OBJECT_TYPE ObjectType,
- IN SECURITY_INFORMATION SecurityInfo,
- OUT PSID * ppsidOwner,
- OUT PSID * ppsidGroup,
- OUT PACL * ppDacl,
- OUT PACL * ppSacl,
- OUT PSECURITY_DESCRIPTOR * ppSecurityDescriptor
- );
-
- WINADVAPI
- DWORD
- WINAPI
- SetNamedSecurityInfoA(
- IN LPSTR pObjectName,
- IN SE_OBJECT_TYPE ObjectType,
- IN SECURITY_INFORMATION SecurityInfo,
- IN PSID psidOwner,
- IN PSID psidGroup,
- IN PACL pDacl,
- IN PACL pSacl
- );
- WINADVAPI
- DWORD
- WINAPI
- SetNamedSecurityInfoW(
- IN LPWSTR pObjectName,
- IN SE_OBJECT_TYPE ObjectType,
- IN SECURITY_INFORMATION SecurityInfo,
- IN PSID psidOwner,
- IN PSID psidGroup,
- IN PACL pDacl,
- IN PACL pSacl
- );
- #ifdef UNICODE
- #define SetNamedSecurityInfo SetNamedSecurityInfoW
- #else
- #define SetNamedSecurityInfo SetNamedSecurityInfoA
- #endif // !UNICODE
-
- WINADVAPI
- DWORD
- WINAPI
- SetSecurityInfo(
- IN HANDLE handle,
- IN SE_OBJECT_TYPE ObjectType,
- IN SECURITY_INFORMATION SecurityInfo,
- IN PSID psidOwner,
- IN PSID psidGroup,
- IN PACL pDacl,
- IN PACL pSacl
- );
-
-
- //----------------------------------------------------------------------------
- // The following API are provided for trusted servers to use to
- // implement access control on their own objects.
- //----------------------------------------------------------------------------
-
- WINADVAPI
- DWORD
- WINAPI
- BuildSecurityDescriptorA(
- IN PTRUSTEE_A pOwner,
- IN PTRUSTEE_A pGroup,
- IN ULONG cCountOfAccessEntries,
- IN PEXPLICIT_ACCESS_A pListOfAccessEntries,
- IN ULONG cCountOfAuditEntries,
- IN PEXPLICIT_ACCESS_A pListOfAuditEntries,
- IN PSECURITY_DESCRIPTOR pOldSD,
- OUT PULONG pSizeNewSD,
- OUT PSECURITY_DESCRIPTOR * pNewSD
- );
- WINADVAPI
- DWORD
- WINAPI
- BuildSecurityDescriptorW(
- IN PTRUSTEE_W pOwner,
- IN PTRUSTEE_W pGroup,
- IN ULONG cCountOfAccessEntries,
- IN PEXPLICIT_ACCESS_W pListOfAccessEntries,
- IN ULONG cCountOfAuditEntries,
- IN PEXPLICIT_ACCESS_W pListOfAuditEntries,
- IN PSECURITY_DESCRIPTOR pOldSD,
- OUT PULONG pSizeNewSD,
- OUT PSECURITY_DESCRIPTOR * pNewSD
- );
- #ifdef UNICODE
- #define BuildSecurityDescriptor BuildSecurityDescriptorW
- #else
- #define BuildSecurityDescriptor BuildSecurityDescriptorA
- #endif // !UNICODE
-
- WINADVAPI
- DWORD
- WINAPI
- LookupSecurityDescriptorPartsA(
- OUT PTRUSTEE_A * pOwner,
- OUT PTRUSTEE_A * pGroup,
- OUT PULONG cCountOfAccessEntries,
- OUT PEXPLICIT_ACCESS_A * pListOfAccessEntries,
- OUT PULONG cCountOfAuditEntries,
- OUT PEXPLICIT_ACCESS_A * pListOfAuditEntries,
- IN PSECURITY_DESCRIPTOR pSD
- );
- WINADVAPI
- DWORD
- WINAPI
- LookupSecurityDescriptorPartsW(
- OUT PTRUSTEE_W * pOwner,
- OUT PTRUSTEE_W * pGroup,
- OUT PULONG cCountOfAccessEntries,
- OUT PEXPLICIT_ACCESS_W * pListOfAccessEntries,
- OUT PULONG cCountOfAuditEntries,
- OUT PEXPLICIT_ACCESS_W * pListOfAuditEntries,
- IN PSECURITY_DESCRIPTOR pSD
- );
- #ifdef UNICODE
- #define LookupSecurityDescriptorParts LookupSecurityDescriptorPartsW
- #else
- #define LookupSecurityDescriptorParts LookupSecurityDescriptorPartsA
- #endif // !UNICODE
-
-
- //----------------------------------------------------------------------------
- // The following helper API are provided for building
- // access control structures.
- //----------------------------------------------------------------------------
-
- WINADVAPI
- VOID
- WINAPI
- BuildExplicitAccessWithNameA(
- IN OUT PEXPLICIT_ACCESS_A pExplicitAccess,
- IN LPSTR pTrusteeName,
- IN DWORD AccessPermissions,
- IN ACCESS_MODE AccessMode,
- IN DWORD Inheritance
- );
- WINADVAPI
- VOID
- WINAPI
- BuildExplicitAccessWithNameW(
- IN OUT PEXPLICIT_ACCESS_W pExplicitAccess,
- IN LPWSTR pTrusteeName,
- IN DWORD AccessPermissions,
- IN ACCESS_MODE AccessMode,
- IN DWORD Inheritance
- );
- #ifdef UNICODE
- #define BuildExplicitAccessWithName BuildExplicitAccessWithNameW
- #else
- #define BuildExplicitAccessWithName BuildExplicitAccessWithNameA
- #endif // !UNICODE
-
- WINADVAPI
- VOID
- WINAPI
- BuildImpersonateExplicitAccessWithNameA(
- IN OUT PEXPLICIT_ACCESS_A pExplicitAccess,
- IN LPSTR pTrusteeName,
- IN PTRUSTEE_A pTrustee,
- IN DWORD AccessPermissions,
- IN ACCESS_MODE AccessMode,
- IN DWORD Inheritance
- );
- WINADVAPI
- VOID
- WINAPI
- BuildImpersonateExplicitAccessWithNameW(
- IN OUT PEXPLICIT_ACCESS_W pExplicitAccess,
- IN LPWSTR pTrusteeName,
- IN PTRUSTEE_W pTrustee,
- IN DWORD AccessPermissions,
- IN ACCESS_MODE AccessMode,
- IN DWORD Inheritance
- );
- #ifdef UNICODE
- #define BuildImpersonateExplicitAccessWithName BuildImpersonateExplicitAccessWithNameW
- #else
- #define BuildImpersonateExplicitAccessWithName BuildImpersonateExplicitAccessWithNameA
- #endif // !UNICODE
-
- WINADVAPI
- VOID
- WINAPI
- BuildTrusteeWithNameA(
- IN OUT PTRUSTEE_A pTrustee,
- IN LPSTR pName
- );
- WINADVAPI
- VOID
- WINAPI
- BuildTrusteeWithNameW(
- IN OUT PTRUSTEE_W pTrustee,
- IN LPWSTR pName
- );
- #ifdef UNICODE
- #define BuildTrusteeWithName BuildTrusteeWithNameW
- #else
- #define BuildTrusteeWithName BuildTrusteeWithNameA
- #endif // !UNICODE
-
- WINADVAPI
- VOID
- WINAPI
- BuildImpersonateTrusteeA(
- IN OUT PTRUSTEE_A pTrustee,
- IN PTRUSTEE_A pImpersonateTrustee
- );
- WINADVAPI
- VOID
- WINAPI
- BuildImpersonateTrusteeW(
- IN OUT PTRUSTEE_W pTrustee,
- IN PTRUSTEE_W pImpersonateTrustee
- );
- #ifdef UNICODE
- #define BuildImpersonateTrustee BuildImpersonateTrusteeW
- #else
- #define BuildImpersonateTrustee BuildImpersonateTrusteeA
- #endif // !UNICODE
-
- WINADVAPI
- VOID
- WINAPI
- BuildTrusteeWithSidA(
- IN OUT PTRUSTEE_A pTrustee,
- IN PSID pSid
- );
- WINADVAPI
- VOID
- WINAPI
- BuildTrusteeWithSidW(
- IN OUT PTRUSTEE_W pTrustee,
- IN PSID pSid
- );
- #ifdef UNICODE
- #define BuildTrusteeWithSid BuildTrusteeWithSidW
- #else
- #define BuildTrusteeWithSid BuildTrusteeWithSidA
- #endif // !UNICODE
-
- WINADVAPI
- VOID
- WINAPI
- BuildTrusteeWithObjectsAndSidA(
- IN OUT PTRUSTEE_A pTrustee,
- IN POBJECTS_AND_SID pObjSid,
- IN GUID * pObjectGuid,
- IN GUID * pInheritedObjectGuid,
- IN PSID pSid
- );
- WINADVAPI
- VOID
- WINAPI
- BuildTrusteeWithObjectsAndSidW(
- IN OUT PTRUSTEE_W pTrustee,
- IN POBJECTS_AND_SID pObjSid,
- IN GUID * pObjectGuid,
- IN GUID * pInheritedObjectGuid,
- IN PSID pSid
- );
- #ifdef UNICODE
- #define BuildTrusteeWithObjectsAndSid BuildTrusteeWithObjectsAndSidW
- #else
- #define BuildTrusteeWithObjectsAndSid BuildTrusteeWithObjectsAndSidA
- #endif // !UNICODE
-
- WINADVAPI
- VOID
- WINAPI
- BuildTrusteeWithObjectsAndNameA(
- IN OUT PTRUSTEE_A pTrustee,
- IN POBJECTS_AND_NAME_A pObjName,
- IN SE_OBJECT_TYPE ObjectType,
- IN LPSTR ObjectTypeName,
- IN LPSTR InheritedObjectTypeName,
- IN LPSTR Name
- );
- WINADVAPI
- VOID
- WINAPI
- BuildTrusteeWithObjectsAndNameW(
- IN OUT PTRUSTEE_W pTrustee,
- IN POBJECTS_AND_NAME_W pObjName,
- IN SE_OBJECT_TYPE ObjectType,
- IN LPWSTR ObjectTypeName,
- IN LPWSTR InheritedObjectTypeName,
- IN LPWSTR Name
- );
- #ifdef UNICODE
- #define BuildTrusteeWithObjectsAndName BuildTrusteeWithObjectsAndNameW
- #else
- #define BuildTrusteeWithObjectsAndName BuildTrusteeWithObjectsAndNameA
- #endif // !UNICODE
-
- WINADVAPI
- LPSTR
- WINAPI
- GetTrusteeNameA(
- IN PTRUSTEE_A pTrustee
- );
- WINADVAPI
- LPWSTR
- WINAPI
- GetTrusteeNameW(
- IN PTRUSTEE_W pTrustee
- );
- #ifdef UNICODE
- #define GetTrusteeName GetTrusteeNameW
- #else
- #define GetTrusteeName GetTrusteeNameA
- #endif // !UNICODE
-
- WINADVAPI
- TRUSTEE_TYPE
- WINAPI
- GetTrusteeTypeA(
- IN PTRUSTEE_A pTrustee
- );
- WINADVAPI
- TRUSTEE_TYPE
- WINAPI
- GetTrusteeTypeW(
- IN PTRUSTEE_W pTrustee
- );
- #ifdef UNICODE
- #define GetTrusteeType GetTrusteeTypeW
- #else
- #define GetTrusteeType GetTrusteeTypeA
- #endif // !UNICODE
-
- WINADVAPI
- TRUSTEE_FORM
- WINAPI
- GetTrusteeFormA(
- IN PTRUSTEE_A pTrustee
- );
- WINADVAPI
- TRUSTEE_FORM
- WINAPI
- GetTrusteeFormW(
- IN PTRUSTEE_W pTrustee
- );
- #ifdef UNICODE
- #define GetTrusteeForm GetTrusteeFormW
- #else
- #define GetTrusteeForm GetTrusteeFormA
- #endif // !UNICODE
-
- WINADVAPI
- MULTIPLE_TRUSTEE_OPERATION
- WINAPI
- GetMultipleTrusteeOperationA(
- IN PTRUSTEE_A pTrustee
- );
- WINADVAPI
- MULTIPLE_TRUSTEE_OPERATION
- WINAPI
- GetMultipleTrusteeOperationW(
- IN PTRUSTEE_W pTrustee
- );
- #ifdef UNICODE
- #define GetMultipleTrusteeOperation GetMultipleTrusteeOperationW
- #else
- #define GetMultipleTrusteeOperation GetMultipleTrusteeOperationA
- #endif // !UNICODE
-
- WINADVAPI
- PTRUSTEE_A
- WINAPI
- GetMultipleTrusteeA(
- IN PTRUSTEE_A pTrustee
- );
- WINADVAPI
- PTRUSTEE_W
- WINAPI
- GetMultipleTrusteeW(
- IN PTRUSTEE_W pTrustee
- );
- #ifdef UNICODE
- #define GetMultipleTrustee GetMultipleTrusteeW
- #else
- #define GetMultipleTrustee GetMultipleTrusteeA
- #endif // !UNICODE
-
- //
- // Temporary requirement for the technology preview, no longer required
- //
- #define AccProvInit(err)
-
- #ifdef __cplusplus
- }
- #endif
-
-
- #pragma option pop /*P_O_Pop*/
- #endif // __ACCESS_CONTROL_API__
-
-