diff options
-rw-r--r-- | libusb/os/windows_winusb.c | 6 | ||||
-rw-r--r-- | libusb/os/windows_winusb.h | 3 | ||||
-rw-r--r-- | libusb/version_nano.h | 2 |
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 |