Hello all.
Please tell me if there are any critical changes in the USB subsystem (or scheduler) on Windows 8 compared to Windows 7, etc? Or, perhaps, advise the resource where there are competent people who can help me?
The fact is that I do support USB driver that provides isochronous Audio streaming via USB2.0. Driver is old and based on WDM.
When creating a URB request, used "manual" calculation a StartFrame number, i.e. without USBD_START_ISO_TRANSFER_ASAP.
The essence of the problem is that in the debug version of the driver (no optimization /Od) on Windows 8 is appear errors as USBD_STATUS_ISO_NOT_ACCESSED_BY_HW (0xC0020000), although in previous versions of Windows (XP, 7 and so forth) of these errors do
not appear.
In MSDN: http://msdn.microsoft.com/en-us/library/windows/hardware/ff539136%28v=vs.85%29.aspx
given a "slippery"interpretation of this
error, which does not explain the reason:
"The host controller did not access the transfer descriptor (TD) that is associated with this packet. The USB stack reports this error in the packet status field of an isochronous transfer
packet."
Why "The host controller did not access the transfer descriptor (TD) that is associated with this packet" is not
clear...
I wanted to know what
could be the reason for this type of error?
I'm look a similarproblem in:
http://www.osronline.com/showthread.cfm?link=159354
which states that it may be
hardware errors from USB Host Controller (HC)... But with my HC on Windows 7
these problems are not exists...
I also brought up the statistics of time spent on call and work IRP completion callback for Release and Debug target on Win8:
Release : Interval between callbacks = ~16ms, One runtime callback spent time = ~4.9ms
Debug : Interval between callbacks = ~16ms, One runtime callback spent time = 0-6ms
You may notice that Runtime time for Debug build very drift from 0 to 6 ms, although for Release build it more stable ~ 4.9ms.
Can anyone advise
me something?
May me draw attention to something else? Maybe there are some features or timing limits in
the processing of completion callback from USB?
Best regards,
Denis