HalpInterruptPowerChange
INT64 __stdcall HalpInterruptPowerChange(PVOID BugCheckParameter3, INT8 a2){
DOUBLE v2;
int v3;
INT64 result;
int v6;
v3 = *((_DWORD *)BugCheckParameter3 + 56);
if( a2 )
{
result = v3 & 0xFFFFFFFB;
*((_DWORD *)BugCheckParameter3 + 56) = result;
if( (result & 2) == 0 )
{
v6 = HalpInterruptInitializeController(BugCheckParameter3, v2);
if( v6 < 0 )
KeBugCheckEx(0x5Cu, 0x204ui64, HalpInterruptLastProblem, (ULONG_PTR)BugCheckParameter3, v6);
result = HalpInterruptRestoreController((__int64)BugCheckParameter3, 0);
if( (int)result < 0 )
KeBugCheckEx(0x5Cu, 0x204ui64, HalpInterruptLastProblem, (ULONG_PTR)BugCheckParameter3, (int)result);
}
}
else
{
result = v3 & 0xFFFFFFFA | 4;
*((_DWORD *)BugCheckParameter3 + 56) = result;
}
return result;
}Referenced by:
HalpInterruptPowerComponentActiveCallback
HalpInterruptPowerComponentIdleCallback
HalpInterruptPowerCriticalTransitionCallback