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