Changes

Jump to navigation Jump to search
414 bytes added ,  20:34, 27 November 2018
| 0x4 || 0x2 || idProduct
|-
| 0x6 || 0x7 0x2 || Unused?bcdDevice_Min|-| 0x8 || 0x2 || bcdDevice_Max|-| 0xA || 0x1 || bDeviceClass|-| 0xB || 0x1 || bDeviceSubClass|-| 0xC || 0x1 || bDeviceProtocol
|-
| 0xD || 0x1 || bInterfaceClass
This is used to filter [[#UsbHsInterface]], the query commands will only return the interface when these checks pass. This is also used for events with [[#CreateInterfaceAvailableEvent]]. When a bit in Flags is set, the associated descriptor field and the field in this struct are compared, on mismatch the interface will be filtered out. Passing Flags=0 is equivalent to disabling filtering since none of these checks will run.
Flags bits 0..1 6 use usb_device_descriptor, while 7..9 use usb_interface_descriptor. Support for bits 2..6 and the associated fields was added with {unknown sysver}.
Flags bits:
* 0: idVendor
* 1: idProduct
* 2: bcdDevice (Descriptor value must be >= struct bcdDevice_Min)
* 3: bcdDevice (Descriptor value must be <= struct bcdDevice_Max)
* 4: bDeviceClass
* 5: bDeviceSubClass
* 6: bDeviceProtocol
* 7: bInterfaceClass
* 8: bInterfaceSubClass

Navigation menu