> user friendly single click installers that install an app and a filter driver are now frowned upon
They’re not frowned upon, there just isn’t support for class filters in device configuration. By all means, do whatever you were doing before.
Where can I learn more about the configuration model?
We don’t have detailed documentation on the underlying implementation, but we’ve got an overview here: https://msdn.microsoft.com/en-us/windows/hardware/drivers/install/using-a-configurable-inf-file
What’s the recommended install model to use in this scenario and how does driver
installation integrate with the installation experience?
The thing to keep in mind is that one of the design goals of configuration is to decouple things like software installation from the actual driver installation. You can have an exe that wraps the two of them (this is great), but you should still have the standalone driver package that does nothing except bring the device up to a functional state. The idea being that if you were bring up your device on a OneCore SKU, the actual driver would still work, you’d just need to figure out the software part if you wanted it for that SKU. I hope I’m explaining it well - exe that installs a driver and then installs some piece of software (or vice versa): recommended and configurable; an INF that uses a coinstaller to install software inline with the driver install: not recommended and setupapi-dependent.
From your exe, install the driver with DiInstallDevice or DiInstallDriver. It will automatically pick the correct installation mechanism. You can determine if your INF itself is compatible with configuration by using InfVerif to check if it’s universal (https://msdn.microsoft.com/windows/hardware/drivers/devtest/infverif). Keep in mind that some *classes* will always fall back to setupapi (display and media come to mind), even if your INF works with configuration.
Microsoft to install drivers using windows update is impossible for a class
filter driver
This is true because Windows Updates target specific hardware devices, and presumably your filter driver does not. Otherwise, it would work, even if using setupapi
So… I *still* would like to know how I install a device into a custom device
class on NanoServer.
[ClassInstall32] actually works just fine with configuration. You just can’t use a class installer for your class, since installer DLLs are specifically non-configurable. We discourage the use of custom classes in most situations though, but I’ll leave that up to your discretion.
I am looking into this documentation issue