CN1912822A - 一种使海量存储类设备能提供智能卡接口的装置及方法 - Google Patents

一种使海量存储类设备能提供智能卡接口的装置及方法 Download PDF

Info

Publication number
CN1912822A
CN1912822A CN 200610112608 CN200610112608A CN1912822A CN 1912822 A CN1912822 A CN 1912822A CN 200610112608 CN200610112608 CN 200610112608 CN 200610112608 A CN200610112608 A CN 200610112608A CN 1912822 A CN1912822 A CN 1912822A
Authority
CN
China
Prior art keywords
large scale
storage equipment
scale storage
data processing
monitoring
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN 200610112608
Other languages
English (en)
Other versions
CN100409165C (zh
Inventor
陆舟
于华章
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Feitian Technologies Co Ltd
Original Assignee
Beijing Feitian Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Feitian Technologies Co Ltd filed Critical Beijing Feitian Technologies Co Ltd
Priority to CNB2006101126089A priority Critical patent/CN100409165C/zh
Publication of CN1912822A publication Critical patent/CN1912822A/zh
Application granted granted Critical
Publication of CN100409165C publication Critical patent/CN100409165C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种使海量存储类设备能提供智能卡接口的装置及方法。所述装置为虚拟读卡器驱动层,包括:监控模块,用于监控海量存储类设备的插入和拔除,获取海量存储类设备对象的名称;PC/SC接口模块,对应用层提供标准符合PC/SC规范的驱动接口,接收从应用层发来的IRP,并将该IRP传递给数据处理模块;数据处理模块,用来接收并处理通过PC/SC接口模块从应用层发来的IRP并重新组装数据包,根据监控模块获取的海量存储类设备对象的名称向磁盘类驱动层发送数据包。所述装置的工作方法包括监控步骤和数据处理步骤。通过本发明实现了海量存储类设备智能卡功能,使其使用方法更加灵活,应用领域更加广泛。

Description

一种使海量存储类设备能提供智能卡接口的装置及方法
技术领域
本发明涉及在内核驱动中监控海量存储类设备的装置及方法,特别是指一种使海量存储类设备能提供智能卡接口的装置及方法。
背景技术
WDM(Win32 Driver Mode,Win32驱动模型)是微软公司为Windows的驱动程序设计的一种通用的驱动程序模型。随着系统的升级,WDM已经成为Windows系统驱动程序开发的主流。WDM体系结构实行分层处理,即设备驱动被分成:过滤驱动程序、功能驱动程序和总线驱动程序。每层驱动程序又把I/O请求划分成更简单的请求,以传给下层的驱动程序执行。总线驱动程序最后收到I/O请求后,通过硬件抽象层与硬件发生作用,从而完成I/O请求操作。
一般智能卡生产商通常除了要提供智能卡物理设备,还要提供相应的功能驱动程序,该功能驱动程序既可以作为读卡器接口与上层应用进行数据通讯,又可以通过与下层的总线驱动进行通讯,完成与硬件之间的数据读写。功能驱动程序的这两种功能即可以在一个功能驱动中实现,也可以根据需要设计成两个单独的驱动,一部分完成读卡器功能,一部分完成与硬件相关部分功能(以下统一称为智能卡设备功能驱动)。数据传输经过的顺序是:应用发送数据时,数据依次经智能卡服务系统、智能卡设备功能驱动、总线驱动,到达智能卡物理设备。数据从硬件返回时,数据依次经总线驱动、智能卡设备功能驱动、智能卡服务系统到达应用。
在设计智能卡设备功能驱动时,需要在驱动中提供PC/SC回调函数接口,并在设备功能驱动中指定读卡器名称。回调函数大多由使用者自己定义名字,函数体是系统定义好的,回调函数的用法为:使用者定义一个函数变量类型,然后定义一个这种类型的变量,并对这个变量赋值,再把变量作为参数传给调用者(一般为系统本身),调用者根据参数调用回调函数。
应用层通过使用智能卡服务的PC/SC接口,就能开始智能卡正常的通讯工作。这样设计出来的智能卡能实现智能卡的全部应用。
PC/SC规范是由微软公司与世界其它著名的智能卡厂商组成的PC/SC工作组提出的一个基于WINDOWS平台的一个标准用户接口(API),提供了一个从个人电脑(Personal Computer)到智能卡(SmartCard)的整合环境,应用程序通过该标准用户接口与智能卡进行通讯。
通用串行(USB)总线接口是一种快速,灵活的接口,具有极大的易用性,如支持热插拔、所有的配置过程都由系统自动完成等,适合应用于数码相机、mp3播放器、高速数据采集等多种设备。
通常所用的U盘、移动硬盘使用USB接口,也均属于海量存储类设备。USB组织定义了海量存储设备类的规范,该类规范包括四个独立的子类规范:
1.USB Mass Storage Class Control/Bulk/Interrupt(CBI)Transport;
2.USB Mass Storage Class Bulk-Only Trasport;
3.USB Mass Storage Class ATA Command Block;
4.USB Mass Storage Class UFI Command Specification。
上述前两个子规范定义了数据/命令/状态在USB上的传输方法。Bulk-Only传输规范仅仅使用Bulk端点传送数据/命令/状态,CBI传输规范则使用Control/Bulk/Interrupt三种类型的端点进行数据/命令/状态传送。
上述后两个子规范定义了存储介质的操作命令。ATA命令规范用于硬盘,UFI命令规范是针对USB移动存储。
Microsoft Windows中提供对Mass Storage协议的支持,因此USB移动设备只需要遵循Mass Storage协议来组织数据和处理命令,即可实现与PC机交换数据。
应用程序通过系统自带的驱动与海量存储类设备进行数据交互。但是系统自带的驱动不是读卡器驱动,没有提供PC/SC驱动接口,因此应用程序不能通过使用PC/SC API直接访问海量存储类设备。从而使海量存储类设备在智能卡领域的使用受到一定的局限。
发明内容
为了解决海量存储类设备不能直接应用于智能卡各个领域、实现智能卡功能的问题,本发明提供一种使海量存储类设备能提供智能卡接口的装置及方法。
本发明通过以下方案实现:一种使海量存储类设备能提供智能卡接口的装置,为虚拟读卡器驱动层,该虚拟读卡器驱动层包括:
监控模块,用于监控海量存储类设备的插入和拔除,获取海量存储类设备对象的名称;
PC/SC接口模块,对应用层提供标准符合PC/SC规范的驱动接口,接收从应用层发来的IRP,并将该IRP传递给数据处理模块;
数据处理模块,用来接收并处理通过PC/SC接口模块从应用层发来的IRP并重新组装数据包,根据监控模块获取的海量存储类设备对象的名称向磁盘类驱动层(disk.sys)发送数据包。
所述数据处理模块通过获取海量存储类设备对象的方式,连接磁盘类驱动层。
所述装置的工作方法,包括:
监控步骤:
1)当有海量存储类设备插入时,监控模块监控到海量存储类设备的插入;
2)监控模块获取下层海量存储类设备对象的名称;
3)监控模块判断插入的海量存储类设备是否为需处理的海量存储类设备;
4)监控模块初始化程序中的变量,并通知智能卡服务系统有智能卡插入;
5)当拔除海量存储类设备时,监控模块监控到海量存储类设备的拔除,清空海量存储类设备插入后占用的系统资源,并通知智能卡服务系统有智能卡拔除。
数据处理步骤:
1)数据处理模块接到应用层发来的与海量存储类设备相关的IRP,并根据海量存储类数据传输协议重新组装数据包;
2)数据处理模块将重新组装的数据包发送到下层磁盘类驱动层进行数据交互,并将交互后的结果返回应用层。
所述监控步骤1)中监控模块可以利用注册的回调函数监控海量存储类设备的插入。
所述监控步骤1)中监控模块可以通过轮循的方式监控海量存储类设备的插入。
所述监控步骤2)中监控模块根据注册的回调函数的参数获取下层海量存储类设备对象的名称。
所述监控步骤5)中监控模块可以利用注册的回调函数监控海量存储类设备的拔除。
所述监控步骤5)中监控模块可以通过轮循的方式监控海量存储类设备的拔除。
所述数据处理步骤2)中数据处理模块通过文件读写函数并根据海量存储类设备对象与下层磁盘类驱动层进行数据交互。
本发明通过构架一个虚拟读卡器驱动层,增加一个访问海量存储类设备的通道,实现海量存储类设备智能卡功能,从而使其使用方法更加灵活,应用领域更加广泛。
附图说明
图1是本发明的驱动体系示意图。
图2是本发明一种使海量存储类设备能提供智能卡接口的装置在进行监控海量存储类设备插入时的操作流程图。
图3是本发明一种使海量存储类设备能提供智能卡接口的装置在进行数据处理操作时的流程图。
具体实施方式
下面结合附图和具体实施例对本发明进行更详细的描述。
参见图1,本发明一种使海量存储类设备能提供智能卡接口的装置,是指在现有驱动体系中增加的一个虚拟读卡器驱动层13。增加一个虚拟读卡器驱动层13后的驱动体系包括四个基本层,即海量存储类设备(硬件层)11、磁盘类驱动层(disk.sys)12、虚拟读卡器驱动层13和应用层14。
虚拟读卡器驱动层13包括监控模块131、数据处理模块132和PC/SC接口模块133;所述监控模块131用于监控海量存储类设备11的插入和拔除,获取海量存储类设备对象的名称;所述数据处理模块132用来接收并处理通过PC/SC接口模块133从应用层发来的IRP,根据监控模块131获取的海量存储类设备对象的名称向磁盘类驱动层12发送数据;所述PC/SC接口模块133对应用层14提供标准符合PC/SC规范的驱动接口,接收从应用层14发来的IRP,并将该IRP传递给所述数据处理模块132。
所述数据处理模块132通过取海量存储类设备对象的方式,连接磁盘类驱动层12。
应用层14可以通过智能卡服务系统141对海量存储类设备11进行访问,实现对海量存储类设备11的监控。
虚拟读卡器驱动层13对应用层14提供的标准符合PC/SC规范的驱动接口有以下几种:
RDF_TRANSMIT
RDF_CARD_POWER
RDF_SET_PROTOCOL
RDF_CARD_TRACKING
RDF_CARD_EJECT
RDF_READER_SWALLOW
RDF_DEBUG_LEVEL
RDF_CARD_CONFISCATE
RDF_IOCTL_VENDOR
RDF_ATR_PARSE
根据实际需要处理相关的上述相应的接口,这里主要是处理:
RDF_TRANSMIT
RDF_CARD_POWER
RDF_SET_PROTOCOL
用户使用DDK提供的函数Io Register Plug Play Notification在虚拟读卡器驱动层13中注册CallbackRoutine回调函数,虚拟读卡器驱动层13中的监控模块131通过CallbackRoutine回调函数监控海量存储类设备11的插入和拔除,Io Register Plug Play Notification定义为:
NTSTATUS
    Io Register Plug Play Notification
    INIO_NOTIFICATION_EVENI_CATEGORY Event
Category,
    IN ULONG Event Category Flags,
    IN PVOID Event Category Data OPTIONAL,
    IN PDRIVER_OBJECTDriver Object,
    IN PDRIVER_NOTIFICATION_CALLBACK_ROUTINE
CallbackRoutine,
    IN PVOID Context,
    OUT PVOID*Notification Entry
函数中的Event Category Data参数设置为磁盘类驱动层12注册的GUID,参数CallbackRoutine是虚拟读卡器驱动层13需要处理的回调函数。
上述装置,即虚拟读卡器驱动层13的工作方法包括监控步骤和数据处理步骤。虚拟读卡器驱动层从安装成功后开始工作,安装的过程中使用Io Register Plug Play Notification函数注册回调函数CallbackRoutine。
虚拟读卡器驱动层中的监控模块在监控海量存储类设备插入时的步骤如图2所示。包括:
步骤201:海量存储类设备插入后,监控模块通过回调函数Callback Routine监控到海量存储类设备的插入;
监控模块也可以通过轮循的方式监控海量存储类设备的插入。
步骤202:监控模块获取下层海量存储类设备对象的名称,并判断插入的海量存储类设备是否为需处理的海量存储类设备;
如果是,则执行步骤203后再执行步骤204,否则直接执行步骤204。
步骤203:监控模块根据名称取下层海量存储类设备对象并保存,建立与海量存储类设备的联系,通知智能卡服务系统智能卡已插入,并设置智能卡服务启动标志,虚拟读卡器驱动层进入等待状态;
步骤204:返回。
所述监控模块可以通过回调函数Callback Routine或轮循的方式监控到海量存储类设备的拔除。当监控模块监控到海量存储类设备的拔除时,清空海量存储类设备插入后占用的系统资源,并通知智能卡服务系统有智能卡拔除。
虚拟读卡器驱动层中的数据处理模块在进行数据处理时的步骤如图3所示,包括:
步骤301:数据处理模块接收到应用层发来的IRP;
步骤302:数据处理模块判断应用层发来的IRP是否与硬件(即海量存储类设备)相关;
如果不相关则执行步骤303,如果相关则执行步骤304。
步骤303:数据处理模块内部处理IRP,并将处理结果返回应用层;
步骤304:数据处理模块根据海量存储类数据传输协议重新组装数据包;
步骤305:数据处理模块将组装后的数据包通过写文件的方式发给磁盘类驱动层;
步骤306:数据处理模块通过读文件的方式从磁盘类驱动层取得数据;
步骤307:数据处理模块对步骤306中所述的数据进行相应处理,并将处理结果返回应用层。

Claims (9)

1.一种使海量存储类设备能提供智能卡接口的装置,其特征在于:所述装置为虚拟读卡器驱动层,该虚拟读卡器驱动层包括:
监控模块,用于监控海量存储类设备的插入和拔除,获取海量存储类设备对象的名称;
PC/SC接口模块,对应用层提供标准符合PC/SC规范的驱动接口,接收从应用层发来的IRP,并将该IRP传递给数据处理模块;
数据处理模块,用来接收并处理通过PC/SC接口模块从应用层发来的IRP并重新组装数据包,根据监控模块获取的海量存储类设备对象的名称向磁盘类驱动层发送数据包。
2.根据权利要求1所述的使海量存储类设备能提供智能卡接口的装置,其特征在于:所述数据处理模块通过获取海量存储类设备对象的方式,连接磁盘类驱动层。
3.一种根据权利要求1所述装置的工作方法,其特征在于,所述方法包括:
监控步骤:
1)当有海量存储类设备插入时,监控模块监控到海量存储类设备的插入;
2)监控模块获取下层海量存储类设备对象的名称;
3)监控模块判断插入的海量存储类设备是否为需处理的海量存储类设备;
4)监控模块初始化程序中的变量,并通知智能卡服务系统有智能卡插入;
5)当拔除海量存储类设备时,监控模块监控到海量存储类设备的拔除,清空海量存储类设备插入后占用的系统资源,并通知智能卡服务系统有智能卡拔除;
数据处理步骤:
1)数据处理模块接到应用层发来的与海量存储类设备相关的IRP,并根据海量存储类数据传输协议重新组装数据包;
2)数据处理模块将重新组装的数据包发送到下层磁盘类驱动层进行数据交互,并将交互后的结果返回应用层。
4.根据权利要求3所述的工作方法,其特征在于:所述监控步骤1)中监控模块利用注册的回调函数监控海量存储类设备的插入。
5.根据权利要求3所述的工作方法,其特征在于:所述监控步骤1)中监控模块通过轮循的方式监控海量存储类设备的插入。
6.根据权利要求3所述的工作方法,其特征在于:所述监控步骤2)中监控模块根据注册的回调函数的参数获取下层海量存储类设备对象的名称。
7.根据权利要求3所述的工作方法,其特征在于:所述监控步骤5)中监控模块利用注册的回调函数监控海量存储类设备的拔除。
8.根据权利要求3所述的工作方法,其特征在于:所述监控步骤5)中监控模块通过轮循的方式监控海量存储类设备的拔除。
9.根据权利要求3所述的工作方法,其特征在于:所述数据处理步骤2)中数据处理模块通过文件读写函数并根据海量存储类设备对象与下层磁盘类驱动层进行数据交互。
CNB2006101126089A 2006-08-25 2006-08-25 一种使海量存储类设备能提供智能卡接口的装置及方法 Expired - Fee Related CN100409165C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2006101126089A CN100409165C (zh) 2006-08-25 2006-08-25 一种使海量存储类设备能提供智能卡接口的装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2006101126089A CN100409165C (zh) 2006-08-25 2006-08-25 一种使海量存储类设备能提供智能卡接口的装置及方法

Publications (2)

Publication Number Publication Date
CN1912822A true CN1912822A (zh) 2007-02-14
CN100409165C CN100409165C (zh) 2008-08-06

Family

ID=37721767

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006101126089A Expired - Fee Related CN100409165C (zh) 2006-08-25 2006-08-25 一种使海量存储类设备能提供智能卡接口的装置及方法

Country Status (1)

Country Link
CN (1) CN100409165C (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011032453A1 (zh) * 2009-09-16 2011-03-24 研祥智能科技股份有限公司 一种cpci热插拔系统
CN102289696A (zh) * 2011-08-31 2011-12-21 广州致远电子有限公司 一种基于pc/sc标准的多通道并行访问方法
CN102141897B (zh) * 2010-02-02 2013-01-02 慧荣科技股份有限公司 用来增进存取效能的方法和装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2285812T3 (es) * 1998-11-10 2007-11-16 Aladdin Knowledge Systems Ltd. Metodo de interaccion usuario-ordenador para ser usado por sistemas de ordenador conectables de forma flexible.
US6883715B1 (en) * 2000-10-11 2005-04-26 Stmicroelectronics, Inc. Multi-mode smart card, system and associated methods
CN2512045Y (zh) * 2001-12-29 2002-09-18 台均实业有限公司 具有扩展接口的ic卡识别存储装置
CN2580522Y (zh) * 2002-09-26 2003-10-15 北京蓝拓扑电子技术有限公司 具备智能卡读卡器功能的计算机外置数据接收设备
EP1434128A1 (en) * 2002-12-27 2004-06-30 Neodio Technologies Corporation Plug-and-play interconnection architecture and method with in-device storage module in peripheral device

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011032453A1 (zh) * 2009-09-16 2011-03-24 研祥智能科技股份有限公司 一种cpci热插拔系统
CN102141897B (zh) * 2010-02-02 2013-01-02 慧荣科技股份有限公司 用来增进存取效能的方法和装置
CN102289696A (zh) * 2011-08-31 2011-12-21 广州致远电子有限公司 一种基于pc/sc标准的多通道并行访问方法

Also Published As

Publication number Publication date
CN100409165C (zh) 2008-08-06

Similar Documents

Publication Publication Date Title
CN1904864A (zh) 一种使hid设备能提供智能卡接口的装置及方法
CN1122281C (zh) 一种多功能半导体存储装置
CN1264100C (zh) 基于通用串行总线的pc闪存盘的体系结构
CN1908903A (zh) 执行作业步的系统和方法以及计算机产品
CN101035039A (zh) Usb映射方法
CN1403926A (zh) 存储设备
CN1655129A (zh) Windows平台下动态管理存储资源的通用方法
CN101059791A (zh) 虚拟通用串行总线设备系统及其数据传输方法
CN1260539A (zh) 进行最佳数据传送的多总线信息处理系统的总线-总线桥
CN100346283C (zh) 信息处理系统及存储单元
CN1922601A (zh) 通过可下载的操作系统而操作的网络终端及其操作方法
CN1737779A (zh) 一种扩展外设的方法及系统
CN1881189A (zh) 一种电脑接收带摄像头手机输入视频数据的方法及系统
CN1862512A (zh) 单板信息的读写系统与方法
CN1632774A (zh) Usb接口设备的识别方法
CN1949169A (zh) 电视机软件升级方法
CN1584816A (zh) 一种具有多重接口功能的存储卡及其传输模式选择方法
CN1912822A (zh) 一种使海量存储类设备能提供智能卡接口的装置及方法
CN1976310A (zh) 在网络中通过总线接口进行通信的方法和系统
CN1218252C (zh) 照相机及其控制方法,可与照相机通信的装置及其控制方法
CN1892597A (zh) 通过随插即用储存装置更新手持式设备操作功能的方法
CN1734412A (zh) 状态信息处理器
CN1310163C (zh) 通用串行总线主机控制器
CN1514379A (zh) 具有嵌入式开放平台体系结构的移动信息装置及扩展方法
CN1777857A (zh) Pc卡及pc卡的控制方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee

Owner name: FEITIAN TECHNOLOGIES CO., LTD.

Free format text: FORMER NAME: BEIJING FEITIAN CHENGXIN TECHNOLOGY CO., LTD.

CP03 Change of name, title or address

Address after: 100085 Beijing city Haidian District Xueqing Road No. 9 Ebizal building B block 17 layer

Patentee after: Feitian Technologies Co.,Ltd.

Address before: 100083, Haidian District, Xueyuan Road, Beijing No. 40 research, 7A building, 5 floor

Patentee before: FEITIAN TECHNOLOGIES Co.,Ltd.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080806