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.