LibUsb-Win32 Change Log

V1.2.5.0 (07/23/2011)
==============================================
* Official release.

V1.2.4.9 (07/13/2011) - SNAPSHOT RELEASE
==============================================
* Updated GCC lib file 'libusb.a'

V1.2.4.8 (07/12/2011) - SNAPSHOT RELEASE
==============================================
* Added new public api function 'usb_reset_ex'. This is an extended 
  device reset function which allows developers to specify a port reset, a 
  port cycle, or both. 

* Added new public defines 'USB_RESET_TYPE_XXX' for 'usb_reset_ex' 
  function. 

V1.2.4.7 (07/02/2011) - SNAPSHOT RELEASE
==============================================
* Sync transfers which specify a zero (0) timeout are now considered to be 
  INFINITE. 

V1.2.4.6 (05/12/2011) - SNAPSHOT RELEASE
==============================================
* Added device interface registration. This provides identical 
  functionality to the "DeviceInterfaceGUIDs" supported by WinUSB and 
  libusbK. A device interface guid can be specified in the .inf file. They 
  can be used to quickly locate a usb device or set of USB devices using 
  the setup api as well as device notification registration. 

* New IOCTL codes added to for native libusbK/WinUSB compatibility.
  NOTE: These IOCTLs are currently used only by libusbK.dll.
  o LIBUSB_IOCTL_QUERY_DEVICE_INFORMATION
  o LIBUSB_IOCTL_SET_PIPE_POLICY
  o LIBUSB_IOCTL_GET_PIPE_POLICY
  o LIBUSB_IOCTL_SET_POWER_POLICY
  o LIBUSB_IOCTL_GET_POWER_POLICY
  o LIBUSB_IOCTL_CONTROL_WRITE
  o LIBUSB_IOCTL_CONTROL_READ
  o LIBUSB_IOCTL_FLUSH_PIPE
  o LIBUSBK_IOCTL_CLAIM_INTERFACE
  o LIBUSBK_IOCTL_RELEASE_INTERFACE
  o LIBUSBK_IOCTL_RELEASE_ALL_INTERFACES
  o LIBUSBK_IOCTL_SET_INTERFACE
  o LIBUSBK_IOCTL_GET_INTERFACE

* Renamed main header file (usb.h) to lusb0_usb.h. This eliminates 
  conflicts with the main WDK usb include as well as making the 
  libusb-win32 header more distinguishable from other usb library header 
  files. 

* Added device descriptor caching and active/first config descriptor 
  caching. Descriptor caching prevents unnecessary control requests from 
  interrupting devices that could potentially be in-use. It also makes 
  libusb0.sys more compliant with usb libraries targeting platform where 
  descriptor caching is done automatically. (linux/mac)
  
* Upgraded to libwdi v1.1.1
  o Zadig UI improvements
  o wdi-simple now handles certificate related operations
  o New NSIS (Nullsoft Scriptable Install System) script sample
  o improved INNO Setup script sample
  o libusbK support
  o autogeneration and self-signing of a .cat file, to prevent further security
    prompts during driver installation on Vista and later.
    for more information, see http://libwdi-cps.akeo.ie
  o disable restore point creation during installation
  o Visual Studio 2010 support and overall MS file cleanup
  o use of the Kerberos/e2fsprogs parser in Zadig instead of libconfig

V1.2.4.0 (04/11/2011)
=======================
* Removed get configuration request from the core driver 
  set_configuration function.  This caused problems with
  some non-compliant usb devices.

* Added device descriptor dump to test applications.

V1.2.3.0 (03/16/2011)
=======================
* Fixed bug-id 3117686 reported by Tim Schuerewegen.

* Added LIBUSB_IOCTL_GET_OBJECT_NAME.  This new IOCTL code retrieves object
  from the driver.  The only valid object name index is 0.  Index 0 is
  returns the devices plug and play registry key pathname.

* Removed maximum timeout restriction for vendor class requests.

V1.2.2.0 (10/02/2010)
=======================
* Added install-filter-win.exe.  A gui installer for device filters.

* Added new libusb0.dll function usb_install_np_rundll().  This function
  is designed for rundll32.exe and takes the same parameters as
  install-filter.exe.

* Updated install-filter.exe.  This application has several new features.
  Type "install-filter --help" for more details.

* Updated libusb-win32-devel-filter package.  This package is once again
  available for download as a setup.exe.

* Updated libusb-win32 "bin" package format.  inf-wizard.exe has been moved
  up one directory.

* Updated driver_installer_template.iss example. This is an Inno Setup
  Script showing how to create your own setup.exe for installing your
  application and driver.

* Fixed missing byte order marker in inf-wizard.exe .inf files. (libwdi)

* Fixed auto-configuration issue when there is more than one driver in the
  stack.

* Fixed BSOD when using the filter driver with devices that are auto
  suspended by other drivers in the stack.
  
* Fixed BSOD for devices with endpoints that have '0' for wMaxPacketSize.

* Fixed BSOD when cancelling large transfers on high speed devices.

  
V1.2.1.0 (07/28/2010)
=======================
* Updated bulk.c to include async i/o example code.

* Fixed usb_install_driver_np() issue with inf-wizard generated infs.

* Fixed inf2cat.exe issue with inf-wizard generated infs.
  
* Added 'Install Now' feature to inf-wizard. (libwdi)

* Added embedded libusb-win32 binaries to inf-wizard. (libwdi)

* Added libwdi (http://www.libusb.org/wiki/libwdi) to inf-wizard. 

* Added get cached configuration request to usb_open(). This is a new
  control code that involves no device i/o and allows 
  usb_set_configuration() to be omitted if the driver has already
  configured it.

* Fixed set_configuration() failure for devices that do not properly
  support get_configuration().

V1.2.0.0 (07/07/2010)
=======================
* First signed driver release! The libusb-win32 kernel driver (libusb0.sys)
  can now be used on x64 Windows machines that require signed drivers. 

* Fixed 2128187 reported by Tim Green. usb_get_descriptor() can fail
  because the given buffer of 8 bytes is too small.

* Fixed 2928293 reported by Tim Green. Sometimes the call to 
  usb_fetch_and_parse_descriptors() in usb_find_devices() can fail. This 
  patch moves the LIST_ADD to after a successful read of the device's 
  configuration descriptors.

* Fixed issue causing libusb-win32 to not act as power policy owner
  when it should.

* Fixed issue in which on rare occasion, a libusb-win32 filter device could
  run as a "normal" device.
  
* Fixed filter driver issue for device using wudfr.sys.

* Added large transfer splitting to driver (bulk, int, iso). NOTE:
  The dll continues to break transfers in the same manner it always has.


V1.1.14.3 (06/12/2010)
=======================
* Remove get_configuration() request from usb_open().  This caused claim
  interface to fail when used as a filter driver.
  
V1.1.14.0 (06/01/2010)
=======================
* Updated logging functions and standardized log message display format.

* Updated inf-wizard to use the new directory format for the libusb-win32
  binaries.

* Updated package directories to reflect the winddk BUILDARCH env variable.
  (i64 := ia64, x64 := amd64)
  
* Added request to get the current configuration in usb_open().

* Fixed 2960644 (reported by farthen) crash on shutdown with x64 based
  systems while using inf files for each libusb device.

* Added additional log message only included in debug/chk builds.
  
* Updated default log levels to highest verbose level for debug builds.

* Added test signing support to the libusb-win32 make.cmd. This allows
  libusb0.sys and libusb0.dll to be signed with a digital signature.
  (see make.cmd for mmore details)

* Added MSVC 2008 project files

* Moved version defines to an include file (libusb_version.h)
  This file is generated from libusb_version_h.in with "make.cmd makever"

* Removed all "dist" commands from cyg/mingw makefile.  Instead use "make.cmd"
  in the "ddk_make" directory.

* Fixed filter setup not running in 64bit mode

* Fixed 64bit inf-wizard, testlibusb-win builds

* Added set initial config value #1 when the driver is not a filter.
  optionally, the initial configuration value can be specified in the inf
  file: HKR,,"InitialConfigValue",0x00010001,<your config value>

* Added support for querying device registry keys 
 (LIBUSB_IOCTL_GET_CUSTOM_REG_PROPERTY)

* Added support for querying device properties 
 (LIBUSB_IOCTL_GET_DEVICE_PROPERTY)

* Fixed possible race condition in kernel add_device()

* Updated default ddk build version number to 1.1.14.0 to facilitate
  Microsoft WHQL submission.

* Added DDK build distribution system.  Official libusb-win32 releases 
 (after 0.1.12.2) are built using Microsoft's WinDDK.  (see make.cmd)

* Fixed 2658937 (reported by Tim Roberts) The libusb-win32 driver always
  acts as a power policy owner.

