USB bulk read and Vista

Hi,

We’re having a WDF based USB function driver for a fingerprint scanner device. The driver works fine in 2k/2k3 and XP. But in case of Vista, we’re loosing the data when reading through the bulk read pipe.
We’re reading 1310720 bytes of the data at a time from our function driver. While this works fine in 2k/xp and 2k3, in case of vista, based upon our observation using hardware analyzer, it looks like some of the BULK IN packets are not read by the lower level driver(HCI driver?) from the device.
Due to this, some 512 byte chunks are missing and this causes the data read to be garbled.
Could this be a vista specific problem or any usage related problem? Any suggestions wiil be appreciated.

Thanks,
Arif

Arif,

> We’re having a WDF based USB function driver for a fingerprint scanner device. The driver works fine in 2k/2k3 and XP. But in case of Vista, we’re loosing the data when reading through the bulk read pipe.
> We’re reading 1310720 bytes of the data at a time from our function driver. While this works fine in 2k/xp and 2k3, in case of vista, based upon our observation using hardware analyzer, it looks like some of the BULK IN packets are not read by the lower level driver(HCI driver?) from the device.
> Due to this, some 512 byte chunks are missing and this causes the data read to be garbled.
> Could this be a vista specific problem or any usage related problem? Any suggestions wiil be appreciated.

How much data are you transferring for each bulk URB? On Vista EHCI bulk transfers larger than 512K will be broken into multiple 512K transfers, and there can be delays between each 512K transfer. If you have limited buffering on your device, these delays could explain the data loss.

-Martin

Hi Martin,
Thanks for your response. We are requesting 1310720 bytes of data from the
device (which is a fingerprint reading device). What is puzzling me is
that the same driver is working perfectly fine in Win2K, XP and 2K3. The
driver is a KMDF based driver. Is there anything you can suggest that can
resolve this problem at the driver side or do we need to have the device
firmware checked for supporting this.
Thanks again,
Arif

Arif,

>> We’re having a WDF based USB function driver for a fingerprint scanner
>> device. The driver works fine in 2k/2k3 and XP. But in case of Vista,
>> we’re loosing the data when reading through the bulk read pipe.
>> We’re reading 1310720 bytes of the data at a time from our function
>> driver. While this works fine in 2k/xp and 2k3, in case of vista, based
>> upon our observation using hardware analyzer, it looks like some of the
>> BULK IN packets are not read by the lower level driver(HCI driver?)
>> from the device.
>> Due to this, some 512 byte chunks are missing and this causes the data
>> read to be garbled.
>> Could this be a vista specific problem or any usage related problem?
>> Any suggestions wiil be appreciated.

How much data are you transferring for each bulk URB? On Vista EHCI bulk
transfers larger than 512K will be broken into multiple 512K transfers,
and there can be delays between each 512K transfer. If you have limited
buffering on your device, these delays could explain the data loss.

-Martin


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

KMDF has nothing really to do with this issue. It will send your 1310720 as is to the usb core, as a WDM driver would

d

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@calsoft.co.in
Sent: Tuesday, September 25, 2007 12:04 AM
To: Windows System Software Devs Interest List
Cc: Windows System Software Devs Interest List
Subject: RE: [ntdev] USB bulk read and Vista

Hi Martin,
Thanks for your response. We are requesting 1310720 bytes of data from the
device (which is a fingerprint reading device). What is puzzling me is
that the same driver is working perfectly fine in Win2K, XP and 2K3. The
driver is a KMDF based driver. Is there anything you can suggest that can
resolve this problem at the driver side or do we need to have the device
firmware checked for supporting this.
Thanks again,
Arif

Arif,

>> We’re having a WDF based USB function driver for a fingerprint scanner
>> device. The driver works fine in 2k/2k3 and XP. But in case of Vista,
>> we’re loosing the data when reading through the bulk read pipe.
>> We’re reading 1310720 bytes of the data at a time from our function
>> driver. While this works fine in 2k/xp and 2k3, in case of vista, based
>> upon our observation using hardware analyzer, it looks like some of the
>> BULK IN packets are not read by the lower level driver(HCI driver?)
>> from the device.
>> Due to this, some 512 byte chunks are missing and this causes the data
>> read to be garbled.
>> Could this be a vista specific problem or any usage related problem?
>> Any suggestions wiil be appreciated.

How much data are you transferring for each bulk URB? On Vista EHCI bulk
transfers larger than 512K will be broken into multiple 512K transfers,
and there can be delays between each 512K transfer. If you have limited
buffering on your device, these delays could explain the data loss.

-Martin


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


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 understand Doron that KMDF should not really have anything to do with
this issue. Strangely the same driver works happily and image the
acquisition also is working perfectly fine other OSs except Vista. Would
you suggest something else that i should check in my driver to resolve
this issue. Any suggestions will appreciated.
Thanks,
Arif

KMDF has nothing really to do with this issue. It will send your 1310720
as is to the usb core, as a WDM driver would

d

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@calsoft.co.in
Sent: Tuesday, September 25, 2007 12:04 AM
To: Windows System Software Devs Interest List
Cc: Windows System Software Devs Interest List
Subject: RE: [ntdev] USB bulk read and Vista

Hi Martin,
Thanks for your response. We are requesting 1310720 bytes of data from the
device (which is a fingerprint reading device). What is puzzling me is
that the same driver is working perfectly fine in Win2K, XP and 2K3. The
driver is a KMDF based driver. Is there anything you can suggest that can
resolve this problem at the driver side or do we need to have the device
firmware checked for supporting this.
Thanks again,
Arif

> Arif,
>
>>> We’re having a WDF based USB function driver for a fingerprint scanner
>>> device. The driver works fine in 2k/2k3 and XP. But in case of Vista,
>>> we’re loosing the data when reading through the bulk read pipe.
>>> We’re reading 1310720 bytes of the data at a time from our function
>>> driver. While this works fine in 2k/xp and 2k3, in case of vista,
>>> based
>>> upon our observation using hardware analyzer, it looks like some of
>>> the
>>> BULK IN packets are not read by the lower level driver(HCI driver?)
>>> from the device.
>>> Due to this, some 512 byte chunks are missing and this causes the data
>>> read to be garbled.
>>> Could this be a vista specific problem or any usage related problem?
>>> Any suggestions wiil be appreciated.
>
> How much data are you transferring for each bulk URB? On Vista EHCI
> bulk
> transfers larger than 512K will be broken into multiple 512K transfers,
> and there can be delays between each 512K transfer. If you have limited
> buffering on your device, these delays could explain the data loss.
>
> -Martin
>
>
>
>
> —
> 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
>
>


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


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

Arif,

Could you test breaking up your transfer into multiple 512K transfers? Back-to-back 512K transfers would not exhibit the time delays that would be seen if the EHCI driver needs to break up a larger transfer into 512K chunks. This would tell us if this actually the problem you are seeing.

-Martin

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@calsoft.co.in
Sent: Tuesday, September 25, 2007 12:04 AM
To: Windows System Software Devs Interest List
Cc: Windows System Software Devs Interest List
Subject: RE: [ntdev] USB bulk read and Vista

Hi Martin,
Thanks for your response. We are requesting 1310720 bytes of data from the
device (which is a fingerprint reading device). What is puzzling me is
that the same driver is working perfectly fine in Win2K, XP and 2K3. The
driver is a KMDF based driver. Is there anything you can suggest that can
resolve this problem at the driver side or do we need to have the device
firmware checked for supporting this.
Thanks again,
Arif

Arif,

>> We’re having a WDF based USB function driver for a fingerprint scanner
>> device. The driver works fine in 2k/2k3 and XP. But in case of Vista,
>> we’re loosing the data when reading through the bulk read pipe.
>> We’re reading 1310720 bytes of the data at a time from our function
>> driver. While this works fine in 2k/xp and 2k3, in case of vista, based
>> upon our observation using hardware analyzer, it looks like some of the
>> BULK IN packets are not read by the lower level driver(HCI driver?)
>> from the device.
>> Due to this, some 512 byte chunks are missing and this causes the data
>> read to be garbled.
>> Could this be a vista specific problem or any usage related problem?
>> Any suggestions wiil be appreciated.

How much data are you transferring for each bulk URB? On Vista EHCI bulk
transfers larger than 512K will be broken into multiple 512K transfers,
and there can be delays between each 512K transfer. If you have limited
buffering on your device, these delays could explain the data loss.

-Martin


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


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