SCARD_E_INVALID_TARGET (0X80100005) – Missing registry startup info
Smart card service blinks because registry startup info is missing or corrupted. Simple reg fix kills it fast.
Quick answer
Open Regedit, go to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Calais\Readers, delete or fix the DisplayName value, then restart the Smart Card service.
What's actually happening here
The error SCARD_E_INVALID_TARGET (0X80100005) means the Smart Card Resource Manager can't initialize because the registry key that tells it where to find reader startup info is missing or corrupted. On Windows 10 and 11, this usually pops up when you try to use a smart card reader (like for signing documents or logging into a corporate network) and get a generic failure. The root cause is often a leftover registry entry from a partially uninstalled driver or a failed reader configuration.
The service looks for a DisplayName value under Calais\Readers. If that's blank, points to a nonexistent DLL, or uses wrong case, the service can't load the reader interface and throws this error. What trips people up is that the Smart Card Service itself might show as running—it's the reader initialization that fails, not the service.
Fix steps (numbered)
- Open Regedit (
Win+R, typeregedit, hit Enter). Confirm the UAC prompt. - Navigate to
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Calais\Readers. If this key is missing entirely, your smart card driver didn't install properly—see the alternative fixes below. - Look for a subkey that matches your reader's name—something like
Generic Smart Card Reader 00orHID Global OMNIKEY 5321. - Inside that subkey, check the
DisplayNamestring value. The reason step 3 works is that the service reads this during startup. If it's empty, missing, or contains a path like%SystemRoot%\System32\winscard.dllthat doesn't exist (unlikely but possible), you get the error. - Fix it: right-click
DisplayName, choose Modify, and set it to@winscard.dll,-1000(this tells Windows to pull the friendly name from the winscard resource, which is the standard). If the value is already that but still broken, the DLL might be corrupted—runsfc /scannowto check. - Restart the Smart Card service: open Admin Command Prompt, type
net stop scardsvr && net start scardsvr. Windows 11 also works withservices.msc— find Smart Card Service, right-click, Restart. - Test: plug your reader in (or reconnect it), then run
certutil -scinfoin Command Prompt. If it shows your reader without the 0X80100005 error, you're golden.
Alternative fixes if the main one fails
- Delete the broken reader entry: if the
DisplayNameis a garbled string (like???or foreign characters), delete the whole subkey underReaders. Then unplug and replug the reader—Windows will re-detect it and recreate the key fresh. - Reinstall the reader driver: go to Device Manager, find your reader under Smart Card Readers, right-click, Uninstall device (check Delete the driver software for this device if you want a total reset). Reboot, then install the latest driver from the vendor site (not Windows Update—those are often outdated).
- Repair the winscard.dll: if
sfc /scannowdoesn't fix it, runDISM /Online /Cleanup-Image /RestoreHealth(takes 10-15 minutes). This is overkill but necessary if the DLL itself is busted—seen this after botched Windows updates. - Check for third-party conflicts: some RFID middleware (like HID Global's or Gemalto's) overwrites the
DisplayNamewith a custom path that doesn't survive a reboot. Uninstall their software, reinstall the vanilla Windows driver, then reinstall the middleware if you need it.
Prevention tip
Don't use generic Windows Update drivers for smart card readers when the vendor offers signed ones—Windows Update pushes a stripped-down driver that often leaves the registry in a half-baked state. Always download the driver from the manufacturer's site (like HID, Gemalto, or ACS) and install it before plugging in the reader. If you've already plugged it in, uninstall the device first in Device Manager, then install the proper driver, then plug it back. This avoids the orphan registry entries that cause 0X80100005 in the first place.
Was this solution helpful?