PopAdvanceSystemPowerState
VOID __stdcall PopAdvanceSystemPowerState(
_SYSTEM_POWER_STATE *PowerState,
POP_SUBSTITUTION_POLICY SubstitutionPolicy,
_SYSTEM_POWER_STATE LightestSystemState,
_SYSTEM_POWER_STATE DeepestSystemState){
_SYSTEM_POWER_STATE v4;
_SYSTEM_POWER_STATE v8;
_SYSTEM_POWER_STATE v9;
__int32 v10;
if( !PowerState )
return;
v4 = *PowerState;
if( *(int *)PowerState < 2 )
return;
if( v4 >= PowerSystemShutdown )
goto LABEL_9;
if( SubstitutionPolicy == SubstituteLightenSleep )
{
v8 = v4 - 1;
LABEL_6:
*PowerState = v8;
PopVerifySystemPowerState(PowerState, SubstitutionPolicy);
goto LABEL_7;
}
v10 = SubstitutionPolicy - 1;
if( v10 )
{
if( v10 != 1 )
goto LABEL_7;
if( v4 != PowerSystemHibernate )
{
v8 = v4 + 1;
SubstitutionPolicy = SubstituteDeepenSleep;
goto LABEL_6;
}
LABEL_9:
*PowerState = PowerSystemWorking;
return;
}
*PowerState = v4 - 1;
PopVerifySystemPowerState(PowerState, SubstituteLightestOverallDownwardBounded);
if( *PowerState == v4 )
*PowerState = PowerSystemWorking;
LABEL_7:
v9 = *PowerState;
if( *PowerState != PowerSystemWorking && (v9 < LightestSystemState || v9 > DeepestSystemState) )
goto LABEL_9;
}Referenced by:
PopTransitionSystemPowerStateEx