Our solution has the following architecture:
Driver is the core of the whole solution. It receives commands from Service and registers virtual serial ports in operating system.
Managing of Service can be done from within any application with the aid of Developer API.
So, Service is the layer between Developer API and Driver and it translates all requests from user applications to the Driver.
This architecture allows creating virtual serial ports during system startup, not waiting for user to logon. Also it is possible to create virtual serial ports by any unprivileged user.
Virtual serial ports look like real serial ports for any user application.