I am generally annoyed by people that repeat their questions when they
don’t get an answer right away, but in this case I think there is a
point that really needs to be clarified. The libusb and libusbx
projects are trying to figure out how to support isochronous pipes, and
this is a critical point for them.
Thus far, the philosophy of KMDF, UMDF, and WinUSB has always been that
the available feature set is entirely dependent on my choice of
co-installer, with no dependency on the operating system in use. If I
want KMDF 1.9, then I carry KMDF 1.9 with me wherever I go. I can rely
on KMDF 1.9 features anywhere, from XP to Windows 8. That’s a nice feature.
The IMPLICATION from the MSDN page for the new WinUSB APIs (for example,
WinUsb_RegisterIsochBuffer) is that this philosophy may have changed. I
assume that WinUSB 8.1 can still be installed on XP (well, Vista, at
least). But when I do that, do I get isochronous support? Or do I only
get isochronous support if I install WinUSB 8.1 on Windows 8.1? If that
is the case, that’s a significant new inconvenience (and I won’t bring
up the fact that GetVersionEx is lying to us, making that more difficult
to determine).
Specifically, the libusbx folks have been thinking they could determine
whether isochronous support was present by doing GetProcAddress for
WinUsb_RegisterIsochBuffer. If they ALSO need to do an operating system
version check, that’s not a good thing.
If the support is strictly embedded in WinUSB and not dependent on the
operating system version, then the Requirements section of those MSDN
pages need to be revised.
Tim Roberts wrote:
With Windows 8.1, the WinUSB APIs now support isochronous transfers.
However, the APIs are all listed in MSDN as “Minimnum supported client:
Windows 8.1”.
I’m a little confused by that. In the past, WinUSB was not an operating
system component. It was an add-on that I installed with my device.
The available functionality was determined by the WinUSB co-installer
version you used in your INF, not by the operating system version. That
is, I could grab the WinUSB co-installer from the 7600 WDK, install it
on XP, and be a happy camper.
Is the isochronous support fundamentally different somehow? Does it
rely on UMDF 2.0? Will the 8.1 version of WinUSB still install
downlevel, but without isochronous support?
–
Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.