CN105095121B - 虚拟输入设备在驱动层的实现方法及其*** - Google Patents

虚拟输入设备在驱动层的实现方法及其*** Download PDF

Info

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
Application number
CN201510508677.0A
Other languages
English (en)
Other versions
CN105095121A (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.)
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing 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 Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201510508677.0A priority Critical patent/CN105095121B/zh
Publication of CN105095121A publication Critical patent/CN105095121A/zh
Application granted granted Critical
Publication of CN105095121B publication Critical patent/CN105095121B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/105Program 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)
  • Input From Keyboards Or The Like (AREA)
  • User Interface Of Digital Computer (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任一项所述的***,其特征在于,所述控制模块,通过设备扩展结构体对输入数据结构体进行回调实现控制。
CN201510508677.0A 2011-06-30 2011-06-30 虚拟输入设备在驱动层的实现方法及其*** Expired - Fee Related CN105095121B (zh)

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
CN201510508677.0A CN105095121B (zh) 2011-06-30 2011-06-30 虚拟输入设备在驱动层的实现方法及其***
CN201110181465.8A CN102854974B (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
CN201110181465.8A Active CN102854974B (zh) 2011-06-30 2011-06-30 虚拟输入设备在驱动层的实现方法及其***
CN201510508677.0A Expired - Fee Related CN105095121B (zh) 2011-06-30 2011-06-30 虚拟输入设备在驱动层的实现方法及其***

Family Applications Before (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) CN102854974B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102854974B (zh) * 2011-06-30 2015-09-16 北京奇虎科技有限公司 虚拟输入设备在驱动层的实现方法及其***
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 联想(北京)有限公司 通信处理方法和电子设备
CN116328290A (zh) * 2023-05-22 2023-06-27 安徽海马云科技股份有限公司 实现云游戏联机对战的方法、装置、存储介质及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 深圳市亿思达显示科技有限公司 一种手套式虚拟输入装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
鼠标映射虚拟位置传感器的驱动开发模型;李凌 等;《浙江大学学报(工学版)》;20060830;第40卷(第8期);1344-1347 *

Also Published As

Publication number Publication date
CN102854974B (zh) 2015-09-16
CN102854974A (zh) 2013-01-02
CN105095121A (zh) 2015-11-25

Similar Documents

Publication Publication Date Title
CN105095121B (zh) 虚拟输入设备在驱动层的实现方法及其***
CN106843715B (zh) 用于远程化的应用的触摸支持
CN102207886B (zh) 虚拟机快速仿真辅助
US8176434B2 (en) Virtual desktop view scrolling
US8863113B1 (en) Method and system for unattended installation of guest operating system
CN102567074B (zh) 一种面向虚拟机的usb设备重定向方法
US20090319728A1 (en) Virtualized SAS Adapter with Logic Unit Partitioning
CN102495769A (zh) 动态虚拟设备故障恢复
CN103282881A (zh) 通过虚拟化直接共享智能设备
CN101739289B (zh) 一种在Linux虚拟机中设置显示模式的方法及装置
CN100419620C (zh) 一种usb海量存储设备上应用程序与usb海量存储设备进行命令交互和双向数据传输的方法
WO2008112668A1 (en) Unified support for solid state storage
CN110083399B (zh) 小程序运行方法、计算机设备及存储介质
CN105190525A (zh) 管理在节电模式中对混合式驱动器的访问
US7958293B2 (en) Virtualized serial attached SCSI adapter
CN113342697B (zh) 闪存转换层仿真测试***及方法
CN108235759A (zh) 基于多操作***的输入处理方法、装置及电子设备
CN103020550A (zh) 一种固态硬盘及其安全访问方法、固态硬盘***
US20230035104A1 (en) Verification method, apparatus and device, and storage medium
CN117389694B (zh) 基于virtio-blk技术提升虚拟存储IO性能的方法
CN104091102A (zh) 一种基于安卓***的多用户管理方法及其装置
EP3605327B1 (en) Method and apparatus for capturing screenshots of guest operating system in computer device
CN103685408A (zh) 以存储区域网络提供读取基础镜像的服务器、主机及方法
US7996631B1 (en) System and method for accessing storage devices attached to a stateless client
CN101739284B (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