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,
80 ImpersonateLoggedOnUser(HANDLE hToken)
86 ImpersonateSelf(SECURITY_IMPERSONATION_LEVEL ImpersonationLevel)
90 Status = RtlImpersonateSelf(ImpersonationLevel);
91 if (!NT_SUCCESS(Status))
93 SetLastError(RtlNtStatusToDosError(Status));
106 Status = NtSetInformationThread(NtCurrentThread(),
107 ThreadImpersonationToken,
110 if (!NT_SUCCESS(Status))
112 SetLastError(RtlNtStatusToDosError(Status));