| Offset | Contents |
|---|---|
| +0 | Sum length of the block including the appended descriptors |
| +2 | Offset to the descriptors |
| +4 | Device name as appears in DeviceFS, NULL terminated |
| +24 | Bus number, 0-255 |
| +25 | USB address, 1-127 |
| +26 | USB address of upstream port 0-127 |
| +27 | Port on host address |
| +28 | Device speed (0=full, 1=low, 2=high) |
| +29 | Reserved |
| +30 | Reserved |
| +31 | Reserved |
| +n | Device descriptors per USB 1.1 specification http://www.usb.org/ |
A USB device is completely described by the block (or list of blocks) pointed to by R2 in the USB service calls. The USBServiceCall includes a copy of the device descriptor, followed immediately by zero or more descriptors. A length byte of zero marks the end of the block, which is then padded with zeros to achieve word alignment.