How to get the CPU name

30 12 2012

The processor name/CPU name (Intel® Core™ i5 Processor, AMD Phenom(tm) II X2 550 Processor etc) is one of the important properties in our System. Have you ever thought about how to get this information?

Windows provides the function __cpuid for that , which queries the processor for information about the supported features and CPU type.

void GetProcessorName()
	int CPUInfo[4] = {-1};
	char CPUBrandString[0x40];	
	__cpuid(CPUInfo, 0x80000000);
	unsigned int nExIds = CPUInfo[0];

	memset(CPUBrandString, 0, sizeof(CPUBrandString));

	// Get the information associated with each extended ID.
	for (int i=0x80000000; i<=nExIds; ++i)
		__cpuid(CPUInfo, i);
		// Interpret CPU brand string.
		if  (i == 0x80000002)
			memcpy(CPUBrandString, CPUInfo, sizeof(CPUInfo));
		else if  (i == 0x80000003)
			memcpy(CPUBrandString + 16, CPUInfo, sizeof(CPUInfo));
		else if  (i == 0x80000004)
			memcpy(CPUBrandString + 32, CPUInfo, sizeof(CPUInfo));

Don’t forget to include intrin.h to your project as this function is intrinsic to the compiler.




Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: