ベンダー ラッパー サービス プロバイダー
ベンダー ラッパーの目的は、特定のスマート カードに対して低レベルの COM インターフェイス (スマート カード製造元が提供) をカプセル化して使用することです。 これらのインターフェイスは、Microsoft によって提供されていません。
ICC およびパーソナル コンピューター システムの の 相互運用性仕様のパート 6 で説明されているように (https://pcscworkgroup.comの仕様を参照)、このラッパーによって公開される機能は、4 つの個別のサービス プロバイダーの機能よりも使いやすいです。 ラッパーの機能は、次の 4 つの主要な領域に分けることができます。
- チャレンジやカード認証などのスマート カード認証サービス。
- スマート カード ファイル アクセスまたはファイル システム サービス (開く、閉じる、読み取り、書き込みなど)。
- 取り付けや取り外しなどのスマート カード管理。
- コードの確認や変更などのスマート カード検証サービス。
手記
この仕様は、一部の言語および国または地域では使用できない場合があります。
この機能は、使用されるカードの種類 (カードがサポートする機能、プロトコルなど) に固有であり、カードごとに異なります。
Microsoft SCardCOM サンプル ラッパーでは、ATL COM ライブラリを使用して単純なラッパーを実装し、他のラッパー用のテンプレートをレイアウトします。 次のインターフェイスを実装します。
インターフェイスまたはオブジェクト | 形容 |
---|---|
ISCardAuthの |
認証サービス。 |
ISCardFileAccessの |
ファイル システム サービス。 |
ISCardManage |
管理サービス。 |
ISCardVerifyの |
検証サービス。 |
手記
SCardCOM の例は、ラッパー インターフェイスを実装する例としてのみ提供されます。 他のベンダーとの DLL 名の競合を防ぐには、作成する DLL の名前として SCardCOM.dll を使用しないでください。
ベンダー ラッパーの一般的な使用方法を次に示します。 この例では、ISCardManage インターフェイスを使用して、サービス プロバイダーと ISCardVerify インターフェイスにラップされるインターフェイスのインスタンスを作成し、その操作を確認します。
ラッパー サービス プロバイダーの を構築するには
- ISCardManage インターフェイスのインスタンスを作成します。 このインターフェイスを使用して、必要なインターフェイスのインスタンスを作成します (ISCardFileAccessや ISCardVerifyなど)。 これらのインターフェイスを作成すると、対応する下位レベルの COM インターフェイスも作成されます。
- 適切な ISCardManage メソッドを使用してカードをアタッチまたは接続します。
- 適切な ISCardVerify メソッドを使用して必要な操作を実行します (複数の低レベルの COM インターフェイスとメソッドを呼び出して完了する場合があります)。
- 他の操作に対して繰り返します。
- 完了したらリリースします。
COM インターフェイス名とインターフェイス識別子 (GUID) は、コードまたはサンプル ラッパーで使用されているものから変更しないでください。 ただし、クラス GUID (つまり、インターフェイスの実際の実装が存在する場所) は、使用されているものから変更する必要があります。 これは、ベンダー ラッパーを実装する場合に特に重要です。 1 つの例として、特定のコンピューターで複数のベンダー ラッパーを使用します。 これらのラッパーは同じ COM インターフェイスを実装する必要がありますが、常に異なる実装戦略を使用します。 そのため、異なるクラス (およびクラス ID) が必要です。