summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libusb/os/windows_winusb.c6
-rw-r--r--libusb/os/windows_winusb.h3
-rw-r--r--libusb/version_nano.h2
3 files changed, 10 insertions, 1 deletions
diff --git a/libusb/os/windows_winusb.c b/libusb/os/windows_winusb.c
index c7aec1f..19b605a 100644
--- a/libusb/os/windows_winusb.c
+++ b/libusb/os/windows_winusb.c
@@ -2246,6 +2246,12 @@ static int winusbx_configure_endpoints(int sub_api, struct libusb_device_handle
if (!WinUSBX[sub_api].SetPipePolicy(winusb_handle, endpoint_address,
AUTO_CLEAR_STALL, sizeof(UCHAR), &policy))
usbi_dbg("failed to enable AUTO_CLEAR_STALL for endpoint %02X", endpoint_address);
+
+ if (sub_api == SUB_API_LIBUSBK) {
+ if (!WinUSBX[sub_api].SetPipePolicy(winusb_handle, endpoint_address,
+ ISO_ALWAYS_START_ASAP, sizeof(UCHAR), &policy))
+ usbi_dbg("failed to enable ISO_ALWAYS_START_ASAP for endpoint %02X", endpoint_address);
+ }
}
return LIBUSB_SUCCESS;
diff --git a/libusb/os/windows_winusb.h b/libusb/os/windows_winusb.h
index 651d7c4..3a911d5 100644
--- a/libusb/os/windows_winusb.h
+++ b/libusb/os/windows_winusb.h
@@ -412,6 +412,7 @@ typedef struct _USB_NODE_CONNECTION_INFORMATION_EX_V2 {
/* winusb.dll interface */
+/* pipe policies */
#define SHORT_PACKET_TERMINATE 0x01
#define AUTO_CLEAR_STALL 0x02
#define PIPE_TRANSFER_TIMEOUT 0x03
@@ -420,6 +421,8 @@ typedef struct _USB_NODE_CONNECTION_INFORMATION_EX_V2 {
#define AUTO_FLUSH 0x06
#define RAW_IO 0x07
#define MAXIMUM_TRANSFER_SIZE 0x08
+/* libusbK */
+#define ISO_ALWAYS_START_ASAP 0x21
typedef enum _USBD_PIPE_TYPE {
UsbdPipeTypeControl,
diff --git a/libusb/version_nano.h b/libusb/version_nano.h
index 50676e4..f2a319d 100644
--- a/libusb/version_nano.h
+++ b/libusb/version_nano.h
@@ -1 +1 @@
-#define LIBUSB_NANO 11374
+#define LIBUSB_NANO 11375