Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
betano.ro

Poveste fara sfarșit

I-auziti voi! - nu vor romani...

Colon iritabil
 Perioada de gratie inexistenta

Cel mai ieftin TV LED mic

Reverse proxy si htaccess pe Raps...

Statie de epurare sau fosa septic...
 "enerlux p" afisaj interm...

Adaptor usb3.1gigabit vs Adaptor ...

La multi ani @Atreides!

La multi ani @KENSINGTON!
 La multi ani @burebista!

La multi ani de Florii!

Stihl fs 70 c-e

Challengers (2024)
 

[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,241
  • Î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,241
  • Î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,055
  • Î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,241
  • Î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,241
  • Î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,241
  • Î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

Chirurgia endoscopică a hipofizei Chirurgia endoscopică a hipofizei

"Standardul de aur" în chirurgia hipofizară îl reprezintă endoscopia transnazală transsfenoidală.

Echipa NeuroHope este antrenată în unul din cele mai mari centre de chirurgie a hipofizei din Europa, Spitalul Foch din Paris, centrul în care a fost introdus pentru prima dată endoscopul în chirurgia transnazală a hipofizei, de către neurochirurgul francez Guiot. Pe lângă tumorile cu origine hipofizară, prin tehnicile endoscopice transnazale pot fi abordate numeroase alte patologii neurochirurgicale.

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