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