DetailPage-MSS-KB

Microsoft small business knowledge base

Article ID: 972779 - Last Review: May 11, 2010 - Revision: 1.0

SYMPTOMS

Some requests on a smart card take minutes to complete when you use the User-Mode Driver Framework (UMDF) reader driver. But the same operation may take only seconds to complete when you use the Windows Vista kernel-mode Usbccid.sys driver.

CAUSE

The USB Smartcard specification (http://www.usb.org/developers/devclass_docs/dwg_smart-card_ccid_rev110.pdf) requires that smart cards must respond to the driver before the long request is completed. The response sets the "Time Extension request". This indicates to the driver that the request needs more time. The response also returns a multiplier that indicates the number of "Time Unit" that the smart card needs. However, some cards report very large multipliers.Therefore, the requests may take minutes to complete.

In the earlier Usbccid.sys driver, the request could be completed in a much shorter time. Although the request performs the same calculation to produce the same long wait time, it does not honor the wait. Instead, it sends another read request to the reader immediately.

RESOLUTION

Important This article contains information about how to modify the registry. Make sure that you back up the registry before you modify it. Make sure that you know how to restore the registry if a problem occurs. For more information about how to back up, restore, and modify the registry, click the following article number to view the article in the Microsoft Knowledge Base:
322756  (http://support.microsoft.com/kb/322756/ ) How to back up and restore the registry in Windows
To resolve this problem, use one of the following methods:

Method 1

Add the following registry entry:
Subkey: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\<Hardware ID>\<Instance ID>\Device Parameters\WUDFUsbccidDriver
Value: DeviceFlags Type: REG_DWORD Data: 4

Method 2

Add the following registry entry:
Subkey: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\<Hardware ID>\<Instance ID>\Device Parameters\WUDFUsbccidDriver
Value: WaitThreshold Type: REG_DWORD Data: 1000
Note
  • The WaitThreshold value is specified in the unit of milliseconds. Set the value to 1000 for 1-second or some other threshold value shorter than 10-second. If the calculated wait time is larger or equal to this value, the UMDF reader driver will ignore the wait time and send another request to the reader immediately.
  • The WaitThreshold value only works when the DeviceFlags value is absent or set to 0.

APPLIES TO
  • Windows 7 Enterprise
  • Windows 7 Home Basic
  • Windows 7 Home Premium
  • Windows 7 Professional
  • Windows 7 Starter
  • Windows 7 Ultimate
Keywords: 
kbtshoot kbexpertiseadvanced kbsurveynew kbprb KB972779
Share
Additional support options
Ask The Microsoft Small Business Support Community
Contact Microsoft Small Business Support
Find Microsoft Small Business Support Certified Partner
Find a Microsoft Store For In-Person Small Business Support