CN101105778A - 外设设备接入状态检测方法 - Google Patents
外设设备接入状态检测方法 Download PDFInfo
- Publication number
- CN101105778A CN101105778A CNA200710120499XA CN200710120499A CN101105778A CN 101105778 A CN101105778 A CN 101105778A CN A200710120499X A CNA200710120499X A CN A200710120499XA CN 200710120499 A CN200710120499 A CN 200710120499A CN 101105778 A CN101105778 A CN 101105778A
- Authority
- CN
- China
- Prior art keywords
- peripheral apparatus
- peripheral
- item
- access state
- key assignments
- 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
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种外设设备接入状态检测方法,涉及外设设备检测技术,为解决目前外设设备检测不及时而提出,为解决上述问题,采用的方案为:一种外设设备接入状态检测方法,在主机的操作系统注册表项下增设外设设备项,并设置检测外设设备项的线程,在外设设备项变化时所述线程被触发,所述线程根据读取到的外设设备项及其键值确定外设设备接入状态。本发明可用于携有外设设备的所有计算机中。本发明检测到的外设设备接入状态及时准确,且实现简单。
Description
技术领域
本发明涉及外设设备监测技术,尤其涉及一种计算机外设设备接入状态检测方法。
背景技术
随着计算机的日益普及,计算机外设设备也越来越多地被人们所接触。移动硬盘、调制解调器、优盘等均是常用的计算机外设设备。外设设备与计算机的接口方式也非常灵活,常用的有PC机内存卡国际联合会(PCMCIA,PersonalComputer Memory Card International Association)接口、USB接口、扩展卡(Express Card)接口等。与PCMCIA接口相比,Express Card接口具有体积更小、传输速度更快、功耗更低、更适合移动系统等很多优点。USB接口的应用更是广泛,目前几乎所有笔记本、台式机均设置有USB接口,用户利用这些USB接口可方便地实现支持USB接口的外设设备接入计算机。
外设设备接入计算机后,通过附加的应用软件一起,可以为用户提供非常丰富的功能业务,这也是用户接受外设设备的主要原因。例如应用较多的调制解调器,应用软件和调制解调器之间可以通过AT命令(由Hayes公司发明而为所有调制解调器制造商所使用的一个调制解调器命令语言。每条命令以字母“AT”开头,后跟字母和数字)通讯来实现各种业务。
但是,当外设设备从计算机拔出时,应用软件需要迅速得知该信息并及时进行相应的状态变化,才能做到智能的响应,同时避免因为不能检测到变化而允许一些操作继续进行,可能会造成程序的异常。
针对上述问题,目前常用的方法是由应用程序定时发送检测命令给外设设备,通过命令是否有响应来检测外设设备是否在线。另一种方法是由外设设备向应用程序上报心跳指令,当一段时间应用程序接收不到心跳指令即证明外设设备脱离了计算机。
上述的外设设备接入状态检测方法存在检测不够实时的问题,一次检测命令的不成功,并不能证明外设设备已脱离计算机,所以还需要等候一定的次数未成功后才能证明设备已脱离计算机,尤其是使用AT命令来通讯的设备,因为一个命令本身还会有一定时间的超时,所以判断更不及时。
发明内容
有鉴于此,本发明的主要目的在于提供一种外设设备接入状态检测方法,以及时准确地提供外设设备的接入状态。
为达到上述目的,本发明的技术方案是这样实现的:
一种外设设备接入状态检测方法,在主机的操作系统注册表项下增设外设设备项,并设置检测外设设备项的线程,该方法包括:
在外设设备项变化时所述线程被触发,所述线程根据读取到的外设设备项及其键值确定外设设备接入状态。
其中,所述增设外设设备项,具体包括:
在外设设备应用程序载入主机操作系统时在注册表项下增设外设设备项。
其中,所述外设设备项中包括外设设备信息子项;外设设备接入或脱离主机时,主机操作系统在外设设备项中添加或删除外设设备信息子项,并修改相关外设设备项的键值。
其中,外设设备信息子项的键值中至少包括:外设设备类型信息、供应商标识VID信息、制造商标识PID信息和外设设备连接位置信息。
其中,所述线程被触发包括:
所述线程调用监测注册表项变化的应用程序接口API函数,所述API函数监测到待监测注册表项变化时触发所述线程。
其中,所述线程根据读取到的外设设备项及其键值确定外设设备接入状态,具体包括:
所述线程读取外设设备项中外设设备信息子项的键值,根据所读取键值即确定出当前接入主机的外设设备。
其中,所述线程根据读取到的外设设备项及其键值确定外设设备接入状态,包括:
所述线程读取外设设备项中外设设备信息子项的键值,根据所读取到的外设设备与之前接入的外设设备确定新接入或脱离主机的外设设备。
外设设备接入计算机,需要安装应用程序来支持所述外设设备的使用,安装应用程序时,计算机操作系统会在相应的注册表项下为该外设设备创建一个注册表子项,而当外设设备接入或脱离计算机时,计算机操作系统将修改所述外设设备注册表子项,本发明设置一个检测外设设备注册表子项变化的线程,在检测到外设设备注册表子项变化时,再读取外设设备注册表子项的键值可确定当前接入的外设设备是哪些,从而可确定出新接入或脱离计算机主机的外设设备。本发明检测线程是利用操作系统中的API函数来检测外设设备注册表子项变化的,而操作系统修改外设设备注册表子项更快捷,因此整个检测不仅迅捷且准确,这对于操作系统正确处理针对外设设备的指令是非常有益的。
附图说明
图1为本发明外设设备接入状态检测方法的流程图;
图2为操作系统为外设设备所创建的注册表子项示意图;
图3为外设设备接入主机后其注册表子项示意图。
具体实施方式
本发明的核心思想是:针对目前计算机主机的外设设备种类繁多且相对接入灵活的特点,检测外设设备接入状态不够及时,这可能导致外设设备应用程序的异常,甚至影响到计算机主机的操作系统。外设设备接入状态计算机后,需要安装应用程序来支持所述外设设备的使用,安装应用程序时,计算机操作系统会在相应的注册表项下为该外设设备创建一个注册表子项,当外设设备接入或脱离计算机主机时,操作系统将修改外设设备注册表子项,本发明利用检测线程检测外设设备注册表子项的变化,以此来确定外设设备接入状态,非常及时,且判断准确。以下结合附图对本发明进行详细描述。
图1为外设设备接入状态检测方法的流程图,如图1所示,本发明的外设设备接入状态检测方法包括:
步骤101:在主机的操作系统注册表项下增设外设设备注册表子项,并设置检测外设设备项的线程。该步骤是本发明接入状态检测方法的准备步骤,是实现本发明检测方法的前提。
在外设设备接入到计算机主机时,需要安装外设设备的应用程序才能实现该外设设备的应用,例如USB接口的外设设备,用户之所以能方便地使用USB设备,是因为在操作系统中安装了支持USB设备接入的相应程序。再如一些打印机等设备,也是安装完应用程序后才能使用。而在安装外设设备的应用程序时,操作系统会在注册表项中为外设设备创建一个注册表子项。图2为操作系统为外设设备所创建的注册表子项示意图,如图2所示,注册表子项包括默认项、设备数目(Count)项、下一实例(NextInstance)项,REG_SZ、REG_DWORD为上述项的键值项,其后的数值表示具体的键值。注册表子项可于相应的注册表项下单独创建,多个相同类型的外设设备也可共用一个注册表子项。图3为外设设备接入主机后其注册表子项示意图,如图3所示,当外设设备接入主机后,操作系统会立即修改其注册表子项,其中,将增加一个反映设备基本信息的子项,即图3所示注册表子项的第二项,其键值项REG_SZ的键值反映了外设设备类型信息(USB)、供应商标识VID信息(Vid_19d2)、制造商标识PID信息(Pid_0001)和外设设备连接位置信息(MI_02\7&12519522&6&002)。设备数目(Count)项、下一实例(NextInstance)项对应的键值被修改为“1”。
本发明的检测线程主要是调用主机操作系统中的API函数对待检测外设设备的注册表子项进行检测,当检测到注册表子项变化时,即表明有外设设备接入了主机或脱离的主机,本发明的检测线程立即被触发,检测线程通过注册表子项中反映设备基本信息子项来确定是接入了外设设备还是有外设设备脱离主机,通过该线程的检测,操作系统可及时作出调整,避免程序运作异常。作为一个示例,本发明线程可通过以下方式实现:
CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)StartMonitorThread,NUL
L,0,NULL);
StartMonitorThread(LPVOID context)
{
long ret;
DWORD dwEvent;
HKEY hKey;
if(ERROR_SUCCES S != (ret =
RegOpenKey(HKEY_LOCAL_MACHINE,
″SYSTEM\\CurrentControlSet\\Services\\ZTEusbnmea″,
&hKey)))
{
return-1;
}
HANDLE hEvent=CreateEvent(NULL,true,true,″RegEvent″);
ret=::RegNotifyChangeKeyValue(hKey,TRUE,REG_NOTIFY_CHANGE_LAST_S
ET,hEvent,true);
if(ret==0)
{
dwEvent=WaitForSingleObject(hEvent,INFINITE);
if(dwEvent==WAIT_OBJECT_0)
{
//检测到注册表项变化,返回外设设备的接入状态信息
}
::ResetEvent(hEvent);
}
return 0;
}
步骤102:在外设设备注册表子项变化时,所述线程被触发,所述线程根据读取到的外设设备项及其键值确定外设设备接入状态信息,返回给操作系统。根据需要,也可将外设设备接入状态信息返回至用户。
所述线程调用监测注册表项变化的应用程序接口API函数,所述API函数监测到待监测注册表项变化时触发所述线程。其中,所述线程根据读取到的外设设备项及其键值确定外设设备接入状态,具体包括:所述线程读取外设设备注册表子项中外设设备信息子项的键值,返回所读取到的外设设备信息,即仅返回当前接入主机的外设设备信息,操作系统或用户仅了解当前所接入的外设设备即可。当然,所述线程读取外设设备项中外设设备信息子项的键值后,也可根据所读取到的外设设备信息与之前接入的外设设备信息,来确定哪些外设设备是新接入主机的,哪些设备脱离了主机的,将新接入或脱离了主机的外设设备信息返回至操作系统或/和用户。
本发明根据外设设备注册表项的变化来确定外设设备的接入状态,检测到的外设设备接入状态及时准确。本发明利用一个线程即可实现对外设设备的接入状态的检测,实现简单。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (7)
1.一种外设设备接入状态检测方法,其特征在于,在主机的操作系统注册表项下增设外设设备项,并设置检测外设设备项的线程,该方法包括:
在外设设备项变化时所述线程被触发,所述线程根据读取到的外设设备项及其键值确定外设设备接入状态。
2.根据权利要求1所述的外设设备接入状态检测方法,其特征在于,所述增设外设设备项,具体包括:
在外设设备应用程序载入主机操作系统时在注册表项下增设外设设备项。
3.根据权利要求1所述的外设设备接入状态检测方法,其特征在于,所述外设设备项中包括外设设备信息子项;外设设备接入或脱离主机时,主机操作系统在外设设备项中添加或删除外设设备信息子项,并修改相关外设设备项的键值。
4.根据权利要求3所述的外设设备接入状态检测方法,其特征在于,外设设备信息子项的键值中至少包括:外设设备类型信息、供应商标识VID信息、制造商标识PID信息和外设设备连接位置信息。
5.根据权利要求4所述的外设设备接入状态检测方法,其特征在于,所述线程被触发包括:
所述线程调用监测注册表项变化的应用程序接口API函数,所述API函数监测到待监测注册表项变化时触发所述线程。
6.根据权利要求4所述的外设设备接入状态检测方法,其特征在于,所述线程根据读取到的外设设备项及其键值确定外设设备接入状态,具体包括:
所述线程读取外设设备项中外设设备信息子项的键值,根据所读取键值即确定出当前接入主机的外设设备。
7.根据权利要求4所述的外设设备接入状态检测方法,其特征在于,所述线程根据读取到的外设设备项及其键值确定外设设备接入状态,包括:
所述线程读取外设设备项中外设设备信息子项的键值,根据所读取到的外设设备与之前接入的外设设备确定新接入或脱离主机的外设设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB200710120499XA CN100501710C (zh) | 2007-08-20 | 2007-08-20 | 外设设备接入状态检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB200710120499XA CN100501710C (zh) | 2007-08-20 | 2007-08-20 | 外设设备接入状态检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101105778A true CN101105778A (zh) | 2008-01-16 |
CN100501710C CN100501710C (zh) | 2009-06-17 |
Family
ID=38999680
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB200710120499XA Expired - Fee Related CN100501710C (zh) | 2007-08-20 | 2007-08-20 | 外设设备接入状态检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100501710C (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102063320A (zh) * | 2011-01-06 | 2011-05-18 | 华为终端有限公司 | 工作模式切换方法、usb设备和主机设备 |
CN102111446A (zh) * | 2011-01-12 | 2011-06-29 | 华为终端有限公司 | 设备连接处理方法、组合设备和主机设备 |
CN101291376B (zh) * | 2008-06-18 | 2011-08-17 | 北京中星微电子有限公司 | 一种确定设备对象的方法与装置 |
CN105426330A (zh) * | 2015-11-05 | 2016-03-23 | 飞天诚信科技股份有限公司 | 一种自动打开扩展通道的方法及装置 |
CN111540133A (zh) * | 2020-04-27 | 2020-08-14 | 中国银行股份有限公司 | 外接设备的状态检测方法、装置和相关设备 |
-
2007
- 2007-08-20 CN CNB200710120499XA patent/CN100501710C/zh not_active Expired - Fee Related
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101291376B (zh) * | 2008-06-18 | 2011-08-17 | 北京中星微电子有限公司 | 一种确定设备对象的方法与装置 |
CN102063320A (zh) * | 2011-01-06 | 2011-05-18 | 华为终端有限公司 | 工作模式切换方法、usb设备和主机设备 |
CN102063320B (zh) * | 2011-01-06 | 2013-08-28 | 华为终端有限公司 | 工作模式切换方法、usb设备和主机设备 |
US8650332B2 (en) | 2011-01-06 | 2014-02-11 | Huawei Device Co., Ltd. | Method for switching working mode, USB device, and host device |
CN102111446A (zh) * | 2011-01-12 | 2011-06-29 | 华为终端有限公司 | 设备连接处理方法、组合设备和主机设备 |
CN102111446B (zh) * | 2011-01-12 | 2013-04-24 | 华为终端有限公司 | 设备连接处理方法、组合设备和主机设备 |
US9390041B2 (en) | 2011-01-12 | 2016-07-12 | Huawei Device Co., Ltd. | Method for processing device connection, combination device and host device |
CN105426330A (zh) * | 2015-11-05 | 2016-03-23 | 飞天诚信科技股份有限公司 | 一种自动打开扩展通道的方法及装置 |
CN105426330B (zh) * | 2015-11-05 | 2018-08-28 | 飞天诚信科技股份有限公司 | 一种自动打开扩展通道的方法及装置 |
CN111540133A (zh) * | 2020-04-27 | 2020-08-14 | 中国银行股份有限公司 | 外接设备的状态检测方法、装置和相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN100501710C (zh) | 2009-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI465901B (zh) | Method and system for verification of computerized systems for cloud testing and remote monitoring of integrated circuit devices | |
US7051149B2 (en) | Method for transceiving non-USB device by an adapter and apparatus using the same | |
CN100501710C (zh) | 外设设备接入状态检测方法 | |
CN105573743A (zh) | 一种芯片烧录系统及方法、电子设备 | |
CN101957807A (zh) | USB设备识别主机Windows操作系统版本类型的方法 | |
CN101330399A (zh) | 嵌入式设备的升级方法 | |
TW201409238A (zh) | 電子裝置的模式切換方法與相關的電子裝置 | |
CN107273145A (zh) | 一种软件管理方法及装置、终端 | |
TWI476587B (zh) | 測試電子裝置之功能的測試方法以及測試裝置 | |
JP2006293544A (ja) | 数値制御システム | |
CN103257922A (zh) | 一种快速测试bios与os接口代码可靠性的方法 | |
US9749189B2 (en) | Generating graphical diagram of physical layout of computer platforms | |
CN102708032B (zh) | 一种检测安全数码卡热插拔的方法及装置 | |
CN101377761A (zh) | 热插拔设备移除装置和移除方法 | |
US7213159B2 (en) | Method for testing and verifying power management features of computer system | |
CN104063297A (zh) | 一种利用usb接口对计算机硬件进行诊断的方法及装置 | |
US10962593B2 (en) | System on chip and operating method thereof | |
CN105808460B (zh) | 外部设备识别方法、装置及电子设备 | |
US20090265580A1 (en) | Error detection method for a computer system, and electronic device | |
CN102421004B (zh) | 电视机软件系统的调试方法及装置 | |
CN101562007A (zh) | 可自动更新韧件的显示控制装置及其更新方法 | |
CN101770405A (zh) | 用于串行笔记本电脑除错的方法 | |
CN102243601B (zh) | 用来侦测及控制电脑主机状态的除错系统及其相关方法 | |
KR101103940B1 (ko) | 서버 i/o 슬롯의 무전원 식별 방법 | |
CN111143153B (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090617 Termination date: 20210820 |