Partager via


Service de cartes à puce pour Windows

Cette rubrique destinée aux professionnels de l’informatique et aux développeurs de carte intelligente décrit comment le service Cartes à puce pour Windows (anciennement appelé Resource Manager de carte à puce) gère les lecteurs et les interactions des applications.

Le service Cartes à puce pour Windows fournit l’infrastructure de base pour tous les autres composants de carte intelligente, car il gère les lecteurs de carte intelligents et les interactions d’application sur l’ordinateur. Il est entièrement conforme aux spécifications définies par le groupe de travail PC/SC. Pour plus d’informations sur ces spécifications, consultez le site web Spécifications du groupe de travail PC/SC.

Le service Cartes à puce pour Windows s’exécute dans le contexte d’un service local et est implémenté en tant que service partagé du processus hôte de services (svchost). La description du service Cartes à puce pour Windows, Scardsvr, est la suivante :

<serviceData
    dependOnService="PlugPlay"
    description="@%SystemRoot%\System32\SCardSvr.dll,-5"
    displayName="@%SystemRoot%\System32\SCardSvr.dll,-1"
    errorControl="normal"
    group="SmartCardGroup"
    imagePath="%SystemRoot%\system32\svchost.exe -k LocalServiceAndNoImpersonation"
    name="SCardSvr"
    objectName="NT AUTHORITY\LocalService"
    requiredPrivileges="SeCreateGlobalPrivilege,SeChangeNotifyPrivilege"
    sidType="unrestricted"
    start="demand"
    type="win32ShareProcess"
    >
  <failureActions resetPeriod="900">
       <actions>
          <action
              delay="120000"
              type="restartService"
          />
          <action
              delay="300000"
              type="restartService"
          />
          <action
               delay="0"
              type="none"
          />
      </actions>
  </failureActions>
  <securityDescriptor name="ServiceXSecurity"/>
</serviceData>

  <registryKeys buildFilter="">
      <registryKey keyName="HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SCardSvr\Parameters">
      <registryValue
          name="ServiceDll"
          value="%SystemRoot%\System32\SCardSvr.dll"
          valueType="REG_EXPAND_SZ"
          />
      <registryValue
          name="ServiceMain"
          value="CalaisMain"
          valueType="REG_SZ"
          />
      <registryValue
          name="ServiceDllUnloadOnStop"
          value="1"
          valueType="REG_DWORD"
          />
      </registryKey>
  </registryKeys>

Remarque

Pour winscard.dll être appelée en tant que programme d’installation de classe approprié, le fichier INF d’un lecteur smart carte doit spécifier les éléments suivants pour Class et ClassGUID :

Class=SmartCardReader ClassGuid={50DD5230-BA8A-11D1-BF5D-0000F805F530}

Par défaut, le service est configuré pour le mode manuel. Les créateurs de pilotes de lecteur smart carte doivent configurer leurs infs afin qu’ils démarrent le service automatiquement et que les fichiers winscard.dll appellent un point d’entrée prédéfini pour démarrer le service pendant l’installation. Le point d’entrée est défini dans le cadre de la classe SmartCardReader , et il n’est pas appelé directement. Si un appareil s’affiche lui-même dans le cadre de cette classe, le point d’entrée est automatiquement appelé pour démarrer le service lors de l’insertion de l’appareil. L’utilisation de cette méthode garantit que le service est activé lorsqu’il est nécessaire, mais il est également désactivé pour les utilisateurs qui n’utilisent pas de cartes à puce.

Lorsque le service est démarré, il exécute plusieurs fonctions :

  1. Il s’inscrit lui-même pour les notifications de service
  2. Il s’inscrit pour les notifications Plug-and-Play (PnP) relatives à la suppression et aux ajouts d’appareils
  3. Il initialise son cache de données et un événement global qui signale que le service a démarré

Remarque

Pour les implémentations de carte intelligentes, envisagez d’envoyer toutes les communications dans les systèmes d’exploitation Windows avec des lecteurs carte intelligents via le service Cartes à puce pour Windows. Cela fournit une interface pour suivre, sélectionner et communiquer avec tous les pilotes qui se déclarent membres du groupe de périphériques de lecture smart carte.

Le service Cartes à puce pour Windows classe chaque emplacement de lecteur smart carte comme lecteur unique, et chaque emplacement est également géré séparément, quelles que soient les caractéristiques physiques de l’appareil. Le service Cartes à puce pour Windows gère les actions générales suivantes :

  • Présentation de l’appareil
  • Initialisation du lecteur
  • Notification de nouveaux lecteurs aux clients
  • Sérialisation de l’accès aux lecteurs
  • Accès carte intelligent
  • Tunneling de commandes spécifiques au lecteur

Voir également

Fonctionnement de la connexion par carte à puce dans Windows