KeSubtractAffinityEx
UINT64 __stdcall KeSubtractAffinityEx(_KAFFINITY_EX *Affinity1, _KAFFINITY_EX *Affinity2, _KAFFINITY_EX *Result){
unsigned int v6;
unsigned __int16 v7;
unsigned __int16 Count;
unsigned __int16 v9;
__int64 v10;
bool v11;
__int64 v12;
unsigned __int64 v14;
INT64 result[22];
memset((INT64)result, 0i64);
if( !Result )
Result = (_KAFFINITY_EX *)result;
Result->Size = 20;
v6 = 0;
v7 = 0;
Result->Count = Affinity1->Count;
Count = Affinity1->Count;
v9 = Affinity1->Count;
if( Affinity1->Count >= Affinity2->Count )
v9 = Affinity2->Count;
if( v9 )
{
do
{
v10 = v7;
v11 = (Affinity1->Bitmap[v10] & ~Affinity2->Bitmap[v10]) == 0;
Result->Bitmap[v10] = Affinity1->Bitmap[v10] & ~Affinity2->Bitmap[v10];
if( !v11 )
v6 = 1;
++v7;
}
while( v7 < v9 );
Count = Affinity1->Count;
}
if( v7 < Count )
{
do
{
v14 = Affinity1->Bitmap[v7];
Result->Bitmap[v7] = v14;
if( v14 )
v6 = 1;
++v7;
}
while( v7 < Affinity1->Count );
}
if( Result != (_KAFFINITY_EX *)result )
{
for( Result->Reserved = 0; v7 < Result->Size; Result->Bitmap[v12] = 0i64 )
v12 = v7++;
}
return v6;
}Referenced by:
HalpRemoveProfileSourceFromList
KiIpiSendRequest
KiStartProfileTarget
KiStopProfileTarget
PpmCheckContinueExecution
PpmCheckInitProcessors
PpmIdleSelectStates
PpmParkReportParkedCores
PpmParkReportUnparkedCores
PpmParkSteerInterrupts
PpmPostProcessMediaBuffering
RtlUpdateSwapReference