PopNetWnfLowPowerEpochCallback
NTSTATUS __stdcall PopNetWnfLowPowerEpochCallback(INT64 a1){
int v1;
_LARGE_INTEGER NextDueRefreshTime;
REGHANDLE v3;
UINT64 v5;
UINT64 v6;
char v7[8];
LODWORD(v5) = 8;
v1 = ExQueryWnfStateData((_WNF_SUBSCRIPTION *)a1, &v6, v7, &v5);
if( v1 >= 0 )
{
if( (unsigned int)v5 >= 8 )
{
PopAcquirePolicyLock();
if( (v7[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((INT64)&PopNetRefreshTimer);
if( PopDiagHandleRegistered )
{
v3 = PopDiagHandle;
if( EtwEventEnabled(PopDiagHandle, &POP_ETW_EVENT_NET_REFRESH_TIMER_DISARMED) )
EtwWrite(v3, &POP_ETW_EVENT_NET_REFRESH_TIMER_DISARMED, 0, 0, 0i64);
}
}
if( PopNetRefreshIntervalActive )
PopNetDisengageNetworkRefresh();
}
PopReleasePolicyLock();
}
else
{
return 0;
}
}
return v1;
}Referenced by:
No references.