@@ -846,16 +846,21 @@ def initialize() -> None:
846846 # Manually start the in-process manager thread for this NVDA main thread now, as a slow system can cause this action to confuse WX
847847 _remoteLib .initInprocManagerThreadIfNeeded ()
848848 arch = winVersion .getWinVer ().processorArchitecture
849- if arch != "x86" and ReadPaths .coreArchLibPath != ReadPaths .versionedLibX86Path :
850- _remoteLoaderX86 = _RemoteLoader (ReadPaths .versionedLibX86Path )
851- elif arch in ("AMD64" , "ARM64" ) and ReadPaths .coreArchLibPath != ReadPaths .versionedLibAMD64Path :
852- _remoteLoaderAMD64 = _RemoteLoader (ReadPaths .versionedLibAMD64Path )
853- elif arch == "ARM64" and ReadPaths .coreArchLibPath != ReadPaths .versionedLibARM64Path :
854- _remoteLoaderARM64 = _RemoteLoader (ReadPaths .versionedLibARM64Path )
855- # Windows on ARM from Windows 11 supports running AMD64 apps.
856- # Thus we also need to be able to inject into these.
857- if winVersion .getWinVer () >= winVersion .WIN11 :
849+ if arch == "AMD64" :
850+ if ReadPaths .coreArchLibPath != ReadPaths .versionedLibX86Path :
851+ _remoteLoaderX86 = _RemoteLoader (ReadPaths .versionedLibX86Path )
852+ if ReadPaths .coreArchLibPath != ReadPaths .versionedLibAMD64Path :
858853 _remoteLoaderAMD64 = _RemoteLoader (ReadPaths .versionedLibAMD64Path )
854+ elif arch == "ARM64" :
855+ if ReadPaths .coreArchLibPath != ReadPaths .versionedLibX86Path :
856+ _remoteLoaderX86 = _RemoteLoader (ReadPaths .versionedLibX86Path )
857+ if ReadPaths .coreArchLibPath != ReadPaths .versionedLibAMD64Path :
858+ # Windows 10 on ARM does not support AMD64 emulation.
859+ # Thus only start the AMD64 remote loader if on Windows 11 or above.
860+ if winVersion .getWinVer () >= winVersion .WIN11 :
861+ _remoteLoaderAMD64 = _RemoteLoader (ReadPaths .versionedLibAMD64Path )
862+ if ReadPaths .coreArchLibPath != ReadPaths .versionedLibARM64Path :
863+ _remoteLoaderARM64 = _RemoteLoader (ReadPaths .versionedLibARM64Path )
859864
860865
861866def terminate ():
0 commit comments