| 2 || Shutdown ||colspan="3" style="text-align: center"| Identical to VEN
| 2 || Shutdown ||colspan="3" style="text-align: center"| Identical to VEN
|-
|-
−
| 3 || GetDeviceInfo || ? || ? || Similar to VEN, but with different offsets
+
| 3 || GetDeviceInfo
+
| 0x20 bytes
+
+
1-2: Device index<br>
+
2-4: Device number
+
+
(0-4 is considered as a whole as the device ID, but IOS only cares about these two values.)
+
+
| 0x60 bytes (memset to 0)
+
+
0-4: Device ID<br>
+
4-8: Unknown byte from <code>ioctl_2_out_buffer[5]</code><br>
+
36-56: Device descriptor<br>
+
56-68: Config descriptor<br>
+
68-80: Interface descriptor<br>
+
80-88: Interrupt IN endpoint descriptor<br>
+
88-96: Interrupt OUT endpoint descriptor
+
+
| Get USB descriptors for a device. Behind the scenes, calls /dev/usb/usb ioctl 2 (input: internal ID, output: descriptors) and copies information to the output buffer and the internal device struct (must be called before a device can be used).
+
+
The descriptor structures match the ones used by libusb (with padding).
+
+
This is very similar to VEN, but with different offsets and only interrupt endpoint descriptors, at fixed offsets.
|-
|-
| 4 || ? ||colspan="3" style="text-align: center"| Identical to VEN
| 4 || ? ||colspan="3" style="text-align: center"| Identical to VEN