PoSetProcessEnergyTrackingState
__int64 __fastcall PoSetProcessEnergyTrackingState(_QWORD *a1, _DWORD *a2){
_POP_RW_LOCK *v3;
_POP_RW_LOCK *v5;
int v6;
_WORD *i;
int v8;
v3 = (_POP_RW_LOCK *)a1[285];
v5 = 0i64;
if( v3 )
{
if( a2[2] || (*a2 & 0xFFFFFFEF) != 0 || (~*a2 & a2[1]) != 0 )
{
v8 = -1073741811;
}
else
{
if( (a2[3] & 1) != 0 )
{
v6 = 0;
for( i = a2 + 4; *i; ++i )
{
if( (unsigned int)++v6 >= 0x40 )
return(unsigned int)-1073741811;
}
}
v5 = v3;
PopAcquireRwLockExclusive(v3 + 27);
v8 = PopEtEnergyContextSetState(a1, a2);
if( v8 >= 0 )
v8 = 0;
}
if( v5 )
PopReleaseRwLock((UINT64)&v5[27]);
}
else
{
return(unsigned int)-1073741637;
}
return(unsigned int)v8;
}Referenced by:
NtSetInformationProcess