Changes

384 bytes added ,  00:06, 13 September 2015
→‎ioctl() interface: Document UhsAdministerDevice(), even though its purpose is unclear
Line 13: Line 13:  
===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.
 +
 +
===0x12 - UhsAdministerDevice()===
 +
This function's purpose is currently unknown, but [[usb_mic.rpl]] uses it during device initialization. Its input is a 12-byte buffer containing: a 32-bit unknown word, a 32-bit interface handle, and another unknown word. No output is produced by IOSU. usb_mic.rpl seems to pass 2 and 0 as the two unknown words when initializing a USB microphone.
    
==ioctlv() interface==
 
==ioctlv() interface==
203

edits