CN100407180C - 一种使hid设备能提供智能卡接口的装置及方法 - Google Patents

一种使hid设备能提供智能卡接口的装置及方法 Download PDF

Info

Publication number
CN100407180C
CN100407180C CN2006100892856A CN200610089285A CN100407180C CN 100407180 C CN100407180 C CN 100407180C CN 2006100892856 A CN2006100892856 A CN 2006100892856A CN 200610089285 A CN200610089285 A CN 200610089285A CN 100407180 C CN100407180 C CN 100407180C
Authority
CN
China
Prior art keywords
hid
equipment
irp
monitoring
module
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.)
Active
Application number
CN2006100892856A
Other languages
English (en)
Other versions
CN1904864A (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 CN2006100892856A priority Critical patent/CN100407180C/zh
Publication of CN1904864A publication Critical patent/CN1904864A/zh
Priority to US11/893,210 priority patent/US7945710B2/en
Application granted granted Critical
Publication of CN100407180C publication Critical patent/CN100407180C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

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

Description

一种使HID设备能提供智能卡接口的装置及方法
技术领域
本发明涉及在内核驱动中监控HID设备的装置及装置的工作方法,特别是指一种使HID设备能提供智能卡接口的装置及方法。
背景技术
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)的整合环境,应用程序通过该标准用户接口与智能卡进行通讯。
HID(human interface device,人机接口设备)设备是一种不需要用户再开发任何驱动插入windows操作系统就能使用的设备,所有的HID设备都是通过系统自带的HID设备类驱动(hidclass.sys)与应用建立联系,应用层程序只需要调用现有的应用层接口(HID API)就能访问HID设备,正是针对这一特性,HID设备提供商只需要给用户提供物理设备就能满足一般的应用。
但是,因为系统自带的HID设备类驱动(hidclass.sys)并没有提供读卡器部分的功能,不能直接通过智能卡服务系统传输数据,应用访问HID物理设备时,只能调用HID API访问HID设备。因此,仅仅提供HID物理设备不能使之完成智能卡的功能。
发明内容
为了解决HID设备不能直接应用于智能卡各个领域、实现智能卡功能的问题,本发明提供一种使HID设备能提供智能卡接口的装置及方法。
本发明一种使HID设备能提供智能卡接口的装置,为虚拟读卡器驱动层,该虚拟读卡器驱动层包括:
监控模块,用于监控HID设备的插入和拔除,获取HID设备对象的名称;
PC/SC接口模块,对应用层提供标准符合PC/SC规范的驱动接口,接收从应用层发来的IRP,并将该IRP传递给数据处理模块。
数据处理模块,用来接收并处理通过PC/SC接口模块从应用层发来的IRP,根据监控模块获取的HID设备对象的名称向HID设备类驱动层发送IRP。
所述数据处理模块通过获取HID设备对象的方式,连接HID设备类驱动层。
所述装置的工作方法,包括:
监控步骤:
1)当有HID设备插入时,监控模块监控到HID设备的插入;
2)监控模块获取下层HID设备对象的名称;
3)监控模块判断插入的HID设备是否为需处理的HID设备;
4)监控模块初始化程序中的变量,并通知智能卡服务系统有智能卡插入;
5)当拔除HID设备时,监控模块监控到HID设备的拔除,清空HID设备插入后占用的系统资源,并通知智能卡服务系统有智能卡拔除。
数据处理步骤:
1)数据处理模块接到应用层发来的与HID设备相关的IRP,并根据HID数据传输协议重新组装IRP;
2)数据处理模块将重新组装的IRP发送到下层HID设备类驱动层进行数据交互,并将交互后的结果返回应用层。
所述监控步骤1)中监控模块可以利用注册的回调函数监控HID设备的插入。
所述监控步骤1)中监控模块可以通过轮循的方式监控HID设备的插入。
所述监控步骤2)中监控模块根据注册的回调函数的参数获取下层HID设备对象的名称。
所述监控步骤5)中监控模块可以利用注册的回调函数监控HID设备的拔除。
所述监控步骤5)中监控模块可以通过轮循的方式监控HID设备的拔除。
所述数据处理步骤2)中数据处理模块通过构造指令类型为IOCTL_HID_*的IRP并根据HID设备对象与下层HID设备类驱动层进行数据交互。
本发明通过构架一个虚拟读卡器驱动层,增加一个访问HID设备的通道,实现HID设备智能卡功能,从而使其使用方法更加灵活,应用领域更加广泛。
附图说明
图1是本发明的驱动体系示意图。
图2是本发明一种使HID设备能提供智能卡接口的装置在进行监控HID设备插入时的操作流程图。
图3是本发明一种使HID设备能提供智能卡接口的装置在进行数据处理操作时的流程图。
具体实施方式
下面结合附图和具体实施例对本发明进行更详细的描述。
参见图1,本发明一种使HID设备能提供智能卡接口的装置,是指在现有驱动体系中增加的一个虚拟读卡器驱动层13。增加一个虚拟读卡器驱动层13后的驱动体系包括四个基本层,即HID设备(硬件层)11、HID设备类驱动层(hidclass.sys)12、虚拟读卡器驱动层13和应用层14。
虚拟读卡器驱动层13包括监控模块131、数据处理模块132和PC/SC接口模块133;所述监控模块131用于监控HID设备11的插入和拔除,获取的HID设备11的名称;所述数据处理模块132用来接收并处理通过PC/SC接口模块133从应用层发来的IRP,根据监控模块131获取的HID设备对象11的名称向HID设备类驱动层12发送IRP(IO Request Package,I/O请求包);所述PC/SC接口模块133对应用层14提供标准符合PC/SC规范的驱动接口,接收从应用层14发来的IRP,并将该IRP传递给所述数据处理模块132。
所述数据处理模块132通过取HID设备对象的方式,连接HID设备类驱动层12。
应用程序14可以通过智能卡服务系统141对HID设备11进行访问,实现对HID设备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中注册Callback Routine回调函数,虚拟读卡器驱动层13中的监控模块131通过Callback Routine回调函数监控HID设备11的插入和拔除,Io Register Plug Play Notification定义为:
NTSTATUS
Io Register Plug Play Notification
IN IO_NOTIFICATION_EVENT_CATEGORY Event Category
IN ULONG Event Category Flags
IN PVOID Event Category Data OPTIONAL,
IN PDRIVER_OBJECT Driver Object
IN PDRIVER_NOTIFICATION_CALLBACK_ROUTINE
CallbackRoutine
IN PVOID Context
OUT PVOID  *Notification Entry
函数中的Event Category Data参数设置为HID设备类驱动层12hidclass.sys注册的GUID,参数Callback Routine是虚拟读卡器驱动层13需要处理的回调函数。
上述装置,即虚拟读卡器驱动层13的工作方法包括监控步骤和数据处理步骤。虚拟读卡器驱动层从安装成功后开始工作,安装的过程中使用Io Register Plug Play Notification函数注册回调函数CallbackRoutine。
虚拟读卡器驱动层中的监控模块在监控HID设备插入时的步骤如图2所示。包括:
步骤201:HID设备插入后,监控模块通过回调函数CallbackRoutine监控到HID设备的插入;
监控模块也可以通过轮循的方式监控HID物理设备的插入。
步骤202:监控模块获取下层HID设备对象的名称,并判断插入的HID设备是否为需处理的HID物理设备;
如果是,则执行步骤203后再执行步骤204,否则直接执行步骤204。
步骤203:监控模块根据名称取下层HID设备对象并保存,建立与HID设备的联系,通知智能卡服务系统智能卡已插入,并设置智能卡服务启动标志,虚拟读卡器驱动层进入等待状态;
步骤204:返回。
所述监控模块可以通过回调函数Callback Routine或轮循的方式监控到HID设备的拔除。当监控模块监控到HID设备的拔除时,清空HID设备插入后占用的系统资源,并通知智能卡服务系统有智能卡拔除。
虚拟读卡器驱动层中的数据处理模块在进行数据处理时的步骤如图3所示,包括:
步骤301:数据处理模块接收到应用层发来的IRP;
步骤302:数据处理模块判断应用层发来的IRP是否与硬件(即HID设备)相关;
如果不相关则执行步骤303,如果相关则执行步骤304。
步骤303:数据处理模块内部处理IRP,并将处理结果返回应用程序;
步骤304:数据处理模块根据HID数据传输协议重新组装IRP;
步骤305:数据处理模块将组装后的IRP发给HID设备类驱动层;
步骤306:数据处理模块等待HID设备类驱动层返回处理后的IRP;
步骤307:数据处理模块对返回的IRP进行相应处理,并将处理结果返回应用层。

Claims (8)

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

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN2006100892856A CN100407180C (zh) 2006-08-15 2006-08-15 一种使hid设备能提供智能卡接口的装置及方法
US11/893,210 US7945710B2 (en) 2006-08-15 2007-08-15 Apparatus enabling the human interface device to provide a smart card interface and operating method therein

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2006100892856A CN100407180C (zh) 2006-08-15 2006-08-15 一种使hid设备能提供智能卡接口的装置及方法

Publications (2)

Publication Number Publication Date
CN1904864A CN1904864A (zh) 2007-01-31
CN100407180C true CN100407180C (zh) 2008-07-30

Family

ID=37674132

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006100892856A Active CN100407180C (zh) 2006-08-15 2006-08-15 一种使hid设备能提供智能卡接口的装置及方法

Country Status (2)

Country Link
US (1) US7945710B2 (zh)
CN (1) CN100407180C (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100462949C (zh) * 2007-02-12 2009-02-18 北京飞天诚信科技有限公司 一种可自动安装的信息安全设备及其控制方法
US8086778B2 (en) * 2008-06-27 2011-12-27 Microsoft Corporation Filter driver to enumerate smartcard nodes for plug and play
US8001311B2 (en) * 2008-06-27 2011-08-16 Microsoft Corporation Simulation of smartcard removal and reinsertion
US8533747B2 (en) * 2008-10-20 2013-09-10 Oracle America, Inc. Method and system for selecting one or more integrated circuit card interface devices
CN101582057B (zh) * 2009-04-01 2012-04-18 飞天诚信科技股份有限公司 一种控制人机接口设备通信传输的方法、设备和系统
US8453232B1 (en) * 2010-09-30 2013-05-28 Emc Corporation Virtual smart card through a PC/SC interface
CN102289696A (zh) * 2011-08-31 2011-12-21 广州致远电子有限公司 一种基于pc/sc标准的多通道并行访问方法
CN103218039A (zh) * 2012-12-26 2013-07-24 青岛盛嘉信息科技有限公司 人机交互系统
CN104360869B (zh) * 2014-12-03 2017-05-10 飞天诚信科技股份有限公司 一种防止底层驱动拦截消息的方法
CN104866276A (zh) * 2015-05-21 2015-08-26 深圳市浩博高科技有限公司 基于蓝牙hid服务实现语音输入的方法及主机及系统
CN106250750B (zh) * 2016-07-18 2019-08-16 深圳市文鼎创数据科技有限公司 基于MacOSX系统的USB设备接入方法及装置
CN109634885B (zh) * 2018-10-31 2020-06-30 上海畅联智融通讯科技有限公司 移动终端与智能卡通信的方法及装置
CN111443994B (zh) * 2020-04-01 2023-06-23 江苏恒宝智能系统技术有限公司 一种包含模拟智能卡驱动程序的装置、系统及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6263392B1 (en) * 1999-01-04 2001-07-17 Mccauley Jack J. Method and apparatus for interfacing multiple peripheral devices to a host computer
CN1346564A (zh) * 1998-04-20 2002-04-24 太阳微系统公司 提供虚拟桌面系统体系结构的方法和装置
CN1142517C (zh) * 2000-07-07 2004-03-17 深圳市特发现代计算机有限公司 一种自助式ic卡销售设备

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6920500B2 (en) * 1999-05-20 2005-07-19 Prosia Overseas, Inc. Method and apparatus for providing simplified access to the internet
US6915347B2 (en) * 2000-10-17 2005-07-05 Sun Microsystems, Inc. Associating multiple display units in a grouped server environment
US6941405B2 (en) * 2001-08-21 2005-09-06 02Micro International Limited System and method capable of offloading converter/controller-specific tasks to a system microprocessor
US7849301B2 (en) * 2001-12-12 2010-12-07 Intel Corporation Providing a user input interface prior to initiation of an operating system
US20060129840A1 (en) * 2002-04-23 2006-06-15 Michael Milgramm Multiplatform independent biometric identification system
US20050057519A1 (en) * 2003-09-12 2005-03-17 Coe Christopher D. Control board system to indicate hardware events
US7734868B2 (en) * 2003-12-02 2010-06-08 Nvidia Corporation Universal RAID class driver
JP4387856B2 (ja) * 2004-04-08 2009-12-24 富士通株式会社 コンピュータロック管理プログラム、コンピュータロック管理方法およびコンピュータロック管理装置
CN100382065C (zh) * 2006-03-31 2008-04-16 北京飞天诚信科技有限公司 基于usb接口的智能卡读写器及其控制方法
US20070288937A1 (en) * 2006-05-08 2007-12-13 Microsoft Corporation Virtual Device Driver

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1346564A (zh) * 1998-04-20 2002-04-24 太阳微系统公司 提供虚拟桌面系统体系结构的方法和装置
US6263392B1 (en) * 1999-01-04 2001-07-17 Mccauley Jack J. Method and apparatus for interfacing multiple peripheral devices to a host computer
CN1142517C (zh) * 2000-07-07 2004-03-17 深圳市特发现代计算机有限公司 一种自助式ic卡销售设备

Also Published As

Publication number Publication date
US7945710B2 (en) 2011-05-17
US20080041931A1 (en) 2008-02-21
CN1904864A (zh) 2007-01-31

Similar Documents

Publication Publication Date Title
CN100407180C (zh) 一种使hid设备能提供智能卡接口的装置及方法
CN100486200C (zh) Usb映射方法
US7415270B2 (en) Middleware services layer for platform system for mobile terminals
CN100565484C (zh) 提供普通设备驱动器的方法和计算设备
US7937705B1 (en) Dynamic job processing based on estimated completion time and specified tolerance time
CN101609408B (zh) 一种实现终端设备自启动的方法及系统
US20060133275A1 (en) Architecture and run-time environment for network filter drivers
US20020169820A1 (en) Process pool methods and apparatus
WO2008003599A1 (en) A multi-function peripheral device, corresponding method and electronic system having a peripheral and a host communicating via a single interface
US8589954B2 (en) Method and program for selective suspension of USB network device
CN102023960A (zh) 计算机网络系统、计算机及其硬件设备远程管理的方法
WO2010042114A1 (en) Portable management device
US20100064058A1 (en) Communication method and an interface device
CN100409165C (zh) 一种使海量存储类设备能提供智能卡接口的装置及方法
CN100509499C (zh) 汽车无线监测及故障诊断系统及方法
US9087031B2 (en) Method and program for selective suspension of USB device
CN102109981A (zh) 实时通讯通用插件
EP2387287A1 (en) Wireless data card, method and system for communicationg between wireless data card and computer side
CN101140552A (zh) 一种通过通用串行总线进行数据传输的控制系统和方法
CN101739246A (zh) 智能卡和应用数据处理方法
CN111274184B (zh) 串行接口设备驱动器、嵌入式处理器和视频控制器
AU2002356468A1 (en) A communication method and an interface device
CN101281418B (zh) 设定通用串行总线设备的方法及计算机可读取的记录媒体
CN116303149B (zh) 基于bmc芯片实现控制器接口拓展的方法及系统
CN202075757U (zh) 无线射频识别读写器运作统合系统

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: Beijing Feitian Chengxin Science & Technology Co., Ltd.