ExIsRestrictedCaller
UINT64 __stdcall ExIsRestrictedCaller(INT8 PreviousMode){
unsigned __int8 v1;
UINT64 result;
_KPROCESSOR_MODE AccessMode;
_SECURITY_SUBJECT_CONTEXT SubjectSecurityContext;
int AccessStatus;
unsigned int GrantedAccess;
AccessStatus = 0;
GrantedAccess = 0;
memset(&SubjectSecurityContext, 0, sizeof(SubjectSecurityContext));
result = 0;
if( PreviousMode )
{
SeCaptureSubjectContext((INT64)&SubjectSecurityContext);
LOBYTE(AccessMode) = 1;
v1 = (unsigned __int8)SeAccessCheck(
SeMediumDaclSd,
&SubjectSecurityContext,
0,
0x20000,
0,
0i64,
(PGENERIC_MAPPING)&ExpRestrictedGenericMapping,
AccessMode,
&GrantedAccess,
&AccessStatus);
SeReleaseSubjectContext(&SubjectSecurityContext);
if( !v1 || AccessStatus < 0 )
return 1;
}
return result;
}Referenced by:
ExpGetProcessInformation
ExpProfileCreate
ExpQuerySystemInformation
NtQueryInformationProcess
PspQueryWorkingSetWatch