供应商包装服务提供程序

供应商包装器的目的是封装和使用智能卡制造商为特定智能卡) 提供的低级别 COM 接口 (。 Microsoft 不提供这些接口。

vendor wrapper

ICC 和个人计算机系统的互操作性规范 第 6 部分所述, (查看) 的 https://pcscworkgroup.com 规范,此包装器公开的功能比四个独立的服务提供商的功能更容易使用。 包装器的功能可以分为四个主要区域:

  • 智能卡身份验证服务,例如获取质询和卡片身份验证。
  • 智能卡文件访问或文件系统服务,例如打开、关闭、读取和写入。
  • 智能卡管理,例如附加和分离。
  • 智能卡验证服务,例如验证和更改代码。

注意

此规范可能在某些语言和国家或地区不可用。

 

此功能特定于正在使用的卡类型, (该卡支持、协议等功能) ,每个卡将有所不同。

Microsoft SCardCOM 示例包装器使用 ATL COM 库实现简单的包装器,并为其他包装器设置模板。 它实现以下接口。

接口或对象 说明
ISCardAuth
身份验证服务。
ISCardFileAccess
文件系统服务。
ISCardManage
管理服务。
ISCardVerify
验证服务。

 

注意

SCardCOM 示例仅作为实现包装接口的示例提供。 若要防止 DLL 名称与其他供应商发生冲突,不得使用SCardCOM.dll作为所创建的任何 DLL 的名称。

 

下面是供应商包装器的典型用法。 此示例使用 ISCardManage 接口创建将包装到服务提供商和 ISCardVerify 接口中的接口实例来验证其操作。

生成包装服务提供程序

  1. 创建 ISCardManage 接口的实例。 使用此 (接口创建所需的接口实例,例如 ISCardFileAccessISCardVerify) 。 创建这些接口时,还会创建任何相应的低级别 COM 接口。
  2. 通过适当的 ISCardManage 方法附加/连接到卡。
  3. 通过适当的 ISCardVerify 方法执行所需的操作 (,该方法可能会调用多个低级别 COM 接口和方法来完成) 。
  4. 对其他操作重复此操作。
  5. 完成后发布。

COM 接口名称和接口标识符 (GUID) 不应从代码或示例包装中使用的接口更改。 但是,类 GUID (,其中接口的实际实现) 必须从所使用的接口更改。 在实现供应商包装器时,这一点尤其重要。 一个示例是在特定计算机上使用多个供应商包装器。 这些包装器应实现相同的 COM 接口,但始终使用不同的实现策略。 因此,需要不同的类 (类和类 ID) 。