Changes

603 bytes added ,  05:35, 9 August 2015
Add ioctl requests for acquiring and releasing interfaces
Line 2: Line 2:     
==ioctl() interface==
 
==ioctl() interface==
 +
===0x04 - UhsAcquireInterface()===
 +
This function is used to acquire a USB device interface for use. Its input is a 12-byte buffer containing: a 32-bit interface handle, an unknown word, and a callback for when the acquire completes. No output is produced by IOSU.
 +
 +
===0x05 - UhsReleaseInterface()===
 +
This function is used to release a currently-acquired USB interface once the client is done using it. Its input is a 12-byte buffer containing: a 32-bit interface handle, a 32-bit boolean for whether clients should be barred from re-acquiring the interface later, and 0. No output is produced by IOSU.
 +
 
===0x11 - UhsQueryInterfaces()===
 
===0x11 - UhsQueryInterfaces()===
 
This function is used to determine which USB device interfaces are plugged in and available. Its input is an [[#Interface Filter|interface filter buffer]] containing a series of parameters to filter the interfaces by, such as class, subclass, vendor ID, and product ID. The output is an array of [[#Interface Profile|interface profiles]], one for each interface being read. IOS_Ioctl() with this function returns the number of attached USB interfaces permitted by the filter.
 
This function is used to determine which USB device interfaces are plugged in and available. Its input is an [[#Interface Filter|interface filter buffer]] containing a series of parameters to filter the interfaces by, such as class, subclass, vendor ID, and product ID. The output is an array of [[#Interface Profile|interface profiles]], one for each interface being read. IOS_Ioctl() with this function returns the number of attached USB interfaces permitted by the filter.
203

edits