I'm using a dll to install a driver that's packaged inside the msi. When I schedule the custom-action for after InstallFinalize it succeeds, but if I schedule it either 1) after InstallFiles 2) after InstallFiles, execute=deferred, 3) after InstallFiles, execute=deferred, impersonate=no, or 4) before InstallFinalize it fails with "file not found" for the .inf file.
I've read This SO post and this page, but still don't understand how I get my driver to be installed.
If I use after InstallFinalize then if for some other reason an error is returned it's too late to abort the installation and it's botched.