KeSynchronizeSecurityDomain
__int64 __fastcall KeSynchronizeSecurityDomain(__int64 a1){
unsigned __int8 CurrentIrql;
struct _KPRCB *CurrentPrcb;
int v4;
__int64 v5;
INT64 result[22];
memset((INT64)result, 0i64);
CurrentIrql = KeGetCurrentIrql();
__writecr8(0xCui64);
CurrentPrcb = KeGetCurrentPrcb();
KeCopyAffinityEx((__int64)result, (unsigned __int16 *)(a1 + 368));
KeRemoveProcessorAffinityEx((unsigned __int16 *)result, *((_DWORD *)CurrentPrcb + 9));
v4 = KeCountSetBitsAffinityEx((_KAFFINITY_EX *)result);
if( a1 == *((_QWORD *)KeGetCurrentThread() + 23) )
KiSynchronizeSecurityDomainTarget();
if( v4 )
{
KiIpiSendPacket(0i64, (UINT16 *)result, (INT64)KiSynchronizeSecurityDomainTarget, 1i64, 0i64, 0i64);
while( *((_DWORD *)CurrentPrcb + 2912) )
_mm_pause();
}
v5 = CurrentIrql;
__writecr8(CurrentIrql);
return v5;
}Referenced by:
NtSetInformationProcess
PspCombineSecurityDomains