Changes

Jump to navigation Jump to search
850 bytes added ,  16:20, 7 October 2017
no edit summary
Line 44: Line 44:  
   SerialNumber: SerialNumber
 
   SerialNumber: SerialNumber
   −
The following is the default <code>lsusb -v {...}</code> output when the usbds service wasn't used. The endpoints are configured using [[#GetDsEndpoint]], the total number of endpoints is the number of open [[#IDsEndpoint]] sessions.
+
The following is the default <code>lsusb -v {...}</code> output when the usbds service wasn't used.
 +
 
 +
The endpoints are configured using [[#GetDsEndpoint]], the total number of endpoints is the number of open [[#IDsEndpoint]] sessions. bInterfaceNumber is {0-based index for the enabled [[#IDsInterface]] session.} Some of the interface fields are configured using [[#GetDsInterface]].
    
   Bus 003 Device 006: ID 057e:2000 Nintendo Co., Ltd  
 
   Bus 003 Device 006: ID 057e:2000 Nintendo Co., Ltd  
Line 106: Line 108:  
== BindComplex ==
 
== BindComplex ==
 
Takes an u32 ('''complexId'''). [[Manu_Services|Manu]] sends 0x02.
 
Takes an u32 ('''complexId'''). [[Manu_Services|Manu]] sends 0x02.
 +
 +
Once this command is used, the USB device will not be listed with <code>lsusb</code> until [[#EnableInterface]] is used.
    
== BindClientProcess ==
 
== BindClientProcess ==
Line 112: Line 116:  
== GetDsInterface ==
 
== GetDsInterface ==
 
Takes 2 type-5 buffers and returns an [[#IDsInterface]]. [[Manu_Services|Manu]] sends a 0x09-byte command (e.g.: 0x09, 0x04, 0x04, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00) in the first buffer and a string ("usb") in the second buffer.
 
Takes 2 type-5 buffers and returns an [[#IDsInterface]]. [[Manu_Services|Manu]] sends a 0x09-byte command (e.g.: 0x09, 0x04, 0x04, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00) in the first buffer and a string ("usb") in the second buffer.
 +
 +
Structure of the first buffer(this is similar to [http://libusb.sourceforge.net/api-1.0/structlibusb__interface__descriptor.html libusb__interface__descriptor]):
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset || Size || Description
 +
|-
 +
| 0x0 || 0x1 || bLength
 +
|-
 +
| 0x1 || 0x1 || ?
 +
|-
 +
| 0x2 || 0x1 || ?
 +
|-
 +
| 0x3 || 0x1 || ?
 +
|-
 +
| 0x4 || 0x1 || ?
 +
|-
 +
| 0x5 || 0x1 || bInterfaceClass
 +
|-
 +
| 0x6 || 0x1 || bInterfaceSubClass
 +
|-
 +
| 0x7 || 0x1 || bInterfaceProtocol
 +
|-
 +
| 0x8 || 0x1 || ?
 +
|}
    
== GetStateChangeEvent ==
 
== GetStateChangeEvent ==
Line 182: Line 210:  
=== EnableInterface ===
 
=== EnableInterface ===
 
Takes no arguments. Enables the current interface.
 
Takes no arguments. Enables the current interface.
 +
 +
Only one interface can be enabled at time, this indicates which interface is actually used for USB.
    
=== DisableInterface ===
 
=== DisableInterface ===

Navigation menu