none
I use DIFx to install my driver. Is it being dropped with no alternative?? RRS feed

  • Question

  • Our product is a HSM-type product that contains a file system filter driver. We currently use DIFx to install/uninstall the driver portion of the product.

    I came across this:

    https://msdn.microsoft.com/en-us/windows/hardware/drivers/install/difx-guidelines

    I do remember years ago there was an effort to kill DIFx. We were supposed to use SetupAPI, which was deficient in many ways (in particular, error reporting and logging). Luckily, MS reversed itself.

    Well, according to the article, DIFx has been removed from the latest WDK. If I look at the only other way to install a driver (setupAPI):

    https://msdn.microsoft.com/en-us/windows/hardware/drivers/install/setupapi

    This seems to say I should keep using DIFx and not use SetupAPI.

    The DIFx page says that we should submit our drivers to Windows Update and have it installed that way.

    I'm sure that's fine for device drivers, but our driver is a file system mini-filter and it is useless without the rest of the product. What am I supposed to do, install the product minus the driver and hope somehow that in the next Windows Update the driver will magically appear?

    How should a software driver be installed now?

    Thanks,

    Bob


    Bob

    Friday, September 30, 2016 1:46 PM

All replies

  • You need to create a driver package for Windows 10 which can include the other components of your product.  The other alternative is to use the DifxAPI's which will still be there, at present Microsoft is no longer shipping the Difx program.


    Don Burn Windows Driver Consulting Website: http://www.windrvr.com

    • Marked as answer by Doron Holan [MSFT] Friday, September 30, 2016 5:59 PM
    • Unmarked as answer by Bob2824 Sunday, October 2, 2016 8:48 PM
    Friday, September 30, 2016 2:01 PM
  • I'm not sure I understand. The MSI installer for the product is very complex, with about 20 custom actions, about 100 files and a very complex upgrade process. Is it possible to run custom actions for a driver package? It would be installed using setupAPI?


    Bob

    Friday, September 30, 2016 6:16 PM
  • I'm not an expert of Windows 10 driver packages, but I believe you can do the install.  For right now I would just modify your MSI to invoke a program that uses the DifxAPI's.


    Don Burn Windows Driver Consulting Website: http://www.windrvr.com

    Friday, September 30, 2016 6:45 PM
  • I currently use DIFx. It works great. The problem I have is that MS is phasing DIFx out. When I go to the only other alternative, SetupAPI, it says to use DIFx!

    I think DIFx is a great framework and I don't see any viable alternative.


    Bob

    Friday, September 30, 2016 6:50 PM
  • Microsoft is stopping shipping of the DIFx executable.  I have seen nothing about eliminating the DifxAPI.  Yes, long term Microsoft wants people to use driver packages and Windows update.  I suspect this attitude will evolve as they encounter the problems this presents for application/driver models, where the revisions must be lock stepped, and the application can be something you need to buy a new revision of.

    Just my opinion, but I believe you will have a fairly long time with DifxAPI.


    Don Burn Windows Driver Consulting Website: http://www.windrvr.com

    Saturday, October 1, 2016 1:05 PM
  • To quote a portion of the MS page:

    Starting in Windows 8.1, applications that link to Difxapi.dll must contain an app manifest targeting the OS version on which the application is intended to run.  This is due to DIFxAPI's dependency on GetVersionEx, an API that changed starting in Windows 8.1.  For more on changes to GetVersionEx in Windows 8.1, see Targeting your application for Windows.

    MS hasn't updated or touched DIFx since version 2.1 a very long time ago. They could easily make a minor update to fully support the current OS versions, but they haven't. DIFx may be available, but will become less and less useful as time goes on.

    It is incredible that they recommend NOT using DIFx on the Guidelines for DIFx, and recommend using DIFx on the SetupAPI page!


    Bob

    Saturday, October 1, 2016 2:05 PM
  • What if you just keep using the DLL, testing thoroughly on all OS versions you want to support, making small adjustments as needed (manifests, signatures and so on).   Build your own island of sanity in this crazy world.

    -- pa

     
    Saturday, October 1, 2016 7:07 PM