Thesycon Software Solutions GmbH & Co. KG USBIO Development Kit Revision History ----------------------------------------------------- 07/02/2024 Version 3.67.0 ----------------------------------------------------- - FIX: Installer secure problem ----------------------------------------------------- 18/08/2023 Version 3.66.0 ----------------------------------------------------- - Change: Installer behaviour - Change: Documentation ----------------------------------------------------- 07/10/2022 Version 3.65.0 ----------------------------------------------------- - Feature: Support for Windows 11 (22H2) x64 - Feature: Support for Windows 11 (22H2) arm64 - Feature: Support for Windows 10 (22H2) x64 and x86 - Feature: TL-Installer 1.27, MSI based - Change: Documentation ----------------------------------------------------- 28/01/2022 Version 3.60.0 ----------------------------------------------------- - Feature: Support for Windows 10 (21H2) - Feature: Tested with HLK 2004 on W10 version 21H2 - Change: Documentation ----------------------------------------------------- 02/11/2021 Version 3.55.0 ----------------------------------------------------- - Feature: Support for Windows 11 (21H2) - Feature: Tested with Windows 11 HLK - Change: Driver build process is based on Visual Studio 2019 - Change: Documentation ----------------------------------------------------- 21/06/2021 Version 3.50.0 ----------------------------------------------------- - Feature: Support for Windows 10 (21H1) - Feature: Tested with HLK 2004 on W10 version 21H1 - Change: Operating systems Windows 7, Windows 8 and Windows 8.1 are not longer supported (Microsoft discontinued vendor signing) - Change: scripts use Python 3.9.1 - Change: DCK needs Windows 10 - Change: Documentation ----------------------------------------------------- 18/12/2020 Version 3.40.0 ----------------------------------------------------- - Feature: Support for Windows 10 (2009/20H2) - Feature: Tested with HLK 2004 on W10 version 2009 - Change: Documentation ----------------------------------------------------- 16/06/2020 Version 3.35.0 ----------------------------------------------------- - Feature: Support for Windows 10 (2004/20H1) - Feature: Tested with HLK 2004 on W10 version 2004 - Change: Documentation ----------------------------------------------------- 09/01/2020 Version 3.30.0 ----------------------------------------------------- - Feature: Support for Windows 10 (1909/19H2) - Feature: Tested with HLK 1903 on W10 version 1909 - Change: Documentation ----------------------------------------------------- 17/06/2019 Version 3.26.0 ----------------------------------------------------- - Feature: Support for Windows 10 (1903) - Feature: Tested with HLK for W10 version 1903 - Change: Updated PnP installer to version 1.18 - Change: Scripts use Python 3.7.3 - Change: Documentation ----------------------------------------------------- 12/02/2019 Version 3.25.0 ----------------------------------------------------- - Feature: Support for Windows 10 version 1809 - Feature: Windows 10 WHQL (HLK 1809) compatible - Feature: updated optional PnP installer to version 1.17 - Feature: Selective Suspend is supported for Windows 7 as an optional feature - Change: Debug version shows all registry params at start up - Change: Documentation ----------------------------------------------------- 11/07/2018 Version 3.20.0 ----------------------------------------------------- - Feature: Windows 10 WHQL (HLK 1803) compatible - Feature: Update optional installer: Support for Windows 10 version 1803 - Feature: Update optional installer: Support for multiple setup packages per operating system - New: Documentation User Manual - Change: Driver build with WDK 10.0.16299.15 (1709) - Change: Documentation Reference Manual ----------------------------------------------------- 20/06/2018 Version 3.15.0 - internal ----------------------------------------------------- - Feature: Support for Windows 10 version 1803 - Feature: Selective Suspend is supported for Windows 10 as an optional feature - Change: Build process is based on Visual Studio 2015 - Change: Java examples not longer supported - Change: DCK uses Python 3.5 ----------------------------------------------------- 12/02/2017 Version 3.12.0 ----------------------------------------------------- - Feature: Support for Windows 10 version 1709 - Feature: Windows 10 WHQL (HLK 1709) compatible - Feature: Update optional installer, Support for Windows 10 version 1709 - Change: DCK contains PDB files for Microsoft Attestation signing - Change: Documentation ----------------------------------------------------- 09/04/2017 Version 3.11.0 ----------------------------------------------------- - Feature: Support for Windows 10 version 1703 - Feature: Windows 10 WHQL (HLK 1703) compatible - Feature: Problem of Windows 10 version 1511 with HLK 1703 solved - Feature: New installer (optional) integrated, this supports code integrity check before installation - Change: Documentation of new optional installer integrated in full package - Change: Documentation ----------------------------------------------------- 03/01/2017 Version 3.10.1 - internal ----------------------------------------------------- - Change: Extension DCK package only, driver version 3.10.0 is further used ----------------------------------------------------- 10/05/2016 Version 3.10.0 ----------------------------------------------------- - Fix: Windows 10 WHQL (HLK 1607) INF problem fixed - Change: Split driver package into one for Windows 7/Windows 8 and one for Windows 10 for using Microsoft Attestation Signing for Windows 10 ----------------------------------------------------- 04/29/2016 Version 3.00.0 ----------------------------------------------------- - Fix: Windows 10 WHQL (HLK) problem fixed, driver uses NX pool only, certification is possible - Change: Signing support for SHA256 certificates is standard - Change: Driver will be delivered signed and customized by Thesycon - Change: USBIO Installation Wizard not longer included in packages - Change: USBIO Cleanup Wizard not longer included in packages - Change: Documentation ----------------------------------------------------- 12/30/2015 Version 2.90.0 ----------------------------------------------------- - Feature: Support for Windows 10 - Change: Documentation - Change: Windows XP and Windows Vista are not longer supported ----------------------------------------------------- 09/02/2014 Version 2.82.0 - internal ----------------------------------------------------- - Change: Use SetFeature endpoint halt to inform the device at high speed about PC sleep state. - Change: Selective Suspend support limited to Windows 8 and higher - Change: Timer added to avoid small selective suspend sleep times less than 250 ms ----------------------------------------------------- 09/05/2014 Version 2.80.0 - internal ----------------------------------------------------- - Change: Adding some references to prevent the deletion of the device object while the selective suspend power handling is active - Change: Modified reference counting to delete the device object in the context of IRP_MN_REMOVE_DEVICE - Change: Add the parameter EnableRemoteWakeup to the data structure USBIO_SET_SELECTIVE_SUSPEND_STATE to control wakeup behaviour ----------------------------------------------------- 08/12/2014 Version 2.79.0 - internal ----------------------------------------------------- - Change: Support Selective suspend for closed interfaces ----------------------------------------------------- 08/08/2014 Version 2.78.0 - internal ----------------------------------------------------- - Feature: IOCTL's IOCTL_USBIO_SET_SELECTIVE_SUSPEND_STATE and IOCTL_USBIO_GET_SELECTIVE_SUSPEND_STATE added - Feature: Interface API set to V2.32 ----------------------------------------------------- 02/04/2014 Version 2.77.0 - internal ----------------------------------------------------- - Feature: delete optional registry keys to get correct installation after driver update ----------------------------------------------------- 12/16/2013 Version 2.76.0 ----------------------------------------------------- - Feature: Windows 8.1 support - Feature: Windows Server2012 R2 support - Feature: memory management modified to fit Windows 8.1 requirements - Feature: WHQL certifiable, HCK 2.1 (8.100.26031 (QFE004)) - Change: driver package builder updated for Windows 8.1 signing - Change: update documentation - Change: Windows 2000 is not longer supported - Change: Examples for Visual Basic 6.0 are removed from package ----------------------------------------------------- 09/27/2013 Version 2.75.0 ----------------------------------------------------- - new feature added: hide device node in device manager configurable via inf file via HideDevNodeWhenStarted ----------------------------------------------------- 05/15/2013 Version 2.74.0 ----------------------------------------------------- - version resources for usbiocom.dll added ----------------------------------------------------- 03/11/2013 Version 2.73.0 ----------------------------------------------------- - set configuration fails if special composite driver is used which succeeds the IRP but fails the URB - IRP/URB status checking is more tolerant now ----------------------------------------------------- 03/08/2013 Version 2.72.0 ----------------------------------------------------- - switching from one configuration to another via set configuration is supported now ----------------------------------------------------- 11/14/2012 Version 2.71.0 ----------------------------------------------------- - Bug fix for Trace Bit 24 - update for Driver Package Scripts - update for INF template - update documentation ----------------------------------------------------- 10/01/2012 Version 2.70.0 ----------------------------------------------------- - new customization and signing script - driver update for Windows 8, WHQL compliance - documentation updated - license agreement updated - install wizard does not support W8 x64, because of signing requirement for CAT files ----------------------------------------------------- 16/04/2012 Version 2.61.0 ----------------------------------------------------- - install wizard updated - documentation updated - license agreement updated ----------------------------------------------------- 11/30/2011 Version 2.60.0 ----------------------------------------------------- - released for W7 SP1 - USB3.0 support, checked on NEC and Renesas plug in cards - Visual Studio 2005 projects can be converted to Visual Studio 2010 - new CSharp example for read and write - documentation updated - license agreement updated - Delphi support cancelled ----------------------------------------------------- 11/03/2011 Version 2.55.0 ----------------------------------------------------- - Fix for CPnPNotificator that could not be instantiated more than once ----------------------------------------------------- 08/15/2011 Version 2.54.0 ----------------------------------------------------- - documentation update ----------------------------------------------------- 11/02/2010 Version 2.53.0 ----------------------------------------------------- - customization for COM object added ----------------------------------------------------- 12/18/2009 Version 2.52.0 ----------------------------------------------------- - memory alignment in the debug version improved - pipe type check for IOCTL_USBIO_PIPE_CONTROL_TRANSFER_XXX transfers added - force overwrite flag in the INF file added, allows version downgrade - improved traces in kernel driver - improved delphi compatibility - API function GetParentID added - Bugfix for PnP Notification in JAVA API ----------------------------------------------------- 11/16/2009 Version 2.50.2 ----------------------------------------------------- - documentation update - put the release drivers in the demo version ----------------------------------------------------- 10/06/2009 Version 2.50.1 ----------------------------------------------------- - DelphiTest.exe removed because of false positive results of anti-virus scanners ----------------------------------------------------- 09/22/2009 Version 2.50 ----------------------------------------------------- - adding support for Windows 7 - added 64bit support for usbiolib - added 64bit support for usbiocom - added 64bit support for usbioapp - added unicode support for usbiocom - added unicode support for usbioapp - added unicode support for cleanupwiz - added unicode support for usbiowiz - projects converted to VS2005 - driver now build with DDK6000 - added WinXP styles on cleanupwiz and usbiowiz - cpp_samples now support 64bit and UNICODE - Windows 98 support removed - signed cleanupwiz and usbiowiz - signed SDK installer - signed cleanupwiz and usbiowiz - improved traces of kernel mode and COM object - OpenPath function added - Version check in Open() function is optional - API version incremented to 2.31 - change DebugMask to TraceMask - update of the documentation - update of the problems.txt file - configuration parameter ConfigDescMinQuerySize added - Simple Loop example added ----------------------------------------------------- 03/06/2009 Version 2.45 ----------------------------------------------------- - add Thesycon signature to all driver versions - remove Thesycon test certificate - update documentation - remove the Test Mode requirement for x64 - update the license text ----------------------------------------------------- 10/30/2008 Version 2.44 (internal release) ----------------------------------------------------- - driver tracing improved - parameter ConfigDescMinQuerySize added to define the query size for GetConfiguration descriptor ----------------------------------------------------- 01/28/2008 Version 2.43 (internal release) ----------------------------------------------------- - Private API extension: StallExecution - made USBIOLIB compatible with UNICODE ----------------------------------------------------- 09/24/2007 Version 2.42 (internal release) ----------------------------------------------------- - Fix the version information in the usbiocom.dll - Change the event type of buffer from synchronization to manual ----------------------------------------------------- 04/11/2007 Version 2.41 ----------------------------------------------------- - Fix a bug in the power management. The problem prevents the PC to enter standby or hibernate on Windows XP and Windows 2000. It occurs only if the product ID is greater than 0x7fff. It is recommended to use this version for WHQL tests. ----------------------------------------------------- 02/07/2007 Version 2.40 ----------------------------------------------------- - fixed Java documentation - FX firmware down loader documentation enhanced - All traces with prefix - Demo application shows more correct statistics data - Vista does no longer support the request GetFrameNumber with URB, use the calling interface - power management implementation reviewed and modified for Vista - new implementation to prevent sleep states - creation of WaitIrp modified - source code is tested with Prefast - installation: Set links for all users - manifest added to request administrator privileges for USBIOwiz.exe and USBIOcw.exe - Thesycon signature added for USBIOAPP.exe, USBIOwiz.exe, USBIOcw.exe usbiocom.dll and USBIOJAVA.dll - test signature added for 64 bit drivers - section to handle signature added - WHQL test with WDK test bench for Vista performed - Java interface tested with runtime version 1.6.0 ----------------------------------------------------- 02/02/2006 Version 2.32 ----------------------------------------------------- - FX firmware download check enhanced for LP series - descriptor parser enhanced for CDC classes ----------------------------------------------------- 12/23/2005 Version 2.31 ----------------------------------------------------- - fixed a problem in the Java interface (PnP functions) - links in Java documentation fixed - Visual Basic demo application fixed ----------------------------------------------------- 09/12/2005 Version 2.30 ----------------------------------------------------- - support for Windows x64 added - Native Java API added (JNI DLL + class library) - Support for Cypress FX firmware download added - new source code sample PnPDemo added - C# source code sample (based on USBIOCOM) added - Exclusive device access feature added (Acquire/Release API) - Automatic device configuration on driver startup - Abort is only called if pending IRP's exists - Implementation of mutex in PnP path revised - driver configuration is stored under the device's hardware key - Registry parameter DisableDefaultInterface added - DebugMask is read from the current service key - Wakeup Irp is send after configuration - CUsbio::Open returns improved error codes - CUsbio::Open implements less strict version check - CUsbIo::Acquire and CUsbIo::Release functions added - CUsbIoThread set default thread priority to "highest" - separate INFs for 98/ME and XP/2000, XP x64 - default setting CUsbIoBuf.cpp ENABLE_OHCI_ISO_WORKAROUND set to 0 - symbol files (.pdb files) are shipped, may be required for WHQL ----------------------------------------------------- 09/24/2004 Version 2.20 ----------------------------------------------------- License model is simplified Demo version runs now 4 hours ----------------------------------------------------- 06/30/2004 Version 2.15 ----------------------------------------------------- - class CPnPNotificator added to UsbIo Library - Io controls IOCTL_USBIO_ACQUIRE_DEVICE and IOCTL_USBIO_RELEASE_DEVICE for exclusive use added - CUsbio::Open() returns error code USBIO_ERR_DEVICE_ALREADY_OPENED instead of USBIO_ERR_SUCCESS if the device is opened. - Java interface added - Released for Windows 2k SP4, XP SP2, 98 SE and ME - Unconfigured Device must be called by the same process which has called SetConfiguration - Additional error code 0xE000101F USBIO_ERR_INVALID_PROCESS - AbortPipe is only called if the pipe was used. - AbortPipe is called only one time during clean up. - Registry key settings allow to configure the device automatically during driver startup - Version Check in the library changes, it fails if the major version is changed or if the minor version of the driver is less than the expected version - Selective suspend and remote wake up improved - preparation for WHQL certification improved - flags USBIO_DEVICE_INFOFLAG_HUB_BUS_POWERED and USBIO_DEVICE_INFOFLAG_HUB_SELF_POWERED added - Configuration registry keys to HW key, display name removed - debug parameters set to service key ----------------------------------------------------- 01/29/2003 Version 2.00 ----------------------------------------------------- Support for USB 2.0 on WinXP SP1 and Win2000 SP3 Cleanup Wizard supports complete removal of all USBIO files and registry entries on uninstall The licensing model has been enhanced USBIOAPP: User interface improved Parameters entered will be saved in the registry USBIOLIB: Classes enhanced by the additional requests provided by API 2.0 setupapi.dll is loaded explicitly at runtime, allows to create applications that run on WinNT as well USBIODRV: Support for USB 2.0 driver stack (EHC) Separate executables for W2K/WXP and W98/WME, required to support WHQL certification Support for statistical analysis of data transfer on pipes Inquiry of available bus bandwidth supported USBIO API version 2.0 supports additional IOCTLs: IOCTL_USBIO_SETUP_PIPE_STATISTICS IOCTL_USBIO_QUERY_PIPE_STATISTICS IOCTL_USBIO_GET_BANDWIDTH_INFO IOCTL_USBIO_GET_DEVICE_INFO Additional status codes introduced, required for USB 2.0 Fix for wrong behavior if a device does not have additional endpoints. ----------------------------------------------------- 02/08/2002 Version 1.51 ----------------------------------------------------- Support for Windows XP improved USBIODRV: Fix for specific PnP behavior of USB bus driver on XP Minor fixes for issues complained by DriverVerifier on XP ----------------------------------------------------- 01/11/2002 Version 1.50 ----------------------------------------------------- Support for Windows XP added (see also problems.txt) USBIO COM interface released, support for Visual Basic, Delphi USBIO COM interface enhanced: PnP Notification functions added USBIODRV: Work-around for bug in host controller driver added: cancelled buffers will be deferred by USBIO. Implementation of get configuration descriptor within set configuration modified: fixed part of desc (9 bytes) is retrieved first, complete desc in a second step ----------------------------------------------------- 08/14/2001 Version 1.49 prerelease ----------------------------------------------------- USBIO COM interface added (beta version of COM object) ----------------------------------------------------- 05/08/2001 Version 1.42 ----------------------------------------------------- Include file usbiover.h added; defines the current version of the USBIO package at a central place Problem fixed: IOCTL_USBIO_SET_INTERFACE returned SUCCESS if an invalid Alternate Setting was specified. USBIO_ERR_INVALID_PARAM is returned now. ----------------------------------------------------- 12/14/2000 Version 1.41 ----------------------------------------------------- USBIOLIB: Problem with ShutdownThread() call from the destructor of CUsbIoThread class fixed ----------------------------------------------------- 11/02/2000 Version 1.40 ----------------------------------------------------- USBIO Installation Wizard included; allows quick and easy driver installation (GUI based) USBIO does support the Remote Wakeup feature now, see Reference Manual for details. USBIO supports a new API function IOCTL_USBIO_CYCLE_PORT that is required to implement the Device Firmware Upgrade specification, see Reference Manual for details. USBIO is tested on Windows Millennium and Windows 2000 SP1 A work-around is included to support the special behavior of Windows ME regarding configuration of multi-interface devices (see also Problems.txt). A Setup Wizard for the USBIO package is provided, supports also uninstall USBIOLIB: New member functions added to CUsbIo to support the new API functions USBIOAPP: GUI is disabled until a device was opened successfully. Improved Pipe Dialog, GUI elements that are not needed for the current endpoint type are disabled or hidden now. Tool tips has been added for all GUI elements ----------------------------------------------------- 05/25/2000 Version 1.30 ----------------------------------------------------- Switched to VC++ 6.0, development tools used now: VC++ 6.0 Service Pack 3 Windows 2000 DDK Programming interface for Delphi included now Some changes for correct support of Win2000 release: Registry parameters are located in HKLM\System\CCS\Services\USBIO now Modification of power management handling to support Hibernation New device naming model: WDM device interfaces are used now (identified by a GUID) Old-style (static) device names are still supported, but are disabled by default. This allows backward compatibility. USBIOLIB: New member functions in CUsbIo, CreateDeviceList() and DestroyDeviceList(). Enhanced Open() function. Improved implementation of CUsbIoThread::ShutdownThread(). USBIOAPP: Uses the new device enumeration method Uses device notifications now, RegisterDeviceNotification() and UnregisterDeviceNotification() API ----------------------------------------------------- 09/24/1999 Version 1.16 ----------------------------------------------------- Windows 2000 RC2 DDK now used to build the driver, causes modification of the directory structure USBIOLIB: Fix in ErrorText() USBIOAPP: Display of driver version info ----------------------------------------------------- 09/01/1999 Version 1.13 ----------------------------------------------------- Additional documentation in the INF file Additional sample code: ReaderCpp ----------------------------------------------------- 08/16/1999 Version 1.11 ----------------------------------------------------- USBIOAPP: Correct synchronization of worker threads and MFC threads (PostMessage) USBIOAPP: Improved error message handling USBIOLIB: Improved implementation of ShutdownThread Minor changes for correct support of Win2000 RC1 ----------------------------------------------------- 04/09/1999 Version 1.06 ----------------------------------------------------- Minor changes for correct support of NT5 Beta Minor enhancements in the INF file ----------------------------------------------------- 12/14/1998 Version 1.00 ----------------------------------------------------- First release of the USBIO driver Development tools used: VC++ 5.0 SP3 NT5 B2 DDK