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