ExpCheckWakeTimerAccess
NTSTATUS __stdcall ExpCheckWakeTimerAccess(CHAR a1){
UINT64 DesiredAccess;
UINT64 v3;
_SECURITY_SUBJECT_CONTEXT SubjectSecurityContext;
INT64 AccessStatus;
UINT64 GrantedAccess;
LODWORD(GrantedAccess) = 0;
LODWORD(AccessStatus) = 0;
memset(&SubjectSecurityContext, 0, sizeof(SubjectSecurityContext));
if( !a1 )
return -1073741790;
SeCaptureSubjectContextEx(0i64, KeGetCurrentThread()->ApcState.Process, &SubjectSecurityContext);
LODWORD(v3) = 0;
LODWORD(DesiredAccess) = 1;
SeAccessCheckWithHint(
ExpWakeTimerSecurityDescriptor,
7ui64,
&SubjectSecurityContext,
0i64,
DesiredAccess,
v3,
0i64,
&ExTimerObjectType->TypeInfo.GenericMapping,
1,
&GrantedAccess,
&AccessStatus);
SeReleaseSubjectContext(&SubjectSecurityContext);
return AccessStatus;
}Referenced by:
ExpCheckIRTimerAccess
ExpSetTimerObject