PpmIdleCaptureCsVetoAccounting
NTSTATUS __stdcall PpmIdleCaptureCsVetoAccounting(UINT8 ScenarioInstanceId, UINT64 PlatformStateIndex, INT64 Pause){
NTSTATUS result;
__int64 v4;
unsigned __int8 v5;
__int64 v6;
unsigned int v7;
unsigned __int64 i;
__int64 v9;
unsigned int v10;
unsigned __int64 v11;
__int64 v12;
char v13;
int v14;
UINT64 v15;
__int128 v16;
_EVENT_DATA_DESCRIPTOR v17;
GUID *v18;
__int64 v19;
int *v20;
__int64 v21;
__int64 v22;
int v23;
int v24;
__int128 *v25;
__int64 j;
unsigned __int64 v27;
__int64 v28;
UINT64 *v29;
__int64 v30;
v15 = PopWnfCsEnterScenarioId;
result = PpmPlatformStates;
v4 = (unsigned int)PlatformStateIndex;
v13 = 0;
v14 = 0;
v16 = 0i64;
if( PpmPlatformStates && *(_DWORD *)(PpmPlatformStates + 4) )
{
v5 = KeAcquireSpinLockRaiseToDpc((UINT64 *)&stru_140C23628 + 122);
v6 = PpmPlatformStates;
v7 = 0;
for( i = v5; v7 < *(_DWORD *)PpmPlatformStates; ++v7 )
{
PpmIdleCsVetoAccountingUpdateBlock((_PPM_VETO_ACCOUNTING *)(384i64 * v7 + v6 + 80), 4u, 0);
v6 = PpmPlatformStates;
}
if( (_DWORD)v4 != -1 )
{
v13 = v15;
v17.Ptr = (unsigned __int64)&v13;
v18 = &GUID_SLEEPSTUDY_BLOCKER_PARENT_PREVETO;
v9 = v6 + 384 * v4;
WORD2(v16) = v4;
v25 = &v16;
v10 = 0;
LODWORD(v16) = -1429427508;
*(_QWORD *)&v17.Size = 1i64;
v19 = 16i64;
for( j = 16i64; v10 < *(_DWORD *)(v9 + 108); ++v10 )
{
v11 = *(_QWORD *)(v9 + 112) + ((unsigned __int64)v10 << 6);
if( *(_QWORD *)(v11 + 56) )
{
DWORD2(v16) = *(_DWORD *)(v11 + 16);
v14 = *(unsigned __int16 *)(*(&stru_140CF2E80 + 972) + 16i64 * v10 + 8) >> 1;
v20 = &v14;
v21 = 4i64;
v12 = *(unsigned __int16 *)(*(&stru_140CF2E80 + 972) + 16i64 * v10 + 8);
v22 = *(_QWORD *)(*(&stru_140CF2E80 + 972) + 16i64 * v10 + 16);
v29 = &v15;
v23 = v12;
v24 = 0;
v27 = v11 + 56;
v28 = 8i64;
v30 = 8i64;
PopDiagTraceSleepStudyBlocker(v12, &v17);
}
}
}
KxReleaseSpinLock((UINT64 *)&stru_140C23628 + 122);
result = KiIrqlFlags;
__writecr8(i);
}
return result;
}Referenced by:
PopCaptureSleepStudyStatistics