USB services: Difference between revisions
Line 641: | Line 641: | ||
| 0x4 || 0x2 || idProduct | | 0x4 || 0x2 || idProduct | ||
|- | |- | ||
| 0x6 || | | 0x6 || 0x2 || bcdDevice_Min | ||
|- | |||
| 0x8 || 0x2 || bcdDevice_Max | |||
|- | |||
| 0xA || 0x1 || bDeviceClass | |||
|- | |||
| 0xB || 0x1 || bDeviceSubClass | |||
|- | |||
| 0xC || 0x1 || bDeviceProtocol | |||
|- | |- | ||
| 0xD || 0x1 || bInterfaceClass | | 0xD || 0x1 || bInterfaceClass | ||
Line 654: | Line 662: | ||
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. | 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.. | Flags bits 0..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: | Flags bits: | ||
* 0: idVendor | * 0: idVendor | ||
* 1: idProduct | * 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 | * 7: bInterfaceClass | ||
* 8: bInterfaceSubClass | * 8: bInterfaceSubClass |