PspSendWakeNotification

INT64 __fastcall PspSendWakeNotification(
        _EJOB *Job,
        UINT64 WakeReason,
        _JOBOBJECT_WAKE_FILTER *WakeFilter,
        UINT64 NewValue,
        UINT64 Flags){
  _PS_WAKE_REASON v7; 
  INT64 result; 
  v7 = (int)WakeReason;
  if( ((1 << WakeReason) & WakeFilter->LowEdgeFilter) != 0 && !NewValue
    || ((1 << WakeReason) & WakeFilter->HighEdgeFilter) != 0
    && (Flags & 2) != 0
    && (NewValue == 1 || NewValue > 1 && (Flags & 1) != 0) )
  {
    ObfReferenceObjectWithTag(Job, 0x6F4E7350u);
    if( (xmmword_140CFB490 & 0x400) != 0 && (Flags & 4) != 0 && NewValue == 1 )
      EtwTraceWakeEvent(Job, v7);
    if( !PspRequestDeferredJobNotification(Job, 0x2000ui64) )
      LODWORD(result) = ObfDereferenceObjectWithTag(Job, 0x6F4E7350ui64);
    LOBYTE(result) = 1;
  }
  else
  {
    LOBYTE(result) = 0;
  }
  return result;
}

Referenced by:

PspChargeJobWakeCounter
PspDispatchWakeNotification