CN105378655B - 用于目标和不存在的设备的驱动程序安装的方法 - Google Patents

用于目标和不存在的设备的驱动程序安装的方法 Download PDF

Info

Publication number
CN105378655B
CN105378655B CN201380077110.1A CN201380077110A CN105378655B CN 105378655 B CN105378655 B CN 105378655B CN 201380077110 A CN201380077110 A CN 201380077110A CN 105378655 B CN105378655 B CN 105378655B
Authority
CN
China
Prior art keywords
driver
equipment
device driver
calculating
update
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
CN201380077110.1A
Other languages
English (en)
Other versions
CN105378655A (zh
Inventor
M.H.菲鲁斯
F.安萨里
J.科亨
J.卡瓦拉里斯
A.勒纳特
U.沙吉
R.普纳马利
S.格尔
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN105378655A publication Critical patent/CN105378655A/zh
Application granted granted Critical
Publication of CN105378655B publication Critical patent/CN105378655B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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
    • 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
    • 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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Landscapes

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

Abstract

一种用于管理设备驱动程序的计算机实现方法包括请求用于可连接到计算设备的多个设备的设备驱动程序更新集合。该方法还包括接收设备驱动程序更新集合,将设备驱动程序更新集合的每个驱动程序安装在计算设备上。更新集合中的至少一个已更新驱动程序是用于在该请求时被从计算设备断开连接的设备的已更新驱动程序。该方法还包括将用于未连接设备的所述至少一个已更新驱动程序配置成当该设备被计算设备检测到时激活。

Description

用于目标和不存在的设备的驱动程序安装的方法
技术领域
本公开的实施例一般地涉及驱动程序,并且更具体地涉及用于目标和不存在的设备的驱动程序安装。
背景技术
计算设备通常包括可以被不时地更新的各种功能。例如,计算设备的部件设备(例如,图形卡、数据存储设备、输入设备等)可以与使得部件设备能够在计算设备的背景下运行的设备驱动程序相关联。与部件设备相关联的制造商或其它实体可以发布针对设备驱动程序的更新,诸如以改正软件错误,解决兼容性问题,增强部件设备的功能等。可以将该更新安装在计算设备上以替换或增补设备驱动程序的先前版本。
发明内容
提供本发明内容是为了以简化形式介绍下面在详细描述中进一步描述的概念的选择。本发明内容并不意图识别要求保护的主题的关键特征或本质特征,其也不意图用作确定要求保护的主题的范围的辅助。
在本文中提出了用于安装和更新的部件设备驱动程序的技术,其可改善这些过程的自动发起、执行和/或完成。根据这些技术,当驱动程序或更新可用于可连接设备时,操作系统可在设备不存在时(例如,从计算设备断开连接)获得并安装驱动程序。在某些情况下,可从可存储用于设备的驱动程序的网络可访问更新服务获得驱动程序。操作环境还可在设备从计算设备断开连接的同时用已更新驱动程序来替换用于先前连接设备的当前驱动程序,或者为先前未被连接到计算设备的设备安装驱动程序。以这种方式,操作环境可在部件设备被连接到计算设备时在更经济地使用用户的注意力并改善用户体验的同时检索用于设备的驱动程序和更新。
在某些实施例中,设想了用于管理可连接到计算设备的设备驱动程序的一个或多个方法。方法可包括但不限于请求用于可连接到计算设备的一个或多个设备的一个或多个驱动程序并作为响应而接收驱动程序更新集合。驱动程序更新集合可包括用于在该请求时被从计算设备断开连接的设备的一个或多个驱动程序。该方法还可包括在计算设备上安装用于断开连接设备的驱动程序并将驱动程序配置成在断开连接设备被计算设备检测到时激活。
还可提供一种存储用于管理设备驱动程序的指令的计算机可读存储介质。该指令在被执行时可促使计算设备执行一种方法,其包括从更新服务请求用于可连接到计算设备的一个或多个设备的一个或多个驱动程序。从更新服务请求驱动程序可包括编译存储在计算设备上的设备驱动程序列表。该驱动程序列表可包括用于在请求时被从计算设备断开连接的一个或多个设备的驱动程序、用于从未被连接到计算设备的一个或多个设备的驱动程序以及驱动程序的驱动程序版本信息。还可确定一个或多个计算设备属性并与设备驱动程序列表一起发送到更新服务。作为响应,可接收设备驱动程序更新集合,并且该集合可包括用于断开连接设备的至少一个驱动程序。该方法还可包括在计算设备上安装用于断开连接设备的驱动程序,并将用于断开连接设备的驱动程序配置成当由计算设备检测到该断开连接设备时激活。
还可设想用于管理设备驱动程序的一个或多个附加方法。该方法可包括但不限于接收针对可连接到计算设备的一个或多个设备的设备驱动程序更新的请求。连同该请求一起,可接收计算设备系统说明。该系统说明可包括关于断开连接设备的驱动程序的信息。该方法可将系统说明与存储的驱动程序信息相比较,并获得包括用于断开连接设备的驱动程序的驱动程序更新集合。该方法还可确定设备驱动程序是否可用于先前未被连接到计算设备的设备。该确定可基于包括在系统说明中的计算设备属性。如果驱动程序可用于先前未被连接到计算设备的设备,该方法可将该驱动程序添加到更新集合并将该更新集合提供给计算设备。
附图说明
参考附图来描述本详细描述。本描述和图中的不同实例中的相同附图标记的使用可指示类似或相同项目。
图1A是可操作用于采用在本文中讨论的技术的示例性环境的图示。
图1B是可操作用于采用在本文中讨论的技术的示例性环境的附加图示。
图2是描述根据一个或多个实施例的方法的示例性流程图。
图3是描述根据一个或多个实施例的方法的示例性流程图。
图4是描述根据一个或多个实施例的方法的示例性流程图。
图5是描述根据一个或多个实施例的方法的示例性流程图。
图6是描述根据一个或多个实施例的方法的示例性流程图。
图7是描述根据一个或多个实施例的方法的示例性流程图。
图8是描述根据一个或多个实施例的方法的示例性流程图。
图9是描述根据一个或多个实施例的方法的示例性流程图。
图10是描述根据一个或多个实施例的方法的示例性流程图。
图11是描述根据一个或多个实施例的方法的示例性流程图。
图12是描述根据一个或多个实施例的方法的示例性流程图。
图13是描述根据一个或多个实施例的方法的示例性流程图。
图14是描述根据一个或多个实施例的方法的示例性流程图。
图15是描述根据一个或多个实施例的方法的示例性流程图。
图16是图示出可被用来实施本发明的实施例的计算设备的示例性物理部件的框图。
图17A和17B是可被用来实施本发明的实施例的移动计算设备的简化框图。
图18是其中可实施本发明的实施例的分布式计算系统的简化框图。
具体实施方式
本公开的实施例提供了用于管理可连接到计算设备的部件设备的设备驱动程序的技术。本公开的实施方式提供了驱动程序在计算设备上的无缝安装和更新。驱动程序和更新可特别地由在线服务、第三方服务器、驱动程序供应商服务器或操作系统供应商服务器提供。在计算领域内,许多情形涉及到通过各种类型的有线和/或无线连接被附着到诸如计算机之类的计算设备的部件设备。例如,典型的计算设备可以利用如下设备:键盘、鼠标、显示设备声卡、总线控制器、诸如数字式照相机之类的视频捕捉设备、扬声器、显示适配器、声音适配器、存储设备、网络适配器、扩音器、通用串行总线设备、Firewire控制器和设备、DVD驱动器、网卡、DSL调制解调器、电缆调制解调器、监视器、打印机、传真机、扫描仪等。为了提供对部件设备的能力的访问,可在计算机上安装通常称为驱动程序的软件部件作为应用程序和操作环境可以与之相交互以操作部件设备的接口。例如,软件可接受由应用程序或操作环境请求的到部件设备的输入(例如,能力的调用或数据的传输)并可将该数据中继到部件设备。软件还可使得来自部件设备的输出(例如,状态报告、从用户输入设备接收到的用户输入或由照相机捕捉到的视频)能够被暴露或提供给各种应用程序和/或操作环境。软件可将部件设备配置成与其它设备互操作,并且可调解操作环境(诸如操作系统)中的部件设备的安装和/或设备从操作环境的卸载。
鉴于用于设备的可用驱动程序的范围,可将操作环境配置成以许多方式来管理用于设备的驱动程序的安装。通常,驱动程序例如每当用户向机器添加一件新硬件时被添加到系统。例如,用户可在安装设备的同时提供驱动程序,例如通过提供与设备一起打包的包含用于驱动程序的安装包的可移动介质。替换地,当设备第一次被连接到计算机时,操作环境可执行一系列搜索和选择以便识别要安装的驱动程序。在某些实施例中,操作环境可从通过诸如因特网或局域网(LAN)之类的网络可访问的驱动程序库或服务请求用于设备的驱动程序,可通过网络来接收驱动程序,并且可将该驱动程序安装在操作环境内。在某些情况下,操作环境可直接地从设备接收驱动程序,其可存储其驱动程序并能够在当前没有此类驱动程序被安装(例如,使用即插即用(PnP)技术)的同时在安装期间向操作环境提供该驱动程序。一般地,PnP是促进被插入系统中的硬件设备的识别和确认、从而促进该设备在操作系统内的自动安装和配置的方法。在其它情况下,操作环境可能已被预先加载用于设备的驱动程序,或者可包括默认驱动程序集合,包括用于一般类别的设备的默认驱动程序。还可更新驱动程序以改正驱动程序中的问题/错误,添加性能和/或添加附加设备特征。然而,设备驱动程序通常仅在设备被连接到计算设备时被更新。
如在本文中所讨论的,可针对各种部件设备管理驱动程序。本公开的系统和方法可结合客户端/服务器基础设施,其无论部件设备是否被连接到计算设备都允许支持部件设备。具体地,本公开的实施例提供了操作环境检测、下载并安装用于先前已被连接到计算机或者从未被连接到计算机的设备的驱动程序的能力,即使那些设备在驱动程序或更新的检测、下载和/或安装时未被连接到计算机。例如,操作环境可被配置成在安装之后检查对驱动程序的更新以用已更新驱动程序来替换当前驱动程序,或者检查用于先前未被连接到计算设备的设备的驱动程序(例如,因为设备是被已知可连接到计算设备的新发行产品)。在某些情况下,包括一个或多个驱动程序和/或驱动程序更新的更新集合可以可通过网络连接从外部源(例如,制造商、更新服务等)获得。为了在需要驱动程序的设备被连接时防止使用方面的延迟或故障,操作环境可被配置成当网络连接可用时检索驱动程序,存储检索到的驱动程序直至相应设备被连接为止,并在设备连接时激活驱动程序。如本文所使用的“被连接”包括被通信连接的设备,无论是否存在物理连接。
在以下讨论中,描述可操作用于采用本文所述技术的示例性操作环境和示例性实现情形。还描述了在本示例性环境中以及其它环境中可采用的涉及到在本文中讨论的技术的示例性程序。特别地,虽然参考客户端和服务器配置来描述本公开,但本公开的系统和方法可适用于任何两个或更多计算环境之间的通信,并且此类通信应被认为在本公开的范围内。特别地,本公开还可适用于移动和无线设备,其中用以支持新的或已更新驱动程序的传统驱动程序输送机制很麻烦。本文所述的特定实施例意图在所有方面是说明性而非限制性的。在不脱离本公开的范围的情况下,替换实施例将变得对于本公开所属领域的技术人员而言显而易见。因此,示例性环境不限于执行示例性程序。同样地,示例性程序不限于在示例性环境中实现。
图1A描绘了可操作用于提供用于管理在本文中讨论的设备驱动程序的技术的示例性环境100。图1B还描绘了图1A中所示的环境100的一部分,并且下面将更详细地描述。环境100一般地包括可连接到更新服务122的计算设备102。计算设备102可被体现为任何适当的计算设备,以示例而非限制的方式,诸如台式计算机、便携式计算机(例如,膝上型计算机)、移动电话、平板计算机等。下面在图16中示出并描述了计算设备102的多种不同示例中的一个。计算设备102可被配置成检查其操作环境以确定是否需要新的或已更新设备驱动程序。如果用于特定设备的新的或已更新驱动程序在操作环境内不可用,则计算设备102可被配置成与更新服务122通信以获得一组已更新驱动程序和/或新驱动程序。从更新服务122获得的该组驱动程序可包括用于在检查时未被连接到计算设备102的设备的一个或多个驱动程序和/或用于先前未被连接到计算设备102的设备的一个或多个驱动程序。
计算设备102还可被配置成接收一个或多个部件设备104、105和106(在下文称为设备104—106)或者与之互操作。设备104—106可能能够在计算设备102被开启且正在操作的同时用插头插入例如计算设备112中并被其识别。在某些实施例中,计算设备102的设备模块108可执行一个或多个操作以提供设备识别,包括识别设备和相关联的设备信息。设备的识别可包括收集其它信息,包括驱动程序当前是否在计算设备102上可用以及关于用于设备的现有驱动程序的任何信息。所识别信息可被传递至驱动程序管理器110以便存储在数据仓库(store)114中。在某些情况下,设备104—106可被用户连接或被制造商安装。计算设备102还可包括被配置成管理设备104—106及其相应驱动程序的设备模块108。为此,计算设备102还可在设备模块108内包括被配置成保持用于可连接设备(例如,设备104—106)的驱动程序和更新的驱动程序管理器110。驱动程序管理器110还可被配置成管理用于计算设备102的驱动程序操作(包括更新)。例如,驱动程序管理器110可使得驱动程序(例如,设备驱动程序120)能够被检索(例如,从网络资源下载)并安装在计算设备102上。驱动程序管理器110还可包括下面更详细地讨论的系统说明构建器112和数据仓库114。
计算设备102还可在设备模块108内包括被配置成管理一个或多个可连接设备(例如,设备104—106)的设备管理器116。设备管理器116可以是被用户或计算设备102上的其它功能使用的实用工具。具体地,设备管理器116可被配置成管理可连接到计算设备102的硬件部件(诸如设备104—106)。在某些情况下,设备管理器116是即插即用(PnP)实用工具,其使得能够对安装在计算设备102中的设备进行自动识别。该设备可当前被连接(例如,设备104)、先前被连接但当前断开连接的设备(例如,105)和/或先前未被连接但可连接到计算设备102的设备(例如,设备106,在本文中称为目标设备)。设备管理器116还可包括设备记录118和本地驱动程序仓库120。本地驱动程序仓库120可被配置成存储分别地对应于设备104—106的多个设备驱动程序104a、105a以及106a(在下文中104a—106a)。设备驱动程序104a—106a可以是用计算设备102或用设备管理器116供应的设备驱动程序(例如,“初始设备驱动程序”),或者可以是在稍后的时间从其它源获得的设备驱动程序(例如,“已更新设备驱动程序”)。如所示,计算设备102可被配置成存储处于任何上述状态(例如,当前被连接、先前被连接、从未被连接等)的设备的设备驱动程序。
正如本公开的实施例所述,计算设备102可被配置成经由网络与更新服务122通信。更新服务122可表示用于管理用于多个不同计算设备(例如,包括计算设备102)的驱动程序的外部功能,并且可使得能够向计算设备提供驱动程序和更新。更新服务122可被实现为网络资源,诸如经由网络服务器。网络可采取多种不同配置,诸如因特网、广域网(WAN)、局域网(LAN)、无线网络、公用电话网、内部网等。该网络可被配置成包括多个网络。虽然环境的各种实体可经由网络进行通信,但可采用除网络之外的多种不同通信信道,从而使得一组实体能够经由与另一群组不同的通信信道进行通信。更新服务122还可包括存储一个或多个驱动程序104b—106b的驱动程序仓库124以及存储例如与驱动程序104b—106b有关的设备的设备信息的数据仓库126。
计算设备102和/或更新服务122可被配置成与驱动程序公布者128通信。驱动程序公布者128可表示可公布和/或管理各种类型的驱动程序和驱动程序更新的实体。驱动程序公布者128的示例可包括设备制造商,诸如计算设备102和/或可连接到计算设备102的部件设备104—106的制造商。驱动程序公布者128还可包括可以开发和/或发布用于各种部件和功能的更新的软件开发商和/或其它实体。例如,驱动程序公布者128可包括与部件设备104相关联的制造商和/或其它实体。驱动程序公布者128的其它示例可包括企业管理员、签约管理员或被赋予指定和/或修改驱动程序相关行为的权力的其它实体。因此,驱动程序公布者128可公布和/或发布用于部件设备104—106的驱动程序,诸如可被发送到计算设备102或更新服务122(例如,以替换驱动程序104a—106a或驱动程序104b—106b)的驱动程序104c—106c。
替换部件(未示出)可包括被配置成使用户参加用以下载或安装任何驱动程序的选择和判定的用户界面。此类服务的示例可以是使得用户能够选择要更新的特定驱动程序文件的图形用户界面(GUI)实用程序。此类实用工具可用本公开的系统和方法来实现以向服务器提供关于计算设备的信息,该服务器然后可匹配并识别适当的已更新驱动程序。
以下讨论描述了用于根据本公开的一个或多个实施例来安装和更新设备驱动程序的示例性程序。在以下讨论的各部分中,将对图1A和1B的环境100进行参考。在至少某些实施例中,可经由上文讨论的实体中的一个或多个、诸如计算设备(或以上所讨论的计算设备部件中的一个)、更新服务122和/或驱动程序公布者128来实现程序的各方面。然而,对图1A和1B的特定部件的参考仅仅用于说明性目的,并且不会将本公开局限于本文所述的实施例。在图2—15中进一步图示出下面描述的过程,其中,用描述根据一个或多个实施例的一个或多个过程的流程图来描绘示例性实施例的各方面。
在图2中描绘了示例性实施例,其中图示出用于管理驱动程序的方法200。在图3—10中描绘了附加实施例,其中,方法300、400、500、600、700、800、900和1000提供关于方法200的附加和/或可选过程操作。
方法可在操作202处开始,在那里进行针对用于可连接到计算设备的多个设备的设备驱动程序更新集合的请求。例如,可发起与在计算设备102上可用的设备的一个或多个驱动程序相关的更新的检查。在某些实施例中,方法200的操作202还可包括图3的操作302、304以及306,其描述了当在操作202中请求已更新驱动程序时执行的可选操作。在操作302处,编译存储在计算设备上的驱动程序列表。为了编译驱动程序列表,可执行当前装在计算设备102上的驱动程序的确定。计算设备102可调查驱动程序仓库和系统上的任何硬件设备以发现可用驱动程序。在某些情况下,编译驱动程序列表可包括例如查询本地驱动程序仓库(例如,已被下载且在计算设备上可用的驱动程序库)以确定驱动程序(例如,驱动程序104a—106a)中的一个或多个是否被本地存储。例如,驱动程序管理器110可在设备管理器116中查询驱动程序信息,并且设备管理器116可扫描本地驱动程序仓库120以获得驱动程序信息。无论设备连接状态(例如,已连接或断开连接)如何,都可执行编译一个或多个驱动程序列表。具体地,计算设备102可编译当前被连接设备和/或在该请求和/或列表编译时被断开连接的先前连接设备的驱动程序列表。
图1B进一步图示出编译用于处于一个或多个连接状态的设备的一个或多个驱动程序列表。如在图1B中可以看到的,计算设备102可编译用于当前被连接到系统的设备的驱动程序列表(例如,已连接驱动程序列表130)和/或先前被连接到系统但当前未被连接的设备的驱动程序列表(例如,断开连接驱动程序列表132)。在附加实施例中,可编译用于目标设备的驱动程序的列表(例如,用于先前未被连接到计算设备但对于其而言驱动程序可用的设备的驱动程序,在图1B中示为目标设备驱动程序列表134)。参考图1B,计算设备可保持用于先前未被连接到计算设备的部件设备的存储在计算设备102上的驱动程序的列表(例如,驱动程序7 144,其可对应于图1A的设备106)。在某些实施例中,为了获得用于目标设备的驱动程序,可向更新服务122发送包括系统说明、为计算设备所知的目标设备的列表和/或存储的目标设备驱动程序(从任何可用资源收集或检索)的请求。可通过允许针对流行的外围设备预先加载此类目标驱动程序并使得当用户连接设备时能够使用从未连接设备(即使用户未被连接到网络)来实现改善的用户体验。
返回参考图1B,驱动程序列表130、132、134可包括多个驱动程序(例如,已连接驱动程序列表130的驱动程序1 140、断开连接驱动程序列表132的驱动程序4 142和/或目标驱动程序列表134的驱动程序7 144)。驱动程序列表130、132、134还可包括相应的驱动程序信息(例如,驱动程序版本号、公布日期、唯一识别号等)。可为驱动程序分配唯一识别号(例如,为驱动程序1 140分配号码“1”,为驱动程序4、142分配号码“4”,并为驱动程序7 144分配号码“7”)。在本文中提供的示例为了便于说明而被简化。可设想的是可利用用于向存储于计算设备102上的设备驱动程序分配唯一标识符的任何机制。在某些情况下,可在更新公布期间分配识别号。计算设备102(例如,经由驱动程序管理器110)可从计算设备数据仓库(例如,数据仓库114)获得被已知在计算设备更新集合中的驱动程序的号码。
针对驱动程序的每个种类,驱动程序管理器110可命令设备管理器116检查本地驱动程序仓库120以确定驱动程序仓库120中的哪些(如果有的话)驱动程序是要包括在列表中的最适当的(例如,最新、最特定等)设备驱动程序。在某些实施例中,驱动程序管理器110还可检查其它操作系统部件中的可用驱动程序。在其它实施例中,可利用检测算法来确定已安装驱动程序。例如,此类算法可在操作环境中经由应用编程接口(API)来实现驱动程序检索。无论执行的特定技术如何,可获得用于在每个连接状态下的设备的驱动程序列表。
在某些情况下,断开连接驱动程序列表132中的驱动程序可对应于已被断开连接超过预定时间量的设备。计算设备102可将过长的断开连接时间解释为设备可能永远不被重新连接的指示。在这些情况下,为了避免重复地下载和安装用于可能不被重新连接的设备的驱动程序,操作302还可包括图4中所示的方法400的操作402和404。在操作402处,确定设备已被断开连接的时间长度。如果断开连接时段超过所确定时间量,则方法300可前进至操作404,在那里,将用于设备的驱动程序从驱动程序的编译列表排除。在某些实施例中,当驱动程序管理器110请求设备管理器116提供先前被连接但当前未被连接的设备列表时,其还可评估自从每个设备最后一次出现以来已经历的时间量。如果已经历的时间量超过一个确定的阈值,则驱动程序管理器110可在断开连接设备驱动程序列表132到系统说明中的插入之前将该驱动程序从断开连接设备驱动程序132的列表排除。计算设备102因此可尝试阻止用于该设备的已更新驱动程序的检索、下载和/或安装。在替换实施例中,计算设备102可被进一步配置成向更新服务122提供被排除设备驱动程序列表。被排除设备驱动程序列表可包括关于驱动程序为什么被从列表排除的信息(例如,超过断开连接时间)。
返回参考图3,在编译存储于计算设备上的设备驱动程序列表时,方法300可前进至操作304,在那里创建用于计算设备的系统说明。在某些实施例中,在收集存储驱动程序的列表之后,计算设备102(例如,经由设备模块108)然后可被配置成编译包括该列表的系统说明。如本文所使用的,系统说明一般地可定义为计算设备环境的说明,包括已安装设备、驱动程序、硬件配置和/或其它系统信息。在操作304处创建系统说明可选地可包括图5中所示的方法500的操作502和504。在操作502处,可确定一个或多个计算设备属性。计算设备属性可包括诸如操作系统的描述、口语、BISO信息、硬件配置信息、设备信息等的信息。在附加实施例中,计算设备属性还可包括已知目标设备列表。在确定一个或多个计算设备属性之后,方法500可前进至操作504,在那里,一个或多个计算设备属性被连同驱动程序列表130、132和134一起插入系统说明中。可根据可识别数据结构而生成系统说明136。例如,系统说明136可符合诸如XML模式(Schema)之类的结构。在某些实施例中,用于保持系统说明信息的模式或其它文档格式可由系统说明构建器112生成。
返回参考图3,当创建用于计算设备102的系统说明136时,方法300可前进至操作306,在那里系统说明被发送到更新服务。例如,返回参考图1B,系统说明136可被发送到更新服务122以针对在已编译驱动程序列表中的每个驱动程序触发针对更好驱动程序(例如,更新的驱动程序或被设计用于此特定设备而不是用于大范围的类似设备的驱动程序)的更新服务的查询。如果网络连接可用,则计算设备102可连接到更新服务122以获得为下载和安装用于被连接驱动程序、先前连接已断开连接驱动程序和/或目标驱动程序的更新所需的可用更新和信息。此类信息一般地可被定义为更新集合(例如,图1B的更新集合138)。计算设备102可进行到更新服务122的任何连接,包括但不限于经由因特网、LAN、WAN、拨号、其它连接或连接的组合。
在某些实施例中,可将系统说明136打包以便传输到更新服务122。例如,可利用简单对象访问协议(SOAP)行业标准来执行打包和传输。如在本领域中已知的,SOAP是用于分散的分布式环境中的信息交换的轻量级协议。SOA协议是基于XML且由以下各项组成:(1)定义用于描述什么东西在消息中和如何对其进行处理的框架的封套,(2)用于表达应用程序定义数据类型的实例的一组编码规则,以及(3)用于表示远程程序调用和响应的惯例。
返回参考图2,在请求驱动程序更新之后,方法200可前进至操作204,在那里接收驱动程序更新集合。如图1B中所示,如果更适当的驱动程序可用,则计算设备102可从更新服务122接收包括更新集合138的响应。接收到的更新集合138可包括用于已经安装驱动程序的设备的更好(例如,更新、更特定的)驱动程序的列表,包括用于先前已被连接但在请求时未被连接的设备的已更新驱动程序和用于先前从未被连接的设备的驱动程序。
操作204还可包括图6中所示的方法600的操作602和604。在操作602处,可用更新集合接收驱动程序子集。返回参考图1B,可设想接收到的更新集合138中的驱动程序可以是相关驱动程序的集合的一部分或驱动程序子集。任何或所有的接收到的驱动程序可被标记为更新子集的一部分,意味着可命令计算设备安装子集中的所有更新或者不安装其中的任何一个。计算设备102可被配置成识别接收到的更新集合138中的两个或更多驱动程序是相关驱动程序。如果更新集合138包含相关驱动程序的子集,则计算设备102可被进一步配置成将驱动程序的子集一起安装,即使与驱动程序子集相关联的相关设备中的一个或多个在检测、下载和/或安装时未被连接到计算机。在题为更新集合集成(Aggregation of UpdateSets)且在2012年8月10日提交的申请序号13/571,849中详细地描述了更新子集,该申请被通过引用结合到本文中。操作602可选地可包括图7中所示的方法700的操作702。在操作702处,可接收已更新断开连接设备驱动程序,连同已断开连接设备驱动程序一起作为相关设备驱动程序的子集的一部分。
如上所述,如果更新是更新子集的一部分,计算设备102可连同驱动程序一起接收用更新子集中的其余更新来安装更新的指令。可设想在更新子集中接收到的一个或多个驱动程序可以是存储于计算设备102上的同一驱动程序。因此,在某些实施例中,方法600可前进至操作604,在那里,作为驱动程序子集的一部分,接收用于第二设备的驱动程序和相应的设备驱动程序版本信息,其等价于包括在被发送到更新服务的设备驱动程序列表中的第二设备驱动程序版本信息。如果在更新子集中包括等价的接收驱动程序,则计算设备102还可接收关于驱动程序的安装的指令。该指令可包括将驱动程序安装在计算设备102上。如果计算设备102不能安装驱动程序,则计算设备102可接收不安装更新子集中的任何驱动程序的指令。更新子集因此可在多个驱动程序彼此具有相关性且多个驱动程序中的至少一个在请求已更新驱动程序时被断开连接时提供一致性。
操作204还可以可选地包括图8中所示的方法800的操作802。在操作802处,可接收用于先前未被连接到计算设备的设备的至少一个已更新驱动程序。例如,参考图1B,接收到的更新集合138还可包括至少一个已更新目标驱动程序(例如,驱动程序9 150)。如上文所指示的,可使得计算设备102能够接收用于目标设备(当前或先前未被连接的设备)的驱动程序。因此,接收到的更新集合138还可包括用于将一个或多个目标驱动程序存储在计算设备上的指令。
返回参考图2,当接收到驱动程序更新集合时,方法200可前进至操作206,在那里将接收到的驱动程序安装在计算设备上。例如,计算设备102的部件可安装驱动程序。无论相应设备是否被连接(或者曾被连接)到计算设备102都可安装驱动程序。
在某些实施例中,驱动程序管理器110可利用更新集合信息来向用户显示可用驱动程序的列表,用户然后可选择要下载和安装的驱动程序。如果更新集合包含关于驱动程序的位置的信息,则下载该驱动程序并可本地存储相关联的驱动程序文件(例如,存储到本地驱动程序目录或仓库中)以供设备管理器用来安装驱动程序。如果立即需要驱动程序支持插入式设备,则可由设备管理器使用接收到的更新集合信息来发起驱动程序的激活。
返回参考图1B,然后可使用在更新集合138中接收到的信息来下载一个或多个驱动程序文件(例如,包括适用设备的信息文件(INF)的机柜(CAB)设备包文件),并且可更新系统设置应用程序以利用这些下载文件。计算设备102(例如,经由驱动程序管理器110)然后可例如使用自动化规则或者通过获得用户同意来确定是否要下载和安装驱动程序。例如,驱动程序管理器110可被配置成如果设备未被连接到计算设备,则选择性地更新已安装设备的驱动程序。替换地,用户可选择已经安装但当前未被连接的设备,并选择使驱动程序被更新。根据本公开的先前所述方法,所选设备的识别信息可被从设备管理器116传递至驱动程序管理器110。用户界面可使用户参加用以下载或安装由本公开定位的驱动程序的选择和判定。
计算设备102可被进一步配置成安装一个或多个驱动程序作为更新集合的子集的一部分。例如,在某些实施例中,操作206还可包括图9中所示的方法900的操作902。在操作902处,可安装用于断开连接设备的已更新驱动程序作为更新集合的子集的一部分,如上所述。
计算设备102还可被进一步配置成接收将一个或多个目标设别驱动程序安装在计算设备102上的指令。例如,计算设备102可接收响应,该响应包括关于任何适当的目标设备驱动程序的信息。在某些情况下,如果计算设备102包括指定硬件配置,则可将一个或多个目标设备驱动程序配置为即使关联目标设备先前未被连接到计算设备102也要安装。可在更新被公布(例如,给更新服务)时向设备驱动程序分配目标驱动程序安装指定,或者可在稍后的时间分配。另外,可将更新指定为安装在包括先前指定硬件配置的计算设备上,并且可将驱动程序指定为用于那些硬件配置的目标集合的一部分。例如,驱动程序公布者128可命令更新服务122向具有特定硬件配置或其它系统说明的任何计算设备102推送一组目标设备驱动程序。在其它实施例中,可接收用于将目标设备驱动程序存储在本地仓库中的指令。计算设备102可确定是否要安装更新(例如,通过自动化规则或通过用户同意),并且如果安装目标驱动程序更新,则计算设备102可将目标驱动程序存储在驱动程序仓库中。
可设想在操作206中发起驱动程序安装时可执行一个或多个附加操作。在其它情况下,提供了一种用于安装驱动程序的方法1000,如图10中所示。方法1000可从操作1002开始,在那里,安装用于相应设备的当前元数据包。在某些情况下,用于设备的驱动程序可包括描述设备的元数据包,诸如产品信息(例如,设备的图片、关于设备的购买、激活、许可或保证日期或者识别设备的型号、产品号或序列号)、设备的能力列表、可被用户或应用程序针对该设备调用的功能列表或者产品文件。元数据还可描述更新的各种特性,包括其标题、描述、用于确定更新是否适用于计算机的规则以及用于安装更新内容的指令。可将该元数据包括在驱动程序中(或者可与驱动程序相关联),并且在一个此类实施例中,可接收此元数据包并与用于设备的驱动程序一起安装。还可存储该元数据以便在未来更新查询中使用。
方法1000可进一步前进至操作1004,在那里安装与设备对接的至少一个应用程序。如果适当的话,计算设备102然后可从更新服务122下载一个或多个驱动程序(例如,下载驱动程序有效负荷)。在某些实施例中,驱动程序管理器110可确定是否要下载接收到的驱动程序。基于接收到的元数据,计算设备102可获得和/或安装适当的驱动程序。应注意的是信息的更新集合还可以被计算设备应用程序或实用工具用来向用户显示信息。所显示信息可以是用以下载或安装在接收到的更新集合中描述的一个或多个驱动程序的提议。如果适当的话,计算设备102然后可安装在更新集合中接收到的驱动程序。例如,计算设备102可命令驱动程序管理器110在下载完成时或者在某些指定时间安装驱动程序。在某些实施例中,设备管理器116可接收用以将已安装驱动程序存储在驱动程序仓库中以在设备被连接时供设备使用的指令。如果关联设备在下载或安装时未被连接,则将驱动程序发送到驱动程序仓库(例如,驱动程序仓库120),使得当关联设备被连接时,可从驱动程序仓库获取驱动程序并被设备管理器116激活。在某些实施例中,可提供驱动程序安装失败。如果接收到失败通知时,可在稍后的时间或者在计算设备102重新启动时尝试驱动程序安装。
方法1000然后可前进至操作1006,在那里,在安装已更新驱动程序之后去除用于设备的先前驱动程序版本。在某些实施例中,可接收指定要从集合去除特定更新的指示。例如,可由更新服务122通知计算设备102该更新将被从计算设备去除。在接收到用于设备的已更新驱动程序或去除通知时,计算设备102可将驱动程序的存储版本卸载并安装已更新驱动程序。
在某些实施例中,自动更新功能(例如,AutoUpdate)可执行一个或多个驱动程序安装功能。例如,可将自动更新功能配置成在有用户确认时周期性地更新计算设备的驱动程序信息。用户可选择使自动更新服务在计算设备102上被激活。结果,自动更新服务可类似于设备管理器116,并且可自动地向用户显示更新列表。在某些实施例中,自动更新服务可以是设备管理器的部件。在操作中,自动更新服务可被计算设备102上的事件激活。然后可收集关于计算设备102的信息。可将计算设备信息传递至更新服务122。可将更新集合返回到自动更新实用工具。自动更新服务可利用更新集合信息来为用户提供驱动程序列表,用户然后可从其中选择一个或多个驱动程序进行安装。针对由用户选择的任何驱动程序,可执行下载,并且设备管理器然后可执行安装。
返回参考图2,在安装接收到的驱动程序之后,方法200然后可前进至操作208,在那里,用于断开连接设备的至少一个接收更新被配置成在设备被连接时激活。计算设备102可将用于断开连接设备的一个或多个驱动程序配置成当设备被重新连接(或者第一次被连接)到计算设备102时激活。当断开连接的设备被重新连接时,或者当目标设备第一次被连接时,可(例如,从驱动程序仓库120)检索用于设备的驱动程序,并且可由计算设备102来执行一个或多个操作以激活驱动程序以供使用。使将现有驱动程序绑定到断开连接设备的状态无效、使得驱动程序在设备的最终重新连接时必须经历激活的能力有助于确保设备不被用旧的驱动程序启动(即使仅在短暂的时刻内)。例如,如果已更新驱动程序包含安全装置,则在重新连接时激活驱动程序可有益于防止恶意用户利用先前驱动程序的状态。如果先前的驱动程序存在安全问题,则允许对目标断开连接设备的安全更新可允许计算设备102启用保护措施来防范否则在部署初始驱动程序更新之后可能发生的潜在威胁。
以下讨论涉及可例如由诸如更新服务122之类的更新服务提供的一个或多个技术。在图11中描绘了示例性实施例,其中描绘了用于管理驱动程序的方法1100。在图12—15中描绘了附加实施例,其中,方法1200、1300、1400和1500提供了关于方法100的可选过程操作。在至少某些实施方式中,该方法描述了用于在计算设备上管理设备驱动程序的示例性技术。
方法1100可在操作1102处开始,在那里接收针对设备驱动程序的请求。返回参考图1A和1B,在某些实施例中,可由更新服务122从计算设备102以驱动程序更新查询的方式接收请求,如上文在图2的操作202中进一步描述的。方法1100可前进至其中接收计算设备信息的操作1104。例如,更新服务122可以结构化格式(例如,作为上文所述的图1B的系统说明136)从计算设备102接收计算设备信息。在某些实施例中,操作1104还可包括图12中所示的方法1200的操作1202。在操作1202处,接收计算设备信息可包括从计算设备接收系统说明。例如,计算设备信息可以是在系统说明136中描述的信息(例如,计算设备属性信息、设备驱动程序信息等)。系统说明136还可包括分配给一个或多个设备驱动程序的识别信息,至少包括断开连接设备,如上所述。在某些实施例中,在接收到系统说明136之后,更新服务122可将驱动程序信息存储在本地数据仓库126中以便在未来检查时使用。
返回参考图11,在接收到计算设备信息之后,方法1100可前进至操作1106,在那里将计算设备信息与存储的驱动程序信息相比较。如上所述,如果用于设备的原始驱动程序先前已被安装,则公开技术的实施例可从更新服务请求用于设备的已更新驱动程序。然而,在某些情况下,更新服务122可存储被存储在计算设备102上的驱动程序的同一版本。为了获得已更新驱动程序,更新服务122可查询更新储存库(例如,驱动程序仓库124)以对适用于所接收的系统说明的驱动程序的可用更新进行定位(例如,当前存在设备、先前被连接但当前断开连接的设备和/或目标驱动程序)。针对可用驱动程序,可执行驱动程序比较以确定可用驱动程序是否比已安装驱动程序更新,或者更具体地适用于关联设备。在系统说明中被传递至更新服务122的信息可被更新服务用来确定比已安装驱动程序更好的驱动程序是否可用。
在某些实施例中,更新服务122可利用接收信息来识别并确定对较新的或更特定的驱动程序的需要,并向计算设备102返回响应。利用包含在其中的信息,更新服务122可检验计算设备102的系统说明136以正确地使设备标识与已安装和/或需要的驱动程序相关。更新服务122然后可评估设备和驱动程序,并确定每个驱动程序的更新或更特定版本是否可用(或者可从驱动程序公布者128检索)。在某些实施例中,为了执行比较,匹配优化算法可被更新服务122用来检查驱动程序的内部数据库以便发现用于计算设备122的适当驱动程序。针对列表中的每个设备,更新服务122可评估用于该设备的已在更新服务122上公布的驱动程序,并使用匹配优化算法计算从更新服务122可用的任何驱动程序是否比在系统说明136中列出的驱动程序更新、更特定或者另外更适当。可将该算法配置成接受版本号、公布日期、硬件设备标识符(诸如PnP硬件ID或兼容ID)或其它排序信息中的至少一个作为输入。具体地,如果未发现适当的驱动程序,或者如果计算设备102具有最新且最适用的驱动程序,则可将该状况的适当指示包括在更新集合138中并传递到计算设备102上。
可设想的是更新服务122可能正在存储在列表中接收到的设备驱动程序的同一版本。为了避免同一驱动程序版本的冗余安装,操作1106还可包括图13中所示的方法1300的操作1302。在操作1302处,可将分配给列表中的驱动程序的识别信息(如图1B中所示和上文所述)与存储在更新服务处的驱动程序信息相比较。例如,可将所接收的系统说明中的驱动程序的设备驱动程序识别号与存储在更新服务122上的相应设备驱动程序的设备驱动程序识别号相比较。在某些情况下,设备驱动程序识别号识别设备驱动程序的版本。还可设想的是可利用其它设备驱动程序识别信息进行比较。
返回参考图11,如果更新可用,则方法1100可前进至操作1108,在那里检索设备驱动程序更新集合。在某些实施例中,如果更新可用,则更新服务122可收集更新集合和驱动程序信息并将该更新集合和信息配置成用于传输到计算设备。例如,如果发现用于一个或多个驱动程序的更新,则更新服务可构建包括已更新驱动程序和驱动程序信息的更新集合138并将该更新集合138配置成用于下载到计算设备102。在一个实施例中,收集包括支持该设备的相应信息文件的关联驱动程序文件并添加到更新集合138。设备驱动程序更新集合138可包括用于断开连接设备的至少一个已更新驱动程序。
如上所述,操作1108还可包括方法1400的操作1402,在那里可执行驱动程序信息比较。如果存储在更新服务122上的驱动程序版本与在系统说明136中接收到的驱动程序版本匹配,则可将该驱动程序从由更新服务提供的更新列表排除,如下面所述。在操作1402处,可将设备驱动程序从更新集合排除。
如上文进一步描述的,操作1108可替换地包括图15中所示的方法1500的操作1502和1504。可设想的是否则将被从更新集合排除的驱动程序可以是更新子集的一部分,如上所述。在这些情况下,可将驱动程序包括在更新集合中。在操作1502处,可进行驱动程序是更新子集的一部分的确定。在进行此确定之后,方法1500可前进至操作1504,在那里可将驱动程序包括在更新集合中。如果更新被包括在更新是更新子集的一部分,则更新服务122可向计算设备102提供关于子集安装的指令。该指令可包括要将子集中的每个驱动安装在计算设备102上。如果计算设备102不能安装每个驱动程序,则更新服务可向计算设备发送不安装更新子集中的任何驱动程序的指令。
如本领域的技术人员将理解的是,还可将用于更新驱动程序的本文所述的操作和程序应用于获得从未被连接到计算设备的驱动程序。因此,方法1100可前进至操作1110,在那里,进行用于目标设备的驱动程序可用的确定。在某些实施例中,更新服务122可与执行确定用于已连接或先前连接设备的更新集合同时地执行目标驱动程序检查。本公开还规定更新服务122可被配置成选择性地向具有特定硬件配置的机器分发驱动程序,即使关联设备先前未被连接到计算设备。可检索目标设备驱动程序并包括在更新集合138中。在某些实施例中,可将用于目标设备的目标驱动程序指定为以计算设备102的硬件配置作为目标的更新子集的成员。为了提供目标设备驱动程序,更新服务122可确定包括在已知目标设备的列表中的任何目标设备驱动程序是否可用于下载。更新服务122还可确定是否存在用于适用于计算设备的目标设备的任何驱动程序,其未被包括在由计算设备102供应的已知驱动程序列表中。具体地,还可在更新服务122上将驱动程序指定为适合于在计算设备上下载和安装,即使更新服务122并未从计算设备102接收到用于设备的设备或驱动程序信息(例如,因为驱动程序或目标设备对于计算设备102而言是未知的)。在某些情况下,可从驱动程序公布者128向更新服务122推送目标驱动程序或更新(例如,驱动程序106c),具有特定操作系统和/或硬件配置的计算设备将接收已推送更新的指示。替换地,更新服务122可基于计算设备操作系统和/或硬件配置的类似分析来确定计算设备是否接收对目标驱动程序更新。如在图1B中所描绘的,可将新设备驱动程序(驱动程序10 152)存储在更新服务上(或者从更新公布者128检索)。如果目标驱动程序可用,则方法1100可前进至操作1112,在那里将目标驱动程序添加到更新集合。例如,更新服务122可收集要添加到更新集合的一个或多个目标驱动程序和相应的驱动程序信息。
在将相关更新收集到更新集合中之后,方法1100可进一步前进至操作1114,在那里,将设备驱动程序更新集合提供给计算设备。更新服务122可向计算设备返回包括一个或多个目标驱动程序的更新集合。更新服务122然后可将这些驱动程序告知驱动程序管理器110,并且提供将其下载并安装到计算设备102所需的信息。如先前所讨论的,根据与更新服务器相交互的特定计算设备实用工具或应用程序,操作1114可包括用于特定匹配驱动程序的元数据的返回。在一个实施例中,响应可采取一组元数据或其中可以下载所识别驱动程序的一组位置的形式。在另一实施例中,该响应可以是针对所请求设备的单个匹配驱动程序的元数据。还可提供用于存储新目标设备驱动程序(例如,在驱动程序仓库120中)的给计算设备102的指令。如上文所讨论的,计算设备102然后可以以与计算设备应用程序或实用工具一致的方式来利用该信息。
可实现许多方法和系统以执行本文所讨论的技术。可用硬件、软件、固件或其任何组合来实现方法和系统的各方面。所述方法被实现为一组方框,其指定由一个或多个设备执行的操作且不一定局限于用于由各方框来执行操作的所示顺序。此外,根据一个或多个实施方式,可将相对于特定方法所示的操作与不同方法的操作组合和/或互换。可以经由上文参考环境100或其它计算环境所讨论的各种实体之间的交互来实现方法的各方面。
描述了用于安装和更新设备驱动程序的技术。虽然已经用结构特征和/或方法动作特定的语言描述了实施例,但将理解的是在所附权利要求中定义的实施例不一定局限于上文所述的特定特征或动作。相反地,特定特征和动作是作为实现权利要求的实施例的示例性形式而公开的。
本文所述的实施例和功能可经由大量计算系统进行操作,在没有限制的情况下,包括台式计算机系统、有线和无线计算系统、移动计算系统(例如,移动电话、上网本、平板电脑或板式计算机、笔记本计算机以及膝上型计算机)、手持式设备、多处理器系统、基于微处理器或可编程的消费电子装置、微型计算机以及主机计算机。
另外,本文所述的实施例和功能可在分布式系统(例如,基于云的计算系统)上操作,其中,应用功能、存储器、数据存储和检索及各种处理功能可通过诸如因特网或内部网之类的分布式计算网络相互远离地操作。可经由机载计算设备显示器或者经由与一个或多个计算设备相关联的远程显示单元来显示各种类型的用户界面和信息。例如,可用各种类型的用户界面和信息被投射到其上面的墙壁表面上显示各种类型的用户界面和信息并与之相交互。与可用来实施本发明的实施例的大量计算系统的交互包括按键输入、触摸屏输入、语音或其它音频输入、其中关联计算设备装配有用于捕捉并解释用户手势以便控制计算设备的功能的检测(例如,照相机)功能的手势输入等。
图16—18和相关描述提供了其中可实施本发明的实施例的各种操作环境的讨论。然而,相对于图16—18所示和所讨论的设备和系统是出于示例和说明的目的,并且不限制可被用于实施本文所述的本发明实施例的许多计算设备配置。
图16是图示出可用来实施本发明的实施例的计算设备1601的物理部件(即,硬件)的框图,其包括计算设备102、更新服务122以及驱动程序发布者128。下面描述的计算设备部件可适合于上文所述的计算设备。在基本配置中,计算设备1601可包括至少一个处理单元1602和系统存储器1604。根据计算设备的配置和类型,系统存储器1604可包括但不限于易失性储存器(例如,随机存取存储器)、非易失性储存器(例如,只读存储器)、闪存或此类存储器的任何组合。系统存储器1604可包括适合于运行软件应用程序1620的操作系统1605和一个或多个程序模块1606。例如,当计算设备1601被用于计算设备102时,软件应用程序1620可包括驱动程序管理器110和设备管理器116。例如,操作系统1605可适合于控制计算设备1601的操作。此外,可结合图形库、其它操作系统或任何其它应用程序来实施本发明的实施例且其不限于任何特定应用程序或系统。在图16中用短划线1608内的那些部件图示出此基本配置。计算设备1601可具有附加特征或功能。例如,计算设备1601还可包括附加数据存储设备(可移动和/或不可移动),诸如磁盘、光盘或磁带。在图16中用可移动存储设备1609和不可移动存储设备1610图示出此类附加储存器。
如上所述,可将许多程序模块和数据文件存储在系统存储器1604中。当在处理单元1602上执行时,程序模块1606可执行包括但不限于图2中所示的方法200或图11的方法1100的各阶段中的一个或多个的过程。根据本发明的实施例可使用的其它程序模块可包括电子邮件和联系人应用程序、文字处理应用程序、电子表格应用程序、数据库应用程序、幻灯片展示应用程序、制图或计算机辅助应用程序等。
此外,可在包括分立电子元件的电子电路、包含逻辑门的封装或集成电子芯片、利用微处理器的电路中或在包含电子元件或微处理器的单个芯片上实施本发明的实施例。例如,可经由其中可将图16中所示的每个或许多部件集成到单个集成电路上的芯片上系统(SoC)来实施本发明的实施例。此类SOC设备可包括一个或多个处理单元、图形单元、通信单元、系统虚拟化单元和各种应用功能,其全部被集成(或“烧制”)到芯片基底上作为单个集成电路。当经由SOC操作时,本文所述的功能可经由在单个集成电路(芯片)上与计算设备1601的其它部件集成的专用逻辑进行操作。还可使用其它技术来实施本发明的实施例,所述其它技术能够执行诸如AND、OR以及NOT之类的逻辑运算,包括但不限于机械、光学、射流以及量子技术。另外,可在通用计算机内或者用任何其它电路或系统来实施本发明的实施例。
计算设备1601还可具有一个或多个输入设备1612,诸如键盘、鼠标、笔、声音输入设备、触摸输入设备等。还可包括诸如显示器、扬声器、打印机等的(一个或多个)输出设备1614。上述设备是示例性的,并且可使用其它设备。计算设备1601可包括允许与其它计算设备1618通信的一个或多个通信连接1616。适当通信连接1616的示例包括但不限于RF发射机、接收机和/或收发机电路;通用串行总线(USB)、并行和/或串行端口。
如本文所使用的术语计算机可读介质可包括计算机存储介质。计算机存储介质可包括用用于存储诸如计算机可读指令、数据结构或程序模块的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。系统存储器1604、可移动存储设备1609以及不可移动存储设备1610全部是计算机存储介质示例(即,存储装置)。计算机存储介质可包括RAM、ROM、电可擦只读存储器(EEPROM)、闪速存储器或其它存储器技术、CD-ROM、数字多功能磁盘(DVD)或其它光学存储器、磁带盒、磁带、磁盘存储器或其它磁性存储设备或者可以用来存储信息且可以被计算设备1601访问的任何其它制品。任何此类计算机存储介质可以是计算设备1601的一部分。计算机存储介质不包括载波或其它传播或调制数据信号。
可用计算机可读指令、数据结构、程序模块或诸如载波或其它传输机制之类的调制数据信号中的其它数据来体现通信介质,并且其包括任何信息传送介质。术语“调制数据信号”可描述其特性中的一个或多个被设定或改变的信号,以将信息编码到信号中。以示例而非限制的方式,通信介质可包括诸如有线网络或直接有线连接之类的有线介质以及诸如声学、射频(RF)、红外及其它无线介质之类的无线介质。
图17A和17B图示出可用来实施本发明的实施例的移动计算设备1700,诸如移动电话、智能电话、平板个人计算机1810、膝上型计算机等,包括计算设备102、更新服务122以及驱动程序公布者128。参考图17A,图示出用于实现实施例的移动计算设备1700的一个实施例。在基本配置中,移动计算设备1700是具有输入元件和输出元件二者的手持式计算机。移动计算设备1700通常包括显示器1705和一个或多个输入按钮1710,其允许用户向移动计算设备1700中输入信息。移动计算设备1700的显示器1705还可充当输入设备(例如,触摸屏显示器)。如果包括的话,可选侧面输入元件1715允许进一步的用户输入。侧面输入元件1715可以是旋转开关、按钮或任何其它类型的手动输入元件。在替换实施例中,移动计算设备1700可结合更多或更少的输入元件。例如,在某些实施例中显示器1705可以不是触摸屏。在另一替换实施例中,移动计算设备1700是便携式电话系统,诸如蜂窝式电话。移动计算设备1700还可包括可选键区1735。可选键区1735可以是物理键区或在触摸屏显示器上生成的“软”键区。在各种实施例中,输出元件包括用于示出图形用户界面(GUI)的显示器1705、视觉指示器1720(例如,发光二极管)和/或音频换能器1725(例如,扬声器)。在某些实施例中,移动计算设备1700结合了用于为用户提供触觉反馈的振动换能器。在另一实施例中,移动计算设备1700结合了输入和/输出端口,诸如音频输入端(例如,扩音器插孔)、音频输出端(例如,头戴受话器插孔)以及用于向或从外部设备发送信号或接收信号的视频输出端(例如,HDMI端口)。
图17B是图示出移动计算设备的一个实施例的架构的框图。也就是说,移动计算设备1700可以结合系统(即,架构)1702以实现某些实施例。在一个实施例中,系统1702被实现为能够运行一个或多个应用程序(例如,浏览器、电子邮件、日历、联系人管理器、通讯客户端、游戏以及媒体客户端/播放器)的“智能电话”。在某些实施例中,系统1702被集成为计算设备,诸如集成个人数字助理(PDA)和无线电话。
一个或多个应用程序1766可被加载到存储器1762中并在操作系统1764上或与之相关联地运行。应用程序的示例包括电话拨号程序、电子邮件程序、个人信息管理(PIM)程序、文字处理程序、电子表格程序、因特网浏览器程序、通讯程序等。系统1702还包括存储器1762内的非易失性存储区1768。可使用非易失性存储区1768来存储在系统1702掉电的情况下不应丢失的持久性信息。应用程序1766可使用信息并存储在非易失性存储区1768中,诸如被电子邮件应用程序使用的电子邮件或其它消息等。同步应用程序(未示出)也常驻于系统1702上并被编程为与常驻于主机上的相应同步应用程序交互以保持存储于非易失性存储区1768中的信息与存储在主机处的相应信息同步。如应认识到的,可将其它应用程序加载到存储器1762中并在移动计算设备1700上运行,当计算设备102被实现为移动计算设备1700时,包括本文所述的驱动程序管理器110和设备管理器116。
系统1702具有电源1770,其可被实现为一个或多个电池。电源1770可能还包括外部电源,诸如对电池进行补充或再充电的AC适配器或供电配接托架。
系统1702还可包括执行发射和接收射频通信的功能的无线电1772。无线电1772经由通信运营商或服务提供商来促进系统1702与“外部世界”之间的无线连接。到和来自无线电1772的传输是在操作系统1764的控制下进行的。换言之,可经由操作系统1764向应用程序1766传播由无线电1772接收到的通信,并且反之亦然。
可使用视觉指示器1720来提供视觉通知,和/或可将音频接口1774用于经由音频换能器1725来产生可听通知。在所示实施例中,视觉指示器1720是发光二极管(LED)且音频换能器1725是扬声器。这些设备可被直接地耦合到电源1770,使得在被激活时,其保持开启达到由通知机制规定的持续时间,即使处理器1760及其它部件可能关断以便节省电池电力。可将LED编程为不定期地保持开启直至用户采取行动以指示设备的通电状态为止。音频接口1774被用来向用户提供可听信号以及从用户接收可听信号。例如,除被耦合到音频换能器1725之外,还可将音频接口1774耦合到扩音器以接收可听输入,从而促进电话交谈。根据本发明的实施例,扩音器还可充当音频传感器以促进通知的控制,如下面将描述的。系统1702还可包括视频接口1776,其启用机载照相机1730的操作以记录静止图像、视频流等。
实现系统1702的移动计算设备1700可具有附加特征或功能。例如,移动计算设备1700还可包括附加数据存储设备(可移动和/或不可移动),诸如磁盘、光盘或磁带。在图17B中用非易失性存储区1768来图示出此类附加存储。
由移动计算设备1700生成或捕捉并经由系统1702存储的数据/信息可被本地地存储于移动计算设备1700上,如上所述,或者该数据可被存储于可经由无线电1772或者经由移动计算设备1700和与移动计算设备1700相关联的单独计算设备(例如,诸如因特网之类的分布式计算网络中的服务器计算机)之间的有线连接被设备访问的任何数目的存储介质上。如将认识到的,可经由无线电1772或经由分布式计算网络经由移动计算设备1700来访问此类数据/信息。同样地,可根据众所周知的数据/信息传输和存储手段容易地在计算设备之间传输此类数据/信息以进行存储和使用,包括电子邮件和合作数据/信息共享系统。
图18图示出如上所述的用于管理设备驱动程序更新的系统的架构的一个实施例。可用不同的通信信道或其它存储类型来存储用驱动程序管理器110和/或设备管理器116管理的驱动程序。例如,可使用目录服务1822、网络门户1824、邮箱服务1826、即时通讯仓库1828或社交联网站点1830来存储各种文档。驱动程序管理器110和/或设备管理器116可使用这些类型的系统等中的任何一个以便启用数据利用,如本文所述。服务器1820可向客户端提供驱动程序管理器110和/或设备管理器116。作为一个示例,服务器1820可以是通过网络来提供驱动程序管理器110的网络服务器。服务器1820可经由网络1815通过万维网向客户端提供驱动程序管理器110和/或设备管理器116。举例来说,可将客户端计算设备实现为计算设备102并用个人计算机、平板计算设备1810和/或移动计算设备1700(例如,智能电话)来体现。客户端计算设备102、1810、1700的这些实施例中的任何一个可从仓库1816获得内容。
上文例如参考根据本发明的实施例的方法、系统以及计算机程序产品的框图和/或操作图来描述本发明的实施例。在方框中所述的功能/动作可不按照如任何流程图中所示的顺序发生。例如,连续地示出的两个方框实际上可基本上同时地执行或者各方框有时被按照相反顺序执行,取决于涉及到的功能/动作。
在本申请中提供的一个或多个实施例的描述和图示并不意图以任何方式限制或约束要求保护的本发明的范围。在本申请中提供的实施例、示例以及细节被认为足以传达所有权并使得其他人能够实现和使用要求保护的发明的最佳方式。不应将要求保护的发明理解为局限于在本申请中提供的任何实施例、示例或细节。无论是以组合方式还是单独地示出和描述,各种特征(结构和方法两者)意图被选择性地包括或省略以产生具有特定的一组特征的实施例。已经提供了本申请的描述和图示,本领域的技术人员可设想落于在本申请中体现的一般发明构思的更宽泛方面的精神内的变更、修改以及替换实施例,其不脱离要求保护的发明的更宽泛范围。

Claims (25)

1.一种用于管理设备驱动程序的计算机实现方法,包括:
请求用于可连接到计算设备的一个或多个设备的一个或多个驱动程序,其中所请求的一个或多个设备的一个或多个驱动程序包括用于断开连接设备的第一驱动程序,其中所述断开连接设备是过去连接的而在该请求时被从计算设备断开连接的设备;
接收设备驱动程序更新集合,所述更新集合包括至少所述第一驱动程序以及用于新设备的第二驱动程序,其中所述新设备是先前未被连接到所述计算设备的设备;以及
将所述第一驱动程序和所述第二驱动程序安装在计算设备上;以及
将所述第一驱动程序配置成当由计算设备检测到断开连接设备时激活。
2.权利要求1的计算机实现方法,其中,请求设备驱动程序更新集合包括:
编译存储在计算设备上的设备驱动程序列表,其中,该列表至少包括断开连接设备驱动程序和第二设备驱动程序,并且还包括断开连接设备驱动程序版本信息和第二设备驱动程序版本信息;以及
创建系统说明,其至少包括所存储的设备驱动程序的列表。
3. 权利要求2的计算机实现方法,还包括:
确定一个或多个计算设备属性;以及
向所述系统说明插入所述一个或多个计算设备属性。
4.权利要求3的计算机实现方法,还包括:
向更新服务器发送所述系统说明。
5.权利要求4的计算机实现方法,还包括:
接收驱动程序子集作为更新集合的一部分,其中,该驱动程序子集包括两个或更多驱动程序和指令以将两个或更多驱动程序一起安装;
接收用于第二设备的驱动程序和相应设备驱动程序版本信息作为驱动程序子集的一部分,其中,接收到的相应设备驱动程序版本信息等价于包括在设备驱动程序列表中的第二设备驱动程序版本信息;以及
安装第二设备驱动程序。
6.权利要求4的计算机实现方法,还包括:
与所述更新集合一起,接收用于先前未被连接到计算设备的设备的至少一个新驱动程序和用以安装所述至少一个新驱动程序的指令。
7.权利要求2的计算机实现方法,其中,编译设备驱动程序列表包括:
确定第二断开连接设备已被从计算设备断开连接的时间长度;以及
如果断开连接时间超过断开连接时间的预定最大长度,则将与第二断开连接设备相关联的驱动程序从设备驱动程序列表排除。
8.权利要求7的计算机实现方法,还包括:
与断开连接设备驱动程序一起,接收更新的第二断开连接的设备驱动程序作为相关设备驱动程序子集的一部分;以及
安装所述更新的第二断开连接的设备驱动程序。
9.权利要求1的计算机实现方法,其中将所述至少一个驱动程序安装在计算设备上还包括:
安装描述所述断开连接设备的当前元数据分组;以及
安装至少一个应用,其中所述至少一个应用在所述断开连接设备重新连接到计算设备时能够与所述断开连接设备对接。
10.权利要求1的计算机实现方法,还包括:
在安装所述至少一个驱动程序时,从计算设备中移除对应的先前的驱动程序版本。
11.一种用于管理设备驱动程序的计算机装置,包括:
用于请求用于可连接到计算设备的一个或多个设备的一个或多个驱动程序的部件,其中所请求的一个或多个设备的一个或多个驱动程序包括用于断开连接设备的第一驱动程序,其中所述断开连接设备是过去连接的而在该请求时被从计算设备断开连接的设备;
用于接收设备驱动程序更新集合的部件,所述更新集合包括至少所述第一驱动程序以及用于新设备的第二驱动程序,其中所述新设备是先前未被连接到所述计算设备的设备;以及
用于将所述第一驱动程序和所述第二驱动程序安装在计算设备上的部件;以及
用于将所述第一驱动程序配置成当由计算设备检测到断开连接设备时激活的部件。
12.权利要求11的计算机装置,其中,用于请求设备驱动程序更新集合的部件进一步包括:
用于编译存储在计算设备上的设备驱动程序列表的部件,其中,该列表至少包括断开连接设备驱动程序和第二设备驱动程序,并且还包括断开连接设备驱动程序版本信息和第二设备驱动程序版本信息;以及
用于创建系统说明的部件,其至少包括所存储的设备驱动程序的列表。
13. 权利要求12的计算机装置,还包括:
用于确定一个或多个计算设备属性的部件;以及
用于向所述系统说明插入所述一个或多个计算设备属性的部件。
14.权利要求13的计算机装置,还包括:
用于向更新服务器发送所述系统说明的部件。
15.权利要求14的计算机装置,还包括:
用于接收驱动程序子集作为更新集合的一部分的部件,其中,该驱动程序子集包括两个或更多驱动程序和指令以将两个或更多驱动程序一起安装;
用于接收用于第二设备的驱动程序和相应设备驱动程序版本信息作为驱动程序子集的一部分的部件,其中,接收到的相应设备驱动程序版本信息等价于包括在设备驱动程序列表中的第二设备驱动程序版本信息;以及
用于安装第二设备驱动程序的部件。
16.权利要求14的计算机装置,还包括:
用于与所述更新集合一起,接收用于先前未被连接到计算设备的设备的至少一个新驱动程序和用以安装所述至少一个新驱动程序的指令的部件。
17.权利要求12的计算机装置,其中,所述用于编译设备驱动程序列表的部件还包括:
用于确定第二断开连接设备已被从计算设备断开连接的时间长度的部件;以及
用于如果断开连接时间超过断开连接时间的预定最大长度的部件,则将与第二断开连接设备相关联的驱动程序从设备驱动程序列表排除。
18.权利要求17的计算机装置,还包括:
用于与断开连接设备驱动程序一起,接收更新的第二断开连接的设备驱动程序作为相关设备驱动程序子集的一部分的部件;以及
用于安装所述更新的第二断开连接的设备驱动程序的部件。
19.权利要求11的计算机装置,其中将所述至少一个驱动程序安装在计算设备上还包括:
用于安装描述所述断开连接设备的当前元数据分组;以及
用于安装至少一个应用的部件,其中所述至少一个应用在所述断开连接设备重新连接到计算设备时能够与所述断开连接设备对接。
20.权利要求11的计算机装置,还包括:
用于在安装所述至少一个驱动程序时,从计算设备中移除对应的先前的驱动程序版本的部件。
21.一种用于管理设备驱动程序的计算机实现方法,包括:
接收针对可连接到计算设备的一个或多个设备的设备驱动程序更新的请求;
接收用于计算设备的计算设备配置信息,该计算设备配置信息包括关于用于断开连接设备的至少一个设备驱动程序的信息,其中,该断开连接设备包括之前连接到而在该请求时未被连接到计算设备的设备;
将计算设备配置信息与存储的驱动程序信息相比较;
检索设备驱动程序更新集合,其包括用于断开连接设备的至少一个已更新设备驱动程序;
向更新集合添加新设备驱动程序,其中,所述新设备驱动程序适用于先前未被连接到计算设备的新设备;以及
将更新集合提供给计算设备。
22.权利要求21的计算机实现方法,其中,接收计算设备配置信息还包括:
接收存储于计算设备上的设备驱动程序列表和相应设备驱动程序信息。
23.权利要求22的计算机实现方法,其中,接收相应设备驱动程序信息还包括:
接收分配给断开连接设备和列表中的至少第二设备驱动程序的识别信息。
24.权利要求23的计算机实现方法,其中,将计算设备配置信息与存储的驱动程序信息相比较还包括:
将分配给第二设备驱动程序的接收识别信息与用于第二设备的相应已更新驱动程序的识别信息相比较;以及
如果识别信息是等价的,将相应的已更新驱动程序从设备驱动程序更新集合排除。
25.权利要求23的计算机实现方法,还包括:
在列表中接收第三设备驱动程序和第三设备驱动程序识别信息;
将接收到的第三设备驱动程序识别信息与用于第三设备的相应已更新驱动程序的识别信息相比较;
确定所述第三设备驱动程序被包括在设备驱动程序的子集中;以及
在设备驱动程序更新集合中提供相应已更新驱动程序。
CN201380077110.1A 2013-05-31 2013-09-19 用于目标和不存在的设备的驱动程序安装的方法 Active CN105378655B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/907069 2013-05-31
US13/907,069 US8949815B2 (en) 2013-05-31 2013-05-31 Driver installation for targeted and non-present devices
PCT/US2013/060748 WO2014193441A1 (en) 2013-05-31 2013-09-19 Driver installation for targeted and not-connected devices

Publications (2)

Publication Number Publication Date
CN105378655A CN105378655A (zh) 2016-03-02
CN105378655B true CN105378655B (zh) 2018-12-11

Family

ID=49640138

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380077110.1A Active CN105378655B (zh) 2013-05-31 2013-09-19 用于目标和不存在的设备的驱动程序安装的方法

Country Status (5)

Country Link
US (1) US8949815B2 (zh)
EP (1) EP3005084B1 (zh)
CN (1) CN105378655B (zh)
TW (1) TW201445448A (zh)
WO (1) WO2014193441A1 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9110755B2 (en) 2012-08-10 2015-08-18 Microsoft Technology Licensing, Llc Aggregation of update sets
KR20150026656A (ko) * 2013-09-03 2015-03-11 삼성전자주식회사 응용프로그램 관리 방법 및 그 전자 장치
JP6232604B2 (ja) 2014-02-10 2017-11-22 サイレックス・テクノロジー株式会社 デバイスサーバとその制御方法
CN104050409B (zh) 2014-06-30 2016-10-05 安一恒通(北京)科技有限公司 一种识别被捆绑软件的方法及其装置
US20160070557A1 (en) * 2014-09-09 2016-03-10 Tsuyoshi Yamada Information processing apparatus, information processing method, and information processing system
US9507581B2 (en) * 2015-01-14 2016-11-29 Dell Products Lp Systems and methods of device firmware delivery for pre-boot updates
US20160253620A1 (en) 2015-02-27 2016-09-01 Keysight Technologies, Inc. System for Discovering the Capabilities of Instruments Connected to a Data Processing System
JP2016177445A (ja) * 2015-03-19 2016-10-06 株式会社リコー 情報処理装置、プログラムおよび情報処理システム
US10228930B2 (en) * 2016-01-28 2019-03-12 Microsoft Technology Licensing, Llc Offloading network connectivity and execution tasks to an assistant device
US20170264691A1 (en) * 2016-03-08 2017-09-14 GM Global Technology Operations LLC Virtual vehicle sensors and peripherals based on add-on device capability
US10171452B2 (en) * 2016-03-31 2019-01-01 International Business Machines Corporation Server authentication using multiple authentication chains
US10182387B2 (en) * 2016-06-01 2019-01-15 At&T Intellectual Property I, L.P. Method and apparatus for distributing content via diverse networks
US10846076B2 (en) * 2016-10-11 2020-11-24 Barfield, Inc. Remote application update of measurement device field firmware
CN106959830B (zh) * 2017-03-14 2020-07-03 北京三快在线科技有限公司 设备初始化方法、装置及打印设备
CN110007973B (zh) * 2019-03-26 2021-07-16 联想(北京)有限公司 一种信息处理方法及电子设备
CN110764772B (zh) * 2019-09-02 2023-04-25 广东天波信息技术股份有限公司 兼容多种nfcc的方法及装置
CN112486579A (zh) * 2020-11-20 2021-03-12 中国人寿保险股份有限公司 自助终端设备驱动调用标准化方法及相关设备
CN115390858A (zh) * 2021-05-24 2022-11-25 广州视源电子科技股份有限公司 管理镜像文件的方法、装置、处理器及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1528751A3 (en) * 2003-10-27 2006-07-26 Microsoft Corporation Simple and dynamic configuration of network devices
CN101112065A (zh) * 2005-01-06 2008-01-23 斯玛特康姆公司 自动的互联网连接设备
CN102880488A (zh) * 2012-09-12 2013-01-16 北京奇虎科技有限公司 驱动程序修复方法、设备和系统

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7062765B1 (en) 1999-05-25 2006-06-13 Realnetworks, Inc. System and method for updating information via a network
US6931523B1 (en) 1999-12-09 2005-08-16 Gateway Inc. System and method for re-storing stored known-good computer configuration via a non-interactive user input device without re-booting the system
US6904592B1 (en) 2000-04-28 2005-06-07 Gilbarco Inc. Software download system for automatic retrieval of warranty and commission data
US7743374B2 (en) * 2000-12-21 2010-06-22 Canon Kabushiki Kaisha Network system, information processing apparatus, information processing method, and control program for remote driver installation
US6671749B2 (en) 2001-03-07 2003-12-30 Hewlett-Packard Development Company, L.P. Peripheral driver installation method and system
US7000228B2 (en) 2002-01-17 2006-02-14 Sun Microsystems, Inc. Online upgrade of container-based software components
US20030195951A1 (en) * 2002-04-12 2003-10-16 Wittel Walter I. Method and system to dynamically detect, download and install drivers from an online service
US7191435B2 (en) 2002-06-07 2007-03-13 Sun Microsystems, Inc. Method and system for optimizing software upgrades
US7194737B2 (en) 2002-10-02 2007-03-20 Infinity Systems Software, Inc. System and method for expediting and automating mainframe computer setup
US8555273B1 (en) 2003-09-17 2013-10-08 Palm. Inc. Network for updating electronic devices
US8370825B2 (en) * 2003-10-22 2013-02-05 Hewlett-Packard Development Company, L.P. Program-update prioritization according to program-usage tracking
US8208152B2 (en) 2005-01-31 2012-06-26 Xerox Corporation Printer controlled default driver configuration
US8635609B2 (en) 2005-02-14 2014-01-21 Red Hat, Inc. Software certification and update process
JP2006268172A (ja) 2005-03-22 2006-10-05 Nec Corp サーバシステムおよびオンラインソフトウェア更新方法
WO2007075389A2 (en) 2005-12-15 2007-07-05 Sugarcrm, Inc. Customer relationship management system and method
US8032880B2 (en) 2005-12-20 2011-10-04 Microsoft Corporation Multi-branch management for updating software
US20070180445A1 (en) * 2006-01-30 2007-08-02 Microsoft Corporation Download Service For Device Drivers
US8584115B2 (en) * 2006-10-05 2013-11-12 International Business Machines Corporation Automated operating system device driver updating system
US20080244555A1 (en) 2007-03-29 2008-10-02 Welvaert Eugene F Bundling software updates
US20090307680A1 (en) * 2008-06-06 2009-12-10 Microsoft Corporation Side-by-side driver installation
US20110035738A1 (en) 2009-08-10 2011-02-10 Telefonaktiebolaget Lm Ericsson (Publ) Method for generating an upgrade campaign for a system
JP5143149B2 (ja) 2010-01-20 2013-02-13 クラリオン株式会社 地図情報配信方法および地図情報配信装置
US8578366B2 (en) 2010-04-13 2013-11-05 Avaya Inc. Application store
US20120017208A1 (en) 2010-07-14 2012-01-19 Mark Lussier System and method for updating device drivers
US8954949B2 (en) 2010-10-11 2015-02-10 International Business Machines Corporation Smart patch delivery system
US20120278796A1 (en) * 2011-04-26 2012-11-01 Microsoft Corporation Automatically installing device drivers
US9110755B2 (en) 2012-08-10 2015-08-18 Microsoft Technology Licensing, Llc Aggregation of update sets

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1528751A3 (en) * 2003-10-27 2006-07-26 Microsoft Corporation Simple and dynamic configuration of network devices
CN101112065A (zh) * 2005-01-06 2008-01-23 斯玛特康姆公司 自动的互联网连接设备
CN102880488A (zh) * 2012-09-12 2013-01-16 北京奇虎科技有限公司 驱动程序修复方法、设备和系统

Also Published As

Publication number Publication date
WO2014193441A1 (en) 2014-12-04
US8949815B2 (en) 2015-02-03
EP3005084A1 (en) 2016-04-13
TW201445448A (zh) 2014-12-01
US20140359592A1 (en) 2014-12-04
EP3005084B1 (en) 2021-11-24
CN105378655A (zh) 2016-03-02

Similar Documents

Publication Publication Date Title
CN105378655B (zh) 用于目标和不存在的设备的驱动程序安装的方法
US10785175B2 (en) Polling extension application for interacting with a messaging application
TWI497311B (zh) 跨裝置通訊傳輸系統及其方法
CN103703742B (zh) 基于电源状态的备份方法和装置
CN105453037A (zh) 维持用于更新的已知相关性
US20130326502A1 (en) Installing applications remotely
US20170131691A1 (en) Group control and management among electronic devices
CN103582875A (zh) 用于多源恢复的方法及装置
US20100042991A1 (en) Business-in-a-box integration server and integration method
CN104978285A (zh) 功能扩展方法和终端装置
US9037757B2 (en) Device action service
CN102591901A (zh) 用于同步连接的设备中的数据的装置和方法
CN107018022A (zh) 软件升级的处理方法、装置及终端
CN105787300B (zh) 一种控制软件使用的方法及系统
CN110119386A (zh) 数据处理方法、数据处理装置、介质和计算设备
CN110333874B (zh) 一种iOS系统安装包数据采集方法、装置、设备及介质
US11853727B2 (en) Group control and management among electronic devices
CN106933449B (zh) 图标处理方法和装置
KR20190093761A (ko) 사물인터넷 통합 어플리케이션 및 그 운용 방법
CN103458121A (zh) 实现Android版本兼容及与第三方功能兼容的系统和方法
KR20150109720A (ko) 프로그램 일괄배포방법 및 이를 이용하는 서버-클라이언트 시스템
CN114281786B (zh) 文件处理方法、装置、电子设备和存储介质
WO2016000632A1 (en) Adaptive control and management for electronic device
TW201600971A (zh) 用於提供快速執行項目的方法
CN115396470A (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
GR01 Patent grant