Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Incalzire in pardoseala etapizata

Suprataxa card energie?!

Cum era nivelul de trai cam din a...

probleme cu ochelarii
 Impozite pe proprietati de anul v...

teava rezistenta panou apa calda

Acces in Curte din Drum National

Sub mobila de bucatarie si sub fr...
 Rezultat RMN

Numar circuite IPAT si prindere t...

Pareri brgimportchina.ro - teapa ...

Lucruri inaintea vremurilor lor
 Discuții despre TVR Sport HD.

Cost abonament clinica privata

Tremura toata, dar nu de la ro...

Renault Android
 

[Code Sample] Pot rula Windows 8?

- - - - -
  • Please log in to reply
13 replies to this topic

#1
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,194
  • Înscris: 24.02.2007
Am creat un mic executabil pentru a verifica daca procesorul suporta instructiunile necesare rularii Windows 8.

Orice comentariu e bine venit.
Programul e unul de test, nu-mi asum nici o responsabilitate daca returneaza vreun rezultat eronat.

#include <Windows.h>
#include <tchar.h>
#include <intrin.h>

BOOL Check_Windows8(BOOL* Bit64);
BOOL Check_Windows81_64bit(void);
BOOL Is_AMD(void);


int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
	UNREFERENCED_PARAMETER(hInstance);
	UNREFERENCED_PARAMETER(hPrevInstance);
	UNREFERENCED_PARAMETER(lpCmdLine);
	UNREFERENCED_PARAMETER(nCmdShow);

	BOOL Bit64;
	if (Check_Windows8(&Bit64))
	{
		if (Bit64)
		{
			if (Check_Windows81_64bit())
			{
				MessageBox(HWND_DESKTOP, _T("Procesorul suportă instrucțiunile necesare rulării Microsoft Windows 8/8.1 (32 sau 64 bit)"),
					_T("Rezultat"), MB_OK | MB_ICONINFORMATION);
			}
			else
			{
				MessageBox(HWND_DESKTOP, _T("Procesorul suportă instrucțiunile necesare rulării Microsoft Windows 8.1 (DOAR 32 bit) sau 8 (32 sau 64 bit)"),
					_T("Rezultat"), MB_OK | MB_ICONEXCLAMATION);
			}
		}
		else
		{
			MessageBox(HWND_DESKTOP, _T("Procesorul suportă instrucțiunile necesare rulării Microsoft Windows 8/8.1 (doar 32 bit)"),
				_T("Rezultat"), MB_OK | MB_ICONEXCLAMATION);
		}
	}
	else
	{
		MessageBox(HWND_DESKTOP, _T("Procesorul NU suportă instrucțiunile necesare rulării Microsoft Windows 8"),
			_T("Rezultat"), MB_OK | MB_IConerror);
	}
}

BOOL Check_Windows8(BOOL* Bit64)
{
	int CPUInfo[4];
	__cpuid(CPUInfo, 1);

	BOOL PAE = (CPUInfo[3] >> 6) & 0x1;
	BOOL SSE2 = (CPUInfo[3] >> 26) & 0x1;
	BOOL NXbit = FALSE;
	*Bit64 = FALSE;

	__cpuid(CPUInfo, 0x80000000);
	if ((unsigned int)CPUInfo[0] >= 0x80000001)
	{
		__cpuid(CPUInfo, 0x80000001);
		NXbit = (CPUInfo[3] >> 20) & 0x1;
		*Bit64 = (CPUInfo[3] >> 29) & 0x1;
	}
	return PAE && SSE2 && NXbit;
}

BOOL Check_Windows81_64bit(void)
{
	int CPUInfo[4];
	__cpuid(CPUInfo, 1);

	BOOL LAHF_SAHF = FALSE;
	BOOL CMPXCHG16b = (CPUInfo[2] >> 13) & 0x1;
	BOOL PrefetchW = TRUE; //update check on Intel CPU's

	__cpuid(CPUInfo, 0x80000000);
	if ((unsigned int)CPUInfo[0] >= 0x80000001)
	{
		__cpuid(CPUInfo, 0x80000001);
		LAHF_SAHF = (CPUInfo[2] >> 0) & 0x1;
		if (Is_AMD())
		{
			PrefetchW = (CPUInfo[2] >> 8) & 0x1;
		}
	}

	return LAHF_SAHF && CMPXCHG16b && PrefetchW;
}

BOOL Is_AMD()
{
	int CPUInfo[4];
	char vendorId[3 * sizeof(CPUInfo[0]) + 1] = { 0 };

	__cpuid(CPUInfo, 0);
	memcpy(vendorId, &CPUInfo[1], sizeof(CPUInfo[1]));
	memcpy(vendorId + sizeof(CPUInfo[1]), &CPUInfo[3], sizeof(CPUInfo[3]));
	memcpy(vendorId + 2 * sizeof(CPUInfo[1]), &CPUInfo[2], sizeof(CPUInfo[2]));

	return strcmp(vendorId, "AuthenticAMD") == 0 || strcmp(vendorId, "AMDisbetter!") == 0;
}


LE: Update pentru Windows 8.1

Attached Files


Edited by dani.user, 13 April 2014 - 20:21.


#2
xeleron

xeleron

    Suflet de campion...

  • Grup: Senior Members
  • Posts: 23,709
  • Înscris: 01.01.2008
Dani,eu nu ma pricep la programare dar din ce citesc pare a interoga procesorul cu privire la SSE2,PAE si NXbit.Desi acestea sunt cerintele pentru windows 8,ar trebui sa il faci sa verifice daca exista instructiunile LAHF/SAHF,PrefetchW si CMPXCHG16,altfel ramai blocat pe Windows 8(nu poti face upgrade la .x).Este foarte important la a 2-a instructiune ca programelul tau sa stie sa citeasca instructiunea din setul 3Dnow! daca scaneaza procesoarele AMD.Bafta!
Edit:prezenta acestor seturi de instructiuni nu garanteaza instalarea Windows 8.x,intrucat BIOS poate ascunde/dezactiva unele instructiuni.

Edited by xeleron, 13 April 2014 - 15:34.


#3
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,194
  • Înscris: 24.02.2007
Mersi de info, am sa-i fac curand o actualizare.
PrefetchW e ceva specific doar AMD? Care ar fi verificarea pentru Intel?

#4
Tehnicul1970

Tehnicul1970

    Member

  • Grup: Members
  • Posts: 418
  • Înscris: 02.05.2013
O sa-l incerc si eu pe un sistem (laptop de fapt) mai vechi. Am pe acest laptop DELL Inspiron 1520,un procesor Intel Core 2 Duo T9300,2,5 Ghz si este upgrade de la un T7300 ce l-am avut inainte.Fata de T7300, T9300 suporta si instructiuni SSE 4.1.
Pe aceasta "vechitura" de laptop (luat in martie 2008),rulez acum un Windows 7 Professional licentiat. Eram curios cum ar functiona cu un Windows 8.
Hai sa vedem programul.
Felicitari din toata inima,realizatorului!
L.E. - Imi spune ca procesorul suporta intructiunile necesare rularii Windows 8 pe 32 sau 64B. Este OK.
Ca fapt divers si cu asta inchei, o sa descarc o versiune de evaluare Windows 8,pentru un test pe acest laptop mai vechi.
Am si un HP de generatie noua dar asta este alta poveste.Vreau sa vad ce poate Dell-ul.
Daca mai aveti si alte programe asemanatoare,o sa le incerc.
Nu sunt as in calculatoare dar ma pasioneaza.
Toata stima!

Edited by Tehnicul1970, 13 April 2014 - 15:51.


#5
gerbil

gerbil

    Membru' activ

  • Grup: Senior Members
  • Posts: 11,049
  • Înscris: 10.09.2005
Am incercat 8 pe un Celeron single core, 2gbram si fx5200, a mers fara probleme.

#6
xeleron

xeleron

    Suflet de campion...

  • Grup: Senior Members
  • Posts: 23,709
  • Înscris: 01.01.2008
Problema executarii Windows 8/windows 8.x nu se pune in puterea bruta a CPU,ci in acele instructiuni.Microsoft a mintit cand a spus ca cerintele de sistem Vista/7 sunt la fel cu cele Windows 8,intrucat acele seturi de instructiuni elimina un numar urias(desi depasite) de procesoare.se elimina din ecuatie pentru windows 8 toata seria Intel p3,p4 toate pana la Prescott,iar dintre acestea doar unele modele(toate capabile de x64 si 5x5J, 519J),la AMD se elimina toate generatiile de procesoare precedente socketului 754(altfel spus orice AMD XP),doar datorita absentei NX-bit.

#7
mihalexmihalex

mihalexmihalex

    Classified

  • Grup: Senior Members
  • Posts: 3,423
  • Înscris: 29.12.2007

 xeleron, on 13 aprilie 2014 - 16:42, said:

... AMD se elimina toate generatiile de procesoare precedente socketului 754(altfel spus orice AMD XP),doar datorita absentei NX-bit.
Asa am crezut si eu dar am incercat 8.1 pe un astfel de procesor. S-a instalat, dar rula EXECRABIL.

#8
xeleron

xeleron

    Suflet de campion...

  • Grup: Senior Members
  • Posts: 23,709
  • Înscris: 01.01.2008
Ce cantitate de RAM aveai?

#9
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,194
  • Înscris: 24.02.2007
xeleron: am facut actualizarea pentru Windows 8.1 64bit.
O treaba insa nu mi-e clara: daca PrefetchW e ceva specific AMD, cerinta nu se aplica la procesoare Intel? Sau are alt nume?

#10
xeleron

xeleron

    Suflet de campion...

  • Grup: Senior Members
  • Posts: 23,709
  • Înscris: 01.01.2008
Instructiunea se executa ca NOOP.
http://forums.aida64...1374-prefetchw/
Edit:Daca ai timp(si chef) ai putea duce programul la un alt nivel,sa interoghezi si nivelul DDI(directx) pentru a afla daca si placa video este capabila de windows 8.

Edited by xeleron, 13 April 2014 - 20:54.


#11
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,194
  • Înscris: 24.02.2007
Daca primesc ceva linkuri spre documentatie, de ce nu :)

#12
xeleron

xeleron

    Suflet de campion...

  • Grup: Senior Members
  • Posts: 23,709
  • Înscris: 01.01.2008
http://msdn.microsof...9(v=vs.85).aspx
Sper sa te ajute,eu am habar doar de lucrurile ce nu tin de programare(din pacate).Daca nu,mai cautam,sau le dam un e-mail baietilor ce dezvolta GPU-Z.

#13
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,194
  • Înscris: 24.02.2007
Din pacate nu ajuta, si nici n-am gasit o metoda mai buna.

#14
paulstelian97

paulstelian97

    New Member

  • Grup: Members
  • Posts: 22
  • Înscris: 29.12.2009
Pe PC-ul meu 8.1 x86 merge excelent. Dar, cum spune și programul, x64 nu este acceptat (de fapt, installerul dă BSOD după doar 2 secunde)
Intel Pentium 4 630 (3.00 GHz, HyperThreading activat, an estimat 2004(?) ), 2 GB RAM Dual-Channel, Placă video compatibilă DX9 (WDDM 1.0) -- 128 MB pe XP, 256 pe mai noi.
E de observat că 7 x64 merge în regulă, nu am făcut rost de 8 x64 ca să văd cum merge. Dar 8.1 dă BSOD.

Anunturi

Second Opinion Second Opinion

Folosind serviciul second opinion ne puteți trimite RMN-uri, CT -uri, angiografii, fișiere .pdf, documente medicale.

Astfel vă vom putea da o opinie neurochirurgicală, fără ca aceasta să poată înlocui un consult de specialitate. Răspunsurile vor fi date prin e-mail în cel mai scurt timp posibil (de obicei în mai putin de 24 de ore, dar nu mai mult de 48 de ore). Second opinion – Neurohope este un serviciu gratuit.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate