Line 103:
Line 103:
Internally, this issues /dev/usb/usb ioctl 2 to get descriptors, loops over all endpoints and calls /dev/usb/usb ioctl 5 if <code>(bmAttributes & 3) == 1</code>. If all ioctls succeed, VEN calls /dev/usb/usb ioctl 0x11 with the device ID, alt setting and bInterfaceNumber (+ other unknown values).
Internally, this issues /dev/usb/usb ioctl 2 to get descriptors, loops over all endpoints and calls /dev/usb/usb ioctl 5 if <code>(bmAttributes & 3) == 1</code>. If all ioctls succeed, VEN calls /dev/usb/usb ioctl 0x11 with the device ID, alt setting and bInterfaceNumber (+ other unknown values).
|-
|-
β
| 8 || ? || 0x20 || None
+
| 8 || ?
+
| 0x20 bytes
+
+
1-2: Device index<br>
+
2-4: Device number
+
| None
| calls /dev/usb/usb ioctl 3
| calls /dev/usb/usb ioctl 3
|-
|-
β
| 0x10 || SuspendResume || 0x20 || None
+
| 0x10 || SuspendResume
β
| calls /dev/usb/usb ioctl 4
+
| 0x20 bytes
+
+
1-2: Device index<br>
+
2-4: Device number<br>
+
4-8: Unknown1 (passed to /dev/usb/usb ioctl 4)<br>
+
11-12: Unknown2 (must match internal device struct offset 0x1d)
+
| None
+
| Unknown.
+
+
Calls /dev/usb/usb ioctl 4. If the call was successful, sets <code>device->x1d</code> to Unknown1.
|-
|-
| 0x11 || CancelEndpoint || 0x20 || None
| 0x11 || CancelEndpoint || 0x20 || None