Dear All,
We have developed a USB device driver. We are carrying out USB device
i/o in the device startup routine as a part of device initialization.
When I connect two devices simultaneously and surprise remove one of
them, the device i/o on the other board fails with the XACT error. This
is bit surprising as surprise removal of one instance causing the i/o
fail on the other instance. Could please share your thoughts on this?
Sincerely,
ML
What is the “XACT” error? Can you be more specific? What’s the value of
Irp->IoStatus.Status, and what’s the value of Urb->UrbHeader.Status?
Also, are you submitting the same URB on more than one IRP?
– arlie
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@wipro.com
Sent: Thursday, February 09, 2006 8:14 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] XACT error
Dear All,
We have developed a USB device driver. We are carrying out USB device i/o in
the device startup routine as a part of device initialization. When I
connect two devices simultaneously and surprise remove one of them, the
device i/o on the other board fails with the XACT error. This is bit
surprising as surprise removal of one instance causing the i/o fail on the
other instance. Could please share your thoughts on this?
Sincerely,
ML
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
You are currently subscribed to ntdev as: unknown lmsubst tag argument: ‘’
To unsubscribe send a blank email to xxxxx@lists.osr.com
Hi arlie,
Thanks for the reply.
The value of Irp->IoStatus.Status is 0xC0000001 (USBD_STATUS_CRC) and
the value of Urb->UrbHeader.Status is 0xC0000011
(USBD_STATUS_XACT_ERROR) which I had mentioned as XACT error. As I’ve
serialized the access to the device by queuing the Irp’s, I’m pretty
sure that same URB is not being submitted on more than one IRP.
Sincerely,
ML
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Arlie Davis
Sent: Friday, February 10, 2006 10:50 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] XACT error
What is the “XACT” error? Can you be more specific? What’s the value
of
Irp->IoStatus.Status, and what’s the value of Urb->UrbHeader.Status?
Also, are you submitting the same URB on more than one IRP?
– arlie
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@wipro.com
Sent: Thursday, February 09, 2006 8:14 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] XACT error
Dear All,
We have developed a USB device driver. We are carrying out USB device
i/o in
the device startup routine as a part of device initialization. When I
connect two devices simultaneously and surprise remove one of them, the
device i/o on the other board fails with the XACT error. This is bit
surprising as surprise removal of one instance causing the i/o fail on
the
other instance. Could please share your thoughts on this?
Sincerely,
ML
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
You are currently subscribed to ntdev as: unknown lmsubst tag argument:
‘’
To unsubscribe send a blank email to xxxxx@lists.osr.com
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
You are currently subscribed to ntdev as: xxxxx@wipro.com
To unsubscribe send a blank email to xxxxx@lists.osr.com
If Irp->IoStatus.Status = 0xc0000001, then its value is STATUS_UNSUCCESSFUL,
not USBD_STATUS_CRC. The USBD_STATUS_* values only apply to
Urb->UrbHeader.Status, not Irp->IoStatus.Status (or any other NTSTATUS
value).
XACT_ERR indicates a physical layer problem. You’ll need a hardware USB
sniffer to get any farther.
Are the two boards plugged into the same USB hub tree, or on completely
separate trees? What URB is being affected – is it an interrupt transfer?
If so, there’s a possibility that the device being unplug has caused some
problem that affects the entire hub tree, and that the second interrupt is
completing with failure.
– arlie
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@wipro.com
Sent: Monday, February 13, 2006 2:15 AM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] XACT error
Hi arlie,
Thanks for the reply.
The value of Irp->IoStatus.Status is 0xC0000001 (USBD_STATUS_CRC) and the
value of Urb->UrbHeader.Status is 0xC0000011
(USBD_STATUS_XACT_ERROR) which I had mentioned as XACT error. As I’ve
serialized the access to the device by queuing the Irp’s, I’m pretty sure
that same URB is not being submitted on more than one IRP.
Sincerely,
ML
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Arlie Davis
Sent: Friday, February 10, 2006 10:50 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] XACT error
What is the “XACT” error? Can you be more specific? What’s the value of
Irp->IoStatus.Status, and what’s the value of Urb->UrbHeader.Status?
Also, are you submitting the same URB on more than one IRP?
– arlie
Hello,
Arlie, is this problem known to you?
I think we have the same or a quite similar problem: When two (or more)
of our USB highspeed devices are connected to one USB hub ree and one
device is surprise removed, the pending read IRP of ONE other device
returns with IRP status STATUS_UNSUCCESSFUL and USBD status
USBD_STATUS_XACT_ERROR. This pending read IRP / URB is a re-used IRP /
URB. On our devices the Philips USB controller ISP 1581 and ISP 1582
are used.
This error occurs only with USB root controller within Intel 82801 IO
controller and our devices are connected “directly” to that hub. We
never saw this problem, if - the devices are connected e.g. via an
external hub and this hub is connected to that Intel 82801 IO
controller. - the devices are connected to a USB-PCI card with e.g. a
NEC or SIS USB root controller.
Our hardware collegues did a close look at this - especially the eye
diagramm was discussed -, but we didn’t found anything that didn’t look
ok …
We’d greatly appreciate any hint or information!
Thanks! Olav
Subject: RE: XACT error
From: “Arlie Davis”
> Date: Mon, 13 Feb 2006 11:35:12 -0500
> X-Message-Number: 21
>
> If Irp->IoStatus.Status = 0xc0000001, then its value is STATUS_UNSUCCESSFUL,
> not USBD_STATUS_CRC. The USBD_STATUS_* values only apply to
> Urb->UrbHeader.Status, not Irp->IoStatus.Status (or any other NTSTATUS
> value).
>
> XACT_ERR indicates a physical layer problem. You’ll need a hardware USB
> sniffer to get any farther.
>
> Are the two boards plugged into the same USB hub tree, or on completely
> separate trees? What URB is being affected – is it an interrupt transfer?
> If so, there’s a possibility that the device being unplug has caused some
> problem that affects the entire hub tree, and that the second interrupt is
> completing with failure.
>
> – arlie