Windows 10 在 ARM 平台上不支持 x64 應用與諸多限制
近日微軟似乎不小心發表了：「Limitations of apps and experiences on ARM」的文章，文內記載著 Windows 10 作業系統在 ARM 平台的諸多限制，但也旋即被微軟給刪除。
只不過該文章已經被 Web Archive – Internet Archive 記錄並備份下來，文內記載著 ARM 平台透過模擬的方式運行 x86，或者由軟體開發商編譯 ARM64 的程式才能順利運作，且不支持 x64 的應用。
且不支持使用 OpenGL 1.1 版本以下的應用，若該遊戲有反作弊機制，也無法順利運行；虛擬化的 Hyper-V 也無法在這平台上運行。
應該這麼說，ARM 平台的 Windows 10 筆電，可帶給用戶隨時連網與超級長效的續行力，較適合雲端使用的情境。
Windows 10 on ARM has the following necessary limitations:
- Only ARM64 drivers are supported. As with all architectures, kernel-mode drivers, User-Mode Driver Framework (UMDF) drivers, and print drivers must be compiled to match the architecture of the OS. While ARM OS has the capabilities to emulate x86 user-mode apps, drivers implemented for other architectures (such as x64 or x86) are not currently emulated and thus not supported on this platform. Any app that works with its own custom driver would need to be ported to ARM64. In limited scenarios, the app may run as x86 under emulation but the driver portion of the app must be ported to ARM64. For more info about compiling your driver for ARM64, see Building ARM64 Drivers with the WDK.
- x64 apps are not supported. Windows 10 on ARM does not support emulation of x64 apps.
- Certain games don’t work. Games and apps that use a version of OpenGL later than 1.1 or that require hardware-accelerated OpenGL don’t work. In addition, games that rely on “anti-cheat” drivers are not supported on this platform.
- Apps that customize the Windows experience may not work correctly. Native OS components cannot load non-native components. Examples of apps that commonly do this include some input method editors (IMEs), assistive technologies, and cloud storage apps. IMEs and assistive technologies often to hook into the input stack for much of their app functionality. Cloud storage apps commonly use shell extensions (for example, icons in Explorer and additions to right-click menus); their shell extensions may fail, and if the failure is not handled gracefully, the app itself may not work at all.
- Apps that assume that all ARM-based devices are running a mobile version of Windows may not work correctly. Apps that make this assumption may appear in the wrong orientation, present unexpected UI layout or rendering, or failing to start altogether when they attempt to invoke mobile-only APIs without first testing the contract availability.
- The Windows Hypervisor Platform is not supported on ARM. Running any virtual machines using Hyper-V on an ARM device will not work.
The following table lists some common issues and offers suggestions on how to resolve them.
Issue Solution Your app relies on a driver that isn’t designed for ARM. Recompile your x86 driver to ARM64. See Building ARM64 Drivers with the WDK. Your app is available only for x64. If you develop for Microsoft Store, submit an ARM version of your app. For more info, see App package architectures. If you’re a Win32 developer, distribute an x86 version of your app. Your app uses an OpenGL version later than 1.1 or requires hardware-accelerated OpenGL. x86 apps that use DirectX 9, DirectX 10, DirectX 11, and DirectX 12 will work on ARM. For more info, see DirectX Graphics and Gaming. Your x86 app does not work as expected. Try using the Compatibility Troubleshooter by following guidance from Program Compatibility Troubleshooter on ARM. For some other troubleshooting steps, see the Troubleshooting x86 apps on ARM article. Your x86 app does not detect that it’s running on ARM. Use IsWow64Process2 to determine if your app is running on ARM. Your UWP ARM32 app does not work as expected. See Troubleshooting ARM32 apps on ARM to learn how to get your app to work properly on ARM.