What's actually happening here is a reader lock
Error 0x8010000B (SCARD_E_SHARING_VIOLATION) means the smart card reader is already claimed by another process. The Windows smart card resource manager enforces exclusive access per session — you can't have two apps talking to the same card at the same time. This isn't a hardware failure, it's a software contention issue.
I've seen this most often after a VPN client (like Cisco AnyConnect or Palo Alto GlobalProtect) tries to authenticate using the smart card, while Windows Hello or a PKI app (like ActivClient) already has the card pinned. The fix is finding the holder and releasing it.
First cause: leftover smart card service process
The most common trigger: a previous smart card operation crashed or was closed improperly, leaving the SCardSvr service holding the card. The resource manager doesn't auto-release until the service restarts.
Fix — restart the smart card service
- Open an admin Command Prompt (Win+X -> Terminal Admin).
- Run:
net stop scardsvr && net start scardsvr - Retry your smart card app.
The reason step 2 works: stopping the service kills all active handles to readers. Starting it fresh resets the context. If you see "The service is starting or stopping," wait 5 seconds and try again — it's transient.
If this fixes it, you're done. But if the error returns immediately after the next app launch, read on — that means a specific app is re-claiming it every time.
Second cause: a specific app holds the reader persistently
Some applications — I'm looking at you, Enterprise PKI middleware like ActivClient 8.x or Gemalto IDGo — don't release the reader handle after they authenticate. They keep it open for the entire user session. Meanwhile, your browser or VPN client can't touch it.
Fix — identify the holding process
- Open PowerShell as admin.
- Run:
This gives you the device instance path.Get-WmiObject -Class Win32_PnPEntity | Where-Object {$_.Name -like "*smart card*"} | ForEach-Object {$_.DeviceID} - Then find what's holding it:
You need Sysinternals handle.exe for this. It lists open handles to the reader.handle.exe -a -p ".*smart.*" - Look for the process name (e.g.,
activclient.exe,pivApp.exe,svchost.exe). - Kill it via Task Manager or
taskkill /f /im processname.exe.
Important: If it's svchost.exe, that's the SCardSvr itself — restart the service as above. Killing svchost haphazardly can blue-screen you.
Once the holder process is dead, your app should connect immediately. If you need that app (like a PKI agent) to keep running, you'll need to reconfigure it to release the reader after use — check its settings for "exclusive access" or "session sharing."
Third cause: Windows Hello for Business locking the reader
Windows 10 22H2 and Windows 11 23H2 have a known behavior: when Windows Hello tries to authenticate using a smart card (for PIN or fingerprint fallback), it grabs the reader and doesn't let go until the user signs out. This happens silently — you won't see a Hello UI, but the card's held.
Fix — disable Hello's smart card fallback
- Open Group Policy Editor (gpedit.msc) or search for "Edit group policy".
- Navigate to:
Computer Configuration -> Administrative Templates -> Windows Components -> Windows Hello for Business. - Set "Use a hardware security device" to Disabled.
- Alternatively, if you're not on Pro/Enterprise:
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI /v UseSmartCard /t REG_DWORD /d 0 /f - Reboot.
The reason this works: the registry key tells the logon UI to skip smart card enumeration. Without that trigger, Hello never claims the reader. Your apps get clean access.
Caveat: This disables smart card logon via Windows Hello. If you need that, you're stuck with the previous fix (restarting SCardSvr before each app use).
Quick-reference summary
| Cause | Symptom | Fix |
|---|---|---|
| SCardSvr holds stale handle | Error right after another app used the card | net stop scardsvr && net start scardsvr |
| Specific app (PKI middleware, VPN) | Error only with that app running | Kill the process; reconfigure to release reader |
| Windows Hello fallback | Error at login or after idle timeout | Disable Hello's smart card use via GPO or registry |
If none of these work, you've got a minidriver conflict. Uninstall all smart card reader drivers from Device Manager, reboot, and let Windows reinstall them fresh. That clears any corrupted driver context that could simulate a sharing violation.