Smart Card Modules

This topic is not current. For the most current information about the Smart Card API, see Smart Card Minidriver Specification.

Smart card modules act as card-specific plug-ins for the Microsoft Base Smart Card Cryptographic Service Provider. A smart card module communicates to a specific type of smart card through the Smart Card Resource Manager.

A smart card module is implemented as a dynamic-link library. A card module must implement the CardAcquireContext function. A card module must also implement the functions DllMain, DllRegisterServer, and DllUnregisterServer. A card module can also implement any or all of the functions described in Smart Card API Functions.

The Microsoft Base Smart Card Cryptographic Service Provider initiates communication to a smart card module by calling the CardAcquireContext function implemented by that card module. State information and function pointers that enable communication between a smart card module and the Microsoft Base Smart Card Cryptographic Service Provider are contained in a CARD_DATA structure.

Registering Card Types

The DllRegisterServer function implemented by a smart card module must call the SCardIntroduceCardType and SCardSetCardTypeProviderName functions to register the types of smart cards that the smart card module supports.

The DllUnregisterServer function implemented by a smart card module must call the SCardForgetCardType function to unregister the types of smart cards that the smart card module supports.