2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS system libraries
4 * FILE: lib/advapi32/token/token.c
5 * PURPOSE: Registry functions
6 * PROGRAMMER: Ariadne ( ariadne@xs4all.nl)
14 WINBOOL ResetToDefault
,
15 PTOKEN_GROUPS NewState
,
17 PTOKEN_GROUPS PreviousState
,
22 errCode
= NtAdjustGroupsToken(TokenHandle
,ResetToDefault
,NewState
,
23 BufferLength
, PreviousState
, ReturnLength
);
24 if ( !NT_SUCCESS(errCode
) ) {
25 SetLastError(RtlNtStatusToDosError(errCode
));
33 AdjustTokenPrivileges (
35 WINBOOL DisableAllPrivileges
,
36 PTOKEN_PRIVILEGES NewState
,
38 PTOKEN_PRIVILEGES PreviousState
,
42 errCode
= NtAdjustPrivilegesToken(TokenHandle
,ResetToDefault
,NewState
,
43 BufferLength
, PreviousState
, ReturnLength
);
44 if ( !NT_SUCCESS(errCode
) ) {
45 SetLastError(RtlNtStatusToDosError(errCode
));
56 TOKEN_INFORMATION_CLASS TokenInformationClass
,
57 LPVOID TokenInformation
,
58 DWORD TokenInformationLength
,
63 errCode
= NtQueryInformationToken(TokenHandle
,TokenInformationClass
,TokenInformation
,
64 TokenInformationLength
, ReturnLength
);
65 if ( !NT_SUCCESS(errCode
) ) {
66 SetLastError(RtlNtStatusToDosError(errCode
));
76 TOKEN_INFORMATION_CLASS TokenInformationClass
,
77 LPVOID TokenInformation
,
78 DWORD TokenInformationLength
82 errCode
= NtSetnformationToken(TokenHandle
,TokenInformationClass
,TokenInformation
,
83 TokenInformationLength
);
84 if ( !NT_SUCCESS(errCode
) ) {
85 SetLastError(RtlNtStatusToDosError(errCode
));
94 PSECURITY_DESCRIPTOR pSecurityDescriptor
,
97 PGENERIC_MAPPING GenericMapping
,
98 PPRIVILEGE_SET PrivilegeSet
,
99 LPDWORD PrivilegeSetLength
,
100 LPDWORD GrantedAccess
,
105 errCode
= NtAccessCheck( pSecurityDescriptor
,
113 if ( !NT_SUCCESS(errCode
) ) {
114 SetLastError(RtlNtStatusToDosError(errCode
));
125 HANDLE ProcessHandle
,
131 errCode
= NtOpenProcessToken(ProcessHandle
,DesiredAccess
,TokenHandle
);
132 if ( !NT_SUCCESS(errCode
) ) {
133 SetLastError(RtlNtStatusToDosError(errCode
));
151 errCode
= NtOpenThreadToken(ThreadHandle
,DesiredAccess
,OpenAsSelf
,TokenHandle
);
152 if ( !NT_SUCCESS(errCode
) ) {
153 SetLastError(RtlNtStatusToDosError(errCode
));