Designer Reference Manual USB08 Evaluation Board
132 Universal USB Device Driver (USBIO) MOTOROLA
Universal USB Device Driver (USBIO)
E.1 Contents
E.2 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .135
E.3 Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .135
E.3.1 Platforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .136
E.3.2 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .136
E.4 Architecture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .138
E.4.1 USBIO Object Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .140
E.4.1.1 USBIO Device Objects. . . . . . . . . . . . . . . . . . . . . . . . . .140
E.4.1.2 USBIO Pipe Objects . . . . . . . . . . . . . . . . . . . . . . . . . . .142
E.4.2 Establishing a Connection to the Device . . . . . . . . . . . . . . .144
E.4.3 Power Management. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .146
E.4.4 Device State Change Notifications. . . . . . . . . . . . . . . . . . . .148
E.5 Programming Interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .149
E.5.1 Programming Interface Overview. . . . . . . . . . . . . . . . . . . . .149
E.5.2 Control Requests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .150
IOCTL_USBIO_GET_DESCRIPTOR. . . . . . . . . . . . . . . . . .151
IOCTL_USBIO_SET_DESCRIPTOR. . . . . . . . . . . . . . . . . .152
IOCTL_USBIO_SET_FEATURE . . . . . . . . . . . . . . . . . . . . .153
IOCTL_USBIO_CLEAR_FEATURE. . . . . . . . . . . . . . . . . . .154
IOCTL_USBIO_GET_STATUS . . . . . . . . . . . . . . . . . . . . . .155
IOCTL_USBIO_GET_CONFIGURATION . . . . . . . . . . . . . .156
IOCTL_USBIO_GET_INTERFACE . . . . . . . . . . . . . . . . . . .157
IOCTL_USBIO_STORE_CONFIG_DESCRIPTOR . . . . . . .158
IOCTL_USBIO_SET_CONFIGURATION. . . . . . . . . . . . . . .159
IOCTL_USBIO_UNCONFIGURE_DEVICE . . . . . . . . . . . . .160
IOCTL_USBIO_SET_INTERFACE . . . . . . . . . . . . . . . . . . . 161
IOCTL_USBIO_CLASS_OR_VENDOR_IN_REQUEST . . . 162
IOCTL_USBIO_CLASS_OR_VENDOR_OUT_REQUEST . 163
IOCTL_USBIO_GET_DEVICE_PARAMETERS . . . . . . . . .164
IOCTL_USBIO_SET_DEVICE_PARAMETERS. . . . . . . . . .165
IOCTL_USBIO_GET_CONFIGURATION_INFO . . . . . . . . .166
IOCTL_USBIO_RESET_DEVICE . . . . . . . . . . . . . . . . . . . . 167
IOCTL_USBIO_GET_CURRENT_FRAME_NUMBER. . . . .168
IOCTL_USBIO_SET_DEVICE_POWER_STATE . . . . . . . .169
IOCTL_USBIO_GET_DEVICE_POWER_STATE . . . . . . . .170
IOCTL_USBIO_GET_DRIVER_INFO . . . . . . . . . . . . . . . . .171
IOCTL_USBIO_CYCLE_PORT . . . . . . . . . . . . . . . . . . . . . .172
IOCTL_USBIO_BIND_PIPE. . . . . . . . . . . . . . . . . . . . . . . . .174