PopNetEvaluationWorkerCallback
VOID __stdcall PopNetEvaluationWorkerCallback(VOID *Context){
POP_NET_STANDBY_STATE v1;
POP_NET_STANDBY_REASON v2;
char v3;
char v4;
char v5;
UINT64 v6;
UINT64 v7;
POP_NET_STANDBY_STATE v8;
POP_NET_STANDBY_REASON v9;
unsigned __int64 v10;
char v11;
POP_NET_STANDBY_REASON Reason;
POP_NET_STANDBY_STATE State;
Reason = PopNetStandbyReasonNone;
State = PopNetStandbyCs;
PopAcquirePolicyLock();
while( 1 )
{
v1 = PopNetStandbyState;
v2 = PopNetStandbyReason;
v3 = 0;
v11 = 0;
v4 = 0;
v5 = 0;
PopNetEvaluateStateMask(&State, &Reason);
v8 = State;
if( State == v1 )
goto LABEL_6;
if( v1 == PopNetStandbyDs )
{
v5 = 1;
}
else if( State != PopNetStandbyDs )
{
goto LABEL_6;
}
v4 = 1;
if( PopNetResiliencyEngaged && qword_140C54140 )
{
v11 = 1;
PopNetSetResiliencyPhaseBias(1);
}
LABEL_6:
v9 = Reason;
if( Reason != v2 )
{
v3 = 1;
v10 = (unsigned __int8)KeAcquireSpinLockRaiseToDpc((UINT64 *)&stru_140C23628 + 115);
PopNetStandbyReason = v9;
if( PopCsResiliencyStats[0] && !dword_140C22F6C )
dword_140C22F6C = v9;
KxReleaseSpinLock((UINT64 *)&stru_140C23628 + 115);
v7 = (unsigned int)KiIrqlFlags;
__writecr8(v10);
}
if( v8 != v1 )
{
v3 = 1;
PopNetStandbyState = v8;
PopNetUpdateCsConsumptionFlags();
}
if( v4 )
{
LOBYTE(v7) = v5;
PopNetPublishWnfStateUpdate(v7, v6);
if( v11 )
PopNetSetResiliencyPhaseBias(0);
}
if( !v3 )
break;
if( PopDiagHandleRegistered )
PopTraceStandbyConnectivityUpdate(v8, v9);
else
PopNetDeferLogRequest = 1;
}
_InterlockedExchange(&dword_140C20828, 0);
PopReleasePolicyLock();
}Referenced by:
No references.