Hi, I am new to this forum, I found it by coincidence when looking for more information on windows drivers.
In advance, I am not an professional but am experienced development of software, I read in the FAQ that this is a good idea to mention early.
I am currently working on an virtual serial (COM port) driver for an project.
I read a lot about it, and what I do seems to be not the usual "virtual com driver" which just creates two connected virtual ports.
What I need is an driver which lets an user level application create an virtual port on demand, which is available for other applications to use, and all write and read requests including flow control signals should be passed to that application.
I know this could be also achieved using said common drivers, but I want to use this chance to learn more about windows drivers, so far I managed to write an virtual serial port driver where the writes just end in the void and read always returns an fixed string.
My question now is, how can make my application comunicate with the serial port without opening it using CreateFile, since this would block it from being accessed by external programs.
From what I found out about drivers in general, pretty much all communication between applications and drivers are happening trough IOCTL-Codes, which I already implemented for the normal serial port operation and I could just add some more for custom read and writes to the internal buffers, and to read the flow control signals, but for that the application needs to be able to get an handle for the device, without blocking other applications to do the same.
Coincidentally there happens to be also an another related problem, which actually prevents other aplications from being blocked when the port is already opened by one process.
For some reason I am able to open the port in as many applications as I want, which is not the behavior of normal COM ports.
I would appreciate if someone could help me figure this out, an link to some better documentation would also help, I could not find much to this, probably because this is not a common requirement for drivers.