Теоретически максимальная частота процессора доступна через KernelIoControl и управляющий код IOCTL_PROCESSOR_INFORMATION
На практике, однако, дело обстоит так: у меня Windows Mobile 2003 (ака Windows CE 4.2) возвращает в значение частоты 0.
Получается такой вывод:
Version: 1
Processor code: Intel(R)
Core Revision: 0
Processor name: PXA255
Processor Revision: 11520
Catalog number: 
Vendor: INTEL
Instruction Set: 0
Clock speed: 0
Вот программа, которая сбрасывает сведения о процессоре в файл cpu_log.txt
// #include <pkfunks.h>
#include <windows.h>
#include <stdio.h>
unsigned int  IOCTL_PROCESSOR_INFORMATION = 0x01010064;
typedef struct __PROCESSOR_INFO {
	WORD wVersion; 
	WCHAR szProcessorCore[40];
	WORD wCoreRevision;
	WCHAR szProcessorName[40];
	WORD wProcessorRevision;
	WCHAR szCatalogNumber[100];
	WCHAR szVendor[100];
	DWORD dwInstructionSet;
	DWORD dwClockSpeed;
} PROCESSOR_INFO, *PPROCESSOR_INFO;
KernelIoControl(DWORD dwCode, void *in, DWORD insize, void *out, DWORD outsize, DWORD *returned);
int get_maximum_cpu_speed(DWORD * p_dwSpeed, FILE * log)
{
    DWORD nReturned;
	PROCESSOR_INFO pinfo;
	
	if (p_dwSpeed == NULL) return 0;
	memset(&pinfo, 0, sizeof(pinfo));
	pinfo.wVersion = 1;
    if (!KernelIoControl(IOCTL_PROCESSOR_INFORMATION, NULL, 0, &pinfo, sizeof(pinfo), &nReturned)) {
        return 0;
    }
	if (log != NULL)
	{
		fwprintf(log, L"Version: %d\n", pinfo.wVersion); 
		fwprintf(log, L"Processor code: %s\n", pinfo.szProcessorCore);
		fwprintf(log, L"Core Revision: %d\n", pinfo.wCoreRevision);
		fwprintf(log, L"Processor name: %s\n", pinfo.szProcessorName);
		fwprintf(log, L"Processor Revision: %d\n", pinfo.wProcessorRevision);
		fwprintf(log, L"Catalog number: %s\n", pinfo.szCatalogNumber);
		fwprintf(log, L"Vendor: %s\n", pinfo.szVendor);
		fwprintf(log, L"Instruction Set: %d\n", pinfo.dwInstructionSet);
		fwprintf(log, L"Clock speed: %d\n", pinfo.dwClockSpeed);
	}
	*p_dwSpeed = pinfo.dwClockSpeed;
    return 1;
}
int wmain()
{
	unsigned int cpu = 0;
	FILE * log = _wfopen(L"cpu_log.txt", L"w");
	if (log == NULL) return 1;
	if (!get_maximum_cpu_speed(&cpu, log))
	{
		fwprintf(log, L"Failed to get procesor information\n");
	}
	else
	{
		fwprintf(log, L"CPU speed %d\n", cpu);
	}
	fclose(log);
	return 0;
}
Компилировал под VS 2005 с выключенной защитой от переполнения буфера (/GS-), исполнял на iPaq 2210