KeSynchronizeAddressPolicy

NTSTATUS __stdcall KeSynchronizeAddressPolicy(INT64 a1){
  NTSTATUS result; 
  unsigned __int8 CurrentIrql; 
  struct _KPRCB *CurrentPrcb; 
  NTSTATUS v5; 
  _KAFFINITY_EX Dest; 

  result = (unsigned int)memset(&Dest, 0i64, sizeof(Dest));
  if( *(_BYTE *)(a1 + 912) == 1 )
  {
    CurrentIrql = KeGetCurrentIrql();
    __writecr8(0xCui64);
    CurrentPrcb = KeGetCurrentPrcb();
    KeCopyAffinityEx(&Dest, (_KAFFINITY_EX *)(a1 + 368));
    KeRemoveProcessorAffinityEx(&Dest.Count, CurrentPrcb->Number);
    v5 = KeCountSetBitsAffinityEx(&Dest.Count);
    KiSynchronizeAddressPolicyTarget();
    if( v5 )
    {
      KiIpiSendPacket(IpiAffinity, &Dest, (INT64)KiSynchronizeAddressPolicyTarget, 1i64, 0i64, 0i64);
      while( CurrentPrcb->PacketBarrier )
        _mm_pause();
    }
    result = CurrentIrql;
    __writecr8(CurrentIrql);
  }
  return result;
}

Referenced by:

PspDisablePrimaryTokenExchange