I'm writing a C# WPF graphical interface that is required, by the client, to use a number of close sourced dependencies. Some of these dependencies do not have 64bit versions. However, there is a segment of the code that requires that it be compiled in 64bit to allow it access to more memory. To overcome this problem I have compiled most of the application in 32bit and for the parts that need to be 64bit I've split them into a separate dll and I've used a COM bridge. I followed the following guide to create the bridge:
https://www.codeproject.com/Tips/1199539/Using-bit-DLLs-in-bit-Processes-Using-Out-of-proce
This all works fine I'm able to invoke methods in the 64bit dll from the 32bit dll via the com bridge. However, I've run into a problem. The 64bit dll that is registered via regasm is unable to access hardware resources.
The COM registered DLL references a set of assemblies that interface with an xray detector. These assemblies enable a .NET program to scan for and connect to xray detector devices connected to the PC. The crux of the problem is this:
When the methods in this 64bit dll are called via the COM bridge the dll is unable to find or connect to the xray hardware connected to the PC. However, if I create a test program that references this assembly directly the problem goes away.
Therefore my question is this: Is there some permission I need to give a COM registered DLL to allow it to access hardware resources?