Hi, tldr: a fix for Trac 1321
Currently tapctl.exe does the following to create an adapter and install the driver on it. 1. Create a device info structure 2. Set the hardware id on it 3. Search the driver store for the latest matching driver 4. Select the driver, set it in the device info and then call SetupDiCallClassInstaller() with (a) DIF_REGISTERDEVICE (b) DIF_REGISTER_COINSTALLERS (c) DIF_INSTALL_INTERFACES (d) DIF_INSTALLDEVICE As per setupapi.dev.log, it appears that step 4 (d) is failing with some access error to the driver store unless elevated to SYSTEM (see Trac 1321). This leaves the adapter not fully configured. Hard to say exactly what fails as none of the function calls return any error. I propose to replace 4(d) with a call to DiInstallDevice() instead. My tests show this completes without error. This also has an advantage that we could call it with driver_info = NULL which will force the system to use the latest matching driver. That would also eliminate step 3 which is right now very inefficient, though not required to fix the problem at hand. If this sounds sane, I'll submit a patch. Selva
_______________________________________________ Openvpn-devel mailing list Openvpn-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openvpn-devel