KiGetCpuVendor
UINT64 __stdcall KiGetCpuVendor(){
struct _KPRCB *CurrentPrcb;
__int64 v1;
CHAR first[16];
CurrentPrcb = KeGetCurrentPrcb();
v1 = __cpuid(0, 0);
CurrentPrcb->VendorString[0] = 0;
*(_QWORD *)&first[4] = __PAIR64__(EDX(v1), EBX(v1));
*(_DWORD *)&first[12] = ECX(v1);
*(_QWORD *)CurrentPrcb->VendorString = *(_QWORD *)&first[4];
*(_DWORD *)&CurrentPrcb->VendorString[8] = *(_DWORD *)&first[12];
CurrentPrcb->VendorString[12] = 0;
if( !strncmp(&first[4], (INT8 *)"AuthenticAMD", 0xCui64) )
return 1i64;
if( !strncmp(&first[4], (INT8 *)"GenuineIntel", 0xCui64) )
return 2i64;
if( !strncmp(&first[4], (INT8 *)"CentaurHauls", 0xCui64) )
return 3i64;
return !strncmp(&first[4], (INT8 *)"HygonGenuine", 0xCui64);
}Referenced by:
EtwSetPerformanceTraceInformation
EtwpAddMicroarchitecturalPmcToPmcGroup
EtwpAddMicroarchitecturalPmcToRegistry
EtwpLoadMicroarchitecturalProfileGroup
EtwpLoadMicroarchitecturalProfileSource
EtwpRemoveMicroarchitecturalPmcFromRegistry
HvlpProcessIommu
KiGetIptInfo
KiGetProcessorSignature
KiInitializeNxSupportDiscard
KiIsNXSupported