* uses get_port, get_port_path, get_parent as suggested by Alan Stern
* adds parent_dev and port_number to the libusb device struct
* uses calloc on device struct, to handle currently missing backend implementations
* xusb updated to use new calls
* multiple WinUSB set configuration requests can stall a device and
WinUSB does not support setting of alt configuration in the first place
* issue reported and investigated by Xiaofan Chen
* cygwin recently changed their definition of OVERLAPPED
in winbase.h to using anonymous structs/unions
* anonymous struct unions are a GNU extension and ignored
in standard C
* this resulted in the OVERLAPPED hEvent handle being
moved to an improper location, and invalid handle errors
* typical ancestors: 'ROOT\HIDCLASS\0000' -> 'HTREE\ROOT\0' -> NULL
resulted in session_id 0 being returned
* single case for non USB HID, newly inserted or unexpected unlisted
is now being used, for performance reasons, as we'll still hear
about any implementation bugs from people not being able to access
an ignored device anyway (i.e. no need to be too forceful)
* if configure.ac uses DOS format, quoting multiple lines
can produce an error in cygwin
* if Makefile.am uses DOS format, you might get the error
AC_CONFIG_MACRO_DIR([m4]) conflicts with ACLOCAL_AMFLAGS=-I m4
in libtoolize
* Some HID devices (Logitech) had interfaces that used more than 2
levels to get to a listed ancestor, which resulted to assertion
failure
* new implementation no longer constrains lookup level
* issue reported by Phong Truong
* default WinUSB timeout was 5 seconds, which may be to small.
PIPE_TRANSFER_TIMEOUT policy is now set to infinite for all EPs.
* other WinUSB policy settings were called before the endpoints
had been set. This is now fixed.
* binary snapshot users, with a version of Visual Studio < 10
don't have stdint.h available
* stdint.h is referenced in libusb.h
* ssize_t, uint8_t and uint16_t are now defined in libusb.h
when required
* while additional HID collections might be ignored,
existing code assumed that the device interface path was
always assigned, which could create a leak
* issue reported by Stephano Antonelli
* use of CloseHandle() prevented the pipe fds from being
relinquished on libusb_exit()
* leaked fds could lead to the OS running out of new fds
and LIBUSB_ERROR_NO_MEM being returned as a result
* issue reported by Stephano Antonelli