Microsoft Class Drivers for USB CCID Smart Cards
Updated: September 24, 2012
This article provides USB smart card class-driver (Usbccid.sys) release information for devices that are compliant with the USB Chip/Smart Card Interface Devices (CCID) Specification (revision 1.0 or later). Usbccid.sys is compliant with all supported versions of Microsoft Windows operating systems, and is available on Windows Update.
For additional details on the class-driver architecture as well as the guidelines associated with USB CCID device development and testing requirements, read this article and see Smart Card Technology.
On This Page
The USB CCID class driver reduces the need for hardware vendors to create a device-specific driver for smart card readers. Eliminating the need for a device-specific driver will potentially reduce the driver development cost, improve driver and system stability, reduce time to market, and lead to a simplified plug and play experience for customers using devices compliant with the USB Chip/Smart Card Interface Devices (CCID) Specification (revision 1.0 or later).
The USB CCID class driver is compatible with all SKUs and locales that are associated with Windows.
The USB CCID class driver is currently available on Windows Update and also through the Windows Update Catalog. This article provides details on Windows support for USB CCID devices. The “USB CCID Architecture” section later in this article describes the structure of the USB CCID stack.
The “USB CCID Class Driver Details” section later in this article describes the features that are explicitly supported by this release of the USB CCID driver. The features planned for future releases are also discussed in the “USB CCID Class Driver Details” section.
The last section provides references to related information and action items to enhance your USB CCID device experience.
USB CCID Architecture
Figure 1 illustrates the functionality of the USB CCID class driver and the associated smart-card subsystem. The USB CCID class driver (Usbccid.sys) is the only driver, developed outside of the original Windows development cycle, to support USB CCID compliant devices. The balance of the class-driver infrastructure is already in-box in Windows.
Figure 1: USB CCID Architecture Stack
To confirm that you have the latest USB CCID driver, the following components must be included in your system.
Prior to Windows 7:
For Windows 7 and later:
Driver or INF version information that is newer (later date or higher version number) than the information listed above is acceptable.
To ensure compatibility with the USB CCID class driver, the Windows USB Team encourages all CCID-compliant devices to be qualified by the latest compatibility tests found on the WHDC Web site.
USB CCID Class Driver Details
The Microsoft CCID class driver is compatible with the USB Chip/Smart Card Interface Devices (CCID) Specification (revision 1.0 or later), which specifies a protocol that a host (computer) can use to interact with CCID class devices or interface (on a composite device). Neither the mechanics of the smart-card interface or the content of the data are described in the CCID specification. However, the CCID specification does provide detailed information with respect to the USB-related configuration and communication channels.
The current release of the Microsoft CCID class driver implements a majority of the features defined in the USB CCID specification. The Microsoft CCID class driver will support the following items that are based on the USB CCID Class specification:
Windows Logo Program
Future requirements for the “Designed for Windows” logo program, which pertain to USB CCID class devices, may include the following:
USB smart card CCID reader complies with USB Device Class Specification for USB Chip/Smart Card Interface Devices. To ensure that USB smart-card readers interface with the USB host properly, chip/smart card interface device (CCID) readers must comply with all requirements identified in USB Device Class Specification for USB Chip/Smart Card Interface Devices, Revision 1.0 or later.
USB CCID reader issues NAK on the interrupt pipe when device has no interrupt data to transmit. USB smart-card readers must issue negative acknowledgment code (NAK) on an interrupt pipe, unless there is a change in state. This requirement prevents the need to repeatedly poll the device for status from the device’s function driver.
To review future requirements of the logo program, see New Logo Requirements for Hardware.
Call to Action for Building USB CCID-compliant Devices