ExpCheckWakeTimerAccess
INT64 __fastcall ExpCheckWakeTimerAccess(CHAR a1){
UINT64 DesiredAccess;
UINT64 v3;
struct _SECURITY_SUBJECT_CONTEXT SubjectContext;
INT64 AccessStatus;
UINT64 GrantedAccess;
LODWORD(GrantedAccess) = 0;
LODWORD(AccessStatus) = 0;
memset(&SubjectContext, 0, sizeof(SubjectContext));
if( !a1 )
return 3221225506i64;
SeCaptureSubjectContextEx(0i64, *((_EPROCESS **)KeGetCurrentThread() + 23), &SubjectContext);
LODWORD(v3) = 0;
LODWORD(DesiredAccess) = 1;
SeAccessCheckWithHint(
ExpWakeTimerSecurityDescriptor,
7ui64,
&SubjectContext,
0i64,
DesiredAccess,
v3,
0i64,
&ExTimerObjectType->TypeInfo.GenericMapping,
1,
&GrantedAccess,
&AccessStatus);
SeReleaseSubjectContext(&SubjectContext);
return(unsigned int)AccessStatus;
}Referenced by:
ExpSetTimerObject