title: Why does Devcon install a driver correctly while right-click install does not work
body: <p>I have created a driver (.inf, .cat and .sys files) for a virtual HID device which I can successfully install on the commandline using</p>
  
  <pre><code>    devcon.exe /r install .\VirtualU2FToken.inf root\VirtualU2FToken
  </code></pre>
  
  <p>after which the virtual device appears in the device manager. However, when I right-click on the inf file and choose 'Install', Windows claims to successfully install the driver but the device does not appear.</p>
  
  <p>So my question is: what is the difference between the right-click (which seems to call <code>DefaultInfInstall.exe</code>) and the <code>devcon.exe</code> way to install the driver? What do I need to do for
  the right click to work?</p>
  
  <p>My inf file is below:</p>
  
  <pre><code>;
  ; VirtualU2FToken.inf
  ;
  
  [Version]
  Signature="$WINDOWS NT$"
  Class=HIDClass ; TODO: edit Class
  ClassGuid={745a17a0-74d3-11d0-b6fe-00a0c90f57da} ; TODO: edit ClassGuid
  Provider=%ManufacturerName%
  DriverPackageType=ClassFilter
  CatalogFile=VirtualU2FToken.cat
  DriverVer= ; TODO: set DriverVer in stampinf property pages
  
  [DestinationDirs]
  DefaultDestDir = 12
  VirtualU2FToken_Device_CoInstaller_CopyFiles = 11
  
  ; ================= Class section =====================
  
  [SourceDisksNames]
  1 = %DiskName%,,,""
  
  [SourceDisksFiles]
  VirtualU2FToken.sys  = 1,,
  WdfCoInstaller$KMDFCOINSTALLERVERSION$.dll=1 ; make sure the number matches with SourceDisksNames
  
  ;*****************************************
  ; Install Section
  ;*****************************************
  
  [Manufacturer]
  %ManufacturerName%=Standard,NT$ARCH$
  
  [Standard.NT$ARCH$]
  %VirtualU2FToken.DeviceDesc%=VirtualU2FToken_Device, Root\VirtualU2FToken ; TODO: edit hw-id
  
  [VirtualU2FToken_Device.NT]
  CopyFiles=Drivers_Dir
  
  [VirtualU2FToken_Device.NT.HW]
  AddReg = VirtualU2FToken_Device.NT.AddReg
  
  [VirtualU2FToken_Device.NT.AddReg]
  HKR,,"LowerFilters",0x00010000,"vhf"
  
  [Drivers_Dir]
  VirtualU2FToken.sys
  
  ;-------------- Service installation
  [VirtualU2FToken_Device.NT.Services]
  AddService = VirtualU2FToken,%SPSVCINST_ASSOCSERVICE%, VirtualU2FToken_Service_Inst
  
  ; -------------- VirtualU2FToken driver install sections
  [VirtualU2FToken_Service_Inst]
  DisplayName    = %VirtualU2FToken.SVCDESC%
  ServiceType    = 1               ; SERVICE_KERNEL_DRIVER
  StartType      = 3               ; SERVICE_DEMAND_START
  ErrorControl   = 1               ; SERVICE_ERROR_NORMAL
  ServiceBinary  = %12%\VirtualU2FToken.sys
  
  ;
  ;--- VirtualU2FToken_Device Coinstaller installation ------
  ;
  
  [VirtualU2FToken_Device.NT.CoInstallers]
  AddReg=VirtualU2FToken_Device_CoInstaller_AddReg
  CopyFiles=VirtualU2FToken_Device_CoInstaller_CopyFiles
  
  [VirtualU2FToken_Device_CoInstaller_AddReg]
  HKR,,CoInstallers32,0x00010000, "WdfCoInstaller$KMDFCOINSTALLERVERSION$.dll,WdfCoInstaller"
  
  [VirtualU2FToken_Device_CoInstaller_CopyFiles]
  WdfCoInstaller$KMDFCOINSTALLERVERSION$.dll
  
  [VirtualU2FToken_Device.NT.Wdf]
  KmdfService =  VirtualU2FToken, VirtualU2FToken_wdfsect
  
  [VirtualU2FToken_wdfsect]
  KmdfLibraryVersion = $KMDFVERSION$
  
  [Strings]
  SPSVCINST_ASSOCSERVICE= 0x00000002
  ManufacturerName="Nexus Group A.B." ;TODO: Replace with your manufacturer name
  ClassName="HIDClass" ; TODO: edit ClassName
  DiskName = "VirtualU2FToken Installation Disk"
  VirtualU2FToken.DeviceDesc = "VirtualU2FToken Device"
  VirtualU2FToken.SVCDESC = "VirtualU2FToken Service"
  </code></pre>