From 649a500750654ec89c9488d20b4ea3cf649068f9 Mon Sep 17 00:00:00 2001 From: Chris Dickens Date: Tue, 28 Jul 2015 22:51:09 -0700 Subject: [PATCH] Windows: Close HID handles when closing composite devices * Closes #81 Signed-off-by: Chris Dickens --- libusb/os/windows_usb.c | 25 ++++++++++++++++--------- libusb/version_nano.h | 2 +- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/libusb/os/windows_usb.c b/libusb/os/windows_usb.c index 734c47e..f505139 100644 --- a/libusb/os/windows_usb.c +++ b/libusb/os/windows_usb.c @@ -4425,24 +4425,31 @@ static void composite_close(int sub_api, struct libusb_device_handle *dev_handle { struct windows_device_priv *priv = _device_priv(dev_handle->dev); uint8_t i; - bool available[SUB_API_MAX]; - - for (i = 0; iusb_interface[i].apib->id == USB_API_WINUSBX) - && (priv->usb_interface[i].sub_api != SUB_API_NOTSET) ) { - available[priv->usb_interface[i].sub_api] = true; + switch (priv->usb_interface[i].apib->id) { + case USB_API_WINUSBX: + if (priv->usb_interface[i].sub_api != SUB_API_NOTSET) + available[priv->usb_interface[i].sub_api] = true; + break; + case USB_API_HID: + available[SUB_API_MAX] = true; + break; + default: + break; } } - for (i=0; i