Windows searches for a smart card driver at every insertion
When Windows has no driver for a smart card, it searches for one each time the card is inserted. This usually means the vendor did not ship its CSP or minidriver as an .inf package.
There are two fixes:
Option A: turn off Smart Card Plug and Play
With Group Policy
- Press Win+R, type
gpedit.msc, press Enter - Go to Computer Configuration → Administrative Templates → Windows Components → Smart Card
- Double-click Turn on Smart Card Plug and Play service
- Select Disabled, click OK
With the registry
Import this .reg file:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\ScPnP] "EnableScPnP"=dword:00000000 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\ScPnP] "EnableScPnP"=dword:00000000
Option B: install a fake driver
Step 1: find the historical bytes
In Device Manager, open the smart card that shows the error, then Properties → Details → Hardware IDs. Look for the entry that starts with SCFILTER\.
certutil -scinfo (here: Astrid in ASCII)Step 2: create the .inf file
Save the following as an .inf file, and replace SCFILTER\CID_51FF0800 with the card's hardware ID:
;
; FabrikamVendor Smartcard Minidriver — x86 and x64
;
[Version]
Signature="$Windows NT$"
Class=SmartCard
ClassGuid={990A2BD7-E738-46c7-B26F-1CF8FB9F1391}
Provider=%ProviderName%
DriverVer=04/03/2013,1.0.0.0
[Manufacturer]
%ProviderName%=Minidriver,NTamd64,NTamd64.6.1,NTx86,NTx86.6.1
[Minidriver.NTamd64]
%CardDeviceName%=Minidriver64_Install,SCFILTER\CID_51FF0800
[Minidriver.NTx86]
%CardDeviceName%=Minidriver32_Install,SCFILTER\CID_51FF0800
[Minidriver.NTamd64.6.1]
%CardDeviceName%=Minidriver64_61_Install,SCFILTER\CID_51FF0800
[Minidriver.NTx86.6.1]
%CardDeviceName%=Minidriver32_61_Install,SCFILTER\CID_51FF0800
[Minidriver64_61_Install.NT]
Include=umpass.inf
Needs=UmPass
[Minidriver32_61_Install.NT]
AddReg=AddRegDefault
Include=umpass.inf
Needs=UmPass
[Minidriver64_61_Install.NT.Services]
Include=umpass.inf
Needs=UmPass.Services
[Minidriver32_61_Install.NT.Services]
Include=umpass.inf
Needs=UmPass.Services
[Minidriver64_61_Install.NT.HW]
Include=umpass.inf
Needs=UmPass.HW
[Minidriver64_61_Install.NT.CoInstallers]
Include=umpass.inf
Needs=UmPass.CoInstallers
[Minidriver64_61_Install.NT.Interfaces]
Include=umpass.inf
Needs=UmPass.Interfaces
[Minidriver32_61_Install.NT.HW]
Include=umpass.inf
Needs=UmPass.HW
[Minidriver32_61_Install.NT.CoInstallers]
Include=umpass.inf
Needs=UmPass.CoInstallers
[Minidriver32_61_Install.NT.Interfaces]
Include=umpass.inf
Needs=UmPass.Interfaces
[Strings]
ProviderName = "FabrikamVendor"
CardDeviceName = "FabrikamVendor Minidriver for Smart Card"
Step 3: install
In Device Manager, right-click the smart card → Update driver → Browse my computer → select the folder that holds the .inf file. If Windows finds no compatible driver, the SCFILTER string is wrong.
Debugging: if the install fails, check the
.inf syntax with InfVerif (part of the WDK).