Event details
How can I determine if any apps rely on CHPE?
- David_CallaghanMar 05, 2025Former Employee
Great question. If you want to determine whether or not an app relies on CHPE you need to figure out if it is a 32-bit x86 app vs. other non CHPE related x64 or Arm. Perhaps the easiest option to consider is try to obtain the latest x64 or Arm64 version if available.
If you are unsure about an existing app, you can check to see if it is x86 (32-bit) by using Task Manager. Launch Task Manager and select the Details tab view and observe the Architecture column with values like Arm64 (ARM), x64 (64-bit) or x86 (32-bit). If the application, you are investigating is x86, its 32-bit and could be using CHPE. Another way to look at it, if its Arm64 or x64 its not using CHPE. You must still disable CHPE to receive hotpatch updates, however you should not expect to see any major performance or compatibility issues related to disabling CHPE for the x64 and Arm native (e.g. non x86 32-bit) applications being examined.
If you're wondering what is CHPE? Windows OS CHPE (Compiled Hybrid Portable Executable) is a technology introduced to improve compatibility and performance for 32-bit applications on 64-bit Arm CPU based Windows systems. (If your PC uses an AMD or Intel CPU then the CHPE doesn't apply you.) Enabling or disabling CHPE flag discussed in the video doesn't determine that your application(s) will or won't work. As mentioned, CHPE is designed to improve compatibility and performance. We recommend that you test the application with the CHPE disabled before widely deploying hotpatch on Arm64 PCs to ensure that there are no unexpected compatibility issues with any of the x86 app(s) you or your users rely on.