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