KiSetControlEnforcement
int __fastcall KiSetControlEnforcement(__int64 a1, _QWORD *a2){
__int64 v2;
__int64 v3;
unsigned __int64 v4;
LODWORD(v2) = EAX(__cpuid(0, 0));
if( (unsigned __int8)(*(_BYTE *)(a1 + 141) - 1) <= 1u && (unsigned int)v2 >= 7 )
{
v3 = __cpuid(7, 0);
LODWORD(v2) = EAX(v3);
if( (ECX(v3) & 0x80u) != 0 )
KiCetCapable = 1;
}
if( KiCetCapable )
{
if( (*a2 & 0x800000i64) != 0 )
{
LODWORD(v2) = KUSER_SHARED_DATA.XState.EnabledSupervisorFeatures;
if( (KUSER_SHARED_DATA.XState.EnabledSupervisorFeatures & 0x800) != 0 )
{
*a2 |= 0x400000000000ui64;
*(_QWORD *)(a1 + 34208) |= 0x400000000000ui64;
v4 = __readcr4();
v2 = v4 | 0x800000;
__writecr4(v2);
KiUserCetAllowed = 1;
}
}
}
return v2;
}Referenced by:
KiInitializeKernel