KiReadFixedMtrr
VOID __stdcall KiReadFixedMtrr(UINT64 *Buffer){
unsigned __int64 v1;
unsigned __int64 v2;
v1 = 0i64;
if( byte_140C2B131 == 1 )
{
v1 = __readmsr(0xC0010010) | 0x80000;
}
else
{
if( KeGetCurrentPrcb()->CpuVendor != 1 )
goto LABEL_3;
v2 = __readmsr(0xC0010010);
v1 = v2;
if( (v2 & 0xC0000) == 0 )
goto LABEL_3;
v1 = v2 & 0xFFFFFFFFFFF3FFFFui64;
}
__writemsr(0xC0010010, v1);
LABEL_3:
*Buffer = __readmsr(0x250u);
Buffer[1] = __readmsr(0x258u);
Buffer[2] = __readmsr(0x259u);
Buffer[3] = __readmsr(0x268u);
Buffer[4] = __readmsr(0x269u);
Buffer[5] = __readmsr(0x26Au);
Buffer[6] = __readmsr(0x26Bu);
Buffer[7] = __readmsr(0x26Cu);
Buffer[8] = __readmsr(0x26Du);
Buffer[9] = __readmsr(0x26Eu);
Buffer[10] = __readmsr(0x26Fu);
if( byte_140C2B131 == 1 )
__writemsr(0xC0010010, v1 & 0xFFFFFFFFFFF7FFFFui64);
}Referenced by:
KeLoadMTRR
KiInitializeMTRR