WinUSB install problems on Vista using WinUSBCoInstaller.dll from WDK 6000

We (http://www.ibutton.com) have converted from developing a custom USB device driver to using WinUSB and have launched our USB product using WinUSB. We have had no installation problem reports on XP, but we have seen a rash of installation problem reports from customers overseas (primarily Sweden) on different versions of Vista (Home Premium, Business, and Ultimate). The latest report was on a Dell Vostro 400 with Swedish Vista Ultimate32.

During the WinUSB installation (occurring when our USB device is first plugged in), an error message is produced. For a screenshot of the error message, please see the following URL: http://www.pmalmberg.com/images/onewireproblem.jpg. The text of the error is: “The system cannot find the file specified”. The message doesn’t actually specify a file (which is probably a Microsoft bug), but after looking in the c:\windows\inf\setupapi.dev.log, we have determined that file missing is “winusb.sys”. It is almost like the WinUSBCoInstaller.dll cannot find “winusb.sys” on certain Vista installations. Has anybody seen this?

This is the pertinent entry in the setupapi.dev.log that indicates a missing “winusb.sys”:

flq: SPFILENOTIFY_NEEDMEDIA:
flq: Description - [windows cd]
flq: SourcePath - [C:\Windows\INF]
flq: SourceFile - [winusb.sys]
flq: Flags - 0×00000000
flq: {SPFILENOTIFY_NEEDMEDIA}

–Brian Hindman

We actually have a workaround for this by copying winusb.sys to the C:\windows\inf directory during the install process, but from what I understand, we really shouldn’t be doing this… Any ideas?

Can you post your INF?

WinUsbCoinstaller does nothing on Vista since WinUSB shipped with Vista. The INF has to have needs and includes directives to bring in WinUSB.INF and invoke its installation sections for the WinUSB service.

Have you read http://www.microsoft.com/whdc/device/connect/WinUsb_HowTo.mspx? This has information on how to setup your INF to work on XP and Vista.

-p

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@dalsemi.com
Sent: Thursday, January 31, 2008 3:27 PM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] WinUSB install problems on Vista using WinUSBCoInstaller.dll from WDK 6000

This is the pertinent entry in the setupapi.dev.log that indicates a missing “winusb.sys”:

flq: SPFILENOTIFY_NEEDMEDIA:
flq: Description - [windows cd]
flq: SourcePath - [C:\Windows\INF]
flq: SourceFile - [winusb.sys]
flq: Flags - 0?00000000
flq: {SPFILENOTIFY_NEEDMEDIA}

–Brian Hindman


NTDEV is sponsored by OSR

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer

Hi. See below for current (released) inf file. Although the inf file you see below was created before the WinUSB “HowTo” document was posted to Microsoft’s website, I did re-wrote the inf file to match the document as closely as I could, but it also did not clear things up for customers. I can upload this one as well if you like.

–Brian Hindman

;=================== Version section ====================

[Version]
Signature = “$Windows NT$”
Class = 1-Wire
ClassGuid = {C49068C2-B65C-4DE2-83D9-D4B945AA5C91}
Provider = %ProviderName%
DriverVer=05/01/2007,6.0.1.0
CatalogFile = ds2490winusb_x86.cat

; ============ Manufacturer/Models sections ============

[Manufacturer]
%ProviderName% = DS2490_WinUSB,NTx86

[DS2490_WinUSB.NTx86]
%USB\DS2490.DeviceDesc% =USB_Install, USB\VID_04FA&PID_2490

; =================== USB Install section =======================

[ClassInstall32]
AddReg=Class_AddReg

[Class_AddReg]
HKR,%1WireClassName%
HKR,SilentInstall,1
HKR,NoInstallClass,1
HKR,Icon,“101”

[USB_Install]
Include = winusb.inf
Needs = WINUSB.NT
CopyFiles = Copy_No_Files

[USB_Install.Services]
Include=winusb.inf
AddService=WinUSB,0x00000002,WinUSB_ServiceInstall

[WinUSB_ServiceInstall]
DisplayName = %WinUSB_SvcDesc%
ServiceType = 1
StartType = 3
ErrorControl = 1
ServiceBinary = %12%\WinUSB.sys

[USB_Install.Wdf]
KmdfService=WINUSB, WinUSB_Install

[WinUSB_Install]
KmdfLibraryVersion=1.5

[USB_Install.HW]
AddReg=Dev_AddReg

[Copy_No_Files]
;no files other than CoInstallers are being installed

[Dev_AddReg]
HKR,DeviceInterfaceGUIDs,0x00010000,“{E958DAA2-F01C-47CB-8A1E-36679A16235E}”

[USB_Install.CoInstallers]
AddReg=CoInstallers_AddReg
CopyFiles=CoInstallers_CopyFiles

[CoInstallers_CopyFiles]
WinUSBCoInstaller.dll
WdfCoInstaller01005.dll

[CoInstallers_AddReg]
HKR,CoInstallers32,0x00010000,“WinUSBCoInstaller.dll”,“WdfCoInstaller01005.dll,WdfCoInstaller”

[DestinationDirs]
CoInstallers_CopyFiles=11

[SourceDisksNames]
1 = %MediaDescription%

[SourceDisksFiles]
WinUSBCoInstaller.dll=1
WdfCoInstaller01005.dll=1

; =================== Strings ===================

[Strings]
ProviderName=“Dallas Semiconductor Maxim”
USB\DS2490.DeviceDesc=“USB Host Adapter for 1-Wire Network using WinUSB”
MediaDescription = “1-Wire Network Installation Media”
1WireClassName = “1-Wire”
WinUSB_SvcDesc=“WinUSB driver”

Another question: Should I grab winusb.sys from a Vista install and distribute it with my XP/Vista install solution?

xxxxx@dalsemi.com wrote:

Another question: Should I grab winusb.sys from a Vista install and distribute it with my XP/Vista install solution?

No, of course not. Use the WinUSBCoInstaller.dll that ships with your
DDK. It contains winusb.sys and will install it as needed.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Hi Tim. That’s what I thought. Peter said the WinUSBCoInstaller.dll does nothing on Vista, and the problem my company is seeing has only been reported on European installs of Vista (mainly Swedish). I can’t duplicate the problem in-house on any version of Vista, but we have a few European customers I can try solutions on (if I ask nicely). We have determined that if we copy winusb.sys to the c:\windows32\inf directory, the driver install works properly on these systems. The only thing I can think of is that it is either a problem with the inf file or that there is a possible misconfiguration of winusb on these systems. My company’s WinUSB solution (installed as a function driver) has been in production for some time now and works nicely except that WinUSB installation fails on certain versions of Vista. So, if anyone has some time, please take a look at my above inf file. Thanks.

Recently I worked on WINUSB inf file to my custom bluetooth device. I
observed the following extra sections in the inf file:

[ClassInstall32]
AddReg=Class_AddReg

[Class_AddReg]
HKR,%1WireClassName%
HKR,SilentInstall,1
HKR,NoInstallClass,1
HKR,Icon,“101”

[SourceDisksNames]
1 = %MediaDescription%

I guess winusb.sys and winusbcoinstaller.dll will be available when Vista is
loaded.

I am not sure of European Swedish installation, but if you find time, kindly
try with deleting the above extra sections from the inf file.

Regards.
On Feb 2, 2008 6:16 AM, wrote:

> Hi Tim. That’s what I thought. Peter said the WinUSBCoInstaller.dll does
> nothing on Vista, and the problem my company is seeing has only been
> reported on European installs of Vista (mainly Swedish). I can’t duplicate
> the problem in-house on any version of Vista, but we have a few European
> customers I can try solutions on (if I ask nicely). We have determined that
> if we copy winusb.sys to the c:\windows32\inf directory, the driver
> install works properly on these systems. The only thing I can think of is
> that it is either a problem with the inf file or that there is a possible
> misconfiguration of winusb on these systems. My company’s WinUSB solution
> (installed as a function driver) has been in production for some time now
> and works nicely except that WinUSB installation fails on certain versions
> of Vista. So, if anyone has some time, please take a look at my above inf
> file. Thanks.
>
> —
> NTDEV is sponsored by OSR
>
> For our schedule of WDF, WDM, debugging and other seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>

I worked on Bluetooth which is pre defined class. If this is the case of
the custom class try by removing just sourcedisknames section.

Regards.

On Feb 2, 2008 4:26 PM, Bhaskar wrote:

> Recently I worked on WINUSB inf file to my custom bluetooth device. I
> observed the following extra sections in the inf file:
>
> [ClassInstall32]
> AddReg=Class_AddReg
>
> [Class_AddReg]
> HKR,%1WireClassName%
> HKR,SilentInstall,1
> HKR,NoInstallClass,1
> HKR,Icon,“101”
>
> [SourceDisksNames]
> 1 = %MediaDescription%
>
> I guess winusb.sys and winusbcoinstaller.dll will be available when Vista
> is loaded.
>
> I am not sure of European Swedish installation, but if you find time,
> kindly try with deleting the above extra sections from the inf file.
>
> Regards.
>
> On Feb 2, 2008 6:16 AM, wrote:
>
> > Hi Tim. That’s what I thought. Peter said the WinUSBCoInstaller.dlldoes nothing on Vista, and the problem my company is seeing has only been
> > reported on European installs of Vista (mainly Swedish). I can’t duplicate
> > the problem in-house on any version of Vista, but we have a few European
> > customers I can try solutions on (if I ask nicely). We have determined that
> > if we copy winusb.sys to the c:\windows32\inf directory, the driver
> > install works properly on these systems. The only thing I can think of is
> > that it is either a problem with the inf file or that there is a possible
> > misconfiguration of winusb on these systems. My company’s WinUSB solution
> > (installed as a function driver) has been in production for some time now
> > and works nicely except that WinUSB installation fails on certain versions
> > of Vista. So, if anyone has some time, please take a look at my above inf
> > file. Thanks.
> >
> > —
> > NTDEV is sponsored by OSR
> >
> > For our schedule of WDF, WDM, debugging and other seminars visit:
> > http://www.osr.com/seminars
> >
> > To unsubscribe, visit the List Server section of OSR Online at
> > http://www.osronline.com/page.cfm?name=ListServer
> >
>
>

Thanks Uday. I’ll start with just removing the SourceDiskNames section…

Regards,
–Brian Hindman