10 AreAllAccessesGranted(DWORD GrantedAccess
,
13 return((BOOL
)RtlAreAllAccessesGranted(GrantedAccess
,
19 AreAnyAccessesGranted(DWORD GrantedAccess
,
22 return((BOOL
)RtlAreAnyAccessesGranted(GrantedAccess
,
28 GetKernelObjectSecurity(HANDLE Handle
,
29 SECURITY_INFORMATION RequestedInformation
,
30 PSECURITY_DESCRIPTOR pSecurityDescriptor
,
32 LPDWORD lpnLengthNeeded
)
36 Status
= NtQuerySecurityObject(Handle
,
41 if (!NT_SUCCESS(Status
))
43 SetLastError(RtlNtStatusToDosError(Status
));
51 SetKernelObjectSecurity(HANDLE Handle
,
52 SECURITY_INFORMATION SecurityInformation
,
53 PSECURITY_DESCRIPTOR SecurityDescriptor
)
57 Status
= NtSetSecurityObject(Handle
,
60 if (!NT_SUCCESS(Status
))
62 SetLastError(RtlNtStatusToDosError(Status
));
70 MapGenericMask(PDWORD AccessMask
,
71 PGENERIC_MAPPING GenericMapping
)
73 RtlMapGenericMask(AccessMask
,
79 ImpersonateSelf(SECURITY_IMPERSONATION_LEVEL ImpersonationLevel
)
83 Status
= RtlImpersonateSelf(ImpersonationLevel
);
84 if (!NT_SUCCESS(Status
))
86 SetLastError(RtlNtStatusToDosError(Status
));
99 Status
= NtSetInformationThread(NtCurrentThread(),
100 ThreadImpersonationToken
,
103 if (!NT_SUCCESS(Status
))
105 SetLastError(RtlNtStatusToDosError(Status
));