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 windows 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 from
MyApplication 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 (and open port never fails!)
I do not understand what is the trigger that makes the calls going through spoolsv.exe or directly to the port and
View Complete Post