2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS system libraries
4 * FILE: lib/rtl/access.c
5 * PURPOSE: Access rights handling functions
6 * PROGRAMMERS: Eric Kohl
9 /* INCLUDES *****************************************************************/
15 /* FUNCTIONS ***************************************************************/
22 RtlAreAllAccessesGranted(IN ACCESS_MASK GrantedAccess
,
23 IN ACCESS_MASK DesiredAccess
)
27 /* Return if there's no leftover bits after granting all of them */
28 return !(~GrantedAccess
& DesiredAccess
);
36 RtlAreAnyAccessesGranted(IN ACCESS_MASK GrantedAccess
,
37 IN ACCESS_MASK DesiredAccess
)
41 /* Return if there's any leftover bits after granting all of them */
42 return ((GrantedAccess
& DesiredAccess
) != 0);
50 RtlMapGenericMask(IN OUT PACCESS_MASK AccessMask
,
51 IN PGENERIC_MAPPING GenericMapping
)
55 /* Convert mappings */
56 if (*AccessMask
& GENERIC_READ
) *AccessMask
|= GenericMapping
->GenericRead
;
57 if (*AccessMask
& GENERIC_WRITE
) *AccessMask
|= GenericMapping
->GenericWrite
;
58 if (*AccessMask
& GENERIC_EXECUTE
) *AccessMask
|= GenericMapping
->GenericExecute
;
59 if (*AccessMask
& GENERIC_ALL
) *AccessMask
|= GenericMapping
->GenericAll
;
61 /* Clear generic flags */
62 *AccessMask
&= ~(GENERIC_READ
| GENERIC_WRITE
| GENERIC_EXECUTE
| GENERIC_ALL
);