2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS kernel
4 * FILE: lib/rtl/access.c
5 * PURPOSE: Access rights handling functions
7 * PROGRAMMERS: Eric Kohl
10 /* INCLUDES *****************************************************************/
12 #include <ddk/ntddk.h>
13 #include <ntdll/rtl.h>
18 /* FUNCTIONS ***************************************************************/
24 RtlAreAllAccessesGranted(ACCESS_MASK GrantedAccess
,
25 ACCESS_MASK DesiredAccess
)
28 return ((GrantedAccess
& DesiredAccess
) == DesiredAccess
);
36 RtlAreAnyAccessesGranted(ACCESS_MASK GrantedAccess
,
37 ACCESS_MASK DesiredAccess
)
40 return ((GrantedAccess
& DesiredAccess
) != 0);
48 RtlMapGenericMask(PACCESS_MASK AccessMask
,
49 PGENERIC_MAPPING GenericMapping
)
53 if (*AccessMask
& GENERIC_READ
)
54 *AccessMask
|= GenericMapping
->GenericRead
;
56 if (*AccessMask
& GENERIC_WRITE
)
57 *AccessMask
|= GenericMapping
->GenericWrite
;
59 if (*AccessMask
& GENERIC_EXECUTE
)
60 *AccessMask
|= GenericMapping
->GenericExecute
;
62 if (*AccessMask
& GENERIC_ALL
)
63 *AccessMask
|= GenericMapping
->GenericAll
;
65 *AccessMask
&= ~(GENERIC_READ
| GENERIC_WRITE
| GENERIC_EXECUTE
| GENERIC_ALL
);