Hello Mike,
I've tested your driver installation and replicated the behavior. It seems that our Driver feature (which makes use of standard Windows Installer support for drivers install ) is not compatible with your kernel mode driver. What I discovered was that your driver is indeed installed but only partial: its binaries are installed but the driver service is not installed at all. I've tried troubleshooting this but unfortunately didn't find anything useful.
My assumption is that the standard Windows Installer support for drivers do not support drivers signed with a SHA256 certificate, thus the driver service fails to install due to an invalid signature. Probably this is why you get the "Windows can't verify the publisher of this driver software" error during installation.
However, as a workaround I was able to create two custom actions to install and uninstall the driver by simply calling the "InstallHinfSection" function of the "SETUPAPI.DLL". More exactly a call like this:
Code: Select all
RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 132 path-to-inf\infname.inf
to install the driver and like this to uninstall it:
Code: Select all
SETUPAPI.DLL,InstallHinfSection DefaultUninstall 132 path-to-inf\infname.inf
Have a look on
"Using an INF File to Install a File System Filter Driver" and
"Using an INF File to Uninstall a File System Filter Driver" articles.
I just deleted your driver definition from "Drivers" page and configured in "Custom Actions" page two custom actions like this:
1. one "Launch file" custom action with sequence configured as
deferred and with
no impersonation; the action is scheduled after "Install Execution Stage" -> "Add Resources" action group and configured as it follows:
- File to launch: rundll32.exe
Command Line: SETUPAPI.DLL,InstallHinfSection DefaultInstall 132 [#driverInstall.inf]
this action will install the driver at install time and must be conditioned to execute only on install
2. one "Launch file" custom action with sequence configured as
deferred and with
no impersonation; the action is scheduled before "Install Execution Stage" -> "Remove Resources" action group and configured as it follows:
- File to launch: rundll32.exe
Command Line: SETUPAPI.DLL,InstallHinfSection DefaultUninstall 132 [#driverInstall.inf]
this action will uninstall the driver at uninstall time and must be conditioned to execute only on uninstall
Let us know if this helped.
All the best,
Daniel