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.
The USB Smartcard specificationrequires 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.
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 How to back up and restore the registry in Windows
To resolve this problem, use one of the following methods:
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.