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 the
USBIO driver in subsequent IOCTL_USBIO_SET_CONFIGURATION
(
) 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 possible to configure
the device. In this situation the
IOCTL_USBIO_STORE_CONFIG_DESCRIPTOR
request may be used to
work around the problem. This request enables the application to use a
modified configuration descriptor. The application can get the
configuration descriptor using ISOCTL_USBIO_GET_DESCRIPTOR
(
), modify it appropriately and store it in the USBIO driver using
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 the
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 done by the
application.