none
SetupAPI InstallHInfSection is not downgrading a driver file RRS feed

  • Question

  • Hello,

    Environment: Windows x86 8.1 English

    I am making use of  the SetupAPI:InstallHInfSecton  to install drivers. This API 
    is used in my MSI package. 
    When the driver package is installed, the associated .sys file is copied to 
    %windows%\system32\drivers.

    One of the hotfix packages contains an updated  driver package thereby resulting 
    in an updated version of  the .sys file being copied  to  
    %windows%\system32\drivers.

    However, when the hotfix is uninstalled, the  .sys file under 
    %windows%\system32\drivers  is not being reverted back to the  base version.

    i.e in other words, InstallHInfSection  is unable to downgrade files in 
    %windows%\system32\drivers. This always used to work properly in Win 7.
    The strange part is that when i use the same API  outside of my MSI package,  
    the downgrade happens as expected.

    This has always worked until now.

    The following lines were logged in setupapi.app log file:
    !    flq: 10:30:50.621 A target file was not overwritten. Version of source 
    file: 7.1.0.4043. Version of target file: 7.1.16.4043.
    !    flq: 10:30:50.621 The SPFQNOTIFY_TARGETNEWER flag was set.

    Can someone tell me as to what coudl have gone wrong?

    Regards,
    Kiran Hegde
    Thursday, January 8, 2015 6:22 PM

All replies

  • It turns out that  InstallHInfSection is unable to downgrade files in **SYSTEM** 
    context. However, it can downgrade files  under **Logged in user** context. 

    Strangely, the API works properly  on x64 windows 8/8.1.

    Can anyone think of a reason why  would there be a difference in behavior 
    between x86 and x64 versions?

    Also, is there an alternative API to InstallHInfSection.
    Monday, January 12, 2015 4:49 AM
  • Hi Kiran,
    Can you set the setupapi log level to verbose (http://msdn.microsoft.com/en-us/library/windows/hardware/ff550808%28v=vs.85%29.aspx), attempt the uninstall again, and share the entire log section that relates to the uninstall?

    Also, what is the exact directive/section in the INF that is copying the file?

    Thanks

    Monday, January 19, 2015 6:31 PM
  • [Device Install Log]
         OS Version = 6.1.7601
         Service Pack = 1.0
         Suite = 0x0100
         ProductType = 1
         Architecture = x86

    [BeginLog]
         inf: 05:26:32.506 {Install Inf Section [DefaultInstall]}
         inf: 05:26:32.506 CopyFiles=Ctxpicaser.DriverFiles  (picaser.inf line 34)
         cpy: 05:26:32.507 Open PnpLockdownPolicy: Err=2. This is OK. Use LockDownPolicyDefault
         flq: 05:26:32.507 QueueSingleCopy...
         flq: 05:26:32.508 Inf     : 'C:\picaser_RTM\picaser.inf'
         flq: 05:26:32.509 SourceInf: 'C:\picaser_RTM\picaser.inf'
         flq: 05:26:32.509 SourceSection: [sourcedisksfiles]
         flq: 05:26:32.510 SourceRootPath: 'C:\picaser_RTM\'

    [Boot Session: 2015/01/28 05:15:56.719]

    >>>  [SetupQueueCopy]
    >>>  Section start 2015/01/28 05:26:32.510
          05:26:32.510 cmd: rundll32.exe   SETUPAPI.DLL,InstallHinfSection DefaultInstall 128 C:\picaser_RTM\picaser.inf
         flq: 05:26:32.511 CopyStyle      - 0x00000024
    <<<  Section end 2015/01/28 05:26:32.515
    <<<  [Exit status: SUCCESS]

         flq: 05:26:32.511 {FILE_QUEUE_COPY}
         flq: 05:26:32.512 CopyStyle      - 0x00000024
         flq: 05:26:32.512 SourceRootPath - 'C:\picaser_RTM\'
         flq: 05:26:32.512 SourceFilename - 'picaser.sys'
         flq: 05:26:32.513 TargetDirectory- 'C:\Windows\system32\DRIVERS'
         flq: 05:26:32.513 TargetFilename - 'picaser.sys'
         flq: 05:26:32.514 SourceDesc     - 'MPS Source Media'
         flq: 05:26:32.514 {FILE_QUEUE_COPY exit(0x00000000)}
         inf: 05:26:32.515 {Install Inf Section [DefaultInstall] exit (0x00000000)}
         flq: 05:26:32.516 {_commit_file_queue}
         flq: 05:26:32.516 CommitQ DelNodes=0 RenNodes=0 CopyNodes=1
         flq: 05:26:32.516 {SPFILENOTIFY_STARTQUEUE}
         flq: 05:26:32.517 {SPFILENOTIFY_STARTQUEUE - exit(0x00000001)}
         flq: 05:26:32.518 {_commit_copy_subqueue}
         flq: 05:26:32.518 subqueue count=1
         flq: 05:26:32.519 {SPFILENOTIFY_STARTSUBQUEUE}
         flq: 05:26:32.519 {SPFILENOTIFY_STARTSUBQUEUE - exit(0x00000001)}
         flq: 05:26:32.520 source media:
         flq: 05:26:32.520 Description  - [MPS Source Media]
         flq: 05:26:32.520 SourcePath   - [C:\picaser_RTM]
         flq: 05:26:32.521 SourceFile   - [picaser.sys]
         flq: 05:26:32.521 Flags        - 0x00000000
         flq: 05:26:32.522 {SPFQNOTIFY_NEEDMEDIA}
         flq: 05:26:32.522 {SPFILENOTIFY_NEEDMEDIA}
         flq: 05:26:32.524 {SPFILENOTIFY_NEEDMEDIA - exit(0x00000001)}
         flq: 05:26:32.524 {SPFQNOTIFY_NEEDMEDIA - returned 0x00000001}
         flq: 05:26:32.525 source media: SPFQOPERATION_DOIT
         flq: 05:26:32.525 {_commit_copyfile}
         flq: 05:26:32.526 {_backup_file}
         flq: 05:26:32.644 CopyFile: 'C:\Windows\system32\DRIVERS\picaser.sys'
         flq: 05:26:32.645       to: 'C:\Windows\Temp\OLDC14B.tmp'
         flq: 05:26:32.645 {_backup_file exit OK}
         flq: 05:26:32.646 {SPFILENOTIFY_STARTCOPY}
         flq: 05:26:32.646 {SPFILENOTIFY_STARTCOPY - exit(0x00000001)}
         flq: 05:26:32.766 CopyFile: 'C:\picaser_RTM\picaser.sys'
         flq: 05:26:32.767       to: 'C:\Windows\system32\DRIVERS\SETC1C8.tmp'
         flq: 05:26:32.773 {SPFQNOTIFY_??? 0x40000}
         flq: 05:26:32.774 {SPFILENOTIFY_??? 0x40000}
         flq: 05:26:32.774 {SPFILENOTIFY_??? 0x40000 - exit(0x00000000)}
         flq: 05:26:32.775 {SPFQNOTIFY_??? 0x40000 - returned 0x00000000}
    !    flq: 05:26:32.775 A target file was not overwritten. Version of source file: 7.1.0.4043. Version of target file: 7.1.16.4043.
    !    flq: 05:26:32.775 The SPFQNOTIFY_TARGETNEWER flag was set.
         flq: 05:26:32.776 {SPFILENOTIFY_ENDCOPY}
         flq: 05:26:32.777 {SPFILENOTIFY_ENDCOPY - exit(0x00000001)}
         flq: 05:26:32.777 {_commit_copyfile exit OK}
         flq: 05:26:32.778 {SPFILENOTIFY_ENDSUBQUEUE}
         flq: 05:26:32.778 {SPFILENOTIFY_ENDSUBQUEUE - exit(0x00000001)}
         flq: 05:26:32.778 {_commit_copy_subqueue exit OK}
         flq: 05:26:32.779 {SPFILENOTIFY_ENDQUEUE}
         flq: 05:26:32.779 {SPFILENOTIFY_ENDQUEUE - exit(0x00000001)}
         flq: 05:26:32.780 {_unwind_file_queue}
         flq: 05:26:32.781 {_unwind_file_queue exit}
         flq: 05:26:32.781 {_commit_file_queue exit OK}
         inf: 05:26:32.781 {Install Inf Section [DefaultInstall]}

    >>>  [SetupInstallFromInfSection - DefaultInstall]
    >>>  Section start 2015/01/28 05:26:32.782
          05:26:32.782 cmd: rundll32.exe   SETUPAPI.DLL,InstallHinfSection DefaultInstall 128 C:\picaser_RTM\picaser.inf
         inf: 05:26:32.782 AddReg=Add.CtxpicaserConfiguration  (picaser.inf line 35)
    <<<  Section end 2015/01/28 05:26:32.783
    <<<  [Exit status: SUCCESS]

        

    We make use of the DefaultInstall  section to install the driver.

    Regards,

    Kiran Hegde


    Wednesday, January 28, 2015 10:35 AM
  • This log looks like it's from Win7 SP1. Can you show me the failing log from Win8.1? The reason the file isn't copied here is that there seems to be CopyFiles flag like SP_COPY_NEWER being set.  This flag may prevent the file from being replaced when the INF gets uninstalled.

    Can you share the INF file, as well?
    Wednesday, January 28, 2015 10:55 PM
  • Hello Zac,

    Thanks for the response. 

    When is the SP_COPY_NEWER flag set?

    Here is the log file from windows 8.1(the log is very similar to what we see on windows 7)

    inf: 01:11:36.894 {Install Inf Section [DefaultInstall.Services] exit(0x00000000)}
         inf: 01:11:37.034 {Install Inf Section [DefaultInstall]}
         inf: 01:11:37.034 CopyFiles=Ctxpicaser.DriverFiles  (picaser.inf line 34)
         flq: 01:11:37.034 QueueSingleCopy...
         flq: 01:11:37.034 Inf     : 'C:\Program Files\Citrix\ICAService\DeviceDrivers\picaser\picaser.inf'
         flq: 01:11:37.034 SourceInf: 'C:\Program Files\Citrix\ICAService\DeviceDrivers\picaser\picaser.inf'
         flq: 01:11:37.034 SourceSection: [sourcedisksfiles]
         flq: 01:11:37.034 SourceRootPath: 'C:\Program Files\Citrix\ICAService\DeviceDrivers\picaser\'

    >>>  [SetupQueueCopy]
    >>>  Section start 2015/01/29 01:11:37.034
          01:11:37.034 cmd: C:\Windows\system32\MsiExec.exe -Embedding 249486A71671DC86719963AD243203CE M Global\MSI0000
         flq: 01:11:37.034 CopyStyle      - 0x00000024
    <<<  Section end 2015/01/29 01:11:37.034
    <<<  [Exit status: SUCCESS]

         flq: 01:11:37.034 {FILE_QUEUE_COPY}
         flq: 01:11:37.034 CopyStyle      - 0x00000024
         flq: 01:11:37.034 SourceRootPath - 'C:\Program Files\Citrix\ICAService\DeviceDrivers\picaser\'
         flq: 01:11:37.034 SourceFilename - 'picaser.sys'
         flq: 01:11:37.034 TargetDirectory- 'C:\Windows\system32\DRIVERS'
         flq: 01:11:37.034 TargetFilename - 'picaser.sys'
         flq: 01:11:37.034 SourceDesc     - 'MPS Source Media'
         flq: 01:11:37.034 {FILE_QUEUE_COPY exit(0x00000000)}
         inf: 01:11:37.050 {Install Inf Section [DefaultInstall] exit (0x00000000)}
         flq: 01:11:37.050 {_commit_file_queue}
         flq: 01:11:37.050 CommitQ DelNodes=0 RenNodes=0 CopyNodes=1
         flq: 01:11:37.050 {SPFILENOTIFY_STARTQUEUE}
         flq: 01:11:37.050 {SPFILENOTIFY_STARTQUEUE - exit(0x00000001)}
         flq: 01:11:37.050 {_commit_copy_subqueue}
         flq: 01:11:37.050 subqueue count=1
         flq: 01:11:37.050 {SPFILENOTIFY_STARTSUBQUEUE}
         flq: 01:11:37.050 {SPFILENOTIFY_STARTSUBQUEUE - exit(0x00000001)}
         flq: 01:11:37.050 source media:
         flq: 01:11:37.050 Description  - [MPS Source Media]
         flq: 01:11:37.050 SourcePath   - [C:\Program Files\Citrix\ICAService\DeviceDrivers\picaser]
         flq: 01:11:37.050 SourceFile   - [picaser.sys]
         flq: 01:11:37.050 Flags        - 0x00000000
         flq: 01:11:37.050 {SPFQNOTIFY_NEEDMEDIA}
         flq: 01:11:37.050 {SPFILENOTIFY_NEEDMEDIA}
         flq: 01:11:37.050 {SPFILENOTIFY_NEEDMEDIA - exit(0x00000001)}
         flq: 01:11:37.050 {SPFQNOTIFY_NEEDMEDIA - returned 0x00000001}
         flq: 01:11:37.050 source media: SPFQOPERATION_DOIT
         flq: 01:11:37.050 {_commit_copyfile}
         flq: 01:11:37.081 {_backup_file}
         flq: 01:11:37.081 CopyFile: 'C:\Windows\system32\DRIVERS\picaser.sys' to 'C:\Windows\Temp\OLD8E4A.tmp'
         flq: 01:11:37.081 {_backup_file exit OK}
         flq: 01:11:37.081 {SPFILENOTIFY_STARTCOPY}
         flq: 01:11:37.081 {SPFILENOTIFY_STARTCOPY - exit(0x00000001)}
         flq: 01:11:37.081 Copying 'C:\Program Files\Citrix\ICAService\DeviceDrivers\picaser\picaser.sys' to 'C:\Windows\system32\DRIVERS\picaser.sys'.
         flq: 01:11:37.081 CopyFile: 'C:\Program Files\Citrix\ICAService\DeviceDrivers\picaser\picaser.sys' to 'C:\Windows\system32\DRIVERS\SET8E4A.tmp'
         flq: 01:11:37.206 {SPFQNOTIFY_??? 0x40000}
         flq: 01:11:37.206 {SPFILENOTIFY_??? 0x40000}
         flq: 01:11:37.206 {SPFILENOTIFY_??? 0x40000 - exit(0x00000000)}
         flq: 01:11:37.206 {SPFQNOTIFY_??? 0x40000 - returned 0x00000000}
    !    flq: 01:11:37.206 A target file was not overwritten. Version of source file: 7.1.0.4043. Version of target file: 7.1.16.4043.
    !    flq: 01:11:37.206 The SPFQNOTIFY_TARGETNEWER flag was set.
         flq: 01:11:37.206 {SPFILENOTIFY_ENDCOPY}
         flq: 01:11:37.206 {SPFILENOTIFY_ENDCOPY - exit(0x00000001)}
         flq: 01:11:37.206 {_commit_copyfile exit OK}
         flq: 01:11:37.206 {SPFILENOTIFY_ENDSUBQUEUE}
         flq: 01:11:37.206 {SPFILENOTIFY_ENDSUBQUEUE - exit(0x00000001)}
         flq: 01:11:37.206 {_commit_copy_subqueue exit OK}
         flq: 01:11:37.206 {SPFILENOTIFY_ENDQUEUE}
         flq: 01:11:37.206 {SPFILENOTIFY_ENDQUEUE - exit(0x00000001)}
         flq: 01:11:37.206 {_unwind_file_queue}
         flq: 01:11:37.206 {_unwind_file_queue exit}
         flq: 01:11:37.206 {_commit_file_queue exit OK}
         inf: 01:11:37.206 {Install Inf Section [DefaultInstall]}

    >>>  [SetupInstallFromInfSection - DefaultInstall]
    >>>  Section start 2015/01/29 01:11:37.206
          01:11:37.206 cmd: C:\Windows\system32\MsiExec.exe -Embedding 249486A71671DC86719963AD243203CE M Global\MSI0000
         inf: 01:11:37.206 AddReg=Add.CtxpicaserConfiguration  (picaser.inf line 35)
    <<<  Section end 2015/01/29 01:11:37.206
    <<<  [Exit status: SUCCESS]

         inf: 01:11:37.206 {Install Inf Section [DefaultInstall] exit (0x00000000)}
         inf: 01:11:37.206 {Install Inf Section [DefaultInstall.Services]}
         inf: 01:11:37.206 AddService=picaser,,Ctxpicaser.Service  (picaser.inf line 38)
         inf: 01:11:37.206 ServiceType=2  (picaser.inf line 67)
         inf: 01:11:37.206 StartType=2  (picaser.inf line 68)
         inf: 01:11:37.222 ErrorControl=1  (picaser.inf line 69)
         inf: 01:11:37.222 ServiceBinary=C:\Windows\system32\DRIVERS\picaser.sys  (picaser.inf line 66)
         inf: 01:11:37.222 DisplayName="Citrix Systems Inc. Client Serial Port Mapping"  (picaser.inf line 64)
         inf: 01:11:37.222 Description="Citrix Systems Inc. Client Serial Port Mapping"  (picaser.inf line 65)
         dvi: 01:11:37.222 Add Service: Modified existing service 'picaser'.

    >>>  [SetupInstallFromInfSection - Ctxpicaser.Service]
    >>>  Section start 2015/01/29 01:11:37.222
          01:11:37.222 cmd: C:\Windows\system32\MsiExec.exe -Embedding 249486A71671DC86719963AD243203CE M Global\MSI0000
    <<<  Section end 2015/01/29 01:11:37.222
    <<<  [Exit status: SUCCESS]

    INF file of  higher version of the driver

               

    ;;
    ;; File: picaser.inf
    ;;
    ;; Purpose: Installs the picaser driver into the system.
    ;;
    ;; 
    ;;


    [Version]
    signature   = "$Windows NT$"
    Provider = %Ctxs%
    DriverVer=01/06/2015,7.1.16.4043
    CatalogFile = picaser.cat
    Class           = Ports
    ClassGuid       = {4D36E978-E325-11CE-BFC1-08002BE10318}


    [DestinationDirs]
    DefaultDestDir        = 12
    Ctxpicaser.DriverFiles      = 12

    [SourceDisksNames]
    1 = %Disk1%

    [SourceDisksFiles]
    picaser.sys = 1

    ;;
    ;; Default install sections
    ;;

    [DefaultInstall]
    CopyFiles           = Ctxpicaser.DriverFiles
    AddReg              = Add.CtxpicaserConfiguration

    [DefaultInstall.Services]
    AddService = %CtxpicaserServiceName%,,Ctxpicaser.Service

    ;;
    ;; Default uninstall sections
    ;;

    [DefaultUninstall]
    DelFiles = Ctxpicaser.DriverFiles
    DelReg = Ctxpicaser.DelRegistry

    [DefaultUninstall.Services]
    DelService = Ctxpicaser,0x200 ; Stop the service before deleting it.

    ;;
    ;; Registry section
    ;;


    [Ctxpicaser.DelRegistry]
    HKLM,%CtxpicaserRegistry%

    ;
    ; Services Section
    ;

    [Ctxpicaser.Service]
    DisplayName      = %Ctxs% %CtxpicaserServiceDesc%
    Description      = %Ctxs% %CtxpicaserServiceDesc%
    ServiceBinary    = %12%\picaser.sys
    ServiceType      = 2 ; SERVICE_FILE_SYSTEM_DRIVER
    StartType        = 2 ; SERVICE_AUTO_START
    ErrorControl     = 1 ; SERVICE_ERROR_NORMAL

    ;
    ; Copy Files
    ;

    [Ctxpicaser.DriverFiles]
    picaser.sys, picaser.sys,,4

    ;;
    ;; String Section
    ;;

    [Strings]
    Ctxs = "Blah"
    CtxpicaserServiceDesc   = "Client Serial Port Mapping"
    CtxpicaserServiceName = "picaser"
    CtxpicaserRegistry = "system\currentcontrolset\services\picaser"
    Disk1               = "MPS Source Media"



    [Add.CtxpicaserConfiguration]
    HKLM,%CtxpicaserRegistry%\Parameters,RequestTimeout,0x00010001,60
    HKLM,%CtxpicaserRegistry%\Parameters,MaxNetCmds,0x00010001,10
    HKLM,%CtxpicaserRegistry%\Parameters,MaxThreads,0x00010001,20

    INF file of lower version of the driver

               

    ;;
    ;; File: picaser.inf
    ;;
    ;; Purpose: Installs the picaser driver into the system.
    ;;
    ;; 
    ;;


    [Version]
    signature   = "$Windows NT$"
    Provider = %Ctxs%
    DriverVer = 09/11/2013,7.1.0.4043
    CatalogFile = picaser.cat
    Class           = Ports
    ClassGuid       = {4D36E978-E325-11CE-BFC1-08002BE10318}


    [DestinationDirs]
    DefaultDestDir        = 12
    Ctxpicaser.DriverFiles      = 12

    [SourceDisksNames]
    1 = %Disk1%

    [SourceDisksFiles]
    picaser.sys = 1

    ;;
    ;; Default install sections
    ;;

    [DefaultInstall]
    CopyFiles           = Ctxpicaser.DriverFiles
    AddReg              = Add.CtxpicaserConfiguration

    [DefaultInstall.Services]
    AddService = %CtxpicaserServiceName%,,Ctxpicaser.Service

    ;;
    ;; Default uninstall sections
    ;;

    [DefaultUninstall]
    DelFiles = Ctxpicaser.DriverFiles
    DelReg = Ctxpicaser.DelRegistry

    [DefaultUninstall.Services]
    DelService = Ctxpicaser,0x200 ; Stop the service before deleting it.

    ;;
    ;; Registry section
    ;;


    [Ctxpicaser.DelRegistry]
    HKLM,%CtxpicaserRegistry%

    ;
    ; Services Section
    ;

    [Ctxpicaser.Service]
    DisplayName      = %Ctxs% %CtxpicaserServiceDesc%
    Description      = %Ctxs% %CtxpicaserServiceDesc%
    ServiceBinary    = %12%\picaser.sys
    ServiceType      = 2 ; SERVICE_FILE_SYSTEM_DRIVER
    StartType        = 2 ; SERVICE_AUTO_START
    ErrorControl     = 1 ; SERVICE_ERROR_NORMAL

    ;
    ; Copy Files
    ;

    [Ctxpicaser.DriverFiles]
    picaser.sys

    ;;
    ;; String Section
    ;;

    [Strings]
    Ctxs = "Blah"
    CtxpicaserServiceDesc   = "Client Serial Port Mapping"
    CtxpicaserServiceName = "picaser"
    CtxpicaserRegistry = "system\currentcontrolset\services\picaser"
    Disk1               = "MPS Source Media"



    [Add.CtxpicaserConfiguration]
    HKLM,%CtxpicaserRegistry%\Parameters,RequestTimeout,0x00010001,60
    HKLM,%CtxpicaserRegistry%\Parameters,MaxNetCmds,0x00010001,10
    HKLM,%CtxpicaserRegistry%\Parameters,MaxThreads,0x00010001,20

    Regards

    Thursday, January 29, 2015 9:39 AM
  • SP_COPY_NEWER is set by default, and will persist unless you set COPYFLG_NOVERSIONCHECK.  Looking at this, I'm guessing that your uninstall operation is just re-running the previous version of the INF?  If this is the case, your previous version does not have COPYFLG_NOVERSIONCHECK set (only the new one does).  The previous version won't apply the old version of the sys file because of this.
    Friday, January 30, 2015 10:31 PM
  • Thanks Zac. you are right, uninstall operation is just re-running the previous version of the INF. we want to do this as  we want to revert the driver file to the RTM version, once the hotfix is uninstalled.

    So should i also remove COPYFLG_NOVERSIONCHECK from the higher version ? Would that help?

    I just inspected an older hotfix. Strangely, the older hotfix contains this flag and still the API : InstallhInfsection is able to downgrade the driver file. Also , i do not see the same issue on x64 systems.

    Also the test team was telling me that if i remove this flag from the higher hotfix, the problem seems to go away(i have not confirmed this myself)

    What do you suggest i do here? I have been stuck with this for a month now.

    The results are very contradictory.

    Is there an alternative API? All of the alternatives that i have explored do not copy the .sys file to system32\drivers as well as do not create the service entries.


    Regards,

    Kiran Hegde



    Saturday, January 31, 2015 6:29 AM
  • Hello Zac,

    What surprises me is that i don't observe this behaviour on x64 systems. I only observe this behaviour on x86 systems? Has anything changed all of a sudden on x86 systems that i am seeing this behaviour now?

    The INF  on the x64 system does not have the COPYFLG_NOVERSIONCHECK  as well. However, the downgrade works properly.

    To elaborate,  the  command used to downgrade the driver is : RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 128 <path to the .INF>

    On the problematic x86 system, the above command  when executed under the logged on user context presents the  "Confirm file replace" dialog  to the end user. The end user can either  choose to downgrade the driver or retain the current version . However, the very same command when executed from the SYSTEM context does present the  "Confirm file replace" dialog  and fails silently.
    Under the system context, i see the following message in setupapi.app log file:

    !    flq: 01:11:37.206 A target file was not overwritten. Version of source file: 7.1.0.4043. Version of target file: 7.1.16.4043.
    !    flq: 01:11:37.206 The SPFQNOTIFY_TARGETNEWER flag was set.




    Any help would be very much appreciated.

    Regards,

    Kiran Hegde


    Tuesday, March 24, 2015 10:54 AM