Ioctl_usbio_store_config_descriptor – Motorola USB08 User Manual

Page 158

Advertising
background image

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
(

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 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
(

page 151

), 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.

Advertising