Windows 10 on ARM promises to make laptop computers cheaper and longer-lasting than ever before. Running Windows 10 on ARM chips, the exact same silicon found inside smartphones, should make all-day battery life in a tiny form factor possible.
But changing the underlying architecture of an operating system to support a different kind of processor isn’t easy, and we’ve always known that ARM-powered Windows PCs will have some limitations compared to x86. The million-dollar question has been exactly what those limitations are, and Microsoft just accidentally gave us the answers.
Although Microsoft and Qualcomm revealed ARM-based PCs late last year, no machines are on sale quite yet, and since that press conference last year, we haven’t had any more details about exactly how Windows 10 on ARM would work.
Over the weekend, it appears that Microsoft accidentally published a support document outlining all the limitations of Windows 10 on ARM vs x86. The document was quickly pulled, but not before being scraped by web caches. Here are all the limitations Microsoft outlined:
- 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.