供应商包装服务提供程序

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

供应商包装器

如 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)。