Article ID: 200977 - View products that this article applies to.
This article was previously published under Q200977
A WDM driver can typically set the MaximumTransferSize for a USB device by means of the URB_FUNCTION_SELECT_CONFIGURATION function. However, attempts to use URB_FUNCTION_SELECT_CONFIGURATION to set the MaximumTransferSize for the endpoints of a function on a composite USB device will fail.
The maximum transfer size for the endpoints is still set to the default value of 4 kilobytes (KB).
When Usbhub.sys is loaded as the parent driver for a composite USB device, it selects alternate interface 0 (zero) for each interface on the device before it enumerates each child function. When the WDM driver that is loaded for a specific child function subsequently tries to use URB_FUNCTION_SELECT_CONFIGURATION and specifies alternate interface 0 with a non-default maximum transfer size, Usbhub.sys intercepts the request and returns success without passing the request to the device, because it believes alternate interface 0 is already selected and there is no need to reselect the interface. This results in the maximum transfer size not getting changed for the device.
A WDM driver loaded for a function of a composite USB device can use URB_FUNCTION_SELECT_INTERFACE to select alternate interface 0 after it uses URB_FUNCTION_SELECT_CONFIGURATION to select the configuration. This has the effect of setting the MaximumTransferSize to the value specified by the WDM driver.
Article ID: 200977 - Last Review: February 16, 2004 - Revision: 2.0
Retired KB Content Disclaimer
This article was written about products for which Microsoft no longer offers support. Therefore, this article is offered "as is" and will no longer be updated.
Contact us for more help