Improve compatibility of NVDA for Windows 10 on ARM64. #7508
Merged
Conversation
…A to inject in-process, therefore if we have not injected, support speak typed characters the same way we currently do for UWB apps (I.e. with ToUnicodeEx). Of course this is only possible on Windows 10 Creators update and above as ToUnicodeEx had a bug before that.
…lows NVDA's 64 bit specific code for SysListview32 etc to function on ARM64 when being emulated as x86.
Contributor
|
Hi, I think the official name for this is Windows 10 on ARM64. Keeping an eye on this, as it has huge potential in 2019 and later. Thanks.
Edit:
Tidied up email reply.
|
feerrenrut
approved these changes
Aug 21, 2017
michaelDCurran
added a commit
that referenced
this pull request
Aug 21, 2017
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary of the issue:
Windows 10 (Desktop) will be available for running on ARM64 devices in the near future. This version of Windows (code named Cobalt) Will be able to run any existing x86 application through an x86 emulation layer similar to WOW64 on x86-64 builds of Windows.
More info: https://channel9.msdn.com/Events/Build/2017/P4171
However there are the following limitations:
Injection
NVDA cannot inject into any ARM64 or ARM32 process (as we do not have any dlls compiled for these architectures, nor is it currently possible to do so with VS / windows SDK).
The largest limitation here is that speaking of typed characters does not work in ARM processes, but does for other x86 ones.
We definitely use injection for other things as well, but these are not as important anymore for core Windows Operating System reatures. Note that all 3rd party desktop applictions on ARM devices must be x86. Therefore, as an example, NVDA will still work fine with Mozilla Firefox, or in deed even Microsoft Office.
64-bit identification
NVDA does not currently treat ARM64 as a 64-bit architecture.
This means that where we have 64-bit specific code, such as for SysListivew32, it is not used and therefore these controls remain inaccessible. Examples being the list in Registry Editor, and the list in the Details tab of Task Manager.
Description of how this pull request fixes the issue:
Testing performed:
Known issues with pull request:
Change log entry:
New features: