ADC Home > Reference Library > Technical Q&As > Legacy Documents > Hardware & Drivers >
Important: This document is part of the Legacy section of the ADC Reference Library. This information should not be used for new development.
Current information on this Reference Library topic can be found here:
|
Q: I've written a USB class driver to
support my composite class USB device. I have found that my class
driver is called through both the A: You've encountered a unique situation with how Mac OS USB loads USB composite class drivers, depending on whether the device is detected at system startup or is "hot-plugged."
Developers of USB Class Drivers for USB devices which return a
composite class description are warned that their class driver may be
called via the
Apple provides a Composite class driver that is used to support
USB Composite class devices. At startup, the USB driver detection
mechanism matches devices directly from the drivers in ROM. This
includes the Composite driver, but not a vendor-specific class
drivers. When a composite class device is detected, the Apple generic
composite class driver is used, even though a better matching driver
exists in the extension folder. If this happens, then the Composite
driver loads, which is followed by the vendor class driver being
called through the
Contrast the startup case above with the hot-plug case. Given the
same drivers, at hot-plug, USB finds that the developer's class
driver matches better (since a match by
Note that this problem only exists with composite class devices
and developer class drivers, which specify both the
This is a known issue with USB prior to v1.0.1. For a future
version of USB, the driver loading for composite class drivers will
be the same whether the device is present at startup or is hot-plugged. In the meantime, a class driver for a composite device
should expect to be called through either the
Note that in order for a driver to be called as an
To learn more about the how USB class drivers are matched, refer to the USB TechNote which is available from the Mac OS USB Developer Web Page. [Sep 28 1998] |
|