I understand that the USB driver stack on WinXP and Win2k are somewhat
different. However, ultimately, a vendor's USB client (function) driver will
talk to usbhub.sys no matter which OS it is. I have encountered a problem
that is pretty weird. My USB smartcard driver works fine on XP. And it works
fine on Win2k if I connect my reader to the system via a USB hub. If I
connect my reader directly to
the root hub, the driver fails in one of the calls to the lower bus driver
during driver init time when I call IoCallDriver. The error code
from the call to IoCallDriver is 0xc000000d (STATUS_INVALID_PARAMETER). This
error code is returned both as the return code to the call IoCallDriver and
as the status returned in UrbHeader.Status. My question is why the
difference? Why would the introduction of a hub change the scenario?
Thanks,
Winston