KeppySoftware/OmniMIDI

OmniMIDI fails to apply the BM patch to an application located in a exFAT partition

Fried-Potato-Chip opened this issue · 3 comments

Problem
OmniMIDI cannot patch an executable located in a exFAT partition with the BM patch. It shows the error "Your current user permissions don't allow you to do that!", while being with user and administrator permissions. This isn't a visual problem, because the application doesn't recognize the patch.

Steps to reproduce

  1. Open OmniMIDI configurator
  2. Click Extensions<Windows Multimedia Wrapper<Patch an application (under 'Standard performance improvement patch (BM)')
  3. Select any executable (.exe) in a exFAT partition
  4. Error

Expected behavior
The file should be patched without any issue.

Screenshots/Videos
m

Environment

  • Operating system: Windows 11 Pro 22H2 Build 22621.1848
  • CPU: Intel(R) Core(TM) i5-2500 CPU @ 3.30GHz, 3311 Mhz, 4 Core(s), 4 Logical Processor(s)
  • RAM: 16.0 GB
  • MIDI application: Any application, although tested with "PFA-1.1.0-x86_64.exe" and "PFA-1.1.0viz-x86_64.exe"
  • Version of the driver: OmniMIDI 14.7.1

Additional context
I've tried running the configurator as TrustedInstaller and also taking ownership of winmm.dll on SysWOW64, but the issue was still happening.
Moving the executable (to be patched) to a NTFS partition solved the issue.

The way OmniMIDI patches executables in different since version 14.6.14.

Instead of creating the wrapper in the target directory (WinMMWRP cloaked as winmm.dll), it symlinks itself under the name of the API (OmniMIDI.dll > winmm.dll).

exFAT, as far as I'm aware of, does not support symlinks, so that's not supported.

I forgot about that. And you are right, I think only NTFS partitions support symlinks. So the only thing that you can add is a better error description for this scenario.

Will do in the next release, thank you for your feedback.