after browsing around I could not find any answer to my issue.
I'm writing a program in C# to access a serial device. The serial device comes with a legacy DLL probably written in C++ that provides an OpenDevice (which I call via DLLImport). The device is connected to a USB port via a Prolific USB to serial converter.
My problem is that 1 out of 5 times, the OpenDevice fails when I run my application. I have workaround to call it until it succeeds and it never goes beyond 3 or 4 tries.
By monitoring the serial port with Portmon I noticed that:
1) when running the application in debug mode from Visual studio the Com port is open from my process (MyApplication.EXE)
2) when running from command line the Com port communication belongs to windows print spooler service (spoolsv.exe) but Portmon also tracks an open command from MyApplication.EXE and here the collision happens: I'm suprised to see that the main communication
is managed by spoolsv.exe so it is not just spoolsv.exe running in the background: I'm calling it!
3) the demo software from the supplier uses the same DLL but it is written in C++ and when I run it spoolsv.exe does not show up
Does anybody have an insight on serial port handling in .NET when a legacy DLL and a serial to USB converter are on the path? I would like to connect directly
View Complete Post