PspSendWakeNotification

UINT8 __stdcall PspSendWakeNotification(
        _EJOB *Job,
        UINT64 WakeReason,
        _JOBOBJECT_WAKE_FILTER *WakeFilter,
        UINT64 NewValue,
        UINT64 Flags){
  PS_WAKE_REASON v7; 

  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)) )
  {
    return 0;
  }
  ObfReferenceObjectWithTag(Job, 0x6F4E7350ui64);
  if( (xmmword_140CFB490 & 0x400) != 0 && (Flags & 4) != 0 && NewValue == 1 )
    EtwTraceWakeEvent(Job, v7);
  if( !PspRequestDeferredJobNotification(Job, 0x2000ui64) )
    ObfDereferenceObjectWithTag(Job, 0x6F4E7350ui64);
  return 1;
}

Referenced by:

PspChargeJobWakeCounter
PspDispatchWakeNotification