Share via


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.