summaryrefslogtreecommitdiff
path: root/libusb/os/windows_winusb.h
diff options
context:
space:
mode:
authorChris Dickens <christopher.a.dickens@gmail.com>2018-03-12 10:24:04 -0700
committerChris Dickens <christopher.a.dickens@gmail.com>2018-03-12 10:24:04 -0700
commit81ce8be59b608622b8f383022572ff947b12540d (patch)
tree4b4bc2c218346a755f3d4758dada60da99c49651 /libusb/os/windows_winusb.h
parent828ec954244cb9bdfa207d381abd4155dbd1cc36 (diff)
downloadlibusb-81ce8be59b608622b8f383022572ff947b12540d.tar.gz
Windows: WinUSB: Do not assume that driver implements CancelIoEx()
Cancelling an individual OVERLAPPED I/O operation is something that a driver can optionally implement. It appears that the native WinUSB driver supports this but libusbK does not. Therefore we will attempt to use it and fall back to the AbortPipe() call if an error occurs. Closes #400 Signed-off-by: Chris Dickens <christopher.a.dickens@gmail.com>
Diffstat (limited to 'libusb/os/windows_winusb.h')
-rw-r--r--libusb/os/windows_winusb.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/libusb/os/windows_winusb.h b/libusb/os/windows_winusb.h
index 299dc6c..597384a 100644
--- a/libusb/os/windows_winusb.h
+++ b/libusb/os/windows_winusb.h
@@ -603,6 +603,7 @@ typedef BOOL(WINAPI *WinUsb_IsoWritePipe_t)(
struct winusb_interface {
bool initialized;
+ bool CancelIoEx_supported;
WinUsb_AbortPipe_t AbortPipe;
WinUsb_ControlTransfer_t ControlTransfer;
WinUsb_FlushPipe_t FlushPipe;