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