CN110825332A - 一种在windows操作系统中使打印机设备即插即用的方法 - Google Patents

一种在windows操作系统中使打印机设备即插即用的方法 Download PDF

Info

Publication number
CN110825332A
CN110825332A CN201911115799.8A CN201911115799A CN110825332A CN 110825332 A CN110825332 A CN 110825332A CN 201911115799 A CN201911115799 A CN 201911115799A CN 110825332 A CN110825332 A CN 110825332A
Authority
CN
China
Prior art keywords
printer
request
stack
operating system
steps
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
Application number
CN201911115799.8A
Other languages
English (en)
Other versions
CN110825332B (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.)
Jiangsu Jiangbo Information Technology Co Ltd
Original Assignee
Jiangsu Jiangbo Information Technology 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 Jiangsu Jiangbo Information Technology Co Ltd filed Critical Jiangsu Jiangbo Information Technology Co Ltd
Priority to CN201911115799.8A priority Critical patent/CN110825332B/zh
Publication of CN110825332A publication Critical patent/CN110825332A/zh
Application granted granted Critical
Publication of CN110825332B publication Critical patent/CN110825332B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1224Client or server resources management
    • G06F3/1228Printing driverless or using generic drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1229Printer resources management or printer maintenance, e.g. device status, power levels
    • G06F3/1231Device related settings, e.g. IP address, Name, Identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1236Connection management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Abstract

本发明公开了一种在windows操作系统中使打印机设备即插即用的方法,包括如下步骤,S1:扫描注册表,把已有的打印机ID记录下来;S2:过滤驱动拦截操作系统发出的请求部分;S3:查询原始的USB设备的ID部分;S4:根据查询到的信息匹配现有ID,再反馈给操作系统部分;本发明所提供的方法,主要通过USB过滤驱动,来拦截操作系统查询底层USB打印机的设备ID,然后根据已有打印机信息进行修改,然后再反馈给操作系统,从而达到让已经装过驱动的打印机设备即插即用的效果。

Description

一种在windows操作系统中使打印机设备即插即用的方法
技术领域
本发明涉及计算机应用技术领域,具体为一种在windows操作系统中使打印机设备即插即用的方法。
背景技术
正常的操作系统中,对于打印机设备,第一次插入设备时,系统会找到新设备,要求安装驱动。
当相同的设备插到不同的usb口上,或者插入另外一个同型号的设备时,系统会重新安装打印机驱动,并生成一个打印机副本。由于不少软件绑定了打印机,并对打印机做了个性化的设置,如果出现这种情况,就需要重新绑定打印机并进行设置,增加了软件使用的复杂度。如果系统是还原的,那么每次插入设备都会有这样的过程,那会大大影响客户使用体验。而本发明则会解决此问题,在每次插入设备时不再有安装驱动的过程,且最后生成的打印机名称和原来的一致。
发明内容
本发明的目的在于提供一种在windows操作系统中使打印机设备即插即用的方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:一种在windows操作系统中使打印机设备即插即用的方法,包括如下步骤,
S1:扫描注册表,把已有的打印机ID记录下来;
S2:过滤驱动拦截操作系统发出的请求部分;
S3:查询原始的USB设备的ID部分;
S4:根据查询到的信息匹配现有ID,再反馈给操作系统部分。
优选的,所述步骤S1中,在驱动程序初始化后,枚举注册表指定目录下面的键值,把所有打印机设备的ID都记录下来。
优选的,所述注册表指定目录为:HKEY_LOCAL_MACHINE\SYSTEM\Curr-
-entControlSet\Enum\USBPRINT。
优选的,所述步骤S2中,重载过滤驱动中的MajorFunction[IRP_MJ_PNP]函数DispatchPnp,在DispatchPnp函数中通过IoGetCurrentIrpStackLoca-
-tion(Irp)得到PIO_STACK_LOCATION指针stack,对stack进行判断,根据判断结果对stack进行拦截。
优选的,先对进行stackstack->MinorFunction判断,确定是否是IRP_MN_QUERY_ID请求;如果是IRP_MN_QUERY_ID请求,再对stack进行stack->Parameters.QueryId.IdType判断,确定是否是BusQueryInstanceID请求,如果是BusQueryInstanceID请求,则该stack就是操作系统查询usb设备ID的操作,进行拦截。
优选的,所述步骤S3中,当在步骤S2中拦截到请求USB设备的ID后,根据已有的信息,组一个IRP请求发到下层USB打印机设备请求真实的设备ID,保存下来。
优选的,所述步骤S4中,比较查询到的原始的设备ID和开始备份下来的已有打印机ID,如果设备名一致,就返回已有打印机的ID,否则返回原始的打印机设备ID。
与现有技术相比,本发明的有益效果是:本发明所提供的方法,主要通过USB过滤驱动,来拦截操作系统查询底层USB打印机的设备ID,然后根据已有打印机信息进行修改,然后再反馈给操作系统,从而达到让已经装过驱动的打印机设备即插即用的效果。
附图说明
图1为本发明的流程示意图;
图2为本发明的范例注册表示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要说明的是,术语“竖直”、“上”、“下”、“水平”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
在本发明的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
请参阅图1,本发明提供一种技术方案:一种在windows操作系统中使打印机设备即插即用的方法,包括如下步骤,
S1:扫描注册表,把已有的打印机ID记录下来;
S2:过滤驱动拦截操作系统发出的请求部分;
S3:查询原始的USB设备的ID部分;
S4:根据查询到的信息匹配现有ID,再反馈给操作系统部分。
进一步的,所述步骤S1中,在驱动程序初始化后,枚举注册表指定目录下面的键值,把所有打印机设备的ID都记录下来。
进一步的,所述注册表指定目录为:HKEY_LOCAL_MACHINE\SYSTEM\Curre-
-ntControlSet\Enum\USBPRINT。
进一步的,所述步骤S2中,重载过滤驱动中的MajorFunction[IRP_MJ_PNP]函数DispatchPnp,在DispatchPnp函数中通过IoGetCurrentIrpStackLoca-
-tion(Irp)得到PIO_STACK_LOCATION指针stack,对stack进行判断,根据判断结果对stack进行拦截。
进一步的,先对进行stackstack->MinorFunction判断,确定是否是IRP_MN_QUERY_ID请求;如果是IRP_MN_QUERY_ID请求,再对stack进行stack->Parameters.QueryId.IdType判断,确定是否是BusQueryInstanceID请求,如果是BusQueryInstanceID请求,则该stack就是操作系统查询usb设备ID的操作,进行拦截。
进一步的,所述步骤S3中,当在步骤S2中拦截到请求USB设备的ID后,根据已有的信息,组一个IRP请求发到下层USB打印机设备请求真实的设备ID,保存下来。
进一步的,所述步骤S4中,比较查询到的原始的设备ID和开始备份下来的已有打印机ID,如果设备名一致,就返回已有打印机的ID,否则返回原始的打印机设备ID。
工作原理:打印机驱动安装好后,在注册表中会实际产生两个设备,一个usb设备,一个打印机设备,而windows打印机管理中关联的就是这个打印机设备。
举个简单的例子,如图2所示,我的机器上安装了Canon MP280打印机,对应于注册表,就是:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enu-
-m\USBPRINT\CanonMP280_series\7&e588203&0&USB001这个注册表键值,“7&e588203&0&USB001”这个ID标记的就是设备ID和usb位置的组合,对于同型号不同打印机,或者同样的机器在不同的usb口子上,这个值就会发生变化,从而导致windows打印机管理中认为新生成了一个设备,会增加一个同名的打印机副本。而这个ID标记,经过研究分析,是windows通过向底层USB打印机器驱动发送请求得到的。
要解决这个问题,就需要在插入一个打印机设备后,还未在注册表中生成键值时,windows向底层USB打印机器驱动发送请求时,修改USB打印机器驱动返回的数据,使其和原来的ID一致,从而达到对应的ID不变,windows打印管理自然也就不会再出现副本字样。
要达到这样的目的,需要写一个底层的过滤驱动,当拦截到查询ID的请求时,返回已经存在的ID信息。
在步骤S1中,在驱动程序初始化后,枚举对应地址中的下面的键值,把所有打印机设备的ID都记录下来;从而在步骤S2中,根据相应的函数方法,获得指针stack,并对指针stack进行判断,判断是否是操作系统查询usb设备ID的操作,如果是的话,把它拦截下来;步骤S3中,根据已有的信息,组一个IRP请求发到下层USB打印机设备请求真实的设备ID,保存下来;在步骤S4中,比较查询到的原始的设备ID和开始备份下来的已有打印机ID,如果设备名一致,就返回已有打印机的ID,否则返回原始的打印机设备ID。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

Claims (7)

1.一种在windows操作系统中使打印机设备即插即用的方法,其特征在于:包括如下步骤,
S1:扫描注册表,把已有的打印机ID记录下来;
S2:过滤驱动拦截操作系统发出的请求部分;
S3:查询原始的USB设备的ID部分;
S4:根据查询到的信息匹配现有ID,再反馈给操作系统部分。
2.根据权利要求1所述的一种在windows操作系统中使打印机设备即插即用的方法,其特征在于:所述步骤S1中,在驱动程序初始化后,枚举注册表指定目录下面的键值,把所有打印机设备的ID都记录下来。
3.根据权利要求2所述的一种在windows操作系统中使打印机设备即插即用的方法,其特征在于:所述注册表指定目录为:HKEY_LOCAL_MACHINE\SYS-
-TEM\CurrentControlSet\Enum\USBPRINT。
4.根据权利要求1所述的一种在windows操作系统中使打印机设备即插即用的方法,其特征在于:所述步骤S2中,重载过滤驱动中的MajorFunc-
-tion[IRP_MJ_PNP]函数DispatchPnp,在DispatchPnp函数中通过IoGetIo-
-GetCurrentIrpStackLocation(Irp)得到PIO_STACK_LOCATION指针stack,对stack进行判断,根据判断结果对stack进行拦截。
5.根据权利要求4所述的一种在windows操作系统中使打印机设备即插即用的方法,其特征在于:先对进行stackstack->MinorFunction判断,确定是否是IRP_MN_QUERY_ID请求;如果是IRP_MN_QUERY_ID请求,再对stack进行stack->Parameters.QueryId.IdType判断,确定是否是BusQueryInstan-
-ceID请求,如果是BusQueryInstanceID请求,则该stack就是操作系统查询usb设备ID的操作,进行拦截。
6.根据权利要求1所述的一种在windows操作系统中使打印机设备即插即用的方法,其特征在于:所述步骤S3中,当在步骤S2中拦截到请求USB设备的ID后,根据已有的信息,组一个IRP请求发到下层USB打印机设备请求真实的设备ID,保存下来。
7.根据权利要求1所述的一种在windows操作系统中使打印机设备即插即用的方法,其特征在于:所述步骤S4中,比较查询到的原始的设备ID和开始备份下来的已有打印机ID,如果设备名一致,就返回已有打印机的ID,否则返回原始的打印机设备ID。
CN201911115799.8A 2019-11-15 2019-11-15 一种在windows操作系统中使打印机设备即插即用的方法 Active CN110825332B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911115799.8A CN110825332B (zh) 2019-11-15 2019-11-15 一种在windows操作系统中使打印机设备即插即用的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911115799.8A CN110825332B (zh) 2019-11-15 2019-11-15 一种在windows操作系统中使打印机设备即插即用的方法

Publications (2)

Publication Number Publication Date
CN110825332A true CN110825332A (zh) 2020-02-21
CN110825332B CN110825332B (zh) 2023-05-26

Family

ID=69555263

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911115799.8A Active CN110825332B (zh) 2019-11-15 2019-11-15 一种在windows操作系统中使打印机设备即插即用的方法

Country Status (1)

Country Link
CN (1) CN110825332B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112416829A (zh) * 2020-11-25 2021-02-26 福州富昌维控电子科技有限公司 数据传输到hmi的方法以及usb hid设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6032201A (en) * 1997-06-19 2000-02-29 Cirrus Logic, Inc. Plug and play system using proxy for retrieving correct information about current device from system registry when current device is not the newly installed device
US20010039611A1 (en) * 1998-08-26 2001-11-08 Kuang-Shin Lin Setting method for installing plug and play device
CN1834920A (zh) * 2006-04-30 2006-09-20 北京飞天诚信科技有限公司 一种usb设备过滤驱动程序的自动安装方法
CN101702143A (zh) * 2009-12-02 2010-05-05 深圳华为通信技术有限公司 修改usb设备驱动匹配信息的方法及装置
CN102760104A (zh) * 2012-06-25 2012-10-31 成都卫士通信息产业股份有限公司 一种usb设备控制方法
CN110347628A (zh) * 2019-07-04 2019-10-18 江苏江波信息科技股份有限公司 一种在windows操作系统中使usb设备即插即用的方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6032201A (en) * 1997-06-19 2000-02-29 Cirrus Logic, Inc. Plug and play system using proxy for retrieving correct information about current device from system registry when current device is not the newly installed device
US20010039611A1 (en) * 1998-08-26 2001-11-08 Kuang-Shin Lin Setting method for installing plug and play device
CN1834920A (zh) * 2006-04-30 2006-09-20 北京飞天诚信科技有限公司 一种usb设备过滤驱动程序的自动安装方法
CN101702143A (zh) * 2009-12-02 2010-05-05 深圳华为通信技术有限公司 修改usb设备驱动匹配信息的方法及装置
CN102760104A (zh) * 2012-06-25 2012-10-31 成都卫士通信息产业股份有限公司 一种usb设备控制方法
CN110347628A (zh) * 2019-07-04 2019-10-18 江苏江波信息科技股份有限公司 一种在windows操作系统中使usb设备即插即用的方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112416829A (zh) * 2020-11-25 2021-02-26 福州富昌维控电子科技有限公司 数据传输到hmi的方法以及usb hid设备
CN112416829B (zh) * 2020-11-25 2021-06-29 福州富昌维控电子科技有限公司 数据传输到hmi的方法以及usb hid设备

Also Published As

Publication number Publication date
CN110825332B (zh) 2023-05-26

Similar Documents

Publication Publication Date Title
CN101702143B (zh) 修改usb设备驱动匹配信息的方法及装置
US6301012B1 (en) Automatic configuration of a network printer
US20020095487A1 (en) System for registering, locating, and identifying network equipment
JP5766051B2 (ja) 外部装置と通信可能な画像処理装置、画像処理装置の制御方法、プログラム
US20070050050A1 (en) Information processing system
US20100134818A1 (en) Data processing apparatus, printer network system, data processing method, and computer-readable recording medium thereof
US8947721B2 (en) Image forming apparatus, backup and restore processing method
CN108243290B (zh) 图像形成装置以及功能追加方法
US20070273913A1 (en) Information processing apparatus and data output management system
CN103116477A (zh) 输出分配系统以及方法、输出分配装置、输出装置信息提供装置
CN102253814B (zh) 信息处理设备及其控制方法
US20110067088A1 (en) Image processing device, information processing method, and recording medium
CN102236536A (zh) 打印控制设备、打印控制方法及监视方法
US20050213115A1 (en) Print job system and method
US7986425B2 (en) Image forming apparatus with department management function, network printer with department management function, department management method of image forming apparatus and department management method of network printer
CN110851091B (zh) 基于vdi的打印方法、装置、设备及存储介质
CN110825332A (zh) 一种在windows操作系统中使打印机设备即插即用的方法
CN111881103B (zh) 一种基于nfs共享的ldap域用户acl权限控制方法及装置
JP4488427B2 (ja) 印刷システム、印刷管理サーバ、印刷制御方法、プログラム及びコンピュータ読み取り可能な記憶媒体
CN104714764A (zh) 打印控制设备和打印控制方法
US10303406B2 (en) Information processing utilization management system capable of determining whether or not information processing device is available from application in mobile terminal, information processing device, and method of managing information processing utilization
EP1764702A1 (en) Method and system for identifying usb devices
CN102934124B (zh) 信息处理装置和在该装置中执行应用程序的方法
US9569631B2 (en) Method and apparatus for configuring an electronics device
CN106095350A (zh) 一种usb打印机数据监测分析系统及方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant