32 бит, не думаю, что это влияет. 
	 
 
while (VirtualQueryEx(hndl, (LPCVOID)(0 + offset), &mbi, sizeof(MEMORY_BASIC_INFORMATION)))
	{
		if (mbi.State == MEM_COMMIT)
		{
			cc++;
		}
		offset += mbi.RegionSize;
		
	}
	в цикле перебираются все страницы памяти. Если перебирать их в процессе x64, то это окажется невероятно долго ,вот в чём проблема. Нужно как-то перебирать только страницы определённого процесса