Release notes for the WDF (KMDF) based CAN driver supporting Windows 7/8/10 (32-/64-Bit) and Windows Server 2008/2012 (32-/64-Bit). The driver releases are organized as packages. A package contains the driver itself, driver related libraries and files for the driver configuration. The package release version is coupled with the version of the device driver. A detailed list which hardware is supported by a WDF driver and a table which files get installed with a driver package can be found at the end of this document.
Technical differences to previous CAN driver versions:
For most of the supported CAN hardware, a Windows Driver Model (WDM) based device driver already exists. The Windows Driver Framework (WDF) supersedes and complements the WDM with the goal to enhance driver robustness and security by providing default implementations for common event handling tasks in the framework. The major revision number of all WDF based driver is 4.x.x whereas the WDM based drivers are 3.x.x or 2.x.x.
In addition to this fundamental change of the driver framework the new driver generation is different to its predecessor in the following technical aspects:
The internal driver architecture is already prepared to handle the bigger payload (up to 64 bytes) of the CAN FD standard.
The driver supports power management (standby/hibernation) which is not supported by the 3.x.x WDM drivers.
CAN data is handled by a high priority worker thread at passive level instead of doing the processing in a Deferred Procedure Call (DPC). The advantage is that the DPC latencies caused by a CAN driver are reduced to a minimum and the overall system performance on multicore architectures is improved.
Revision History
Changes which are considered to be very important are highlighted.
Driver Package 4.0.5
Release date: 2019-10-08
All drivers/devices: All device driver binaries are now digitally signed with our SHA2 (EV) code signing certificate and countersigned by Microsoft, so it supports the strict driver signing requirements for Windows 10. As a consequence Windows XP and Windows Vista, which do not support SHA2 kernel mode code driver signatures, are no longer supported from this device driver release on.
Support for new devices: CAN-PCIe/402-Mini-FD, CPCI-CAN/402-FD and CPCIserial-CAN/402-4-FDX are added to C402 driver family (x86/x64).
All drivers/devices: Fixed timestamps are not always applied correctly to CAN events.
All drivers/devices: Increased driver performance and robustness.
Driver Package 4.0.4 (Not publicly released)
Release date: 2018-08-01
Support for new devices: XMC-CAN/402-FD and PMC-CAN/402-FD are added to C402 driver family (x86/x64).
Support for new devices: All devices of the C402 family (x86/x64) as Classical CAN as well as CAN FD version are now supported by this device driver which supersedes the 3.x.y WDM driver for the Classical CAN C402 devices.
All drivers/devices: Increased timestamp accuracy.
All drivers/devices: Increased driver performance and robustness.
C402/U400: Fixed sending timestamped CAN FD messages failed.
Driver Package 4.0.3
Release date: 2017-01-25
All drivers/devices: CAN-PCIe/402-FD added to C402 driver family (x86/x64). Classical CAN C402 support removed for the time being.
Support for new devices: CAN-USB/400-FD and CAN-USB/400-FD IRIG-B added to U400 driver family (x86/x64).
All drivers/devices: Complete support for the CAN FD enabled NTCAN-API.
All drivers/devices: Fixed driver returns NTCAN_ERROR_LOM instead of NTCAN_ERROR_NO_BAUD if no bit rate is configured.
All drivers/devices: Driver disables the CAN controller before the system changes from S0 into a lower power state and does not restore the bit rate after return to S0 to prevent errors on the CAN bus if the configuration has changed in the meantime.
All drivers/devices: The NTCAN_INFO structure now contains the number of open handles.
C400/C402/U400: Fixed situation where an invalid bit rate is reported.
C400/C402/U400: Fixed internal error situation which might cause a hanging process that could not be terminated.
C400/C402/U400: Fixed possible internal overload situation in situations of very high bus load.
VCAN: Device driver now emulates a CAN FD enabled ESDACC.
Configuration: Added support to indicate the triple sampling capability of the CAN controller for Classical CAN.
Driver Package 4.0.2
Release date: 2016-01-26
All drivers/devices: CAN-PCI/402 and CPCIserial-CAN/402 added to C402 driver family (x86/x64).
Support for new devices: Virtual device driver ESDVCAN (no hardware) emulating a Classical CAN SJA1000 CAN controller.
All drivers/devices: Support for Windows 10.
All drivers/devices: Extended the indication of error situations in the event log during startup.
All drivers/devices: Internal performance improvements.
All drivers/devices: Fixed 64-bit version of NTCAN library could not be used on Windows XP x64 because of a missing symbol.
C400: Updated ESDACC core (V 00.61).
C400/C402: Fixed issues where timestamps are not be applied correctly to CAN messages and events in error situations.
C400/C402: Fixed CAN driver aborted a failed Tx I/O request if the CAN controller is in error passive state.
C400: Implicit CAN clock divider in BTR pre-scaler removed. This change is handled internally backward compatible for exiting applications.
C400: Fixed issues handling bus error situations.
C400: Fixed issue with high speed scheduling configurations.
U400: Internal message handling completely rewritten to increase performance and to deal with situations where messages might get lost due to high DPC latencies caused by other device drivers.
U400: Support for a backward compatible reduction up to 30% of the USB busload (requires FW V00.62) which in turn leads to a reduced CPU load.
U400: Fixed wrong tick frequency in IRIG-B mode after resume from standby/hibernate.
U400: Fixed several issues after resume from standby/hibernate.
U400: Fixed a rare BSOD if the device is connected to a powered USB hub while the PC is rebooted.
PMC-CAN/400: Added support for 1 PPS signal.
Configuration: Improved UI of device manager settings dialog and the adaption to a configured UI theme.
Configuration: Added tool tips for configuration/settings options.
Configuration: Added support for a driver/system settings expert dialog to configure the thread priority of the CAN message handler, decrease the system tick period and enable driver trace messages.
Configuration: Added support to start the event viewer with a driver specific filtered view by double-click on a fail reason code.
Driver Package 4.0.0
Release date: 2015-06-02
All drivers/devices: Initial release as WDF based driver with an identical functional range as the latest WDM based driver for this CAN hardware.
All drivers/devices: Drivers are based on the KMDF framework 1.9 which requires Windows XP or later to run.**
All drivers/devices: All drivers support power management (in comparison to the WDM based V3.x.y CAN drivers).
All drivers/devices: The drivers are ready to process CAN messages with up to 64 bytes for the forthcoming CAN FD support.
All drivers/devices: The main internal CAN message processing is performed (in comparison to the WDM based CAN drivers) on PASSIVE_LEVEL instead on the standard DPC_LEVEL. This approach reduces the overall system latency
C400/C402: Initial release.
C402: The driver requires an ESDACC firmware of V00.53 or later.
Supported CAN hardware:
Several driver support more than one esd CAN device. The following table gives an overview on how many and which different CAN devices are supported by a single CAN family device driver.
The following table gives an overview which version of the binaries is distributed in a released driver package. As driver packages for the different CAN driver families are not released at the same time it is possible that a package with a newer release date contains a newer version of a library. In that case the version is written in the table below as x.y.[a|b] to indicate that one package was released with version x.y.a and another package with x.y.b of the library. A package might also be re-released with the unchanged device driver and just updated libraries.