Anbieter-Wrapper-Dienstanbieter
Der Zweck des Anbieter-Wrappers besteht darin, die com-Schnittstellen auf niedriger Ebene (die von den Herstellern der intelligenten Karte bereitgestellt werden) für eine bestimmte intelligente Karte zu kapseln und zu verwenden. Diese Schnittstellen werden nicht von Microsoft bereitgestellt.
Wie in Teil 6 der Interoperabilitätsspezifikation für ICCs und Personal Computer Systems (siehe Spezifikationen unter https://pcscworkgroup.com) beschrieben, ist die von diesem Wrapper bereitgestellte Funktionalität einfacher zu verwenden als die Funktionalität von vier separaten Dienstanbietern. Die Funktionalität des Wrappers kann in vier Standard Bereiche unterteilt werden:
- Intelligente Karte-Authentifizierungsdienste, z. B. Get Challenge und Karte Authentifizierung.
- Intelligente Karte Dateizugriff oder Dateisystemdienste, z. B. Öffnen, Schließen, Lesen und Schreiben.
- Intelligente Karte Verwaltung, z. B. Anfügen und Trennen.
- Intelligente Karte Überprüfungsdienste, z. B. Überprüfen und Ändern von Code.
Hinweis
Diese Spezifikation ist in einigen Sprachen und Ländern oder Regionen möglicherweise nicht verfügbar.
Die Funktionalität ist spezifisch für den Typ der verwendeten Karte (die von der Karte unterstützt, Protokolle usw. unterstützt) und ist für jede Karte unterschiedlich.
Der Microsoft SCardCOM-Beispiel-Wrapper verwendet die ATL COM-Bibliothek, um einen einfachen Wrapper zu implementieren und eine Vorlage für andere Wrapper festzulegen. Es implementiert die folgenden Schnittstellen.
Schnittstelle oder Objekt | BESCHREIBUNG |
---|---|
ISCardAuth |
Authentifizierungsdienste. |
ISCardFileAccess |
Dateisystemdienste. |
ISCardManage |
Verwaltungsdienste. |
ISCardVerify |
Überprüfungsdienste. |
Hinweis
Das SCardCOM-Beispiel wird nur als Beispiel für die Implementierung der Wrapperschnittstellen bereitgestellt. Um eine Kollision mit DLL-Namen mit anderen Anbietern zu verhindern, dürfen Sie SCardCOM.dll nicht als Namen für alle von Ihnen erstellten DLLs verwenden.
Es folgt eine typische Verwendung des Anbieter-Wrappers. In diesem Beispiel wird die ISCardManage-Schnittstelle verwendet, um Instanzen der Schnittstellen zu erstellen, die in den Dienstanbieter und die ISCardVerify-Schnittstelle eingeschlossen werden, um deren Vorgang zu überprüfen.
So erstellen Sie einen Wrapperdienstanbieter
- Erstellen Sie eine instance der ISCardManage-Schnittstelle. Verwenden Sie diese Schnittstelle, um eine instance der erforderlichen Schnittstellen zu erstellen (z. B. ISCardFileAccess oder ISCardVerify). Beim Erstellen dieser Schnittstellen werden auch alle entsprechenden COM-Schnittstellen auf niedriger Ebene erstellt.
- Anfügen/Herstellen einer Verbindung mit einer Karte über die entsprechende ISCardManage-Methode.
- Führen Sie die erforderlichen Vorgänge über die entsprechende ISCardVerify-Methode aus (die möglicherweise mehrere COM-Schnittstellen und -Methoden auf niedriger Ebene aufruft, um sie abzuschließen).
- Wiederholen Sie dies für andere Vorgänge.
- Nach Abschluss der Freigabe.
Der COM-Schnittstellenname und der Schnittstellenbezeichner (GUID) sollten sich nicht gegenüber denen ändern, die im Code oder Beispielwrapper verwendet werden. Die GUID der Klasse (d. h. in der sich eine tatsächliche Implementierung einer Schnittstelle befindet) muss jedoch von den verwendeten geändert werden. Dies ist besonders wichtig bei der Implementierung eines Anbieter-Wrappers. Ein Beispiel wäre die Verwendung mehrerer Anbieter-Wrapper auf einem bestimmten Computer. Diese Wrapper sollten dieselben COM-Schnittstellen implementieren, aber immer unterschiedliche Implementierungsstrategien verwenden. Daher sind verschiedene Klassen (und Klassen-IDs) erforderlich.