The current way to get a version information is to open DCO device and make IOCTL call. This has a few issues:
If DCO device is already in use, an another app won't be to get the version, since the device is exclusive
With multiple DCO devices there is a high chance that \\.\ovpn-dco device, which we use to get version information, is already in use. To open another device, we use via device interface enumeration, which requires a lot of boilerplate code to work.
To make it easier for userspace to get the device version, create non-exclusive control device which supports single IOCTL to get the version number. This device is created when the first network device is created and removed with the last network device.
The current way to get a version information is to open DCO device and make IOCTL call. This has a few issues:
\\.\ovpn-dco
device, which we use to get version information, is already in use. To open another device, we use via device interface enumeration, which requires a lot of boilerplate code to work.To make it easier for userspace to get the device version, create non-exclusive control device which supports single IOCTL to get the version number. This device is created when the first network device is created and removed with the last network device.