PopActionRetrieveInitialState
VOID __stdcall PopActionRetrieveInitialState(
_SYSTEM_POWER_STATE *LightestSystemState,
_SYSTEM_POWER_STATE *DeepestSystemState,
_SYSTEM_POWER_STATE *InitialSystemState,
UINT8 *QueryDevices){
_SYSTEM_POWER_STATE *v4;
_DWORD *v8;
_SYSTEM_POWER_STATE v9;
v4 = LightestSystemState;
if( (unsigned int)(Action - 4) <= 2 )
{
*LightestSystemState = PowerSystemShutdown;
*DeepestSystemState = PowerSystemShutdown;
}
else if( Action == PowerActionWarmEject )
{
*DeepestSystemState = PowerSystemHibernate;
PopVerifySystemPowerState((INT64 *)DeepestSystemState, 0i64);
}
else
{
v8 = PopPolicy;
*DeepestSystemState = *((_SYSTEM_POWER_STATE *)PopPolicy + 18);
v9 = v8[17];
if( v9 > *v4 )
*v4 = v9;
}
if( *v4 > *DeepestSystemState )
*DeepestSystemState = *v4;
*QueryDevices = 1;
if( *v4 == PowerSystemShutdown || *(int *)Flags < 0 && (unsigned int)(SleepReason - 1) <= 1 )
*QueryDevices = 0;
if( (unsigned __int8)PopFastS4Check() )
{
*v4 = *DeepestSystemState;
*(_DWORD *)Flags &= ~0x10000000u;
}
if( (*(_DWORD *)Flags & 0x10000000) == 0 )
v4 = DeepestSystemState;
*InitialSystemState = *v4;
}Referenced by:
PopTransitionSystemPowerStateEx