PpmParkApplyForcedMask
NTSTATUS __stdcall PpmParkApplyForcedMask(_GROUP_AFFINITY *Group){
__int64 *v1;
unsigned __int16 v2;
unsigned __int64 Mask;
NTSTATUS v5;
__int64 *v6;
unsigned int v8;
char v9;
unsigned __int16 v10;
__int64 v11;
__int64 v12;
__int64 v13;
__int64 v14;
v2 = Group->Group;
Mask = Group->Mask;
v5 = 0;
v14 = 0i64;
v6 = v1;
PpmAcquireLock((_PPM_LOCK *)((char *)&stru_140C23628 + 1048));
if( v2 > 0x14u || Group->Reserved[0] || Group->Reserved[1] || Group->Reserved[2] )
goto LABEL_7;
if( v6 )
{
if( (~Mask & *v6) != 0 )
goto LABEL_7;
}
else
{
v6 = &v14;
}
v8 = PpmParkNumNodes;
v9 = 0;
v10 = 0;
if( (_DWORD)PpmParkNumNodes )
{
do
{
v11 = PpmParkNodes + 272i64 * v10;
if( *(_WORD *)(v11 + 4) == v2 )
{
v12 = *(_QWORD *)(v11 + 8);
*(_QWORD *)(v11 + 32) = Mask & v12;
v13 = *v6 & v12;
*(_BYTE *)(v11 + 146) |= 1u;
*(_QWORD *)(v11 + 48) = v13;
v9 = 1;
}
++v10;
}
while( v10 < v8 );
if( v9 )
{
PpmParkApplyPolicy();
PpmParkParkingAvailable();
PpmCheckApplyParkConstraints();
return v5;
}
}
LABEL_7:
PpmReleaseLock((INT64 *)&stru_140C23628 + 131);
return -1073741811;
}Referenced by:
NtPowerInformation