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