供应商包装服务提供程序
供应商包装器的目的是封装并使用智能卡制造商) 为特定智能卡提供的低级别 COM 接口 (。 Microsoft 不提供这些接口。
如 ICC 和个人计算机系统的互操作性规范 第 6 部分所述, (请参阅) 的规范 https://pcscworkgroup.com ,此包装器公开的功能比四个单独的服务提供商的功能更易于使用。 包装的功能可分为四个main区域:
- 智能卡身份验证服务,例如获取质询和卡身份验证。
- 智能卡文件访问或文件系统服务,例如打开、关闭、读取和写入。
- 智能卡管理,例如附加和分离。
- 智能卡验证服务,例如验证和更改代码。
注意
此规范在某些语言和国家或地区中可能不可用。
该功能特定于使用的卡类型, (卡支持的功能、协议等) ,并且每个卡将有所不同。
Microsoft SCardCOM 示例包装器使用 ATL COM 库实现简单的包装器,并为其他包装器设置模板。 它实现以下接口。
接口或对象 | 说明 |
---|---|
ISCardAuth |
身份验证服务。 |
ISCardFileAccess |
文件系统服务。 |
ISCardManage |
管理服务。 |
ISCardVerify |
验证服务。 |
注意
SCardCOM 示例仅作为实现包装器接口的示例提供。 若要防止 DLL 名称与其他供应商冲突,不得使用 SCardCOM.dll 作为所创建的任何 DLL 的名称。
下面是供应商包装器的典型用法。 此示例使用 ISCardManage 接口创建将包装到服务提供程序和 ISCardVerify 接口中的接口实例,以验证其操作。
生成包装服务提供程序
- 创建 ISCardManage 接口的实例。 使用此接口创建所需接口的实例, (例如 ISCardFileAccess 或 ISCardVerify) 。 创建这些接口时,还将创建任何相应的低级别 COM 接口。
- 通过适当的 ISCardManage 方法附加/连接到卡。
- 通过适当的 ISCardVerify 方法 (执行所需的操作,该方法可以调用多个低级别 COM 接口和方法来完成) 。
- 对其他操作重复此操作。
- 完成后释放。
COM 接口名称和接口标识符 (GUID) 不应更改代码或示例包装中使用的名称。 但是,类 GUID (即,接口的实际实现所在的位置) 必须从使用的位置更改。 实现供应商包装器时,这一点尤其重要。 一个示例是在特定计算机上使用多个供应商包装器。 这些包装器应实现相同的 COM 接口,但始终使用不同的实现策略。 因此,需要不同的类 (和类 ID) 。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈