Težave z gonilniki perifernih naprav v sistemu Windows 11 ARM: navodila in rešitve

Zadnja posodobitev: 10/09/2025
Avtor: Isaac
  • P vozniki Morajo biti Arm64: v jedru ni emulacije in brez njih strojna oprema Ne deluje.
  • Emulacija x86/x64 je nastavljiva: prilagodite predpomnilnik, hibridni način in večnitnost za združljivost.
  • Znane omejitve: Anti-cheat, faks in skener, nekateri protivirusni programi in aplikacije lupine.
  • Razvijalci: Zgradite izvorni Arm64, razrešite odvisnosti in testirajte na strojni opremi/navideznem računalniku ARM.

Gonilniki in periferne naprave v sistemu Windows 11 ARM

Če ste nadgradili na računalnik z operacijskim sistemom Windows 11, ki temelji na arhitekturi ARM, in imate težave s periferno napravo, ki preprosto ne deluje, niste sami: gonilniki so ključni in morajo biti združljivi z arhitekturo Arm64 . Medtem ko številne aplikacije x86 in x64 delujejo brezhibno prek emulacije, sistemski gonilniki ne gredo skozi to plast, zato je bistveno razumeti pravila igre.

Poleg gonilnikov združljivost z Arm vključuje več elementov: nastavljivo emulacijo, dobre razvojne prakse, znane omejitve in diagnostična orodja . Ta priročnik združuje vse bistveno, kar vam bo pomagalo ugotoviti, zakaj naprava ali aplikacija, odvisna od gonilnika, ne deluje, kako natančno nastaviti emulacijo in kaj morajo razvijalci storiti, da jo izvorno prevedejo za Arm64.

Kaj se dogaja z gonilniki v sistemu Windows 11 ARM?

V sistemu Windows na ARM morajo biti vsi gonilniki jedrnega načina, gonilniki UMDF (User-Mode Driver Framework) in gonilniki tiskanja prevedeni za arhitekturo operacijskega sistema . To pomeni, da če je sistem Arm64, mora biti tudi gonilnik Arm64; ni plasti emulacije jedra, zato je ta zahteva stroga.

To pomeni, da lahko aplikacija x86 brez težav deluje z emulacijo, če pa potrebuje gonilnik po meri ali gonilnik drugega proizvajalca, mora ta specifična komponenta obstajati kot gonilnik Arm64 . Dokler gonilnik ni ponovno preveden za Arm64, se funkcije, ki so od njega odvisne, ne bodo prikazale ali pa ne bodo delovale.

V praksi bodo naprave in periferne enote delovale le, če so njihovi gonilniki integrirani v sistem Windows 11 ali če proizvajalec zagotovi posebne gonilnike Arm64 . To velja za občutljive kategorije, kot so protivirusna in protizlonamerna programska oprema, programska oprema za tiskanje ali PDF , podporne tehnologije, pripomočki za optične diske in programska oprema za virtualizacijo.

Zato pri nameščanju programske ali strojne opreme drugih proizvajalcev prenesite in namestite gonilnik proizvajalca , ki je posebej namenjen računalnikom z ARM procesorjem . Če gonilnik navaja le združljivost z x86/x64 ali ne omenja Arm64, najverjetneje ne bo deloval v vašem sistemu z ARM procesorjem.

Naprave, ki temeljijo na ARM-u, so postale priljubljene zaradi svoje energetske učinkovitosti, življenjske dobe baterije in nevronskih procesorjev (NPU), ki jih poganja umetna inteligenca , vendar ta učinkovitost ne nadomesti potrebe po izvornih gonilnikih Arm64 . Če se zanašate na ključno periferno napravo, predhodno preverite , ali je njen proizvajalec izdal podporo za Arm64.

Združljivost gonilnikov na računalnikih ARM

Emulacija x86 in x64 na ARM in kako prilagoditi združljivost

Windows na ARM-u izvorno izvaja aplikacije ARM, medtem ko se aplikacije x86 in x64 izvajajo prek emulacije . Z operacijskim sistemom Windows 11 je bila uvedena emulacija x64 za razširitev združljivosti, mehanizem Prism v napravah Copilot+ s Snapdragon X pa je znatno izboljšal delovanje emuliranih aplikacij v primerjavi s prejšnjimi generacijami.

Če se aplikacija obnaša nenavadno, lahko uporabite orodje za odpravljanje težav z združljivostjo programa . Z desno tipko miške kliknite datoteko .exe in izberite orodje za odpravljanje težav z združljivostjo, da poskusite s priporočenimi nastavitvami ali izberete določene simptome, kot so odpiranje, vendar nepravilno prikazovanje, zahtevanje dovoljenj ali neprikazovanje težave na seznamu.

Poleg tega boste na zavihku Združljivost v lastnostih izvedljive datoteke videli razdelek Windows 10 na ARM ali Windows 11 na ARM. Tam lahko spremenite celotne nastavitve emulacije ali omogočite napredne nastavitve za eksperimentiranje s posameznimi možnostmi, ki so zasnovane tako, da dajejo prednost stabilnosti pred zmogljivostjo, ko se pojavijo težave.

  Kako namestiti in uporabljati Threads v računalniku z operacijskim sistemom Windows 11
Nastavitve emulacije Kaj pomeni
Onemogoči predpomnilnik aplikacij Prisili sistem, da pri vsakem zagonu ponovno prevede emulirane bloke kode., s čimer se odstrani predpomnilnik za zmanjšanje stranskih učinkov na račun zmogljivosti.
Onemogoči hibridni način izvajanja Izogibajte se binarnim datotekam CHPE z mešanico x86 in Arm64 ter prisili k uporabi samo binarnih datotek x86, kar povečuje združljivost z nekaterimi občutljivimi aplikacijami.
Dodatna zaščita pred svetlobo Omogoča globalne zaščitne ukrepe, ki vplivajo na nestanovitne metapodatke in lahko vpliva na delovanje v korist stabilnosti.
Stroga združljivost s samodejnim spreminjanjem kode Zagotavlja, da samospreminjanje kode za pravilno delovanje pri emulaciji, z opaznim vplivom na zmogljivost, kadar je ta vzorec pogost.
Onemogoči optimizacijo na straneh RWX Odstrani optimizacijo delovanja za kodo v berljive, zapisljive in izvedljive strani kar lahko povzroči konflikt z določenimi aplikacijami.
Onemogoči optimizacijo JIT (samo x64) Zastarela možnost, ki ne bo več na voljo v prihodnjih različicah.
Onemogoči optimizacijo s plavajočo vejico (samo x64) Vsili emulacijo x87 z 80-bitna polna natančnost, kar povečuje natančnost FP na račun nižje zmogljivosti.

Prilagodite lahko tudi, kako aplikacija uporablja več jeder: hitro, strogo, zelo strogo ali vsiljeno eno jedro . Te možnosti spremenijo število pomnilniških ovir, ki se uporabljajo za sinhronizacijo dostopa med nitmi; povečanje ovir zmanjša subtilne napake na račun hitrosti, enojedrni način pa odstrani ovire in serializira niti na eno samo jedro.

Če sprememba določene možnosti odpravi napako, Microsoft zahteva, da se podrobnosti pošljejo na [email protected], da se te povratne informacije vključijo v prihodnje izboljšave emulatorja.

Nastavitve emulacije v sistemu Windows ARM

Gonilniki: jedro, UMDF in tiskanje

Vsi sistemski gonilniki se morajo ujemati z arhitekturo: v jedru sistema Windows ni emulacije . To še posebej vpliva na virtualizacijo in vse scenarije, ki zahtevajo dostop na nizki ravni.

Če aplikacija x86 namesti ali zahteva svoj gonilnik , se lahko aplikacija sama zažene v emulaciji , vendar se funkcije, povezane s tem gonilnikom, ne bodo prikazale, dokler ne bo na voljo različica gonilnika za Arm64.

Za prevajanje gonilnikov Arm64 z garancijami morajo razvijalci upoštevati priročnik WDK, specifičen za Arm64 , ki podrobno opisuje pripravo okolja, projekte in podpisovanje.

Razširitve lupine, urejevalniki vnosnih metod (IME) in druge sistemske DLL-je

Aplikacije, ki poskušajo vzpostaviti povezavo s komponentami sistema Windows ali v sistemske procese vstaviti datoteke DLL, morajo te datoteke DLL prevesti za Arm64 . Tukaj pridejo v poštev urejevalniki vhodnih metod , podporne tehnologije in razširitve lupine, ki postavljajo ikone ali kontekstne menije .

Kadar koli nalagate kodo v procese sistema Windows, uskladite binarno arhitekturo z arhitekturo sistema . Ponovno prevajanje teh DLL-jev zagotavlja, da komponenta deluje izvorno, brez zanašanja na emulacijo.

Najboljše prakse z zaznavanjem WOW in arhitekture

Pogost vzorec napake se pojavi, ko aplikacija zazna, da deluje v sistemu WoW, in zmotno predpostavlja, da gre za sistem x64 . Nato poskuša namestiti različico x64, išče v izvornem pogledu registra ali predpostavlja 64-bitno namestitev .NET.

Da bi se izognili tem vrstam napak, pri zaznavanju napak WOW ne delajte predpostavk o gostitelju in zmanjšajte interakcije z izvornimi komponentami operacijskega sistema, razen če nadzorujete arhitekturo.

Če morate preveriti združljivost, namesto izvirnega API-ja isWow64Process uporabite API isWow64Process2 . Prvi pravilno razlikuje med kombinacijami procesov in gostiteljev ter vam pomaga pri odločanju o poteh kode in pogledih dnevnika brez zmede.

Dinamično generiranje kode in blažitve

Emulacija namiznih aplikacij x86 med izvajanjem generira navodila Arm64, zato blokiranje generiranja ali spreminjanja kode v procesu prekine združljivost . Če vaša aplikacija omogoča ublažitev z uporabo SetProcessMitigationPolicy s ProcessDynamicCodePolicy, jo onemogočite, da omogočite emulacijo.

  Windows 11 ne shrani nastavitev napajanja: vzroki in rešitve

Če sumite, da vaša aplikacija uporablja tehnike samospreminjanja, v naprednih nastavitvah emulacije omogočite strogo podporo za samospreminjanje kode , saj veste, da bo to znatno vplivalo na zmogljivost.

Podpora za virtualne stroje in Hyper-V

Platforma Windows Hypervisor ni združljiva s procesorjem Qualcomm 835 na platformi za mobilne računalnike , zato Hyper-V ne bo deloval na tej specifični strojni opremi. Microsoft navaja, da bo še naprej vlagal v te tehnologije za prihodnje nabore čipov Qualcomm.

Znane omejitve: Igre, protivirusni program, faks in skener ter drugo

Nekatere igre ne bodo delovale, če njihov gonilnik proti goljufijam nima različice za Windows 11 na ARM . Preverite pri založniku igre ali združljivost na worksonwoa.com, skupnem viru, ki spremlja stanje aplikacij in iger.

V sistemu Windows 10 na ARM se aplikacije x64 ne izvajajo : potrebujete različice Arm64, Arm32 ali x86. Poleg tega obstajajo omejitve, kot so različice OpenGL nad 1.1 in programska oprema proti goljufijam, ki nima podpore za ARM. V sistemu Windows 11 na ARM emulacija x64 širi nabor združljivih aplikacij.

Aplikacije, ki prilagajajo lupino sistema Windows, kot so nekateri urejevalniki metod za vnos podatkov (IME), podporne tehnologije ali integracije z oblakom, lahko naletijo na težave, če ne ponujajo binarnih datotek Arm64 . Končna odločitev je v rokah razvijalca posamezne aplikacije.

Obstajajo tudi protivirusni paketi drugih proizvajalcev, ki jih ne boste mogli namestiti, razen če so posebej zasnovani ali posodobljeni za ARM . Medtem Varnost sistema Windows ponuja vgrajeno zaščito za celotno življenjsko dobo vaše naprave.

Manj znana posebnost: funkcija faksa in skenerja sistema Windows ni na voljo v računalnikih z operacijskim sistemom Windows 11 na procesorju ARM, zato je priporočljivo poiskati alternative.

Na voljo so izvorne aplikacije in novi mehanizem Prism

Ekosistem zdaj ponuja več izvornih različic Arm64 kot kdaj koli prej, Microsoft 365 pa deluje hitreje kot kdaj koli prej v aplikacijah Teams, Outlook, Word, Excel, PowerPoint, OneDrive in OneNote, poleg tega pa še v Chromu, Slacku, Spotifyju, Zoomu, WhatsAppu , Blenderju, Affinity Suite in DaVinci Resolve ter mnogih drugih.

Za aplikacije brez izvorne binarne datoteke novi emulacijski mehanizem Prism izboljša delovanje emuliranih aplikacij v napravah Copilot+ s procesorjem Snapdragon X in bo na voljo tudi v več napravah s sistemom Windows 11.

Če želite videti, katere aplikacije in igre delujejo, preverite seznam v živo na worksonwoa.com . Gre za odprtokodni projekt tretje osebe, h kateremu Microsoft prav tako prispeva podatke o združljivosti.

Kako prenesti aplikacije in gonilnike v Arm64

Če želite ustvariti izvorno različico aplikacije, v Visual Studiu dodajte platformo rešitve ARM64 iz upravitelja konfiguracije , kopirajte konfiguracijo iz x64 in ustvarite nove platforme projekta. Nato prevedite in odpravljajte napake.

Ko gradite v načinu Release, bloki verjetno izvirajo iz odvisnosti, ki ne zagotavljajo binarnih datotek Arm64 . Te bo treba po potrebi posodobiti, ponovno prevesti ali zamenjati.

Če želite preveriti nastalo binarno datoteko, uporabite PowerShell in zaženite ukaz `dumpbin /headers` v datoteki .exe, da potrdite, da glava označuje stroj AA64 (ARM64). To je hiter pregled, s katerim se prepričate, da ne uporabljate napačne različice.

Testiranje in odpravljanje napak sta lažja, če delate na računalniku Arm. Če razvijate na x86/x64, uporabite oddaljeno odpravljanje napak na napravi ali virtualnem stroju Windows, ki temelji na ARM . Microsoft dokumentira strategije v svojem vodniku za odpravljanje napak Arm.

Kot priporočene predpogoje uporabite Visual Studio 2022 v17.4 ali novejši z izvorno podporo za Arm64 (VS 17.10 Preview dodaja izboljšave) in, če želite, LLVM Clang 12+ za prevajanje in povezovanje. Izvorna orodjarna ponuja vrhunsko zmogljivost v primerjavi z emuliranimi različicami.

Kar zadeva ogrodja, so podprti .NET 7, .NET 6 LTS, .NET 5.0.8+ in .NET Framework 4.8.1 . C++ lahko prevedete tudi s clang-cl, ki ohranja združljivost ABI z MSVC.

  Upravljanje nameščenih glasov v sistemu Windows 11: popoln vodnik

Odvisnosti, Arm64EC in zunanja pomoč

Ko knjižnica blokira prevajanje, jo interno ponovno prevedite za Arm64, če je vaša, zahtevajte novo različico od tretje osebe, če je komercialna, ali poiščite združljive alternative, če je odprtokodna.

Preden zamenjate sklade, preverite, ali ima vcpkg že posodobljeno različico za Arm64, in če ne, razmislite o prispevanju k podpori. Številne skupnosti bodo cenile to pomoč.

Kot vmesna strategija vam Arm64EC omogoča, da v istem procesu združite svojo ponovno prevedeno aplikacijo z odvisnostmi x64, ki se izvajajo v emulaciji. Obratno ni mogoče (v procesu x64 ne morete uporabljati čistih odvisnosti Arm64).

Če potrebujete podporo, Linaro sodeluje s podjetji in skupnostmi, da bi omogočil programsko opremo na ARM . Pri njihovi službi za pomoč uporabnikom lahko odprete zahtevo, da raziščete podporo za manjkajoče pakete, povezane z Windowsom, na ARM.

Testiranje na strojni opremi ali virtualnem stroju, CI/CD in večnitnosti v emulaciji

Za zagotovitev kakovosti je ključnega pomena, da se testni zagon izvede na arhitekturi Arm64 : dejanski strojni opremi z operacijskim sistemom Windows na ARM ali združljivem virtualnem stroju, tako da rezultati odražajo realnost končnega uporabnika.

Gradnja in testiranje na istem računalniku poenostavi življenje, čeprav lahko svojo infrastrukturo gradnje razširite tudi za ustvarjanje binarnih datotek za več platform in jih nato namestite na namensko testno okolje Arm64.

Če imate nenavadne težave s sinhronizacijo z večnitnimi aplikacijami, eksperimentirajte s strogimi ali zelo strogimi večjedrnimi načini ali pa vsilite enojedrni način, da vidite, ali težava izgine. To je uporabna tehnika za zožitev možnosti tekmovalnosti.

Za hitro nastavitev testnega okolja Azure ponuja orodje za hiter začetek za ustvarjanje navideznega računalnika Windows na ARM . To je priročen način za izvajanje testiranja neomejene vgradnje ali ročnega testiranja, ko nimate na voljo fizične strojne opreme.

Namestitev gonilnikov za Windows in shranjevanje: x86/x64 v primerjavi z ARM

Če se pri nameščanju sistema Windows 11 ali 10 v računalnik Intel ne prikažejo nobeni pogoni , boste morda morali med čarovnikom za namestitev naložiti gonilnik Intel Rapid Storage Technology (IRST) ali onemogočiti Intel VMD. To velja samo za platforme x86/x64, ne pa za naprave ARM.

Tipičen postopek z IRST vključuje prenos paketa s proizvajalčeve strani za podporo , njegovo ekstrahiranje na pogon USB in uporabo možnosti »naloži gonilnik« na zaslonu, kjer vas program vpraša, kam želite namestiti Windows, da namestitveni program zazna diske.

Lahko pa onemogočite napravo Intel Volume Management Device (VMD) v BIOS-u : vstopite s tipko F2, preklopite v napredni način s tipko F7, pojdite v razdelek VMD in onemogočite krmilnik; shranite s tipko F10. Terminologija se lahko nekoliko razlikuje med modeli in UEFI-ji.

Pri modelih z Intel Lunar Lake ročna namestitev gonilnikov IRST ni podprta . Priporočljivo je uporabljati sistem Windows 11 24H2 ali novejši in nadaljevati s standardno namestitvijo brez nalaganja tega gonilnika.

Če pa je vaš računalnik ARM (na primer s procesorjem Qualcomm), ASUS priporoča uporabo programa Cloud Recovery iz MyASUS v okolju WinRE za ponovno namestitev sistema namesto tradicionalnega poteka dela IRST, ki za to arhitekturo ni uporaben.

oglejte si nameščene gonilnike z driverquery
Povezani članek:
Kako si ogledati vse nameščene gonilnike v sistemu Windows z DriverQuery in drugimi orodji