CN1912822A - 一种使海量存储类设备能提供智能卡接口的装置及方法 - Google Patents
一种使海量存储类设备能提供智能卡接口的装置及方法 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 20
- 238000012544 monitoring process Methods 0.000 claims abstract description 56
- 238000012545 processing Methods 0.000 claims abstract description 39
- 238000003780 insertion Methods 0.000 claims description 13
- 230000037431 insertion Effects 0.000 claims description 13
- 238000000429 assembly Methods 0.000 claims description 7
- 230000003993 interaction Effects 0.000 claims description 5
- 238000011017 operating method Methods 0.000 abstract 1
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 241000544061 Cuculus canorus Species 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
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)中数据处理模块通过文件读写函数并根据海量存储类设备对象与下层磁盘类驱动层进行数据交互。
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)
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)
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 |
-
2006
- 2006-08-25 CN CNB2006101126089A patent/CN100409165C/zh not_active Expired - Fee Related
Cited By (3)
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 |