Virtual Smart Card Applet Registry Locations
Windows registers and manages virtual smart cards, card modules, and associated applet configurations through the Windows Smart Card subsystem (Calais) within the Windows Registry. This article outlines the specific registry paths used by the Registry Editor (Regedit) to store installed virtual smart card applets, minidrivers, and card definitions.
Primary Smart Card Database
The central registry location for all registered smart cards, including TPM-based virtual smart cards and third-party virtual smart card applets, is located at:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Calais\SmartCards
Under this key, each subkey corresponds to a registered smart card type or applet profile (such as “Identity Device (NIST SP 800-73 [PIV])” or “Windows TPM Virtual Smart Card”).
Each subkey contains the following key values defining the applet and
its driver: * 80000001: Specifies the
smart card minidriver DLL responsible for communicating with the virtual
smart card applet (e.g., msclmd.dll). *
ATR: Stores the Answer-to-Reset binary
value that identifies the virtual card. *
ATRMask: Stores the mask value used to
match the virtual card’s ATR against the registry entry. *
Crypto Provider: Lists the associated
Cryptographic Service Provider (CSP) or Key Storage Provider (KSP).
32-Bit Subsystem Location on 64-Bit Windows
For 32-bit applications interacting with smart card applets on a 64-bit operating system, the definitions are mirrored under the WOW64 registry hive:
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Cryptography\Calais\SmartCards
TPM Virtual Smart Card Device Instances
For built-in Windows TPM Virtual Smart Cards, driver configuration and device instances managed by the operating system can be inspected at:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TpmVirtualSmartCardDriver
Device-level enumerations and hardware interface IDs assigned when the virtual smart card is provisioned are maintained under:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\ROOT\SMARTCARDREADER