IsoUSB Sample Driver Installation

Dear Team,

I tried to load the src-usb-isousb sample driver for the custom device but ended up in device not started error. The following is the info reported by setupapi.


[SetupAPI Log]

OS Version = 5.1.2600 Service Pack 2
Platform ID = 2 (NT)
Service Pack = 2.0
Suite = 0x0100
Product Type = 1
Architecture = x86
[2009/01/07 18:03:06 824.3 Driver Install]
#-019 Searching for hardware ID(s): usb\vid_1280&pid_5645&rev_0100,usb\vid_1280&pid_5645
#-018 Searching for compatible ID(s): usb\class_ff&subclass_00&prot_00,usb\class_ff&subclass_00,usb\class_ff
#-198 Command line processed: C:\WINDOWS\system32\services.exe
#-166 Device install function: DIF_SELECTBESTCOMPATDRV.
#W059 Selecting best compatible driver failed. Error 0xe0000228: There are no compatible drivers for this device.
#W157 Default installer failed. Error 0xe0000228: There are no compatible drivers for this device.
[2009/01/07 18:03:08 3508.2]
#-199 Executing “C:\WINDOWS\system32\rundll32.exe” with command line: rundll32.exe newdev.dll,ClientSideInstall \.\pipe\PNP_Device_Install_Pipe_1.{14DCF01B-4547-4AA7-9D69-D08264FA2D94}
#I060 Set selected driver.
#-019 Searching for hardware ID(s): usb\vid_1280&pid_5645&rev_0100,usb\vid_1280&pid_5645
#-018 Searching for compatible ID(s): usb\class_ff&subclass_00&prot_00,usb\class_ff&subclass_00,usb\class_ff
#-166 Device install function: DIF_SELECTBESTCOMPATDRV.
#W059 Selecting best compatible driver failed. Error 0xe0000228: There are no compatible drivers for this device.
#W157 Default installer failed. Error 0xe0000228: There are no compatible drivers for this device.
#I060 Set selected driver.
#-019 Searching for hardware ID(s): usb\vid_1280&pid_5645&rev_0100,usb\vid_1280&pid_5645
#-018 Searching for compatible ID(s): usb\class_ff&subclass_00&prot_00,usb\class_ff&subclass_00,usb\class_ff
#-019 Searching for hardware ID(s): usb\vid_1280&pid_5645&rev_0100,usb\vid_1280&pid_5645
#-018 Searching for compatible ID(s): usb\class_ff&subclass_00&prot_00,usb\class_ff&subclass_00,usb\class_ff
#-166 Device install function: DIF_SELECTBESTCOMPATDRV.
#W059 Selecting best compatible driver failed. Error 0xe0000228: There are no compatible drivers for this device.
#W157 Default installer failed. Error 0xe0000228: There are no compatible drivers for this device.
#I060 Set selected driver.
#-019 Searching for hardware ID(s): usb\vid_1280&pid_5645&rev_0100,usb\vid_1280&pid_5645
#-018 Searching for compatible ID(s): usb\class_ff&subclass_00&prot_00,usb\class_ff&subclass_00,usb\class_ff
#-019 Searching for hardware ID(s): usb\vid_1280&pid_5645&rev_0100,usb\vid_1280&pid_5645
#-018 Searching for compatible ID(s): usb\class_ff&subclass_00&prot_00,usb\class_ff&subclass_00,usb\class_ff
#I022 Found “USB\VID_1280&PID_5645” in d:\bin\isousb.inf; Device: “ISOUSB.Sys for Intel Isochronous”; Driver: “ISOUSB.Sys for Intel Isochronous”; Provider: “Microsoft”; Mfg: “Intel”; Section name: “ISOUSB.Dev”.
#I087 Driver node not trusted, rank changed from 0x00000001 to 0x00008001.
#I023 Actual install section: [ISOUSB.Dev.NT]. Rank: 0x00008001. Effective driver date: 08/05/1999.
#-166 Device install function: DIF_SELECTBESTCOMPATDRV.
#I063 Selected driver installs from section [ISOUSB.Dev] in “d:\bin\isousb.inf”.
#I320 Class GUID of device remains: {36FC9E60-C465-11CF-8056-444553540000}.
#I060 Set selected driver.
#I058 Selected best compatible driver.
#-124 Doing copy-only install of “USB\VID_1280&PID_5645\SER1234567890”.
#E360 An unsigned or incorrectly signed file “d:\bin\isousb.inf” for driver “ISOUSB.Sys for Intel Isochronous” will be installed (Policy=Ignore). Error 0xe000022f: The third-party INF does not contain digital signature information.
#W187 Install failed, attempting to restore original files.
#E360 An unsigned or incorrectly signed file “d:\bin\isousb.inf” for driver “ISOUSB.Sys for Intel Isochronous” will be installed (Policy=Ignore). Error 0xe000022f: The third-party INF does not contain digital signature information.
#-024 Copying file “d:\bin\ISOUSB.sys” to “C:\WINDOWS\System32\Drivers\ISOUSB.sys”.
#E360 An unsigned or incorrectly signed file “d:\bin\isousb.inf” for driver “ISOUSB.Sys for Intel Isochronous” will be installed (Policy=Ignore). Error 0xe000022f: The third-party INF does not contain digital signature information.
#-166 Device install function: DIF_REGISTER_COINSTALLERS.
#I056 Coinstallers registered.
#-166 Device install function: DIF_INSTALLINTERFACES.
#-011 Installing section [ISOUSB.Dev.NT.Interfaces] from “d:\bin\isousb.inf”.
#I054 Interfaces installed.
#-166 Device install function: DIF_INSTALLDEVICE.
#I123 Doing full install of “USB\VID_1280&PID_5645\SER1234567890”.
#E360 An unsigned or incorrectly signed file “d:\bin\isousb.inf” for driver “ISOUSB.Sys for Intel Isochronous” will be installed (Policy=Ignore). Error 0xe000022f: The third-party INF does not contain digital signature information.
#I163 Device not started: Device has problem: 0x27: CM_PROB_DRIVER_FAILED_LOAD.
#I121 Device install of “USB\VID_1280&PID_5645\SER1234567890” finished successfully.


There was a long thread for Device has problem: 0x27: CM_PROB_DRIVER_FAILED_LOAD issue at http://www.osronline.com/showThread.cfm?link=140543 but it concluded with the point in COINSTALLERS section of the inf. In the given sample of isousb.inf, there is no coinstallers section.

At the device side, set_request from the Windows never occurs.

In-order to confirm whether there is anything missing in device firmware, I tried the same driver with logi tech USB camera, but ended up in same device not started error.

Can somebody reduce the problem scope by having the glance at the above log report. Do I need to modify or add any of the sections in the existing isousb.inf file.

Regards.

Regrets for typo mistake. My point was that at the device side, set_configuration request from the Windows never occurs.

xxxxx@gmail.com wrote:

Dear Team,

I tried to load the src-usb-isousb sample driver for the custom device but ended up in device not started error. The following is the info reported by setupapi.

#I123 Doing full install of “USB\VID_1280&PID_5645\SER1234567890”.
#E360 An unsigned or incorrectly signed file “d:\bin\isousb.inf” for driver “ISOUSB.Sys for Intel Isochronous” will be installed (Policy=Ignore). Error 0xe000022f: The third-party INF does not contain digital signature information.
#I163 Device not started: Device has problem: 0x27: CM_PROB_DRIVER_FAILED_LOAD.
#I121 Device install of “USB\VID_1280&PID_5645\SER1234567890” finished successfully.


There was a long thread for Device has problem: 0x27: CM_PROB_DRIVER_FAILED_LOAD issue at http://www.osronline.com/showThread.cfm?link=140543 but it concluded with the point in COINSTALLERS section of the inf. In the given sample of isousb.inf, there is no coinstallers section.

At the device side, set_request from the Windows never occurs.

Right, because the driver never loaded.

In-order to confirm whether there is anything missing in device firmware, I tried the same driver with logi tech USB camera, but ended up in same device not started error.

Can somebody reduce the problem scope by having the glance at the above log report. Do I need to modify or add any of the sections in the existing isousb.inf file.

Which DDK build environment did you use? The log is from XP, so if you
built it in the Vista environment, it might require exports that aren’t
available on XP.


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

Thanks for the guidance. Yes, the build environment is Vista and I tried to load the driver on XP. I changed my build environment to XP and the driver is installing normally.

As for as the test application is concerned, I am unable to send and receive the data to and from the device. The same problem has been addressed at http://www.techreplies.com/drivers-43/isoch-read-write-loopback-newbie-336896/, but I am little confused in the naming of the pipes.

The following is the usb configuration dump from rwiso.exe application:


D:\WinDDK\6000\src\isousb\exe\objchk_wxp_x86\i386>RwIso.exe -u

Attempting to open \?\usb#vid_1280&pid_5645#ser1234567890#{a1155b78-a32c-11d1-9
aed-00a0c98ba608}
DeviceName = (\?\usb#vid_1280&pid_5645#ser1234567890#{a1155b78-a32c-11d1-9aed-0
0a0c98ba608})
request complete, success = 1 nBytes = 41

Configuration Descriptor:
wTotalLength: 0x0029
bNumInterfaces: 0x01
bConfigurationValue: 0x01
iConfiguration: 0x04
bmAttributes: 0x80
Bus Powered
MaxPower: 0x32 (100 Ma)


Interface Descriptor:
bInterfaceNumber: 0x00
bAlternateSetting: 0x00
bNumEndpoints: 0x00
bInterfaceClass: 0xFF
bInterfaceSubClass: 0x00
bInterfaceProtocol: 0x00
iInterface: 0x06


Interface Descriptor:
bInterfaceNumber: 0x00
bAlternateSetting: 0x01
bNumEndpoints: 0x02
bInterfaceClass: 0xFF
bInterfaceSubClass: 0x00
bInterfaceProtocol: 0x00
iInterface: 0x00

Endpoint Descriptor:
bEndpointAddress: 0x02 OUT
Transfer Type: Isochronous
wMaxPacketSize: 0x0040 (64)
bInterval: 0x01

Endpoint Descriptor:
bEndpointAddress: 0x82 IN
Transfer Type: Isochronous
wMaxPacketSize: 0x0040 (64)
bInterval: 0x01


From the above log, there are two isochronous end points in the first alternate setting of the interface 0. In the application, I made sure that I selected the first alternate setting.

When I try rwiso -w 10, createfile succeeds and writefile fails with 87 error. USB Monitor shows no data transfer from host to device.


D:\WinDDK\6000\src\isousb\exe\objchk_wxp_x86\i386>RwIso.exe -w 10

Attempting to open \?\usb#vid_1280&pid_5645#ser1234567890#{a1155b78-a32c-11d1-9
aed-00a0c98ba608}
completeDeviceName = (\?\usb#vid_1280&pid_5645#ser1234567890#{a1155b78-a32c-11d
1-9aed-00a0c98ba608}\PIPE01)
Opened successfully.
W (0000) : request 000010 bytes – 000000 bytes written
Assertion failed: nBytesWrite == WriteLen, file d:\winddk\6000\src\isousb\exe\rw
iso.c, line 1317

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application’s support team for more information.

----------------------------------------------------------------------------------------------

I tried the possibilities of pipe names 0 to 4 but resulted in same error.

If the driver does not support reading or writing to the base device, kindly provide a pointer to the method of framing pipe names in the application based on the usb configuration dump.

Regards.

> Thanks for the guidance. Yes, the build environment is Vista and I tried to load the driver on XP.

Correct, this is not supported.


Maxim S. Shatskih
Windows DDK MVP
xxxxx@storagecraft.com
http://www.storagecraft.com