USBIP C library 0.7.0
Virtual USB devices & host drivers over USB/IP
Loading...
Searching...
No Matches
USB Classes

A device class is a ready-made, host-recognised function: it owns the descriptors and the class protocol, so your code supplies only behaviour through callbacks.

Every class follows the same three steps - usbip_device_create() a device, *_add() the class, usbip_device_plug() it. Writing your own class uses the same public API (see the class layer).

Class Header Reference
HID classes/hid.h HID - Human Interface Device
CDC-ACM classes/cdc_acm.h CDC-ACM - Virtual serial port
MSC classes/msc.h MSC - Mass storage (SCSI/BOT)
MTP classes/mtp.h MTP - Media Transfer Protocol
UAC classes/uac.h UAC - USB Audio Class 1.0
UVC classes/uvc.h UVC - USB Video Class (webcam)
DFU classes/dfu.h DFU - Device Firmware Upgrade
Bluetooth classes/bluetooth.h Bluetooth - HCI transport

Each reference page documents the class's *_opts struct, its entry point and every callback it can hand you. Every class but Bluetooth also has a runnable program under examples/device/, and Linux / Windows tabulate what each class turns into once a host imports it.

Not everything ships as a class: Vendor Devices & WebUSB covers vendor-specific and WebUSB devices built on the core alone, and Composite devices covers putting several functions on one device.