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