USB-driver lifecycle reference
USB host, device, interface, endpoint, and package layers across a device-driver lifecycle.

Topology before function
USB software first represents a host controller, hubs, addresses, and devices in a bus topology. A physical product can then expose one or more interfaces, each with its own class or function relationship. The topology and the device function are adjacent layers, not synonyms.
Descriptors carry identity
USB descriptors describe a device, configuration, interface, endpoint, and sometimes other capabilities. Their fields help the host understand what the device presents before a function-specific driver interprets data. A descriptor is metadata about an interface, not a complete user-facing product description.
Endpoints carry transfers
Endpoints define sources or destinations and the transfer conventions used by an interface. Control, bulk, interrupt, and isochronous transfers have different purposes and timing characteristics. A driver’s lifecycle includes establishing these relationships before it exposes a higher-level function.
Package and runtime records
A USB package can declare matching identifiers, class relationships, files, services, and signatures. Runtime enumeration, selection, activation, and removal have their own states. Keeping package declarations separate from live bus traffic makes USB documentation easier to read.
Reference facts
- Hierarchy
- Host controller, hubs, devices, interfaces, and endpoints
- Descriptor role
- Structured identity and capability metadata
- Transfer families
- Control, bulk, interrupt, and isochronous contracts
Questions and answers
Is a USB device the same as a USB interface?
No. One USB device can expose multiple interfaces, each representing a function or class relationship.
Does an endpoint identify a physical connector?
No. An endpoint is a logical source or destination in a device interface; the connector and bus topology are different concepts.
Does every USB function have a vendor-specific driver?
No. Standard classes can use shared behavior, while a vendor-specific interface may require a distinct package or service.