MakeGdtReadOnly
VOID __stdcall MakeGdtReadOnly(){
_GROUP_AFFINITY *p_PreviousAffinity;
__int64 v1;
char v2;
UINT64 v3;
INT64 v4;
INT64 v5;
_GROUP_AFFINITY Affinity;
_GROUP_AFFINITY PreviousAffinity;
p_PreviousAffinity = &PreviousAffinity;
v1 = 0i64;
PreviousAffinity = 0i64;
for( Affinity = 0i64; (unsigned int)v1 < (unsigned int)KeNumberProcessors_0; v1 = (unsigned int)(v1 + 1) )
{
v2 = KiProcessorIndexToNumberMappingTable[v1] & 0x3F;
Affinity.Group = (unsigned int)KiProcessorIndexToNumberMappingTable[v1] >> 6;
*(_DWORD *)Affinity.Reserved = 0;
Affinity.Reserved[2] = 0;
Affinity.Mask = 1i64 << v2;
KeSetSystemGroupAffinityThread(&Affinity, p_PreviousAffinity);
p_PreviousAffinity = 0i64;
KeWriteProtectProcessorState((INT64)&KeGetCurrentPrcb()[-1].PrcbPad141[472], v3, v4, v5);
}
KeRevertToUserGroupAffinityThread(&PreviousAffinity);
}Referenced by:
No references.