HalpTimerPowerChange
NTSTATUS __stdcall HalpTimerPowerChange(PVOID BugCheckParameter3){
void *v1;
VOID *v2;
void *v3;
INT8 v4;
NTSTATUS result;
v4 = (char)v1;
if( (_BYTE)v1 )
{
*((_DWORD *)BugCheckParameter3 + 46) &= ~0x80u;
}
else if( (*((_DWORD *)BugCheckParameter3 + 56) & 0x8000) != 0 )
{
KeBugCheckEx(0x5Cu, 0x113ui64, 0x20ui64, (ULONG_PTR)BugCheckParameter3, 0i64);
}
if( BugCheckParameter3 == (PVOID)HalpClockTimer )
result = HalpTimerClockPowerChange(BugCheckParameter3, (INT8)v1);
if( BugCheckParameter3 == (PVOID)HalpPerformanceCounter
|| BugCheckParameter3 == (PVOID)HalpTimerSavedPerformanceCounter )
{
LOBYTE(v1) = v4;
result = (unsigned int)HalpTimerPerformanceCounterPowerChange(
(ULONG_PTR)BugCheckParameter3,
v1,
(unsigned __int64)v2,
v3);
}
if( BugCheckParameter3 == HalpStallCounter || BugCheckParameter3 == (PVOID)HalpSavedStallCounter )
LOBYTE(result) = HalpTimerStallCounterPowerChange(BugCheckParameter3, v4);
if( BugCheckParameter3 == HalpProfileTimer )
HalpTimerProfilePowerChange((INT64)BugCheckParameter3, v4, v2, v3);
if( !v4 )
*((_DWORD *)BugCheckParameter3 + 46) |= 0x80u;
return result;
}Referenced by:
HalpTimerPowerCriticalTransitionCallback