After a year of guessing on what will work, and what won’t on Windows 10 on ARM, we have a bit of insight now about the initial limitation of this new hardware platform. While Microsoft has always said that it’s about Windows 10 & X86, things a little more complicated. You might end up calling it Windows 10 “Limited” after this. I have a bad feeling that Microsoft is going to rush with this, but we still have 6 months to go. Let’s hope for good!
What doesn’t work on Windows 10 ARM out of the BOX?
It would be wrong to put it like “What doesn’t work on Windows 10 ARM?”. They work, but developers will have to take an effort to make it align with the new architecture.
64-bit apps won’t work:
Unlike Windows 10 S, you won’t have to upgrade them to anything like Windows 10 ARM Pro to run Windows Desktop Application. ARM does support desktop apps, but it can only run 32-bit apps i.e. anything that works on x86, and not x64. Through it’s planned for future. Interesting to note this though:
The WOW64 layer of Windows 10 allows x86 code to run on the ARM64 version of Windows 10. x86 emulation works by compiling blocks of x86 instructions into ARM64 instructions with optimizations to improve performance
Drivers need to be re-compiled:
While x86 Apps work because the WOW64 layer does the hard work, drivers aren’t supported that way. User-Mode Driver Framework (UMDF) drivers and print drivers must be compiled to match the architecture of the OS. If an x86 app has a driver, then that driver must be recompiled for ARM64.
Apps with Shell Interactions:
If your App is trying to connect to Windows Components or load DLL into Windows Processes, developers will need to recompile those DLLs to match the architecture of the system; i.e. ARM64. Typically, these are used by input method editors (IMEs), assistive technologies, and shell extension apps (e.g. to show cloud storage icons in Explorer or a right-click Context menu).
Hyper-V is not supported in Windows 10 on ARM
Anything before Directx 9 will not be supported:
Windows 10 on ARM supports DirectX 9, DirectX 10, DirectX 11, and DirectX 12 only. Anything which has his foot in the history will have to travel ahead in future and upgrade them. As a matter of fact, even hardware-accelerated OpenGL is not supported.
Looking at these restrictions, and so on, I am guessing it will be a rough one year ahead for this platform. Let’s see how it goes. What do you think about it?