Hi,
We have an existing NDIS MUX intermediate driver that works well on Windows 7 and 8.1. The driver consists of an NDIS intermediate driver with protocol lower edge and virtual miniport upper edge, and uses a notify object (DLL) which is registered with the protocol driver. From the notify object’s ApplyProperties() method we call NetCfgClassSetup::Install() to create the virtual miniport instance. On Windows 10 this call consistently fails with 0x80070057 (E_INVALIDARG).
setupapi.app.log indicates that installation was started. It shows several steps including DIF_REGISTERDEVICE, DIF_ALLOW_INSTALL, DIF_INSTALLDEVICEFILES, DIF_REGISTER_COINSTALLERS, DIF_INSTALLINTERFACES. But DIF_INSTALLINTERFACES is followed by DIF_REMOVE although the log does not indicate any errors. Any ideas why this happens?
From this thread https://www.osronline.com/showthread.cfm?link=265884 I understand that network driver installation has changed in W10. However, our implementation is still compliant with the available documentation. Is there any documentation available on what has been changed specifically?
Another interesting observation is that the NDIS MUX driver sample from the WDK shows the same issue.
Any comments are welcome.
Thanks.
Udo