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.