KeSynchronizeAddressPolicy

INT64 __fastcall KeSynchronizeAddressPolicy(INT64 a1){
  INT64 v2; 
  unsigned __int8 CurrentIrql; 
  struct _KPRCB *CurrentPrcb; 
  int v5; 
  INT64 result[22]; 
  v2 = memset((INT64)result, 0i64);
  if( *(_BYTE *)(a1 + 912) == 1 )
  {
    CurrentIrql = KeGetCurrentIrql();
    __writecr8(0xCui64);
    CurrentPrcb = KeGetCurrentPrcb();
    KeCopyAffinityEx((__int64)result, (unsigned __int16 *)(a1 + 368));
    KeRemoveProcessorAffinityEx((unsigned __int16 *)result, *((_DWORD *)CurrentPrcb + 9));
    v5 = KeCountSetBitsAffinityEx((_KAFFINITY_EX *)result);
    KiSynchronizeAddressPolicyTarget();
    if( v5 )
    {
      KiIpiSendPacket(0i64, (UINT16 *)result, (INT64)KiSynchronizeAddressPolicyTarget, 1i64, 0i64, 0i64);
      while( *((_DWORD *)CurrentPrcb + 2912) )
        _mm_pause();
    }
    v2 = CurrentIrql;
    __writecr8(CurrentIrql);
  }
  return v2;
}

Referenced by:

No references.