- assessing winusb potential
- Posted by dmm on April 13th, 2007
My company manufactures a USB device that may attach to any USB port on the
PC but only one such device is allowed per PC. Our device is currently
driven by an HID kernel-mode driver in the W2k/XP platforms and basically
performs read/write operations aside from the power/pnp functionality.
If I am not mistaken, the WinUSB environment offers an attractive
alternative for us in the Vista platform. Is this true or should we be
looking at UMDF?
If WinUSB is suitable, where may I download the winusb.sys and .dll files
for testing on XP?
Thanks
dmm
- Posted by Don Burn on April 13th, 2007
WinUSB is part of the WDK see
http://www.microsoft.com/whdc/DevTools/WDK/WDKpkg.mspx for details how to
get it.
--
Don Burn (MVP, Windows DDK)
Windows 2k/XP/2k3 Filesystem and Driver Consulting
Website: http://www.windrvr.com
Blog: http://msmvps.com/blogs/WinDrvr
Remove StopSpam to reply
"dmm" <dmm@discussions.microsoft.com> wrote in message
news:A8FDE0B4-12BE-42CD-95F2-035F26746E7E@microsoft.com...
- Posted by dmm on April 13th, 2007
Hi Don
I have installed WinDDK 6000 (which targets both vista and xp) on my PC. I
search the entire DDK for files "winusb.sys" and "winusb.dll" but I get no
hits.
Thanks
dmm
"Don Burn" wrote:
- Posted by Don Burn on April 13th, 2007
Look in redist\winUSB the files are part of a coinstaller.
--
Don Burn (MVP, Windows DDK)
Windows 2k/XP/2k3 Filesystem and Driver Consulting
Website: http://www.windrvr.com
Blog: http://msmvps.com/blogs/WinDrvr
Remove StopSpam to reply
"dmm" <dmm@discussions.microsoft.com> wrote in message
news:BA76B8CC-E1C4-4158-9B0D-0475D7949941@microsoft.com...
- Posted by dmm on April 17th, 2007
Thanks Don -- just like you said. During the inf/installation process, the
winusb.sys is extracted and copied to directory "\windows\system32\driver."
dmm
"Don Burn" wrote:
- Posted by Neel on January 10th, 2008
Hi dmm,
Please could you tell me, how did you install the winusb.sys?
I tried it 100 times but still not able to succeed.
I followed the instructions given in "WinUsb_HowTo.doc" which is from
Microsoft.
I tried it on internet with many options. But no use.
I am using USB stick (Pen drive) device for installation.
Thanks,
Neel
"dmm" wrote:
- Posted by dmm on January 10th, 2008
Hi Neel
I checked my notes and this is what I have:
Goto the OSR Online site
http://www.osronline.com/cf.cfm?Page...CFM?list=NTDEV and search
for "winusb." There is a lot of good information there on editing your inf
file so that the co-installers will execute properly.
dmm
"Neel" wrote:
- Posted by Neel on January 11th, 2008
Thanks dmm for your inputs.
I gone through many posting on the given link but my problem of installing
the winusb.sys driver for the USB Stick is not solved (Using the INF file
details provided my microsoft in "WinUsb_HowTo.doc") .
I am using the following WDK files (WDK - Windows Server 2008 RC1) for the
installation on WinXP:
1). WinUSBCoInstaller.dll
2). WdfCoInstaller01007.dll
3). WUDFUpdate_01007.dll
& INF file from the ""WinUsb_HowTo.doc"
I am installing the driver from "Device Manager->Update Driver" on the
connected "USB Mass storage Device".
Intallation start copying & installing "WinUSBCoInstaller.dll" &
"WdfCoInstaller01007.dll" but at the end, it displays the message dialog
"Cannot install this hardware", "There was a problem installing this
hardware".
Also, when I select the device in Device Manager and check the driver
details, then I found that the WINUSB.SYS is NOT installed (instead the
default USBTOR.SYS is installed).
I think there is problem withe INF file only.
What could be the problem?
Is this INF file not proper?
Is the WDK files not proper?
Thanks
Neel
"dmm" wrote:
- Posted by dmm on January 11th, 2008
Hi Neel
Looks like your inf file may be in error. Here's a couple of sites that may
be helpful ...
http://blogs.msdn.com/peterwie/archi...-xp-vista.aspx
http://msdn2.microsoft.com/en-us/library/aa939014.aspx
dmm
"Neel" wrote:
- Posted by Doron Holan [MSFT] on January 11th, 2008
try the 1.5 versions from the 6000 WDK .. the installers you have may not be
able to install downlevle (IIRC, rc2 has coinstallers which can install
downlevel properly)
d
--
Please do not send e-mail directly to this alias. this alias is for
newsgroup purposes only.
This posting is provided "AS IS" with no warranties, and confers no rights.
"Neel" <Neel@discussions.microsoft.com> wrote in message
news:F2FE6C0A-7267-45B7-897C-EC841E04E3B6@microsoft.com...
- Posted by Neel on January 12th, 2008
Thanks dmm.
I have gone through those 2 links earliear.
Again now I tried once again with lot more care but still not able to succeed.
Today for the first time after installation at the end there were no errors
reported and message was The wizard has Finished installing the software for
WinUSB.
But when I check the driver details it shows the old USBTOR.Sys and not the
winusb.sys.
Here is my INF file
------------------------------------------------------------------------------------
[Version]
Signature = "$Windows NT$"
Provider = %ProviderName%
DriverVer=27/11/2007,1.0.0.0
Class = WinUSBControlledDevices
ClassGuid={1BBA3665-5FEB-4670-983A-9A0614839A0B}
;CatalogFile=MyCatFile.cat
; ========== Manufacturer/Models sections ===========
[Manufacturer]
%ProviderName% = MyDevice_WinUSB,NTx86,NTamd64
[MyDevice_WinUSB.NTx86]
%USB\MyDevice.DeviceDesc% =USB_Install, USB\VID_0457&PID_0151&REV_0100
[MyDevice_WinUSB.NTamd64]
%USB\MyDevice.DeviceDesc% =USB_Install, USB\VID_0457&PID_0151&REV_0100
; =================== Installation ===================
[ClassInstall32]
AddReg=_AddReg_ClassInstall
[_AddReg_ClassInstall]
HKR,,,,"%S_DeviceClassDisplayName%"
HKR,,Icon,,"-20"
;[1]
[USB_Install]
Include=winusb.inf
Needs=WINUSB.NT
;[2]
[USB_Install.Services]
Include=winusb.inf
AddService=WinUSB,0x00000002,WinUSB_ServiceInstall
;AddService=%S_DriverName%,0x00000002,WinUSB_Servi ceInstall
;[3]
[WinUSB_ServiceInstall]
DisplayName = %WinUSB_SvcDesc%
ServiceType = 1
StartType = 3
ErrorControl = 1
ServiceBinary = %12%\WinUSB.sys
;ServiceBinary = %10%\System32\Drivers\%S_DriverName%.sys
;[4]
[USB_Install.Wdf]
KmdfService=WINUSB, WinUsb_Install
UmdfServiceOrder=WINUSB
[WinUSB_Install]
KmdfLibraryVersion=1.7
;[5]
[USB_Install.HW]
AddReg=Dev_AddReg
[Dev_AddReg]
HKR,,DeviceInterfaceGUIDs,0x10000,"{171FB059-3737-40a6-9225-AC2963FD89F8}"
;[6]
[USB_Install.CoInstallers]
AddReg=CoInstallers_AddReg
CopyFiles=CoInstallers_CopyFiles
[CoInstallers_AddReg]
HKR,,CoInstallers32,0x00010000,"WUDFUpdate_01007.d ll","WinUSBCoInstaller.dll","WdfCoInstaller01007.d ll,WdfCoInstaller"
;HKR,,CoInstallers32,0x00010000,"WinUSBCoInstaller .dll","WdfCoInstaller01007.dll,WdfCoInstaller"
[CoInstallers_CopyFiles]
WUDFUpdate_01007.dll
WinUSBCoInstaller.dll
WdfCoInstaller01007.dll
[DestinationDirs]
CoInstallers_CopyFiles=11
; ================= Source Media Section =====================
;[7]
;Commented the original code
;[SourceDisksNames]
;1 = %DISK_NAME%,,,\i386
;2 = %DISK_NAME%,,,\amd64
; Added following instead
[SourceDisksNames.x86]
1 = %DISK_NAME%,,,\i386
[SourceDisksNames.NTamd64]
2 = %DISK_NAME%,,,\amd64
[SourceDisksFiles.x86]
WUDFUpdate_01007.dll
WinUSBCoInstaller.dll=1
WdfCoInstaller01007.dll=1
[SourceDisksFiles.NTamd64]
WUDFUpdate_01007.dll
WinUSBCoInstaller.dll=2
WdfCoInstaller01007.dll=2
;************************************************* *****************************
; Copy Files section
;------------------------------------------------------------------------------
[_CopyFiles_sys]
; ### modify here ###
; Specify the correct file name of the driver binary.
winusb.sys
; If you want to copy a firmware file, activate the following line.
;YourFirmwareFile.ihx
;************************************************* *****************************
; Destination Directories
;------------------------------------------------------------------------------
;[DestinationDirs]
DefaultDestDir = 12 ; %SystemRoot%\system32\drivers
_CopyFiles_sys = 12
; =================== Strings ===================
[Strings]
ProviderName="Microsoft"
USB\MyDevice.DeviceDesc="WinUSB Device: Kadam"
WinUSB_SvcDesc="WinUSB Driver"
DISK_NAME="WinUSB Driver Disk"
S_DeviceClassDisplayName="WinUSB controlled devices"
S_DriverName="wiusb"
------------------------------------------------------------------------------------
~~~Neelesh
"dmm" wrote:
- Posted by Neel on January 14th, 2008
Hello Doron,
Is 6000 WDK available for download?
I downloaded the version 1.7 (WDK 6001.17048) from the Microsoft Connect
site http://connect.microsoft.com/
If available, Please can you send me the version 1.5 files to my mail ID
neelesh.kadam@wipro.com?
Thanks
Neel
"Doron Holan [MSFT]" wrote:
- Posted by Neel on January 14th, 2008
Hello Doron,
Today again I am able to install the driver.
For this installation I used:
1) The INF file from USBIO driver (From Thesycon - usbio.sys, which is
similar in functionality of WinUSB) and modified for WinUSB data.
2) winusb.sys - from the Windows folder from my earlier installation.
At the end I am getting the following message
Windows cannot load the device driver for this hardware.
The driver may be corrupted or missing. (Code 39)
<<<<<<<<<.
But when I check the driver details in Device Manager, All ther entries are
proper including the driver name "winusb.sys".
The Only diff is that, on the device the yellow circle with "!" symbol.
(Mark of incomplete installation)
Please can you sense what could be the wrong?
Thanks
Neelesh
"Doron Holan [MSFT]" wrote:
- Posted by dmm on January 15th, 2008
Hi Neel
I have listed the working inf file that I use to install my usb driver on
the xp platform. I made a couple of changes: used your guids and device
identifier. Otherwise it is the same as mine. Note that I used a single
guid and you had two. I also specified a catalog file. Those were the 2
differences I noticied immediately except for the versions numbers of the
DLLs.
dmm
;=================== Version section ====================
[Version]
Signature = "$Windows NT$"
Class = MyDMMDeviceClass
ClassGuid = {1BBA3665-5FEB-4670-983A-9A0614839A0B}
Provider = %ProviderName%
DriverVer = 04/13/2007,4.13.0000.0
CatalogFile = MyDMMWinUSBInstall.cat
; ========== Manufacturer/Models sections ===========
[Manufacturer]
%ProviderName% = MyDevice_WinUSB,NTx86
[MyDevice_WinUSB.NTx86]
%USB\MyDevice.DeviceDesc% =USB_Install, USB\VID_0457&PID_0151&REV_0100
; =================== Installation ===================
[USB_Install]
Include=winusb.inf
Needs=WINUSB.NT
[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
[Dev_AddReg]
HKR,,DeviceInterfaceGUIDs,0x00010000,"{1BBA3665-5FEB-4670-983A-9A0614839A0B}"
[USB_Install.CoInstallers]
AddReg=CoInstallers_AddReg
CopyFiles=CoInstallers_CopyFiles,NTx86
[CoInstallers_AddReg
HKR,,CoInstallers32,0x00010000,"WinUSBCoInstaller. dll","WdfCoInstaller01005.dll,WdfCoInstaller"
[CoInstallers_CopyFiles.NTx86]
x86\WinUSBCoInstaller.dll
x86\WdfCoInstaller01005.dll
[DestinationDirs]
CoInstallers_CopyFiles=11
; =================== Strings ===================
[Strings]
ProviderName="MyCompany"
USB\MyDevice.DeviceDesc="My Device using WinUSB only"
WinUSB_SvcDesc="WinUSB driver"
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
"Neel" wrote:
- Posted by Neel on January 16th, 2008
Thanks dmm.
I tried your INF but again did not succeed.
Please can you send the following files from WDK 6000 i.e. KMDF ver 1.5
1. WdfCoInstaller01005.dll
2. WUDFUpdate_01005.dll
3. WinUSBCoInstaller.dll
to neelesh.kadam@wipro.com
I am able to install it on Vista successfully with the following INF.
But I am not able to enumurate it using WinUSB APIs.
Here I am not using the winusb co-installer, instead I am using the
winusb.sys directly from the Windows/System32/Drivers.
This INF is taken from Thesycon (USBIO driver - Third party) and modified.
---------------------------------------------------------------
[Version]
Signature="$Windows NT$"
Provider=%S_Provider%
DriverVer=04/11/2007,2.41.0.0
Class = WinUSBControlledDevices
ClassGuid={1BBA3665-5FEB-4670-983A-9A0614839A0B}
[ClassInstall32]
AddReg=_AddReg_ClassInstall
[_AddReg_ClassInstall]
HKR,,,,"%S_DeviceClassDisplayName%"
HKR,,Icon,,"-20"
[ControlFlags]
; Advanced options can be specified here.
; For details, refer to the Windows DDK documentation.
[Manufacturer]
%S_Mfg%=_Models
[_Models]
%S_DeviceDesc%=_Install, USB\Vid_0457&Pid_0151&Rev_0100
[_Install.ntx86]
CopyFiles=_CopyFiles_sys
[_Install.ntx86.Services]
AddService = %S_DriverName%, 0x00000002, _AddService, _EventLog
[_Install.ntx86.HW]
AddReg=_AddReg_HW
[_AddService]
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 3 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %10%\System32\Drivers\%S_DriverName%.sys
[_EventLog]
AddReg=_EventLog_AddReg
[_EventLog_AddReg
HKR,,EventMessageFile,%REG_EXPAND_SZ%,"%%SystemRoo t%%\System32\IoLogMsg.dll;%%SystemRoot%%\System32\ drivers\%S_DriverName%.sys"
HKR,,TypesSupported, %REG_DWORD%,7
[_AddReg_HW
;HKR,,CleanupWizard_DeviceIdentString,%REG_SZ%,"{D AB6A146-D93E-48ab-B3E5-374AB8FFF277}"
HKR,,DeviceInterfaceGUIDs,0x10000,"{171FB059-3737-40a6-9225-AC2963FD89F8}"
HKR,,PowerStateOnOpen, %REG_DWORD%, 0
HKR,,PowerStateOnClose, %REG_DWORD%, 0
HKR,,MinPowerStateUsed, %REG_DWORD%, 3
HKR,,MinPowerStateUnused, %REG_DWORD%, 3
HKR,,EnableRemoteWakeup, %REG_DWORD%, 0
HKR,,AbortPipesOnPowerDown,%REG_DWORD%, 1
HKR,,UnconfigureOnClose, %REG_DWORD%, 1
HKR,,ResetDeviceOnClose, %REG_DWORD%, 0
HKR,,MaxIsoPackets, %REG_DWORD%, 512
HKR,,ShortTransferOk, %REG_DWORD%, 1
HKR,,RequestTimeout, %REG_DWORD%, 1000
HKR,,SuppressPnPRemoveDlg, %REG_DWORD%, 1
[_CopyFiles_sys]
winusb.sys
[DestinationDirs]
DefaultDestDir = 12 ; %SystemRoot%\system32\drivers
_CopyFiles_sys = 12
[SourceDisksNames.x86]
1=%S_DiskName%,,
[SourceDisksFiles.x86]
winusb.sys=1
[Strings]
REG_SZ = 0x00000000
REG_MULTI_SZ = 0x00010000
REG_EXPAND_SZ = 0x00020000
REG_BINARY = 0x00000001
REG_DWORD = 0x00010001
S_Provider="Neelesh"
S_Mfg="Neelesh"
S_DeviceClassDisplayName="NMK: WinUSB controlled devices"
S_DeviceDesc="NMK: WinUSB Device (USB Mass Storage Device)"
S_DeviceDesc1="NMK:WinUSB Device"
S_DiskName="NMK: WinUSB Driver Disk"
S_DriverName="winusb"
; *** EOF ***
--------------------------------------------------------------
Thanks
Neel
"dmm" wrote:
- Posted by Tim Roberts on January 18th, 2008
Neel <Neel@discussions.microsoft.com> wrote:
PLEASE don't ask people to violate their license agreements. These files
are all part of the WDK, which you can get on your own.
--
Tim Roberts, timr@probo.com
Providenza & Boekelheide, Inc.
- Posted by pswork on April 23rd, 2008
I am trying to install WinUSB on XP. I think I have reviewed all possible
documentation and am stuck. I installed WDK, used a sample INF from a
Microsoft site, the WinUSB co-installer works fine, however the KMDF does
not. I do not have WdfCoInstaller01005.dll on my system nor can I find out
why or where to get it. Can you help?
[CoInstallers_CopyFiles]
WinUSBCoInstaller.dll
WdfCoInstaller01005.dll
"Doron Holan [MSFT]" wrote:
- Posted by Doron Holan [MSFT] on April 23rd, 2008
if you downloaded the latest WDK (6001) it comes with KMDF 1.7, which would
be in wdfcoinstaller01007.dll. even then, you might have the 1.7
coinstaller b/c there was a servicing problem which delayed the release of
the coinstaller. You can download the kmdf coinstaller separately,
http://blogs.msdn.com/doronh/archive...available.aspx
d
--
Please do not send e-mail directly to this alias. this alias is for
newsgroup purposes only.
This posting is provided "AS IS" with no warranties, and confers no rights.
"pswork" <pswork@discussions.microsoft.com> wrote in message
news:A2FE7491-7DD4-46C9-8F22-68CBA34161F1@microsoft.com...
- Posted by pswork on April 24th, 2008
Thanks, that did it. If I may, have another question.
Using a single bulk address with both a IN and OUT endpoint. I am a little
unclear on the device sending data to the host. When does the host send
notifcation to the device that it is expecting data? In particular my device
is monitoring some engine functions and based on some conditions will
asynchronously send status data to the host. I know a USB host initiates IN
data transfers. Does it periodically ask a device if it has any data to send?
Paul
"Doron Holan [MSFT]" wrote:
- Posted by Doron Holan [MSFT] on April 24th, 2008
no, the host controller by itself will not poll the device asking if it has
data. it is up to you to always have a pending transfer on the IN endpoint
so that the host controller is always asking for data. your device can then
send back data when it has something to send.
d
--
Please do not send e-mail directly to this alias. this alias is for
newsgroup purposes only.
This posting is provided "AS IS" with no warranties, and confers no rights.
"pswork" <pswork@discussions.microsoft.com> wrote in message
news:78DF78A7-1D8F-4F8E-B2D4-87D9CCB03369@microsoft.com...