Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
L’objectif du wrapper fournisseur est d’encapsuler et d’utiliser les interfaces COM de bas niveau (fournies par les fabricants de cartes à puce) pour une carte à puce particulière. Ces interfaces ne sont pas fournies par Microsoft.
Comme décrit dans la partie 6 de la spécification d’interopérabilité pour les ICCs et les systèmes informatiques personnels (consultez les spécifications à https://pcscworkgroup.com), la fonctionnalité exposée par ce wrapper est plus facile à utiliser que les fonctionnalités de quatre fournisseurs de services distincts. Les fonctionnalités du wrapper peuvent être divisées en quatre domaines principaux :
- Services d’authentification par carte à puce, tels que l’obtention d’un défi et l’authentification par carte.
- Accès aux fichiers de carte à puce ou services de système de fichiers, tels que l’ouverture, la fermeture, la lecture et l’écriture.
- Gestion des cartes à puce, telles que l’attachement et le détachement.
- Services de vérification de carte à puce, tels que vérifier et modifier le code.
Note
Cette spécification peut ne pas être disponible dans certaines langues et pays ou régions.
La fonctionnalité est spécifique au type de carte utilisé (qui fonctionne la carte prend en charge, protocoles, et ainsi de suite) et sera différente pour chaque carte.
L’exemple de wrapper Microsoft SCardCOM utilise la bibliothèque COM ATL pour implémenter un wrapper simple et mettre en place un modèle pour d’autres wrappers. Il implémente les interfaces suivantes.
Interface ou objet | Description |
---|---|
isCardAuth |
Services d’authentification. |
isCardFileAccess |
Services de système de fichiers. |
isCardManage |
Services de gestion. |
ISCardVerify |
Services de vérification. |
Note
L’exemple SCardCOM est fourni uniquement comme exemple d’implémentation des interfaces wrapper. Pour empêcher la collision de noms DLL avec d’autres fournisseurs, vous ne devez pas utiliser SCardCOM.dll comme nom des DLL que vous créez.
Voici une utilisation classique du wrapper fournisseur. Cet exemple utilise l’interface ISCardManage pour créer des instances des interfaces qui seront encapsulées dans le fournisseur de services et l’interface ISCardVerify pour vérifier leur opération.
Pour créer un fournisseur de services wrapper
- Créez une instance de l’interface ISCardManage. Utilisez cette interface pour créer une instance d’interfaces requises (par exemple, ISCardFileAccess ou ISCardVerify). Lors de la création de ces interfaces, toutes les interfaces COM de bas niveau correspondantes sont également créées.
- Attachez/connectez-vous à une carte via la méthodeISCardManage appropriée.
- Effectuez les opérations requises via la méthode ISCardVerify appropriée (qui peut appeler plusieurs interfaces COM de bas niveau et méthodes à terminer).
- Répétez pour d’autres opérations.
- Relâchez une fois terminé.
Le nom de l’interface COM et l’identificateur d’interface (GUID) ne doivent pas être modifiés par rapport à ceux utilisés dans le code ou l’exemple de wrapper. Toutefois, le GUID de classe (autrement dit, où réside une implémentation réelle d’une interface) doit être modifié de ceux utilisés. Cela est particulièrement important lors de l’implémentation d’un wrapper fournisseur. Un exemple consisterait à utiliser plusieurs wrappers de fournisseur sur un ordinateur particulier. Ces wrappers doivent implémenter les mêmes interfaces COM, mais utilisent toujours différentes stratégies d’implémentation. Par conséquent, différentes classes (et ID de classe) sont requises.