PopFxEnforceDirectedPowerTransition
NTSTATUS __stdcall PopFxEnforceDirectedPowerTransition(PVOID BugCheckParameter2){
INT64 v1;
_EVENT_DESCRIPTOR *v2;
unsigned __int8 v3;
NTSTATUS result;
ULONG_PTR v5;
char v6;
int v7;
bool v9;
int v10;
INT64 v11;
result = *((_DWORD *)BugCheckParameter2 + 206);
v5 = v3;
v6 = (char)v2;
v7 = v1;
if( (result & 1) == 0 )
{
if( (int)v1 < 0 )
LOBYTE(result) = PopDirectedDripsDiagTraceDfxPowerStateFailure((INT64)BugCheckParameter2, v1, v2);
if( PopDirectedDripsDfxEnforcementPolicy && v7 < 0 )
{
v9 = 0;
if( (_BYTE)KdDebuggerEnabled )
v9 = (_BYTE)KdDebuggerNotPresent == 0;
if( (unsigned int)Feature_Servicing_2206c_38536160__private_IsEnabled() )
{
if( v9 && PopDirectedDripsDfxEnforcementPolicy == 3 )
NT_ASSERT(
"*** DFX Transition Failure
This break point indicates that a device has failed its
Directed Power tr"
"ansition callback.
");
}
else if( v9 )
{
NT_ASSERT(
"*** DFX Transition Failure
This break point indicates that a device has failed its
Directed Power tran"
"sition callback.
");
}
v10 = *(_DWORD *)(*((_QWORD *)BugCheckParameter2 + 6) + 760i64) & 0x40;
result = Feature_Servicing_2206c_38536160__private_IsEnabled();
if( !result
&& (!(_BYTE)v5 && !v6
|| (result = PopDirectedDripsUmIsTestModeEnabled(), !(_BYTE)result)
&& !v9
&& (ViVerifierEnabled || (LOBYTE(result) = PopCheckTestsigningEnabled(), (_BYTE)result)))
|| PopDirectedDripsDfxEnforcementPolicy == 2 )
{
KeBugCheckEx(0x9Fu, 6ui64, (ULONG_PTR)BugCheckParameter2, v5, 0i64);
}
if( !v10 )
{
LODWORD(v11) = 0;
return DbgkWerCaptureLiveKernelDump(
(WCHAR *)L"DirectedFxPowerStateFailure",
425i64,
(INT64)BugCheckParameter2,
v5,
0i64,
0i64,
0i64,
0i64,
v11);
}
}
}
return result;
}Referenced by:
PopFxCompleteDirectedPowerTransition