aboutsummaryrefslogtreecommitdiff
path: root/libusb/os/windows_common.h
diff options
context:
space:
mode:
Diffstat (limited to 'libusb/os/windows_common.h')
-rw-r--r--libusb/os/windows_common.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/libusb/os/windows_common.h b/libusb/os/windows_common.h
index 4582ce4..0c0ff4b 100644
--- a/libusb/os/windows_common.h
+++ b/libusb/os/windows_common.h
@@ -131,6 +131,7 @@ typedef LONG USBD_STATUS;
#define USBD_SUCCESS(Status) ((USBD_STATUS)(Status) >= 0)
+#define USBD_STATUS_STALL_PID ((USBD_STATUS)0xC0000004L)
#define USBD_STATUS_ENDPOINT_HALTED ((USBD_STATUS)0xC0000030L)
#define USBD_STATUS_TIMEOUT ((USBD_STATUS)0xC0006000L)
#define USBD_STATUS_DEVICE_GONE ((USBD_STATUS)0xC0007000L)
@@ -257,6 +258,13 @@ struct winusb_device_priv {
int current_altsetting;
bool restricted_functionality; // indicates if the interface functionality is restricted
// by Windows (eg. HID keyboards or mice cannot do R/W)
+ uint8_t num_associated_interfaces; // If non-zero, the interface is part of a grouped
+ // set of associated interfaces (defined by an IAD)
+ // and this is the number of interfaces within the
+ // associated group (bInterfaceCount in IAD).
+ uint8_t first_associated_interface; // For associated interfaces, this is the index of
+ // the first interface (bFirstInterface in IAD) for
+ // the grouped set of associated interfaces.
} usb_interface[USB_MAXINTERFACES];
struct hid_device_priv *hid;
PUSB_CONFIGURATION_DESCRIPTOR *config_descriptor; // list of pointers to the cached config descriptors