
Designer Reference Manual USB08 Evaluation Board
158 Universal USB Device Driver (USBIO) MOTOROLA
Universal USB Device Driver (USBIO)
IOCTL_USBIO_STORE_CONFIG_DESCRIPTOR
The IOCTL_USBIO_STORE_CONFIG_DESCRIPTOR operation stores
the configuration descriptor to be used for set configuration requests
within the USBIO device driver.
lpInBuffer Pointer to a buffer that contains the configuration descriptor data.
nInBufferSize Specifies the size, in bytes, of the buffer pointed to by lpInBuffer.
lpOutBuffer Not used with this operation. Set to NULL.
nOutBufferSize Not used with this operation. Set to zero
Comments This request may be used to store an user-defined configuration
descriptor within the USBIO driver. The stored descriptor is used by th e
USBIO driver in subsequent IOCTL_USBIO_SET_CONFIGURATION
(page 159) operations. The usage of
IOCTL_USBIO_STORE_CONFIG_DESCRIPTOR is optional. If no
user-defined configuration descriptor is stored, USBIO uses the
descriptor from the device.
There may be cases where the USBD driver provided by Microsoft with
Windows does not process correctly the configuration descriptor that is
reported by the device. This means it would not be possib le to confi gure
the device. In this situation the
IOCTL_USBIO_STORE_CONFIG_DESCRIPTOR request may be used to
work around the problem. This request enables the applicati on to u se a
modified configuration descriptor. The application can get the
configuration descriptor using ISOCTL_USBIO_GET_DESCRIPTOR
(page 151), modify it appropriately and store it in the USBIO driver usi ng
the IOCTL_USBIO_STORE_CONFIG_DESCRIPTOR request. Thus, the
modified configuration descriptor will be passed to USBD when the
device is configured.
The following is an example for the problem described above:
In the endpoint descriptor of an audio device th e bmAttributes
field contains two additional bits of information as defined by the
audio class specification. The USBD does not recognize the pipe
correctly and returns an invalid pipe type, when the additional bits
in bmAttributes are not masked off. This has to be do ne by the
application.