CN105095121B - 虚拟输入设备在驱动层的实现方法及其系统 - Google Patents
虚拟输入设备在驱动层的实现方法及其系统 Download PDFInfo
- Publication number
- CN105095121B CN105095121B CN201510508677.0A CN201510508677A CN105095121B CN 105095121 B CN105095121 B CN 105095121B CN 201510508677 A CN201510508677 A CN 201510508677A CN 105095121 B CN105095121 B CN 105095121B
- Authority
- CN
- China
- Prior art keywords
- input device
- virtual input
- virtual
- layer
- data structure
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/105—Program control for peripheral devices where the programme performs an input/output emulation function
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
- Input From Keyboards Or The Like (AREA)
Abstract
本发明公开了一种虚拟输入设备在驱动层的实现方法及其系统,该方法包括:调用系统应用程序编程接口创建虚拟输入设备,在驱动层上挂载虚拟输入设备;将系统输入设备的函数地址记录到虚拟输入设备的设备扩展结构体中,以使驱动层自动获得系统输入设备的函数地址;获取应用层发送给虚拟输入设备的输入数据结构体;驱动层根据虚拟输入设备中记录的设备扩展结构体,使用所获取的输入数据结构体控制虚拟输入设备的行为。通过本发明,实现了在软件屏蔽虚拟输入设备消息的情况下控制虚拟输入设备的效果。
Description
本发明专利申请是申请日为2011年06月30日、申请号为201110181465.8、名称为“虚拟输入设备在驱动层的实现方法及其系统”的中国发明专利申请的分案申请。
技术领域
本发明涉及计算机领域,尤其涉及一种虚拟输入设备在驱动层的实现方法及其系统。
背景技术
在Windows 2000系统下,几乎所有的I/O都是包驱动的,每个工作命令描述一个单独的I/O操作,这个命令告诉驱动程序需要做什幺,并且通过I/O子系统跟踪请求的进展,这些命令被封装成为输入请求包(Iuput Request Package,简称IRP)的形式,当发出一个I/O系统服务时(比如创建文件或读文件的请求),I/O管理器就会通过构造一个描述此请求的IRP,并将该IRP的一个指针传给设备驱动开始对该请求进行处理。如果OS向I/O管理器和设备驱动完整地描述一个I/O请求,那么IRP中保存的信息就可以达到这个目的。
过滤层驱动就是一个拦截到一些已有软件模块的请求的中间层驱动,依靠在请求到达目标前截获请求,过滤驱动就有机会扩展或修改请求的原始接收者所提供的功能或服务。
Windows公开了一些应用程序编程接口(Application Programming Interface,简称API)函数,通过调用这些API或者发送消息的机制来达到对鼠标和键盘的控制。
在一些应用场景中,比如在系统修复自动化项目、软件安装卸载自动化项目、痕迹清理自动化项目等场景下,某些软件为了防止被利用或者非法破解、或者网络游戏出于对控制输入速度的和反外挂的目的,它们会对普通的鼠标和键盘API进行过滤,从而导致从应用层无法操作它们的界面,普通的控制鼠标和键盘的API函数都是无效的。
对于上述问题,现有技术中的一种解决方案是通过WinIo软件包直接控制鼠标和键盘硬件端口。WinIo是一个现在比较流行的第三方库,通过加载一个内核模式的设备驱动程序,利用几种底层编程技巧,使得Windows应用程序可以直接对I/O端口和物理内存进行存取,从而绕过了Windows系统的保护机制。WinIo包含了3个文件:WinIo.dll、WinIo.sys和WINIO.VXD,其中WINIO.VXD驱动程序用在Win95/98系统上,WinIo.sys驱动程序用在WinNT/2000/XP系统上,WinIo.dll提供了功能函数的调用。在WinIo.dll中有两个函数最重要:InitializeWinIo用来初始化WinIo的驱动程序,必须在调用所有其它功能函数之前调用该函数;ShutdownWinIo用来卸载WinIo的驱动程序,在中止应用函数之前或者不再需要使用WinIo时调用。
但是,在使用WinIO向鼠标或者键盘发送数据的时候,必须有硬件的支持(电脑上必须插入PS2鼠标);向串口直接读写数据存在效率的问题,而且存在串口数据同步问题。假如1秒内连续发送了100个数据,可能串口实际响应的只有10个数据,这样就存在同步的问题。WINIO是对物理鼠标直接发送数据,然而在程序发送数据的时候,人为的也可以对物理鼠标或键盘进行操作,这样就有可能导致数据混乱,出现鼠标满屏幕飞的效果或者键入字符错误的效果。
综上所述,对于屏蔽控制鼠标或键盘的API函数的情况下导致无法控制或键盘的问题,现有技术中尚未提出有效地解决方案。
发明内容
有鉴于屏蔽控制鼠标或键盘的API函数的情况下导致无法控制或键盘的问题而做出本发明,为此本发明的主要目的在于提供一种虚拟输入设备在驱动层的实现方法及其系统,其中:
为解决上述问题,本发明提供一种虚拟输入设备在驱动层的实现方法,包括:
调用系统应用程序编程接口API创建虚拟输入设备,在驱动层上挂载所述虚拟输入设备;
将系统输入设备的函数地址记录到所述虚拟输入设备的设备扩展结构体中,以使驱动层自动获得系统输入设备的函数地址;
获取应用层发送给所述虚拟输入设备的输入数据结构体;
所述驱动层根据虚拟输入设备中记录的设备扩展结构体,使用所获取的输入数据结构体控制虚拟输入设备的行为。
其中,所述设备扩展结构体,可以包括:系统输入设备的属性、连接系统输入设备的驱动地址、系统输入设备的端口地址、本驱动所处设备栈的位置信息,和/或所挂载设备的地址。
其中,所述输入数据结构体,可以包括:键盘的键码、键盘按键行为、鼠标的坐标、鼠标的按键类型、鼠标的点击行为、鼠标滚轮的滚动单位数值、和/或鼠标移动轨迹。
其中,所述虚拟输入设备的设备扩展结构体可以在创建所述虚拟输入设备的过程中生成。
其中,所述获取应用层发送给所述虚拟输入设备的输入数据结构体的步骤,可以包括:
获取应用层发送至驱动层的控制所述虚拟输入设备的输入请求包IRP;
解析所述IRP得到所述虚拟输入设备的输入数据结构体。
其中,所述获取应用层发送至驱动层的控制所述虚拟输入设备的IRP的步骤,可以包括:
创建控制设备对象CDO;
利用所述CDO获取应用层发送至驱动层的控制所述虚拟输入设备的IRP。
所述控制虚拟输入设备的行为的步骤,可以包括:通过设备扩展结构体对输入数据结构体进行回调实现控制。
本发明进而还一种虚拟输入设备在驱动层的实现系统,包括:
虚拟输入设备创建模块,用于调用系统应用程序编程接口API创建虚拟输入设备,在驱动层上挂载所述虚拟输入设备;
记录模块,用于将系统输入设备的函数地址记录到所述虚拟输入设备的设备扩展结构体中,以使驱动层自动获得系统输入设备的函数地址;
获取模块,用于获取应用层发送给所述虚拟输入设备的输入数据结构体;
控制模块,用于所述驱动层根据虚拟输入设备中记录的设备扩展结构体,使用所获取的输入数据结构体控制虚拟输入设备的行为。
其中,所述设备扩展结构体,可以包括:系统输入设备的属性、连接系统输入设备的驱动地址、系统输入设备的端口地址、本驱动所处设备栈的位置信息,和/或所挂载设备的地址。
其中,所述输入数据结构体,可以包括:键盘的键码、键盘按键行为、鼠标的坐标、鼠标的按键类型、鼠标的点击行为、鼠标滚轮的滚动单位数值、和/或鼠标移动轨迹。
其中,所述虚拟输入设备的设备扩展结构体可以在创建所述虚拟输入设备的过程中生成。
其中,所述获取模块,可以包括:
IRP获取单元,用于获取应用层发送至驱动层的控制所述虚拟输入设备的输入请求包IRP;
解析单元,用于解析所述IRP得到所述虚拟输入设备的输入数据结构体。
其中,所述IRP获取单元,创建控制设备对象CDO,利用所述CDO获取应用层发送至驱动层的控制所述虚拟输入设备的IRP。
其中,所述控制模块,通过设备扩展结构体对输入数据结构体进行回调实现控制。
综上所示,根据本发明上述技术方案,在软件屏蔽虚拟输入设备消息的情况下也能够控制虚拟输入设备,有效地防止软件的限制,并且具有操作精度高,速度快的特点。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的虚拟输入设备在驱动层的实现方法的流程图;
图2是根据本发明实施例的虚拟输入设备在驱动层的实现系统的结构框图;
图3是根据本发明实施例的虚拟输入设备在驱动层的实现系统的优选结构的框图。
具体实施方式
本发明利用应用层发送的程序中自定义IRP,然后驱动该截获此IRP,经过分析该IRP,并利用分析后的结果控制虚拟输入设备,使得对虚拟输入设备的控制可以不受windows API的限制。需要说明,本发明中提到的虚拟输入设备包括但不限于以下设备:虚拟鼠标、虚拟键盘、虚拟光驱、虚拟硬盘。
为使本发明的目的、技术方案和优点更加清楚,以下结合附图及具体实施例,对本发明作进一步地详细说明。
根据本发明的实施例,提供了一种虚拟输入设备在驱动层的实现方法。
图1是根据本发明实施例的虚拟输入设备在驱动层的实现方法的流程图,如图1所示,该方法包括(步骤S12-S18):
步骤S12,调用系统应用程序编程接口(API)创建虚拟输入设备,在驱动层上挂载虚拟输入设备。
步骤S14,将系统输入设备的函数地址记录到虚拟输入设备的设备扩展结构体中,以使驱动层自动获得系统输入设备的函数地址。其中,该虚拟输入设备的设备扩展结构体包括但不限于:系统输入设备的属性、连接系统输入设备的驱动地址、系统输入设备的端口地址、本驱动所处设备栈的位置信息,和/或所挂载设备的地址。
首先,在AddDevice例程中调用系统API创建虚拟输入设备,将创建的虚拟输入设备挂载到系统输入设备上,并且记录系统输入设备的信息到创建的虚拟输入设备的设备扩展结构体中,根据这些信息获取底层系统输入设备驱动的一些特性供驱动层所使用。然后,响应虚拟输入设备的IRP_MJ_INTERNAL_DEVICE_CONTROL,并且把系统输入设备中的一些数据结构的指针(即底层系统输入设备的函数指针)记录到创建的虚拟输入设备的设备扩展结构体中,其中,数据结构的指针是供驱动层所调用的在系统设备已经实现的函数接口地址。
在驱动中,设备是分层的结构。实际的输入设备(例如:鼠标)属于最下层(即底层设备),它是由操作系统所创建的;而驱动层创建的虚拟输入设备是在底层设备的上层,所以创建虚拟输入设备时就可以把创建出的虚拟输入设备挂载到系统创建的输入设备之上,这样就形成一个设备栈。
需要说明,在创建虚拟输入设备时,不依赖于实际的硬件输入设备是否存在以及硬件输入设备的类型。例如:在创建虚拟鼠标和虚拟键盘时,无论电脑是否安装有鼠标和键盘,也无论鼠标和键盘的类型是USB还是PS2,都不影响虚拟鼠标和虚拟键盘的创建。
步骤S16,获取应用层发送给虚拟输入设备的输入数据结构体。
具体地,步骤S16包括:调用Windows驱动开发包中的API创建一个控制设备对象(Control Device Object,简称CDO)。在实际应用中,应用层会通过系统API向驱动层发送很多IRP,利用创建的CDO获取应用层发送至驱动层的控制虚拟输入设备的IRP,解析该IRP得到虚拟输入设备的输入数据结构体。
步骤S18,驱动层根据虚拟输入设备中记录的设备扩展结构体,使用所获取的输入数据结构体控制虚拟输入设备的行为。
根据解析得到的虚拟输入设备的输入数据结构体,构造出驱动层能够识别的输入数据结构体(数据结构),例如:对于虚拟鼠标,得到数据结构MOUSE_INPUT_DATA;对于虚拟键盘,得到数据结构KEYBOARD_INPUT_DATA。通过设备扩展结构体对输入数据结构体进行回调实现控制,并返回实际的结果。
下面详细介绍构造的驱动层能够识别的输入数据结构体,具体包括:
(1)鼠标或者键盘通信过程中使用的结构体:
(2)鼠标操作过程中使用的结构体:
通过以上描述可以看出,本发明能够创建虚拟输入设备并使得创建出来的虚拟输入设备能够模拟真实设备操作。在创建虚拟鼠标时其操作具有以下特点:
(1)移动的灵敏度较高,可以精确到移动一个像素;
(2)鼠标移动方式可以是绝对坐标和相对坐标;
(3)鼠标的操作可以支持扩展屏幕;
(4)可以指定移动的轨迹,可以是一步到位的移动,也可以是多步的移动,甚至是沿着某条曲线移动。
通过本发明的上述实施例,在软件屏蔽虚拟输入设备消息的情况下也能够控制虚输入拟设备,有效防止了软件的限制,并且具有操作精度高,速度快的特点。
根据本发明的实施例,还提供了一种虚拟输入设备在驱动层的实现系统。
图2是根据本发明实施例的虚拟输入设备在驱动层的实现系统的结构框图,如图2所示,该系统包括:虚拟输入设备创建模块10,记录模块20,获取模块30,控制模块40。
虚拟输入设备创建模块10用于调用系统API创建虚拟输入设备,在驱动层上挂载虚拟输入设备。
记录模块20用于将系统输入设备的函数地址记录到虚拟输入设备的设备扩展结构体中,以使驱动层自动获得系统输入设备的函数地址。该虚拟输入设备的设备扩展结构体在创建虚拟输入设备的过程中生成。其中,设备扩展结构体包括但不限于:系统输入设备的属性、连接系统输入设备的驱动地址、系统输入设备的端口地址、本驱动所处设备栈的位置信息,和/或所挂载设备的地址。
获取模块30用于获取应用层发送给虚拟输入设备的输入数据结构体。在具体应用中,输入数据结构体包括但不限于:键盘的键码、键盘按键行为、鼠标的坐标、鼠标的按键类型、鼠标的点击行为、鼠标滚轮的滚动单位数值、和鼠标移动轨迹。
如图3所示,获取模块30进一步包括:IRP获取单元32和解析单元34。IRP获取单元用于获取应用层发送至驱动层的控制虚拟输入设备的输入请求包IRP。具体地,IRP获取单元创建控制设备对象CDO,利用CDO获取应用层发送至驱动层的控制虚拟输入设备的IRP。解析单元34用于解析IRP得到虚拟输入设备的输入数据结构体。
控制模块40用于驱动层根据虚拟输入设备中记录的设备扩展结构体,使用所获取的输入数据结构体控制虚拟输入设备的行为。控制模块40通过设备扩展结构体对输入数据结构体进行回调实现控制。
综上所示,根据本发明上述技术方案,在软件屏蔽虚拟输入设备消息的情况下也能够控制虚拟输入设备,有效地防止软件的限制,并且具有操作精度高,速度快的特点;另外,本发明好具有良好的兼容行,能够兼容从windows2000到win7的多个版本。
以上所述仅为本发明的实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
Claims (14)
1.一种虚拟输入设备在驱动层的实现方法,其特征在于,包括:
调用系统应用程序编程接口API创建虚拟输入设备,在驱动层上挂载所述虚拟输入设备,将虚拟输入设备挂载到系统输入设备上;
将系统输入设备的函数地址记录到所述虚拟输入设备的设备扩展结构体中,以使驱动层自动获得系统输入设备的函数地址;
获取应用层发送给所述虚拟输入设备的输入数据结构体;
所述驱动层根据虚拟输入设备中记录的设备扩展结构体,使用所获取的输入数据结构体控制虚拟输入设备的行为。
2.如权利要求1所述的方法,其特征在于,所述设备扩展结构体,包括:系统输入设备的属性、连接系统输入设备的驱动地址、系统输入设备的端口地址、本驱动所处设备栈的位置信息,和/或所挂载设备的地址。
3.如权利要求1所述的方法,其特征在于,所述输入数据结构体,包括:键盘的键码、键盘按键行为、鼠标的坐标、鼠标的按键类型、鼠标的点击行为、鼠标滚轮的滚动单位数值、和/或鼠标移动轨迹。
4.如权利要求1所述的方法,其特征在于,所述虚拟输入设备的设备扩展结构体在创建所述虚拟输入设备的过程中生成。
5.如权利要求1至4任一项所述的方法,其特征在于,所述获取应用层发送给所述虚拟输入设备的输入数据结构体的步骤,包括:
获取应用层发送至驱动层的控制所述虚拟输入设备的输入请求包IRP;
解析所述IRP得到所述虚拟输入设备的输入数据结构体。
6.根据权利要求5所述的方法,其特征在于,所述获取应用层发送至驱动层的控制所述虚拟输入设备的IRP的步骤,包括:
创建控制设备对象CDO;
利用所述CDO获取应用层发送至驱动层的控制所述虚拟输入设备的IRP。
7.如权利要求1至4任一项所述的方法,其特征在于,所述控制虚拟输入设备的行为的步骤,包括:通过设备扩展结构体对输入数据结构体进行回调实现控制。
8.一种虚拟输入设备在驱动层的实现系统,其特征在于,包括:
虚拟输入设备创建模块,用于调用系统应用程序编程接口API创建虚拟输入设备,在驱动层上挂载所述虚拟输入设备,将虚拟输入设备挂载到系统输入设备上;
记录模块,用于将系统输入设备的函数地址记录到所述虚拟输入设备的设备扩展结构体中,以使驱动层自动获得系统输入设备的函数地址;
获取模块,用于获取应用层发送给所述虚拟输入设备的输入数据结构体;
控制模块,用于所述驱动层根据虚拟输入设备中记录的设备扩展结构体,使用所获取的输入数据结构体控制虚拟输入设备的行为。
9.如权利要求8所述的系统,其特征在于,所述设备扩展结构体,包括:系统输入设备的属性、连接系统输入设备的驱动地址、系统输入设备的端口地址、本驱动所处设备栈的位置信息,和/或所挂载设备的地址。
10.如权利要求8所述的系统,其特征在于,所述输入数据结构体,包括:键盘的键码、键盘按键行为、鼠标的坐标、鼠标的按键类型、鼠标的点击行为、鼠标滚轮的滚动单位数值、和/或鼠标移动轨迹。
11.如权利要求8所述的系统,其特征在于,所述虚拟输入设备的设备扩展结构体在创建所述虚拟输入设备的过程中生成。
12.如权利要求8至11任一项所述的系统,其特征在于,所述获取模块,包括:
IRP获取单元,用于获取应用层发送至驱动层的控制所述虚拟输入设备的输入请求包IRP;
解析单元,用于解析所述IRP得到所述虚拟输入设备的输入数据结构体。
13.根据权利要求12所述的系统,其特征在于,所述IRP获取单元,创建控制设备对象CDO,利用所述CDO获取应用层发送至驱动层的控制所述虚拟输入设备的IRP。
14.如权利要求8至11任一项所述的系统,其特征在于,所述控制模块,通过设备扩展结构体对输入数据结构体进行回调实现控制。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510508677.0A CN105095121B (zh) | 2011-06-30 | 2011-06-30 | 虚拟输入设备在驱动层的实现方法及其系统 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110181465.8A CN102854974B (zh) | 2011-06-30 | 2011-06-30 | 虚拟输入设备在驱动层的实现方法及其系统 |
CN201510508677.0A CN105095121B (zh) | 2011-06-30 | 2011-06-30 | 虚拟输入设备在驱动层的实现方法及其系统 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110181465.8A Division CN102854974B (zh) | 2011-06-30 | 2011-06-30 | 虚拟输入设备在驱动层的实现方法及其系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105095121A CN105095121A (zh) | 2015-11-25 |
CN105095121B true CN105095121B (zh) | 2017-12-26 |
Family
ID=47401616
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510508677.0A Expired - Fee Related CN105095121B (zh) | 2011-06-30 | 2011-06-30 | 虚拟输入设备在驱动层的实现方法及其系统 |
CN201110181465.8A Active CN102854974B (zh) | 2011-06-30 | 2011-06-30 | 虚拟输入设备在驱动层的实现方法及其系统 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110181465.8A Active CN102854974B (zh) | 2011-06-30 | 2011-06-30 | 虚拟输入设备在驱动层的实现方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN105095121B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105095121B (zh) * | 2011-06-30 | 2017-12-26 | 北京奇虎科技有限公司 | 虚拟输入设备在驱动层的实现方法及其系统 |
CN103577222A (zh) * | 2013-10-17 | 2014-02-12 | 北京奇虎科技有限公司 | 识别移动终端中存储卡的方法及装置 |
CN103605430A (zh) * | 2013-12-03 | 2014-02-26 | 深圳雷柏科技股份有限公司 | 一种模拟键盘输入的方法及装置 |
CN104822091B (zh) * | 2015-04-29 | 2016-08-24 | 努比亚技术有限公司 | 视频播放进度控制方法、装置及移动终端 |
CN106896956B (zh) * | 2017-01-18 | 2019-11-05 | 长沙湘计海盾科技有限公司 | 一种“道”系统下多点触控的实现方法 |
CN108304131B (zh) * | 2018-01-09 | 2019-10-25 | 武汉斗鱼网络科技有限公司 | 键盘优化处理方法、存储介质、电子设备及系统 |
CN109542303A (zh) * | 2018-11-02 | 2019-03-29 | 北京硬壳科技有限公司 | 触控设备及其响应方法、装置 |
CN113490292B (zh) * | 2021-07-16 | 2023-04-28 | 联想(北京)有限公司 | 通信处理方法和电子设备 |
CN114168194A (zh) * | 2021-09-15 | 2022-03-11 | 上海自然而然信息科技有限公司 | 用于控制计算设备的方法、计算设备和计算机存储介质 |
CN116328290A (zh) * | 2023-05-22 | 2023-06-27 | 安徽海马云科技股份有限公司 | 实现云游戏联机对战的方法、装置、存储介质及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1517744A (zh) * | 2003-01-17 | 2004-08-04 | 财团法人工业技术研究院 | 产生虚拟键盘/显示器的装置及方法 |
CN1828499A (zh) * | 2005-03-01 | 2006-09-06 | 联想(北京)有限公司 | 一种触控式信息输入装置及方法 |
CN101004693A (zh) * | 2006-01-17 | 2007-07-25 | 株式会社Ntt都科摩 | 输入输出控制装置、输入输出控制系统以及输入输出控制方法 |
CN201638148U (zh) * | 2009-09-10 | 2010-11-17 | 深圳市亿思达显示科技有限公司 | 一种手套式虚拟输入装置 |
CN102854974A (zh) * | 2011-06-30 | 2013-01-02 | 奇智软件(北京)有限公司 | 虚拟输入设备在驱动层的实现方法及其系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100555265C (zh) * | 2006-05-25 | 2009-10-28 | 英华达(上海)电子有限公司 | 用于电子产品的组合键盘及利用其实现的输入方法和手机 |
US20080244081A1 (en) * | 2007-03-30 | 2008-10-02 | Microsoft Corporation | Automated testing of audio and multimedia over remote desktop protocol |
CN102063183A (zh) * | 2011-02-12 | 2011-05-18 | 深圳市亿思达显示科技有限公司 | 一种手套式虚拟输入装置 |
-
2011
- 2011-06-30 CN CN201510508677.0A patent/CN105095121B/zh not_active Expired - Fee Related
- 2011-06-30 CN CN201110181465.8A patent/CN102854974B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1517744A (zh) * | 2003-01-17 | 2004-08-04 | 财团法人工业技术研究院 | 产生虚拟键盘/显示器的装置及方法 |
CN1828499A (zh) * | 2005-03-01 | 2006-09-06 | 联想(北京)有限公司 | 一种触控式信息输入装置及方法 |
CN101004693A (zh) * | 2006-01-17 | 2007-07-25 | 株式会社Ntt都科摩 | 输入输出控制装置、输入输出控制系统以及输入输出控制方法 |
CN201638148U (zh) * | 2009-09-10 | 2010-11-17 | 深圳市亿思达显示科技有限公司 | 一种手套式虚拟输入装置 |
CN102854974A (zh) * | 2011-06-30 | 2013-01-02 | 奇智软件(北京)有限公司 | 虚拟输入设备在驱动层的实现方法及其系统 |
Non-Patent Citations (1)
Title |
---|
鼠标映射虚拟位置传感器的驱动开发模型;李凌 等;《浙江大学学报(工学版)》;20060830;第40卷(第8期);1344-1347 * |
Also Published As
Publication number | Publication date |
---|---|
CN102854974A (zh) | 2013-01-02 |
CN105095121A (zh) | 2015-11-25 |
CN102854974B (zh) | 2015-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105095121B (zh) | 虚拟输入设备在驱动层的实现方法及其系统 | |
CN106843715B (zh) | 用于远程化的应用的触摸支持 | |
CN102567052B (zh) | 启用配置有图形处理器的服务器的远程管理的技术 | |
CN102207886B (zh) | 虚拟机快速仿真辅助 | |
US8176434B2 (en) | Virtual desktop view scrolling | |
CN102567074B (zh) | 一种面向虚拟机的usb设备重定向方法 | |
US20100132015A1 (en) | Apparatus and method for providing security information in virtual environment | |
US20090319728A1 (en) | Virtualized SAS Adapter with Logic Unit Partitioning | |
CN102495769A (zh) | 动态虚拟设备故障恢复 | |
CN103282881A (zh) | 通过虚拟化直接共享智能设备 | |
EP2122471A1 (en) | Unified support for solid state storage | |
CN101739289B (zh) | 一种在Linux虚拟机中设置显示模式的方法及装置 | |
US20230035104A1 (en) | Verification method, apparatus and device, and storage medium | |
CN110083399B (zh) | 小程序运行方法、计算机设备及存储介质 | |
CN105190525A (zh) | 管理在节电模式中对混合式驱动器的访问 | |
US7958293B2 (en) | Virtualized serial attached SCSI adapter | |
CN113342697B (zh) | 闪存转换层仿真测试系统及方法 | |
CN117389694B (zh) | 基于virtio-blk技术提升虚拟存储IO性能的方法 | |
CN103685408A (zh) | 以存储区域网络提供读取基础镜像的服务器、主机及方法 | |
CN101739284B (zh) | 一种信息处理装置及方法 | |
US7996631B1 (en) | System and method for accessing storage devices attached to a stateless client | |
CN105117274A (zh) | 虚拟机迁移方法和装置 | |
CN100419620C (zh) | 一种usb海量存储设备上应用程序与usb海量存储设备进行命令交互和双向数据传输的方法 | |
CN103440586A (zh) | 基于浏览器的刮刮卡实现方法 | |
CN103227825A (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 | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20171226 |
|
CF01 | Termination of patent right due to non-payment of annual fee |