#3192 PerfCounterManifest 64-bit support


During the PerfCounterManifest custom action the MsiExec.exe is always invoked from a 32-bit process regardless of the Win64 flag of the component.

This has been reported to the the mailing list before:

It came to my attention because the RegisterPerformManifest apparently failed for one Windows 8 64-bit user:

MSI (s) (14:BC) [07:31:02:573]: Executing op: ActionStart(Name=RegisterPerfmonManifest,,)
Action 7:31:02: RegisterPerfmonManifest.
MSI (s) (14:BC) [07:31:02:574]: Executing op: CustomActionSchedule(Action=RegisterPerfmonManifest,ActionType=3073,Source=BinaryData,Target=CAQuietExec,CustomActionData="lodctr.exe" /m:"C:\Program Files\myapp\test.man" "C:\Program Files\myapp")
MSI (s) (14:EC) [07:31:02:576]: Invoking remote custom action. DLL: C:\WINDOWS\Installer\MSI8057.tmp, Entrypoint: CAQuietExec
MSI (s) (14:50) [07:31:02:576]: Generating random cookie.
MSI (s) (14:50) [07:31:02:579]: Created Custom Action Server with PID 4288 (0x10C0).
MSI (s) (14:74) [07:31:02:597]: Running as a service.
MSI (s) (14:74) [07:31:02:599]: Hello, I'm your 32bit Elevated custom action server.
CAQuietExec: Error 0x80070216: Command line returned an error.
CAQuietExec: Error 0x80070216: CAQuietExec Failed
CustomAction RegisterPerfmonManifest returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox)
Action ended 7:31:02: InstallFinalize. Return value 3.

As this seems to work for everybody else the reason for the failure might not actually be the custom action. However I believe it would be better to run the command from a 64-bit process when using a 64-bit msi with the Win64 component flag set to true.


  • Rob Mensching

    Rob Mensching - 2013-03-04
    • Milestone: v3.7 --> v3.8
  • Rob Mensching

    Rob Mensching - 2013-08-21
    • Status: open --> migrated

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.

No, thanks