Instalarea aplicațiilor x86 și x64 pe Windows 11 ARM cu Prism: Ghid complet despre compatibilitate, limite și soluții alternative

Ultima actualizare: 10/09/2025
Autorul: Isaac
  • Ferestre 11 ARM emulează x86 și x64 cu Prism (24H2), îmbunătățind performanța și utilizarea procesorului.
  • Nu totul este emulat: drivere, extensiile shell și codul dinamic restricționat necesită Arm64 nativ.
  • Există reglaje fine (cache, CHPE, multicore, SMC) care sporesc compatibilitatea în Apps conflictuale.
  • Calea optimă este portarea la Arm64/Arm64EC cu VS 2022 și publicarea fișierelor binare native, menținând în același timp paritatea.

Emulare x86 pe Windows 11 ARM

Dacă tocmai ai cumpărat un PC nou cu un procesor Arm — cum ar fi un Copilot+ cu Snapdragon X — probabil te întrebi cum să-l folosești... aplicații x86 și x64 în ferestre din 11 brațe fără a pierde compatibilitatea. Răspunsul se află în emularea încorporată a sistemului și, mai recent, în Prism, noul strat de traducere Windows 11 24H2 ceea ce accelerează și îmbunătățește experiența.

În acest ghid, veți găsi o explicație clară despre cum funcționează emularea, care sunt limitele acesteia și de ce un program de instalare x64 refuză uneori să continue. De asemenea, veți afla despre modificări de compatibilitate mai puțin cunoscute care pot face diferența. exemple concrete de eșecuri reale, o trecere în revistă a aplicațiilor care sunt deja native pentru Arm și o cale de migrare pentru dezvoltatorii care doresc să compileze pe Arm64 cu Visual Studio sau LLVM.

Ce este emularea pe Windows 11 pe Arm?

Windows 11 pentru Arm include un strat de traducere care permite rularea Aplicațiile x86 și x64 nu au fost modificate. Comparație Windows ARM vs. x86

Emularea este „transparentă”: face parte din sistemul de operare și nu necesită nicio instalare suplimentară. Intern, emulatorul se compilează la momentul execuției (JIT). Blocuri de instrucțiuni x86/x64 către arm64, aplicând optimizări pentru a genera cod nativ bun. Un serviciu de sistem menține o memorie cache a acestor blocuri traduse per modul, astfel încât, atunci când redeschideți aplicația, costurile de traducere sunt reduse semnificativ.

Când vine vorba de procesele x86, intră în joc binecunoscutul strat WOW64. La fel ca pe sistemele x64, WOW64 permite rularea fișierelor binare x86 în medii pe 64 de biți, iar în cazul Windows pe Arm adaugă și... redirecționarea sistemului de fișiere și a registrului Necesar pentru izolarea corectă a procesului x86. Pentru x64, situația este diferită: nu există un WOW64 intermediar, iar Windows utilizează fișiere binare de sistem în format ARM64X PE care pot fi încărcate atât în ​​procesele arm64, cât și în cele x64 din aceeași locație, evitând redirecționările și asigurând acces consistent la sistem.

Există un punct cheie: emularea acoperă doar codul modului utilizatorDriverele de mod kernel, UMDF-urile și alte componente care ating kernelul trebuie compilate nativ pentru Arm64. Dacă o aplicație depinde de un driver care nu există pentru Arm, emularea nu va putea salva acea parte.

Prism pe Windows 11 ARM

Prism: Noul strat de traducere pentru Windows 11 24H2

Odată cu Windows 11 24H2 vine Prism, noul emulator care înlocuiește tehnologia anterioară cu Optimizări majore în ceea ce privește performanța și utilizarea procesoruluiMicrosoft vorbește despre îmbunătățiri între 10% și 20% în același timp. hardware După instalarea 24H2, veți observa îmbunătățiri ale timpilor de încărcare, fluidității interfeței utilizator și consumului de energie.

Prism este optimizat pentru procesoarele desktop Qualcomm, în special pentru seria Snapdragon X găsită în PC-urile Copilot+. Unele optimizări avansate depind de anumite capabilități hardware, dar Prism este disponibil pentru orice dispozitiv compatibil cu Windows 11 24/2 pe Arm și marchează calea de coexistență dintre aplicațiile native și cele emulate în timpul acestei tranziții.

Filosofia amintește foarte mult de Rozetă 2 în Mac cu Apple Silicon: este vorba despre asigurarea continuității ecosistemului x86-64 în timp ce dezvoltatorii lansează versiunile lor native pentru Arm. Microsoft este încrezător că performanța Prism va fi competitivă, iar pe măsură ce catalogul de aplicații Arm64 crește, nevoia de emulare va scădea în mod natural.

Cum detectează sistemul emularea și ce vede aplicația dvs.

O aplicație x86/x64 de obicei nu „știe” că rulează pe un PC Arm decât dacă interoghează anumite API-uri. Dacă utilizați IsWow64Process2De exemplu, puteți afla dacă rulează sub WOW și sub ce arhitectură rulează. Dacă interogați detaliile procesorului prin intermediul API-ului, sistemul returnează date de la procesorul emulat și, pentru compatibilitate, GetNativeSystemInfo De asemenea, poate oferi valori virtualizate atunci când este apelat dintr-un proces aflat sub emulare.

  Cum să accesați și să gestionați unitatea C în Windows 11

Dacă trebuie să cunoașteți capacitățile gazdei dintr-o aplicație, utilizați GetMachineTypeAttributes pentru a verifica dacă sistemul acceptă emularea și ce tipuri. Aceasta este calea recomandată de Microsoft pentru luarea deciziilor de compatibilitate fără a induce erori din cauza presupunerilor arhitecturale.

De ce aplicațiile x64 nu se instalează uneori și alte cazuri în care emularea eșuează

O întrebare foarte frecventă: „Am Windows 11 24H2 cu Prism și totuși un program de instalare x64 îmi spune că sistemul meu nu este compatibil.” Acest lucru s-a întâmplat, de exemplu, unui utilizator cu Lunetă Mechdyne TGX pe un Surface Pro 11. Cauza este de obicei programul de instalare în sine, care implementează verificări ale arhitecturii și provoacă blocări înainte chiar de a rula fișierul binar al aplicației. Emularea nu interceptează această logică de preinstalare dacă pachetul decide să se „auto-eliminare”.

Există mai multe scenarii în care emularea poate eșua sau nu este suficientă: dacă aplicația depinde de drivere în modul kernel (neemulat), dacă injectează extensii shell sau IME-uri care trebuie să corespundă arhitecturii sistemului sau dacă programul de instalare include componente care se încarcă în cadrul proceselor de sistem unde combinarea arhitecturilor nu este posibilă. În aceste cazuri, chiar dacă executabilul principal ar putea fi emulat, dependențele împiedică finalizarea instalării.

Un alt bloc cunoscut este politica dinamică de securitate a codului. Emularea aplicațiilor x86 funcționează prin generarea cod arm64 în timp realDacă un proces x86 declanșează atenuarea ProcessDynamicCodePolicy prin SetProcessMitigationPolicy Pentru a preveni generarea sau modificarea codului JIT, aplicația x86 nu va putea rula sub emularea Arm64. Soluția este dezactivarea acestei politici în acest proces.

În cele din urmă, unii instalatori presupun că, dacă detectează WOW, se află într-o sistem x64 „clasic” și forțează ramura x64 a pachetelor lor, care nu poate fi utilizată în acest fel pe Arm. Acest model este considerat o practică proastă: recomandarea este de a nu deduce arhitectura nativă doar din prezența WOW și de a face întotdeauna referire la IsWow64Process2.

Setări de compatibilitate și emulare pe Windows ARM

Un aliat mai puțin cunoscut: rezolvitorul de compatibilitate și setările de emulare

Windows on Arm include un set de controale fine pentru emulare ceea ce poate crește compatibilitatea în detrimentul unora dintre performanțe. Puteți lansa „Depanatorul de compatibilitate a programelor” din meniul contextual .exe (clic dreapta, Depanare compatibilitate) și puteți alege între a încerca setările recomandate sau a raporta problema observată.

Dacă selectați „Depanarea problemelor programului”, veți vedea opțiuni precum „A funcționat în versiunile anterioare, dar acum nu mai funcționează”, „Se deschide, dar arată prost” sau „Necesită permisiuni suplimentare”. Mai multe dintre aceste opțiuni aplică automat două modificări puternice de emulare: Dezactivați memoria cache a aplicației (evitați utilizarea memoriei cache de bloc traduse) și Dezactivați modul de execuție hibrid (dezactivează CHPE și forțează binarele exclusive pentru x86).

În plus, în Proprietățile executabilului, fila Compatibilitate, apare o secțiune specifică în Arm „Windows 10 pe ARM” sau „Windows 11 pe ARM” cu butonul „Modificați setările de emulare”De acolo puteți aplica seturi predefinite sau puteți activa individual opțiuni avansate.

Cele mai relevante opțiuni sunt: ​​dezactivare memoria cache a aplicației (forțează retraducerea tuturor datelor la fiecare rulare), dezactivează Mod hibrid CHPE (util când binarele compatibile x86+Arm64 introduc incompatibilități), activează protecții suplimentare împotriva luminii, cerere compatibilitate strictă cu codul auto-modificabil (acceptă mai multe modele SMC cu prețul performanței) sau dezactivați Optimizarea paginii RWXÎn aplicațiile x64 există și comutatoare pentru a emula x87 în virgulă mobilă la 80 de biți pentru o precizie maximă, în detrimentul vitezei.

Secțiunea din utilizarea mai multor nuclee Vă permite să alegeți între „Rapid”, „Strict”, „Foarte Strict” sau „Forțare nucleu unic”. Cu cât setarea este mai strictă, cu atât sunt introduse mai multe bariere de memorie pentru sincronizare și cu atât este mai mic riscul unor condiții subtile de concurență, cu prețul unei performanțe mai scăzute. Dacă o aplicație este instabilă cu „Rapid”, încercați „Strict”. Dacă o anumită opțiune rezolvă problema, Microsoft vă încurajează să trimiteți feedback la [e-mail protejat] pentru a le încorpora în emulator.

  Cum să schimbați tipul contului de utilizator în Windows 11 pas cu pas

Cele mai bune practici în WOW și detectări: cum să evitați presupunerile false

Multe probleme apar din presupuneri incorecte la detectarea WOW. O aplicație care descoperă că rulează WOW nu ar trebui să concluzioneze că gazda este clasică x64: pe Arm, această condiție înseamnă emulare și Vizualizări ale registrului, prezența framework-urilor și a căilor de sistem nu sunt echivalente cu cele ale unui PC x86-64.

Greșeli tipice: instalarea forțată a software-ului ediție x64 Când se detectează WOW, căutați cheile în vizualizarea „nativă” a Registrului în loc să utilizați API-uri abstracte sau presupuneți că .NET pe 64 de biți este disponibil pe gazdă. Recomandarea este să interogați IsWow64Process2, să utilizați funcții Windows care rezolvă căile în mod corespunzător și să evitați codul care depinde de arhitectura procesului gazdă.

Drivere, extensii Shell și virtualizare: când ai nevoie de Arm64 nativ

Orice driver care atinge kernelul — drivere de mod kernel, UMDF, drivere de imprimare — trebuie compilat ca Arm64 nativNu există emulare în kernel. Acest lucru are impact asupra scenariilor precum virtualizarea sau aplicațiile care instalează drivere de captură, antivirus de nivel scăzut sau filtre de fișiere.

Extensiile shell, IME-urile și tehnologiile de asistență care încarcă DLL-uri în cadrul proceselor Windows trebuie să fie, de asemenea, adecvate din punct de vedere arhitectural pentru sistem. Dacă aplicația dvs. înregistrează DLL-uri x86 pentru a se integra cu Explorer, în Arm va trebui să le recompilați la Arm64.

Despre mașini virtuale, există limitări ale chipset-ului. De exemplu, platforma Windows Hypervisor nu este acceptată Platforma Qualcomm 835, deci Hyper-V nu va funcționa acolo. Microsoft indică faptul că continuă să investească în extinderea compatibilității pentru generațiile viitoare.

Sfaturi practice pentru utilizatori: instalare, testare și rezolvare

În primul rând, asigură-te că folosești Windows 11 24/2, deoarece Prisma îmbunătățește performanța și remediați incompatibilitățile. Dacă programul de instalare x64 nu avansează, căutați o versiune nativă Arm64 sau o ediție MSIX/Store: multe aplicații moderne oferă deja pachete multiplatformă care selectează arhitectura corectă. Dacă sistemul dvs. include software preîncărcat, aflați cum să eliminați aplicațiile preinstalate și bloatware-ul pentru a simplifica instalarea și diagnosticarea.

Dacă există doar un program de instalare x86/x64, încercați să rulați rezolvatorul de compatibilitate și să ajustați emularea (dezactivați memoria cache, dezactivați CHPE, creșteți strictețea multicore). Dacă aplicația necesită un șofer sau injectați extensii shell, probabil aveți nevoie de o versiune specifică Arm64 a acelor componente.

Pentru a decide dacă o aplicație va funcționa, comunitatea menține cataloage precum „Windows pe ARM” care indică dacă o aplicație are suport complet, funcționează cu Prism sau este incompatibil. Nu este oficial și poate deveni învechit, dar este o referință utilă înainte de achiziționare sau migrare.

Dacă trebuie să utilizați software critic care nu oferă o cale Arm pe termen scurt, luați în considerare alternative: versiuni web progresive, ediții UWP sau clienți echivalenți sau chiar rularea software-ului pe un... Mașină virtuală la distanță sau desktop la distanță x86-64 și accesați-l de pe PC-ul Arm până la sosirea portului nativ.

Aplicații care sunt deja native pe Arm: ce puteți instala astăzi

Catalogul crește rapid. Microsoft și-a portat aplicațiile principale (Teams, Cuvânt, Excel, Outlook, PowerPoint), și există suport nativ pentru browsere și instrumente populare. Cu Windows 11 24H2 și Copilot+ PC, Chrome are acum o versiune Arm...și proiectul de bază Chromium este, de asemenea, acceptat, deschizând ușa către majoritatea browserelor derivate.

În creativitate și productivitate există opțiuni mature: Adobe Photoshop și Lightroom sunt disponibile pentru Arm, iar Adobe a anunțat versiuni native de Premiere Pro și Illustrator. De asemenea, puteți lucra cu Blender, suita Affinity (Designer, Publisher, Photo), GIMP, LibreOffice sau chiar DaVinci, acoperind totul, de la retușare foto la editare și modelare.

Pentru multimedia și servicii, clienți precum VLC, Netflix, Disney+, Spotify sau Prime Video rulează pe Arm, fie ca aplicații native, fie prin intermediul Magazinului. Acest ecosistem nativ permite o performanță mai bună și un consum mai mic de baterie pentru sarcinile zilnice, comparativ cu emularea.

  Cum să plătești Wallapop cu numerar atunci când primești produsul?

Istoric recent: de la emularea x86 în Windows 10 la x64 și Prism

În Windows 10 pentru Arm, emularea era limitată la aplicații x86 pe 32 de biți. Ulterior, Microsoft a adăugat emulare x64 în canalele Insider (de exemplu, versiunea 21277), făcând un salt fundamental către rularea de software care abandonase deja suportul pe 32 de biți.

Cu Windows 11, emularea x64 este consolidată, iar 24H2 introduce Prism, care aduce traducere mai rapidă și o abordare similară cu Rosetta 2: continuitate fără fricțiuni pe măsură ce ecosistemul migrează către binarele Arm64. În multe scenarii, performanța emulată este suficient de bună pentru utilizarea zilnică, deși obiectivul va fi întotdeauna binarul nativ.

Calea dezvoltatorului: Adăugarea aplicației dvs. pe Arm64 (și Arm64EC)

Deși Prism te scapă de probleme, portarea aplicației la Arm64 oferă timpi de execuție mai buni. cizmă, consum redus și acces la CPU, GPU și NPU optimizat. Calea este simplă cu Visual Studio 2022 (v17.4 sau o versiune ulterioară), care acceptă nativ construirea și depanarea proiectelor Arm64 pe mașinile Arm. De asemenea, puteți utiliza Visual Studio 17.10 Preview și LLVM/Clang 12+ dacă preferați acel set de instrumente.

Pași de bază: adăugați un Configurația Arm64 la soluția dvs. (Configuration Manager, copierea noii platforme Arm64 de pe x64), recompilați, remediați erorile de dependență și testați pe hardware Arm sau într-o mașină virtuală Windows pe Arm folosind depanare locală sau la distanță. Dacă doriți să verificați binarul, rulați dumpbin /headers .\<appname>.exe și căutați în VALORI ANTET FILE pentru șirul de caractere Mașină AA64 (ARM64).

După validare, compilați și testați automat pe Arm (CI/CD). Pentru publicare, adăugați pachetul Arm64 în Microsoft Store sau pe canalul MSI/EXE/MSIX. Dacă distribuiți de pe web, puteți utiliza Sugestii client Agent utilizator pentru a detecta dispozitivele Windows pe Arm și a le oferi programul de instalare corespunzător, în loc să se bazeze pe lanțul clasic utilizator-agent.

Dependențele care blochează portul sunt cel mai frecvent obstacol. Aveți mai multe opțiuni: recompilare biblioteci interne, solicitați o versiune Arm64 de la o terță parte, revizuiți vcpkg pentru versiunile deja portate sau chiar contribuiți personal la suportul Arm pentru acele proiecte. Linaro oferă un Centru de asistență pentru a accelera porturile în ecosistemul Arm, dacă aveți nevoie.

Dacă migrarea tuturor datelor simultan pe Arm64 nu este fezabilă, luați în considerare Arm64EC: vă permite să compilați aplicația principală pentru Arm64 consumând în același timp dependențe x64 care vor rula sub emulare în cadrul aceluiași proces. Nu este posibil să combinați dependențe Arm64 pure într-un proces Arm64EC care așteaptă x64, dar poate fi foarte util ca o tranziție.

Nu uitați de codul specific arhitecturii: componentele intrinseci ale procesorului și asamblatorul inline trebuie rescrise pentru Arm sau încapsulate în spatele unor straturi portabile. Și dacă aplicația dvs. instalați driverele, va trebui să compilați acele drivere nativ pentru Arm64 folosind WDK; nu există scurtături cu emularea în kernel.

Instrumentele și framework-urile acceptate includ .NET 7 și 6 (LTS), .NET 5.0.8+, .NET Framework 4.8.1 și clang-cl (ABI compatibil cu MSVC). Pentru instalatori, framework-uri precum WiX, Squirrel, Inno Setup sau InstallAware suportă Windows on Arm fără surprize. Planificați paritatea funcțională între arhitecturi pentru a evita confuzia utilizatorilor.

Dacă întâmpinați probleme, Microsoft oferă Serviciu de consultanță App Assure Arm pentru a ajuta la optimizarea și rezolvarea erorilor. Și, ca practică recomandată, mențineți versiunile aliniate și automatizați testele pe Arm pentru a evita încălcarea compatibilității în versiunile viitoare.

comandă upgrade aripă --all
Articol asociat:
Cum se actualizează toate aplicațiile din Windows cu comanda –all din winget upgrade