PopNetWnfLowPowerEpochCallback
INT64 __fastcall PopNetWnfLowPowerEpochCallback(INT64 a1){
int v1;
LARGE_INTEGER NextDueRefreshTime;
EVENT_DESCRIPTOR *v3;
UINT64 v4;
unsigned int v6;
int v7;
char v8[8];
v6 = 8;
v1 = ExQueryWnfStateData(a1, &v7, v8, &v6);
if( v1 >= 0 )
{
if( v6 >= 8 )
{
PopAcquirePolicyLock();
if( (v8[0] & 2) != 0 )
{
PopNetInLpePhase = 1;
if( PopNetIsNetworkRefreshEnabled() )
{
NextDueRefreshTime = PopNetGetNextDueRefreshTime();
_InterlockedExchange(&PopNetRefreshTimerState, 1);
PopNetArmRefreshTimer(NextDueRefreshTime.QuadPart, 1);
}
}
else if( PopNetInLpePhase )
{
PopNetInLpePhase = 0;
if( _InterlockedExchange(&PopNetRefreshTimerState, 0) == 1 )
{
KeCancelTimer2(&PopNetRefreshTimer, 0i64);
if( PopDiagHandleRegistered )
{
v4 = PopDiagHandle;
if( EtwEventEnabled(PopDiagHandle, (EVENT_DESCRIPTOR *)&POP_ETW_EVENT_NET_REFRESH_TIMER_DISARMED, v3) )
EtwWrite(v4, (EVENT_DESCRIPTOR *)&POP_ETW_EVENT_NET_REFRESH_TIMER_DISARMED, 0i64, 0i64, 0i64);
}
}
if( PopNetRefreshIntervalActive )
PopNetDisengageNetworkRefresh();
}
PopReleasePolicyLock();
}
else
{
return 0;
}
}
return(unsigned int)v1;
}Referenced by:
No references.