- Les conducteurs Ils doivent être Arm64 : il n'y a pas d'émulation dans le noyau et sans eux le matériel ça ne marche pas.
- L'émulation x86/x64 est configurable : ajustez le cache, le mode hybride et le multithreading pour la compatibilité.
- Limitations connues : Anti-triche, Fax et Scanner, certains antivirus et applications de coquille.
- Développeurs : créez Arm64 natif, résolvez les dépendances et testez sur du matériel/VM ARM.

Si vous avez fait le saut dans une équipe avec Windows 11 sur ARM et que vous avez des difficultés avec un périphérique qui ne fonctionne tout simplement pas, vous n'êtes pas seul : Les pilotes sont la pièce maîtresse et doivent être adaptés à Arm64Bien que de nombreuses applications x86 et x64 fonctionnent parfaitement via l'émulation, les pilotes système ne passent pas par cette couche. Il est donc judicieux de comprendre les règles du jeu.
En plus des pilotes, le support Arm combine plusieurs ingrédients : Émulation configurable, meilleures pratiques de développement, limitations connues et outils de diagnosticDans ce guide, nous avons compilé tout ce que vous devez savoir pour identifier pourquoi une application dépendante d'un périphérique ou d'un pilote échoue, comment affiner l'émulation et ce que les développeurs doivent faire pour compiler nativement pour Arm64.
Que se passe-t-il avec les pilotes dans Windows 11 ARM ?
En Windows sur ARM, Tous les pilotes en mode noyau, les pilotes User-Mode Driver Framework (UMDF) et les pilotes d'impression doivent être compilés pour l'architecture du système d'exploitation.Autrement dit, si le système est Arm64, le pilote doit également être Arm64 ; il n’y a pas de couche d’émulation pour le noyau, donc l’exigence est stricte.
Cela signifie qu'une application x86 peut s'exécuter via l'émulation sans aucun problème, mais Si vous avez besoin de votre propre pilote ou d'un pilote tiers, cette pièce spécifique doit exister en tant qu'Arm64Tant que le pilote n'est pas recompilé pour Arm64, les fonctions qui en dépendent n'apparaîtront pas ou échoueront.
En pratique, les appareils et périphériques ne fonctionneront que si vos chauffeurs sont intégré à Windows 11 ou le fabricant propose des pilotes Arm64 spécifiques. Cela s'applique aux catégories sensibles telles que les antivirus et les antimalwares, les logiciels d'impression ou PDF, technologies d'assistance, utilitaires de disques optiques et logiciels de virtualisation.
Par conséquent, lorsque vous installez un logiciel ou du matériel tiers, Assurez-vous de télécharger et d'installer le pilote du fabricant spécifiquement pour les ordinateurs ArmSi un pilote ne répertorie que la compatibilité x86/x64 ou ne mentionne pas Arm64, il ne fonctionnera probablement pas sur votre ordinateur basé sur ARM.
Les appareils alimentés par ARM sont devenus populaires en raison de leur efficacité énergétique, de leur autonomie de batterie et de leurs NPU pour IAmais Cette efficacité ne remplace pas le besoin de pilotes Arm64 natifs.. Si vous dépendez d'un périphérique critique, vérification avant que son fabricant ne publie le support pour Arm64.

Émulation x86 et x64 sur ARM et comment ajuster la compatibilité
Windows sur ARM exécute les applications Arm de manière native, tandis que Les applications x86 et x64 s'exécutent à l'aide de l'émulationAvec Windows 11, l'émulation x64 est arrivée pour étendre la compatibilité, et avec le moteur Prism sur les appareils Copilot+ avec Snapdragon X, les performances des applications émulées ont été considérablement améliorées par rapport aux générations précédentes.
Si une application se comporte de manière étrange, vous pouvez utiliser le outil de dépannage de compatibilité des programmesCliquez avec le bouton droit sur le fichier .exe et choisissez Dépannage de compatibilité pour essayer les paramètres recommandés ou sélectionner des symptômes spécifiques, tels que le fichier s'ouvre mais a une apparence incorrecte, nécessite des autorisations ou le problème n'est pas répertorié.
De plus, dans l'onglet « Compatibilité » des propriétés de l'exécutable, vous trouverez une section pour Windows 10 sur ARM ou Windows 11 sur ARM. De là, vous pouvez modifier les paramètres d'émulation complets ou activer les paramètres avancés d'expérimenter des options individuelles conçues pour privilégier la stabilité aux performances lorsque des problèmes surviennent.
| Paramètres d'émulation | Que fais-tu |
|---|---|
| Désactiver le cache de l'application | Force le système à recompiler les blocs de code émulés à chaque exécution, en éliminant le cache pour réduire les effets secondaires au détriment des performances. |
| Désactiver le mode d'exécution hybride | Évitez les binaires CHPE avec un mélange de x86 et Arm64 et oblige à n'utiliser que des binaires x86, augmentant la compatibilité avec certaines applications sensibles. |
| Protections lumineuses supplémentaires | Permet des mesures de protection globales qui affectent les métadonnées volatiles et peut influencer les performances en faveur de la stabilité. |
| Compatibilité stricte avec le code auto-modifiable | Il garantit que le code auto-modifiable pour fonctionner correctement en émulation, avec un impact notable sur les performances lorsque ce modèle est fréquent. |
| Désactiver l'optimisation sur les pages RWX | Supprime une optimisation des performances pour code en pages lisibles, inscriptibles et exécutables ce qui peut entrer en conflit avec certaines applications. |
| Désactiver l'optimisation JIT (x64 uniquement) | Option obsolète qui ne sera plus disponible dans les versions futures. |
| Désactiver l'optimisation en virgule flottante (x64 uniquement) | Forcer à émuler x87 avec précision totale de 80 bits, augmentant la précision en FP au prix de performances moindres. |
Vous pouvez également ajuster la manière dont l’application utilise plusieurs cœurs : rapide, strict, très strict ou forcer un seul noyauCes options modifient le nombre de barrières de mémoire utilisées pour synchroniser l'accès entre les threads ; l'augmentation du nombre de barrières réduit les erreurs subtiles au détriment de la vitesse, et le mode monocœur supprime les barrières et sérialise les threads sur un seul cœur.
Si la modification d’une option spécifique fait disparaître l’erreur, Microsoft demande que les détails soient envoyés à woafeedback@microsoft.com pour intégrer ces commentaires dans les futures améliorations de l'émulateur.
Pilotes : noyau, UMDF et impression
Tous les pilotes système doivent correspondre à l'architecture : Il n'y a pas d'émulation dans le noyau WindowsCela a un impact particulier sur la virtualisation et tout scénario nécessitant un accès de bas niveau.
Si une application x86 installe ou nécessite son propre pilote, L'application elle-même peut être démarrée sous émulation, mais les fonctionnalités liées à ce pilote n'apparaîtront pas tant qu'une version Arm64 du pilote n'existera pas.
Pour compiler des pilotes Arm64 avec des garanties, Les développeurs doivent suivre le guide WDK spécifique à Arm64, qui détaille la préparation de l'environnement, les projets et la signature.
Extensions de shell, IME et autres DLL système
Applications qui tentent de se lier à des composants Windows ou injecter des DLL dans les processus système doit compiler ces DLL pour Arm64C'est là que les choses entrent en jeu éditeurs de méthodes de saisie, technologies d'assistance et extensions de shell qui placent des icônes ou des menus contextuels.
Chaque fois que vous chargez du code dans les processus Windows, faire correspondre l'architecture binaire à celle du systèmeLa recompilation de ces DLL garantit que le composant s'exécute de manière native sans dépendre de l'émulation.
Bonnes pratiques avec WOW et détection d'architecture
Un modèle d'erreur courant se produit lorsque l'application détecte qu'elle est sous WOW et suppose à tort que le système est x64. À partir de là, il essaie d'installer sa variante x64, regarde dans la vue du registre natif ou suppose qu'il existe un .NET 64 bits.
Pour éviter de tels échecs, Ne faites pas d'hypothèses sur l'hôte lors de la détection de WOW et minimise les interactions avec les composants natifs du système d'exploitation, sauf si vous contrôlez l'architecture.
Si vous avez besoin de vérifier la compatibilité, utilise l'API isWow64Process2 au lieu de l'isWow64Process d'origineLe premier distingue correctement les combinaisons de processus et d’hôte et aide à déterminer les chemins de code et les vues de journal sans confusion.
Génération de code dynamique et atténuations
L'émulation d'applications de bureau x86 génère des instructions Arm64 lors de l'exécution, donc Le blocage de la génération ou de la modification du code dans le processus rompt la compatibilitéSi votre application active l’atténuation à l’aide de SetProcessMitigationPolicy avec ProcessDynamicCodePolicy, désactivez-la pour autoriser l’émulation.
Si vous pensez que votre application utilise des techniques d’auto-modification, permet une compatibilité stricte avec le code auto-modifiable dans les paramètres d'émulation avancés, sachant que cela aura un impact significatif sur les performances.
Prise en charge des machines virtuelles et d'Hyper-V
La plate-forme Windows Hypervisor n'est pas prise en charge. Qualcomm 835 sur la plateforme PC mobile, Hyper-V ne fonctionnera donc pas sur ce matériel spécifique. Microsoft indique qu'il continue d'investir dans ces technologies pour les futurs chipsets Qualcomm.
Limitations connues : jeux, antivirus, fax et scanner, etc.
Certains jeux ne fonctionneront pas si Votre pilote anti-triche n'a pas de version pour Windows 11 sur ARM.Vérifiez auprès de l'éditeur du jeu ou vérifiez la compatibilité sur worksonwoa.com, une ressource collaborative qui suit l'état des applications et des jeux.
Sous Windows 10 sur ARM, Les applications x64 ne fonctionnent pas: Vous avez besoin des versions Arm64, Arm32 ou x86. Il existe également des restrictions, telles que OpenGL supérieur à 1.1 et des packages anti-triche sans prise en charge ARM. Sous Windows 11 sur ARM, l'émulation x64 élargit la gamme d'applications prises en charge.
Applications qui personnalisent le shell Windows, telles que certains IME, technologies d'assistance ou intégrations cloud, peuvent présenter des problèmes s'ils n'offrent pas de binaires Arm64La décision finale appartient au développeur de chaque application.
Il existe également des suites antivirus tierces que vous ne pourrez pas installer à moins qu'elles ne soient créé ou mis à jour pour ARMParallèlement, Windows Security offre une protection intégrée pendant toute la durée de vie de votre appareil.
Une particularité moins connue : Cette fonction Fax et scanner Windows n'est pas disponible sur les ordinateurs avec Windows 11 sur ARM, il est donc conseillé de rechercher des alternatives.
Applications natives disponibles et le nouveau moteur Prism
L'écosystème propose désormais plus de builds Arm64 natives que jamais, avec Microsoft 365 dans son exécution la plus rapide dans Teams, Outlook, Word, Excel, PowerPoint, OneDrive et OneNote, ainsi que Chrome, Slack, Spotify, Zoom, WhatsApp, Blender, Affinity Suite et DaVinci Resolve, entre autres.
Pour les applications sans binaire natif, le nouveau moteur d'émulation Prism améliore les performances des applications émulées sur les appareils Copilot+ avec Snapdragon X et à venir sur davantage d'appareils Windows 11.
Si vous souhaitez vérifier quelles applications et quels jeux fonctionnent, Consultez la liste en direct sur worksonwoa.comIl s'agit d'un projet open source tiers auquel Microsoft contribue également en fournissant des données de compatibilité.
Comment porter des applications et des pilotes sur Arm64
Pour créer une version native de votre application, dans Visual Studio, ajoutez un Plateforme de solutions ARM64 de Configuration Manager, copiez la configuration depuis x64 et créez de nouvelles plateformes de projet. Compilez ensuite et corrigez les erreurs.
Une fois que vous avez intégré Release, les plantages sont susceptibles de provenir de Dépendances qui n'offrent pas de binaires Arm64Ils devront être mis à jour, recompilés ou remplacés selon les besoins.
Si vous souhaitez vérifier le binaire résultant, utilisez PowerShell et courir dumpbin / en-têtes sur le fichier .exe pour vérifier que l'en-tête indique une machine AA64 (ARM64). Cette vérification rapide permet de vérifier que vous n'utilisez pas la mauvaise variante.
Les tests et le débogage sont plus faciles sur une machine Arm. Si vous développez sur x86/x64, Utiliser le débogage à distance sur un périphérique Windows ou une machine virtuelle sur ARMMicrosoft documente les stratégies dans son guide de débogage Arm.
Comme prérequis recommandés, utilisez Visual Studio 2022 v17.4 ou version ultérieure avec prise en charge native d'Arm64 (VS 17.10 Preview apporte des améliorations) et, si vous le préférez, LLVM Clang 12+ pour la compilation et la liaison. La chaîne d'outils native offre des performances supérieures à celles des versions émulées.
Quant aux frameworks, ils sont supportés .NET 7, .NET 6 LTS, .NET 5.0.8+ et .NET Framework 4.8.1Vous pouvez également compiler C++ avec clang-cl, qui maintient la compatibilité ABI avec MSVC.
Dépendances, Arm64EC et aide externe
Lorsqu'une bibliothèque vous empêche de compiler, le recompiler en interne pour Arm64 S'il s'agit de votre propre version, demandez au tiers une nouvelle version si elle est commerciale, ou recherchez des alternatives compatibles si elle est open source.
Avant de changer de pile, vérifiez si vcpkg a maintenant une version mise à jour avec Arm64, et si ce n'est pas le cas, pensez à contribuer au support. De nombreuses communautés apprécieraient votre aide.
En tant que stratégie intermédiaire, Arm64EC vous permet de mélanger votre application recompilée avec des dépendances x64 qui s'exécutent en émulation dans le même processus. Il n'est pas possible de les combiner dans l'autre sens (on ne peut pas utiliser de dépendances Arm64 pures dans un processus x64).
Si vous avez besoin d'aide, Linaro collabore avec des entreprises et des communautés pour permettre l'utilisation de logiciels sur ARMVous pouvez ouvrir une demande sur leur Service Desk pour explorer la prise en charge des packages Windows-on-ARM manquants.
Tests sur matériel ou VM, CI/CD et multithreading en émulation
Pour garantir la qualité, il est essentiel que le le test passe s'exécute sur l'architecture Arm64: du matériel réel exécutant Windows sur ARM ou une VM compatible, afin que les résultats reflètent la réalité de l'utilisateur final.
Construire et tester sur la même machine simplifie la vie, même si vous pouvez également Étendez votre infrastructure de build pour générer des binaires multiplateformes puis les déployer sur un banc d'essai Arm64 dédié.
Si vous rencontrez des problèmes de synchronisation rares avec des applications multithread, essayez modes multicœurs stricts ou très stricts, ou forcer le mode monocœur pour voir si le problème disparaît. C'est une technique utile pour limiter les situations de concurrence.
Pour mettre en place rapidement un environnement de test, Azure propose un démarrage rapide pour créer une machine virtuelle Windows sur ARMC'est un moyen pratique pour les tests CI ou manuels lorsque vous ne disposez pas de matériel physique.
Installation des pilotes Windows et de stockage : x86/x64 ou ARM
Si vous installez Windows 11 ou 10 sur un ordinateur Intel aucune unité n'apparaît, vous aurez peut-être besoin Chargez le pilote Intel Rapid Storage Technology (IRST) pendant l'assistant ou désactivez Intel VMD. Ceci s'applique uniquement aux plateformes x86/x64, et non aux appareils ARM.
La procédure typique avec IRST consiste à téléchargez le package depuis la page d'assistance du fabricant, l'extraire dans une mémoire USB et utilisez l'option de chargement du pilote sur l'écran qui demande où vous souhaitez installer Windows afin que le programme d'installation détecte les disques.
En alternative, il est possible désactiver Intel Volume Management Device (VMD) sur BIOSEntrez avec F2, passez en mode avancé avec F7, accédez à la section VMD et désactivez le pilote ; enregistrez avec F10. La nomenclature peut varier légèrement selon les modèles et les UEFI.
Sur les modèles avec Intel Lunar Lake, L'installation manuelle des pilotes IRST n'est pas prise en chargeIl est recommandé d'utiliser Windows 11 24H2 ou supérieur et de procéder à une installation standard sans charger les pilotes.
Cependant, si votre ordinateur est ARM (par exemple, avec un processeur Qualcomm), ASUS indique d'utiliser le Récupération dans le cloud de MyASUS sur WinRE de réinstaller le système au lieu du flux traditionnel avec IRST, qui ne s'applique pas à cette architecture.
Écrivain passionné par le monde des octets et de la technologie en général. J'aime partager mes connaissances à travers l'écriture, et c'est ce que je vais faire dans ce blog, vous montrer toutes les choses les plus intéressantes sur les gadgets, les logiciels, le matériel, les tendances technologiques et plus encore. Mon objectif est de vous aider à naviguer dans le monde numérique de manière simple et divertissante.

