CN101297286B - 添加设备驱动程序的方法 - Google Patents

添加设备驱动程序的方法 Download PDF

Info

Publication number
CN101297286B
CN101297286B CN2006800402978A CN200680040297A CN101297286B CN 101297286 B CN101297286 B CN 101297286B CN 2006800402978 A CN2006800402978 A CN 2006800402978A CN 200680040297 A CN200680040297 A CN 200680040297A CN 101297286 B CN101297286 B CN 101297286B
Authority
CN
China
Prior art keywords
device driver
driver package
package
driver
hardware
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
CN2006800402978A
Other languages
English (en)
Other versions
CN101297286A (zh
Inventor
B·D·A·福勒吉
A·巴隆
D·N·J·德鲁
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 Corp
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 Corp filed Critical Microsoft Corp
Publication of CN101297286A publication Critical patent/CN101297286A/zh
Application granted granted Critical
Publication of CN101297286B publication Critical patent/CN101297286B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/448Execution paradigms, e.g. implementations of programming paradigms

Abstract

提供了用于导入、管理和部署驱动程序的技术。当机器被重新成像时,该机器上的进程扫描该机器上的硬件设备,并且为每个所扫描的硬件设备生成硬件设备ID和兼容硬件设备ID的列表。该进程接着制定对于对应于与硬件以及兼容的硬件设备ID兼容的设备驱动程序的设备驱动程序包ID的请求,并且将该请求发送给管理服务器。该进程响应于该请求接收兼容的设备驱动程序包ID的列表并且从适当的内容服务器访问设备该驱动程序文件。

Description

添加设备驱动程序的方法
背景
一个公司有数百台甚至数千台机器并不是不寻常的,所述机器诸如个人计算机、工作站、服务器、客户机等。虽然这些机器中的一些可能相同(即来自相同制造商的相同的计算机型号),但许多机器不同也并不是不寻常的(即来自许多不同的制造商的不同的计算机型号)。此外,相同型号的机器(即在相同型号线内的机器)由于硬件和硬件配置上的不同可以是不同的。
一般而言,需要设备驱动程序来访问和使用机器的硬件组件,诸如显卡、声卡、键盘、鼠标等。例如,通常需要视频驱动程序以便使用包含在机器中的显卡。设备驱动程序使在机器上执行的操作系统和其他软件程序能够与机器的硬件组件通信并使用它们。由此,每个不同的机器(即具有不同的硬件配置的机器)需要不同的设备驱动程序组。
管理不同的设备驱动程序或设备驱动程序组并将它们部署到一个组织内的大量的机器上提出了较大的挑战。系统管理员通常创建包含组织中的机器可能需要的每个单个设备驱动程序的单片映像(monolithic image)。该单片映像接着被部署到组织中的每台机器上,而每台机器上的操作系统负担确定需要将单片映像中的哪些驱动程序载入到机器上的任务。当添加需要新的设备驱动程序的新机器时,需要重新构造单片映像以便包括新的设备驱动程序,并且需要将重新构建的单片映像重新分发到组织中的所有内容服务器上。使用单片映像来管理和部署设备驱动程序的该进程可能是非常耗时且昂贵的。
概述
提供了用于导入、管理和部署驱动程序的技术。当机器被重新成像时,机器上的进程扫描机器上的硬件设备,并且生成硬件设备ID和每个被扫描的硬件设备的兼容硬件设备ID的列表。进程接着制定对于对应于与硬件兼容的设备驱动程序的设备驱动程序包ID以及兼容的硬件设备ID的请求,并且将该请求发送给管理服务器。该进程响应于请求接收兼容的设备驱动程序包ID的列表并且从适当的内容服务器访问设备驱动程序文件。
提供本概述以便用简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在确定所要求保护的主体的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
附图简述
图1是示出其中实现驱动程序导入、管理和部署技术的驱动程序管理系统可以运作的示例环境的高层框图。
图2是依照一些实施例示出将设备驱动程序添加到驱动程序目录中的流程图。
图3是依照一些实施例示出与驱动程序目录设备驱动程序包相关联的元数据的框图。
图4是依照一些实施例示出接收对驱动程序包ID的列表的请求管理服务器的组件的处理的流程图。
图5是依照一些实施例示出安装前环境中目标机器添加设备驱动程序包的处理的流程图。
详细描述
提供了用于导入、管理和部署诸如设备驱动程序等驱动程序的各种技术。在一些实施例中,系统管理员将设备驱动程序导入到设备目录中,所述设备目录包含在目标计算机系统(此处也称为“机器”)上的映像部署中要考虑的设备驱动程序。诸如管理服务器的服务器可以提供可以例如通过系统管理员控制台访问的用户界面(UI),并且用户界面(UI)可用于将诸如WINDOWS设备驱动程序包等驱动程序制造商的设备驱动程序包导入到驱动程序目录中并操纵驱动程序制造商的设备驱动程序包。例如,当采购需要新的设备驱动程序的机器时,或者当发布设备驱动程序的新版本时,管理员可以使用UI将设备驱动程序导入到驱动程序目录中,并且会在诸如操作系统(OS)部署任务等使用驱动程序目录的今后的映像部署任务中考虑所导入的设备驱动程序。在一些实施例中,驱动程序目录可以提供诸如应用程序编程接口(API)等允许第三方工具(例如第三方设备驱动程序供应商)将设备驱动程序导入到驱动程序目录中的接口。
在一些实施例中,管理服务器可以提供诸如WINDOWS导入驱动程序向导等指导诸如管理员等用户来通过将驱动程序添加到驱动程序目录中的进程的工具。例如,工具可以提示管理员提供诸如驱动程序包盘、目录、压缩盘(CD)等制造商的驱动程序包。工具解析随制造商的驱动程序包提供的安装指令以便确定与驱动程序包相关联的元数据。在WINDOWS设备驱动程序包的情况下,工具可以解析相关联的信息(.inf)文件,以便确定与WINDOWS设备驱动程序包相关联的元数据。工具可以允许管理员提供应该与驱动程序包相关联的其他元数据。工具将与驱动程序包相关联的元数据保存到驱动程序目录中。工具将与制造商的驱动程序包相关联的驱动程序文件封装到驱动程序目录驱动程序包中,并且将该驱动程序目录驱动程序包分配给一个或多个内容服务器。
在一些实施例中,管理服务器为驱动程序匹配请求提供服务。例如,目标机器可以向管理服务器发送对与硬件ID列表兼容的驱动程序ID的请求。请求包括对目标机器的描述以及用于找出其驱动程序ID的硬件设备ID的列表。管理服务器接着可以查询诸如驱动程序目录等数据库,并且确定数据库中与所指示的硬件设备ID兼容的驱动程序。除了硬件设备ID之外,管理服务器可以使用诸如目标机器的制造、型号、OS、处理器体系结构等因素来查询数据库,以便确定一组兼容的驱动程序。管理服务器接着确定对应于与硬件设备ID兼容的驱动程序的驱动程序ID,并且返回兼容的驱动程序包ID列表作为对目标机器的响应。驱动程序包ID唯一地标识驱动程序目录中的驱动程序目录驱动程序包(例如驱动程序元数据和源)。在一些实施例中,管理服务器对与所指示的硬件设备ID兼容的驱动程序排序,并且提供兼容驱动程序包ID的排序列表。
在一些实施例中,执行最小OS的目标机器使用管理服务器的服务以便将设备驱动程序添加到目录机器中。例如,可以在目标机器上在OS部署任务期间执行最小OS,并且执行最小OS会致使或导致在目标机器上创建的安装前的环境或状态。当映像(例如最小OS映像)已经别应用到目标机器上但在目标机器重新引导到完整的OS之前存在安装前环境。在一些实施例中,当处于安装前环境中时,目标机器上的软件工具(“工具”)扫描机器上的硬件设备并且为所扫描的硬件设备生成硬件ID列表。工具接着获取与硬件ID列表中的硬件ID兼容的驱动程序包ID列表。例如,工具可以制定对与硬件ID列表中的硬件ID兼容的驱动程序包的请求并将其发送到管理服务器,并且从管理服务器接收兼容的驱动程序包ID的列表。在一些实施例中,工具可以在目标机器上配置离线OS,以考虑使用驱动程序包中的驱动程序。例如,离线OS可以被配置成考虑其即插即用通路中的驱动程序。在一些实施例中,驱动程序目录功能(管理服务器用于将设备驱动程序添加到目标机器上的服务)可用于使得驱动程序可用于新的OS安装(例如配置操作系统的脚本化安装以便使用给定的设备驱动程序组)。
在一些实施例中,工具也为所扫描的硬件设备获取兼容的硬件ID,并且包括硬件ID列表中兼容的硬件ID。由此,兼容驱动程序ID的列表也包括与兼容的硬件ID兼容的驱动程序ID。在一些实施例中,工具检查来确定所获取的驱动程序包是否用于“引导关键驱动程序”。如果是,那么工具将引导关键驱动程序安装到目标机器上。在一些实施例中,工具对硬件ID列表中的硬件ID排序。
各种技术允许目标机器仅获取(例如下载)它需要的驱动程序(例如,与目标机器上的硬件设备兼容的驱动程序),由此需要较少的网络带宽并且加速了映像部署进程。
在一个实施例中,此处所描述的用于导入、管理和部署驱动程序的各种技术可被实现为诸如微软的系统管理服务器(SMS)等软件分发系统的一部分。SMS提供用于管理大量基于WINDOWS的计算机系统的体系结构。SMS向管理员提供管理网络上的机器、从中央位置将软件分发到机器、检测网络上的机器、跟踪软件和硬件配置以及从远程位置在机器上执行其他任务的能力。
SMS体系结构和环境仅组成了其中可以进行此处所描述的驱动程序导入、管理和部署技术的一种合适的范例。本领域的技术人员会理解由多种公知的软件配置以及发布管理系统提供的其他范例可用于实现此处所描述的用于导入、管理和部署驱动程序的技术。
图1是示出其中实现驱动程序导入、管理和部署技术的驱动程序管理系统可以运作的示例环境的高层框图。该操作环境仅是合适的操作环境的一个示例,并不旨在对驱动程序管理系统的使用范围和功能提出任何限制。如所述的,环境包括目标机器102、管理服务器104和多个内容服务器106a-n,每个都耦合到网络108上。管理服务器也耦合到驱动程序目录110上。为了简化起见,图1中仅示出了一个目标机器,而本领域的技术人员会理解可以有多于一个的目标机器。如此处所使用的,术语“连接到”、“耦合到”和其任何变体意味着两个和多个元素之间的任何连接或耦合,或者是直接或者是间接的;元素之间的耦合和连接可以是物理的、逻辑的或其组合。
当获取新的设备驱动程序时,例如当公司购买需要新的设备驱动程序的机器和外围设备时,管理员调用由管理服务器提供的工具,诸如导入驱动程序向导以便将设备驱动程序添加到驱动程序目录中。作为该进程的一部分,管理员可提供要与添加的设备驱动程序相关联的附加元数据。管理服务器接着从所提供的设备驱动程序和与设备驱动程序相关联的元数据创建设备驱动程序包,包括由管理员提供的任何附加元数据,并且将设备驱动程序包添加到驱动程序目录中。管理服务器将新添加的设备驱动程序包分发给一个或多个内容服务器。在SMS的上下文中,内容服务器提供可有效地用作地理上分散的文件共享的内容服务器,其中各个机器可以获取设备驱动程序包。接着在目标机器上将来的OS部署任务中考虑驱动程序目录中的设备驱动程序包。例如,当目标机器被重新成像时(例如在目标机器上重新成像引导映像(也称为重新安装)),虽然目标机器处于安装前状态,但是在目标机器上执行的工具扫描目标机器上的硬件设备并且获取硬件ID和每个硬件设备的兼容硬件ID的列表。工具接着制定驱动程序目录请求,并将该请求发送给管理服务器。当从目标机器接收到请求时,管理服务器查询驱动程序目录以便确定驱动程序目录中可用的一组兼容硬件驱动程序包ID。管理服务器接着返回该组兼容的硬件驱动程序包ID作为对目标机器的响应。在一些实施例中,管理服务器可以对返回给目标机器的兼容驱动程序包ID组排序。例如,可以使用微软的标准即插即用匹配算法来对兼容的驱动程序包ID排序,这对于本领域的技术人员一般是公知的。工具接收该兼容的驱动程序ID组,并且从相应的内容服务器获取对应于硬件驱动程序ID的设备驱动程序包。如果所获取的设备驱动程序包是用于海量存储设备的,那么工具在目标机器上安装驱动程序。否则,工具将所获取的设备驱动程序包复制到例如目标机器的设备驱动程序存储中,并且在目标机器上配置离线OS以便考虑对应于设备驱动程序包的设备驱动程序。工具可以为没有获取对应的设备驱动程序包的任何硬件驱动程序ID将警告(例如警告消息)记入日志。
在一些实施例中,工具也可以查询目标机器的本地设备驱动程序存储,并确定目标机器上兼容设备的排序顺序。工具接着可以将从管理服务器接收到的响应与目标机器的本地设备驱动程序存储合并,并且选择最佳匹配的(即最合适的)设备驱动程序。例如,工具可以枚举本地机器的驱动程序高速缓存内的所有设备驱动程序,并且为每个设备驱动程序计算驱动程序排序(例如0x0000到0xFFFF之间的数字)。工具接着可以将本地驱动程序高速缓存中排序最高的设备驱动程序与驱动程序目录中排序最高的设备驱动程序作比较,并且选择两个中较低的一个。如果是平局,那么工具可以选择具有较高版本号的设备驱动程序。
一般地,网络是便于在例如所连接的目标机器、管理服务器和内容服务器之间传送电子内容的通信链接。在一些实施例中,网络包括因特网。应该理解网络可以由一个或多个其他类型的网络组成,诸如局域网、广域网、点对点拨号连接等。
其上实现包括目标机器、管理服务器和内容服务器在内的驱动程序管理系统的计算设备,可以包括中央处理单元、存储器、输入设备(例如键盘和定点设备)、输出设备(例如显示设备)以及存储设备(例如盘存储器)。存储器和存储设备是可包含实现驱动程序管理系统的指令的计算机可读介质。此外,数据结构和消息结构可以被存储或经由数据传输介质发送,诸如通信链路上的信号。可以使用各种通信链路,诸如因特网、局域网、广域网、点对点拨号连接、蜂窝电话网络等。
该系统的实施例可以在各种操作环境中实现,包括个人计算机、服务器计算机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、可编程消费电子设备、数码相机、网络PC、小型计算机、大型计算机、包括上述系统或设备中的任一种的分布式计算环境等。计算机系统可以是蜂窝电话、个人数字助理、智能电话、个人计算机、可编程消费电子设备、数码相机等。
可以在计算机可执行指令的一般上下文中描述该系统,所述计算机可执行指令诸如为由一个或多个计算机或其他设备执行的程序模块。一般而言,程序模块包括例程、程序、对象、组件、数据结构等等,它们执行特定的任务或实现特定的抽象数据类型。通常,在各个实施例中,程序模块的功能可以按需结合或分布。
图2是依照一些实施例示出将设备驱动程序添加到驱动程序目录中的流程图。作为示例,组织可以从制造商处(例如硬件设备的制造商和/或设备驱动程序的开发者)接收新版本的设备驱动程序包或者硬件设备的设备驱动程序的发布。为了可以在组织的机器上的OS将来部署中考虑新版本的设备驱动程序,组织的管理员可以使用管理服务器来将设备驱动程序包添加或导入到驱动程序目录中。在框202处,管理服务器接收制造商的设备驱动程序包。在框204处,管理服务器解析随设备驱动程序包提供的安装指令以便确定与设备驱动程序相关联的元数据。在框206中,管理服务器获取要与设备驱动程序关联的任何附加的元数据。例如,管理服务器可以提供UI,通过所述UI管理员可以提供附加元数据和/或编辑与设备驱动程序相关联的元数据。在框208中,管理服务器将与设备驱动程序相关联的元数据(即从安装指令处解析出的元数据(框204)以及由管理员提供的任何附加元数据(框206))保存到驱动程序目录中。在框210中,管理服务器将设备驱动程序文件封装到驱动程序目录设备驱动程序包中。设备驱动程序文件是作为制造商的设备驱动程序包的一部分接收的文件。管理系统也可以将驱动程序目录设备驱动程序包存储在驱动程序目录或其他适当的存储设备中。在框212中,管理服务器将驱动程序目录设备驱动程序包复制到一个内容服务器或多个内容服务器以供后续部署到目标机器上。
本领域的技术人员会理解,为此和此处所公开的其他进程和方法,可以用不同的顺序实现在进程和方法中执行的功能。此外,所概述的步骤仅是示例性的,步骤中的一些是可选的、可以与较少的步骤组合或可以扩展到附加的步骤中。
图3是依照一些实施例示出与驱动程序目录设备驱动程序包相关联的元数据的框图。从设备驱动程序包元数据304和附加设备驱动程序元数据306的组合制定驱动程序目录设备驱动程序包元数据302。设备驱动程序包元数据是从随设备驱动程序包提供的安装指令解析出的元数据,例如如以上结合框204所描述的。如所述的,元数据可以包括(作为示例)为其应用设备驱动程序的硬件设备的制造商、设备驱动程序的供应商(例如设备驱动程序的开发者)、设备驱动程序的类(例如SCSI设备驱动程序、视频设备驱动程序等)、对设备驱动程序的描述、设备驱动程序所支持的操作系统、与设备驱动程序兼容的硬件设备的硬件设备ID以及也与设备驱动程序兼容的兼容的硬件设备的兼容硬件ID。附加设备驱动程序元数据是要与设备驱动程序包相关联的附加元数据,例如如以上结合框206所描述的。如所述的,附加元数据可以包括(作为示例)机器制造商的列表以及机器型号的列表。机器制造商的列表可以包括为其应用设备驱动程序包的零个、一个或多个机器制造商。机器型号的列表可以包括为其应用设备驱动程序包的零个、一个或多个机器型号。接着可以使用驱动程序目录设备驱动程序包元数据来确定特定的驱动程序目录设备驱动程序包是否适合在目标机器上部署(例如安装)。例如,管理员可能已经指示来自公司XYZ的用于显卡ABC的设备驱动程序KLM适于部署在由ACME制造的机器上。在该实例中,ACME被包括在机器制造商列表中。接着,如果配备有显卡ABC的ACME机器请求兼容的设备驱动程序ID的列表,那么管理服务器将设备驱动程序KLM包括在其响应中。另一方面,如果并非由ACME制造但是配备有显卡ABC的机器请求兼容的设备驱动程序ID的列表,那么管理服务器不将设备驱动程序KLM包括在其响应中,即使设备驱动程序KLM与显卡ABC兼容,这是因为进行请求的机器不是由ACME制造的。由此,当存在时,附加元数据可以用作“重叠”到随从制造商接收的设备驱动程序包提供的元数据之上的形式,用于确定是否要在目标机器上部署设备驱动程序包。
图4是依照一些实施例示出接收对驱动程序包ID的列表的请求的管理服务器的组件的处理的流程图。通过示例,目标机器可能已经确定了需要兼容的设备驱动程序的硬件设备的列表。目标机器接着可以制定用于这些硬件设备的硬件设备ID的列表并且向管理服务器发送对与在硬件设备ID列表中所标识的硬件设备兼容的设备驱动程序包的请求。在框402中,管理服务器接收对与在目标机器上的硬件设备的硬件设备ID的列表兼容的设备驱动程序包ID的请求。在一些实施例中,请求也可以包括对目标机器的类型(例如目标机器的制造商、目标机器的型号等)、目标机器上的OS、目标机器上的处理器体系结构等的指示。接着,对于硬件设备ID列表中的每个硬件设备ID(框404),管理服务器执行框406到410,直至处理了列表中所有的硬件设备ID(框410)。在框406中,管理服务器在驱动程序目录中查询支持硬件设备ID或与之兼容的设备驱动程序包。例如,管理服务器可以根据与设备驱动程序的驱动程序目录设备驱动程序包相关联的元数据确定设备驱动程序是否兼容。在框408中,管理服务器将兼容的设备驱动程序包添加到兼容设备驱动程序包列表中。例如,管理服务器可以将对应于兼容的设备驱动程序包的设备驱动程序包ID添加到兼容的设备驱动程序包ID列表中。在处理完列表中的所有硬件设备驱动程序ID之后,在框412中,管理服务器响应于请求将兼容设备驱动程序包ID返回给例如目标机器。
图5是依照一些实施例示出在安装前环境中目标机器下载设备驱动程序包的处理的流程图。作为示例,在将OS映像应用到目标机器上之后但是在将目标机器重新引导至“最小设置”之前,目标机器上的客户端进程,诸如工具可以运行OS部署任务序列。在这种状态下,目标机器处于安装前环境中。安装前环境包括安装在目标机器的硬盘上并且被重新引导以便将目标机器置于安装前环境中的最小OS或OS的子集,诸如微软的WinPETM。可以经由各机制,诸如(作为示例)CD ROM、RAM盘、PXE等提供最小OS。如一般公知的,当执行最小设置时,初始化并开始对应于OS映像的OS,并且在目标机器上还原先前保存的任何机器设置。本领域的普通技术人员普遍理解安装前环境。
在框502中,在目标机器上执行的工具扫描目标机器以便确定在目标机器上的硬件组件。在框504,工具生成硬件设备ID列表和用于所扫描的硬件组件的兼容硬件设备ID。在框506中,工具从管理服务器获取与硬件设备ID和兼容的硬件设备ID的列表兼容的设备驱动程序包ID的列表。接着,对于设备驱动程序包ID的列表中的每个设备驱动程序包(框508),工具执行框510,直至处理了列表中所有的设备驱动程序包ID(框512)。在框510中,工具使得驱动程序目录设备驱动程序包对机器上的离线OS可用。例如,工具可以配置机器上的离线OS来考虑对应于驱动程序目录设备驱动程序包的设备驱动程序。在一些实施例中,工具可以检查驱动程序目录设备驱动程序包以便确定它是否用于引导关键驱动程序。如果驱动程序目录设备驱动程序包是用于引导关键驱动程序的,那么工具将引导关键驱动程序安装在目标机器上。
在一些实施例中,虽然目标机器并非处于安装前环境中,但是目标机器上的工具可以将设备驱动程序包下载到目标机器上。
尽管以对结构特征和/或方法动作专用的语言描述了本主题,但是可以理解,所附权利要求书中定义的本主题不必限于先前所描述的具体特征或动作。相反,这些具体特征和动作是作为实现权利要求书的示例形式来公开的。

Claims (20)

1.一种在计算机系统中用于添加设备驱动程序的方法,所述方法包括:
将最小操作系统安装在计算机系统上,所述最小操作系统用于在所述计算机系统上创建安装前环境;
在所述计算机系统上创建所述安装前环境;以及
在所述安装前环境中,
在所述计算机系统上扫描硬件组件(502);
为所扫描的硬件组件生成硬件设备ID的列表(504);
获取与所述硬件设备ID的列表中的硬件设备ID兼容的设备驱动程序包的列表(506);以及
在所述计算机系统上配置离线操作系统,以考虑使用所述设备驱动程序包中的所述设备驱动程序(510)。
2.如权利要求1所述的方法,其特征在于,其中兼容的设备驱动程序包的列表是从远程服务器获取的。
3.如权利要求1所述的方法,其特征在于,其中所述设备驱动程序包是从内容服务器获取的。
4.如权利要求1所述的方法,其特征在于,其中所述硬件设备ID的列表包括兼容的硬件设备ID。
5.如权利要求1所述的方法,其特征在于,还包括:
在所述安装前环境中,
确定所获取的设备驱动程序包是否用于引导关键驱动程序;以及
当确定所获取的设备驱动程序包用于引导关键驱动程序时,在所述离线操作系统上安装所述引导关键驱动程序。
6.如权利要求1所述的方法,其特征在于,其中所述硬件设备ID列表被排序。
7.如权利要求1所述的方法,其特征在于,其中所述离线操作系统被配置成考虑在其即插即用进程中使用所述设备驱动程序。
8.如权利要求1所述的方法,其特征在于,其中所述设备驱动程序包中的至少一个是WINDOWS驱动程序包。
9.如权利要求1所述的方法,其特征在于,其中所述最小操作系统是通过网络安装的。
10.一种在计算机系统中用于将设备驱动程序添加到驱动程序目录中的方法,所述方法包括:
接收设备驱动程序的制造商的设备驱动程序包(202);
解析随所述设备驱动程序包提供的安装指令,以便确定与所述设备驱动程序包相关联的元数据(204);
获取要与所述设备驱动程序包相关联的任何附加元数据(206);
将与所述设备驱动程序包相关联的所述元数据保存到驱动程序目录中(210);以及
将所述设备驱动程序包分配给至少一个内容服务器(212)。
11.如权利要求10所述的方法,其特征在于,其中所述设备驱动程序包是WINDOWS驱动程序包。
12.如权利要求10所述的方法,其特征在于,其中所述元数据和附加元数据被用于确定是否应该将所述设备驱动程序包下载到目标机器上。
13.如权利要求10所述的方法,其特征在于,其中所述附加元数据是从管理员处获取的。
14.如权利要求10所述的方法,其特征在于,其中所述附件元数据包括对所述设备驱动程序包适用的目标机器制造商的指示。
15.如权利要求10所述的方法,其特征在于,其中所述附加元数据包括对所述设备驱动程序包适用的目标机器型号的指示。
16.一种在计算机系统中提供与硬件设备ID兼容的设备驱动程序包ID的方法,所述方法包括:
接收对与硬件设备ID列表中的硬件设备ID兼容的设备驱动程序包的请求(402),所述请求包括对目标机器的描述;
对于所述硬件设备ID列表中的每个硬件设备ID(404),
获取与所述硬件设备ID兼容的设备驱动程序包(406);
将对应于所获取的设备驱动程序包的设备驱动程序包ID添加到兼容的设备驱动程序包ID的列表中(408);以及
提供所述兼容的设备驱动程序包ID的列表作为对所述请求的响应(412)。
17.如权利要求16所述的方法,其特征在于,其中所述兼容的设备驱动程序包ID的列表被排序。
18.如权利要求16所述的方法,其特征在于,其中所述设备驱动程序包ID是通过查询数据库获取的。
19.如权利要求18所述的方法,其特征在于,其中所述数据库是驱动程序目录。
20.如权利要求18所述的方法,其特征在于,其中所述数据库包括与对应于所述设备驱动程序包ID的设备驱动程序包相关联的元数据。
CN2006800402978A 2005-10-31 2006-09-26 添加设备驱动程序的方法 Expired - Fee Related CN101297286B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/263,084 2005-10-31
US11/263,084 US20070101342A1 (en) 2005-10-31 2005-10-31 Automated device driver management
PCT/US2006/037769 WO2007055818A1 (en) 2005-10-31 2006-09-26 Automated device driver management

Publications (2)

Publication Number Publication Date
CN101297286A CN101297286A (zh) 2008-10-29
CN101297286B true CN101297286B (zh) 2010-06-23

Family

ID=37998132

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800402978A Expired - Fee Related CN101297286B (zh) 2005-10-31 2006-09-26 添加设备驱动程序的方法

Country Status (8)

Country Link
US (1) US20070101342A1 (zh)
EP (1) EP1946222A4 (zh)
JP (1) JP4923058B2 (zh)
KR (1) KR101343148B1 (zh)
CN (1) CN101297286B (zh)
BR (1) BRPI0617881A8 (zh)
RU (1) RU2421785C2 (zh)
WO (1) WO2007055818A1 (zh)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7293272B1 (en) 2004-02-26 2007-11-06 Veritas Operating Corporation Device driver processing for automated system restores
US20070234337A1 (en) * 2006-03-31 2007-10-04 Prowess Consulting, Llc System and method for sanitizing a computer program
US9547485B2 (en) * 2006-03-31 2017-01-17 Prowess Consulting, Llc System and method for deploying a virtual machine
US8171482B1 (en) 2006-05-09 2012-05-01 Vmware, Inc. Application environment specifications for provisioning application specific runtime environments using subsets of resources required for execution
US7644264B1 (en) * 2006-10-17 2010-01-05 Symantec Corporation Method and system for creating and deploying disk images
US8041785B2 (en) * 2007-01-17 2011-10-18 Microsoft Corporation Programmatically choosing a router configuration provider
US8577937B1 (en) 2007-05-09 2013-11-05 Vmware, Inc. Repository including exclusion list
US11262996B2 (en) 2007-05-09 2022-03-01 Vmware, Inc. Repository including exclusion list
US8219987B1 (en) 2007-08-24 2012-07-10 Vmware, Inc. Optimized virtual machine specification for provisioning application specific runtime environment
US8347263B1 (en) 2007-05-09 2013-01-01 Vmware, Inc. Repository including installation metadata for executable applications
US9015180B1 (en) * 2007-05-09 2015-04-21 Vmware, Inc. Repository including file identification
US8671166B2 (en) * 2007-08-09 2014-03-11 Prowess Consulting, Llc Methods and systems for deploying hardware files to a computer
CN101296458B (zh) * 2008-06-30 2012-07-25 腾讯科技(深圳)有限公司 应用程序的功能表现方法、系统及设备
US8875125B2 (en) * 2009-01-27 2014-10-28 Dell Products L.P. Operation system installation methods and media
US8352492B2 (en) * 2009-03-20 2013-01-08 Microsoft Corporation Retrieval of metadata for peripheral devices
US8245243B1 (en) * 2009-07-06 2012-08-14 Xilinx, Inc. Transforming device drivers to improve efficiency
KR101650731B1 (ko) * 2010-06-11 2016-08-25 삼성전자주식회사 관리장치 및 관리장치의 장치드라이버 관리방법
CN102567034B (zh) * 2010-12-15 2014-08-20 北京旋极信息技术股份有限公司 驱动程序管理系统
US9519600B2 (en) 2011-03-04 2016-12-13 Microsoft Technology Licensing, Llc Driver shimming
US9003363B2 (en) * 2011-03-21 2015-04-07 Microsoft Technology Licensing, Llc Device flags
CN103229522A (zh) * 2011-11-25 2013-07-31 松下电器产业株式会社 主机设备、协作服务管理系统以及协作服务管理方法
US9547499B2 (en) * 2011-12-09 2017-01-17 Microsoft Technology Licensing, Llc Device configuration with cached pre-assembled driver state
US9081747B1 (en) * 2012-03-06 2015-07-14 Big Bang Llc Computer program deployment to one or more target devices
GB2506181A (en) 2012-09-25 2014-03-26 Ibm Generating customised program logic for hardware devices
US9075985B2 (en) * 2013-05-31 2015-07-07 Microsoft Technology Licensing, Llc Restricted transmogrifying driver platform
GB2516842A (en) * 2013-07-31 2015-02-11 Ibm Deployment of software images with distinct configuration logic
JP5997110B2 (ja) 2013-08-02 2016-09-28 株式会社日立製作所 計算機システム、デバイスドライバインストール方法
CN104714814A (zh) * 2013-12-13 2015-06-17 贝壳网际(北京)安全技术有限公司 驱动程序的安装方法和客户端装置
CN104750706B (zh) * 2013-12-26 2019-06-04 北京猎豹移动科技有限公司 驱动程序信息的提供方法、装置和系统
CN103942078B (zh) * 2014-04-30 2017-11-17 华为技术有限公司 一种加载驱动程序的方法及嵌入式设备
US20150339111A1 (en) * 2014-05-21 2015-11-26 Google Inc. Automatic discovery and installation of applications via the internet in response to coupling of hardware device to computing device
CN104239112B (zh) * 2014-09-30 2018-04-06 北京猎豹移动科技有限公司 一种设备驱动程序安装方法及装置
US9361126B1 (en) * 2014-11-24 2016-06-07 International Business Machines Corporation Device driver aggregation in operating system deployment
US20160253620A1 (en) 2015-02-27 2016-09-01 Keysight Technologies, Inc. System for Discovering the Capabilities of Instruments Connected to a Data Processing System
CN104657186A (zh) * 2015-03-20 2015-05-27 南通国芯微电子有限公司 一种新型编程方法
CN105119790B (zh) * 2015-09-09 2019-02-19 小米科技有限责任公司 设备控制方法及装置
JP6493130B2 (ja) * 2015-09-30 2019-04-03 富士通株式会社 情報処理装置、方法、及びプログラム
CN105808289B (zh) * 2016-02-29 2019-09-24 联想(北京)有限公司 信息处理方法及电子设备
US11223537B1 (en) 2016-08-17 2022-01-11 Veritas Technologies Llc Executing custom scripts from the host during disaster recovery
CN106383703A (zh) * 2016-08-30 2017-02-08 浪潮(北京)电子信息产业有限公司 一种linux操作系统的硬盘驱动加载方法及装置
CN106325879A (zh) * 2016-08-30 2017-01-11 北京金山安全软件有限公司 一种驱动程序的安装方法及装置、电子设备
CN109346014B (zh) * 2018-09-29 2020-07-03 歌尔科技有限公司 一种虚拟现实设备及其屏幕控制方法
CN113254035A (zh) * 2021-06-29 2021-08-13 武汉深之度科技有限公司 一种驱动程序安装方法、计算设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5935228A (en) * 1996-04-26 1999-08-10 International Business Machines Corporation Method for automatically enabling peripheral devices and a storage medium for storing automatic enable program for peripheral devices
CN1534449A (zh) * 2003-03-31 2004-10-06 网络外围设备的外围设备驱动程序维护方法
EP1528751A2 (en) * 2003-10-27 2005-05-04 Microsoft Corporation Simple and dynamic configuration of network devices

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2126950A1 (en) * 1993-07-30 1995-01-31 Bryan M. Willman Booting a computer system using a last known good set of configuration data
US5768506A (en) * 1994-09-30 1998-06-16 Hewlett-Packard Co. Method and apparatus for distributed workflow building blocks of process definition, initialization and execution
US5802365A (en) * 1995-05-05 1998-09-01 Apple Computer, Inc. Dynamic device matching using driver candidate lists
US5889953A (en) * 1995-05-25 1999-03-30 Cabletron Systems, Inc. Policy management and conflict resolution in computer networks
US6023585A (en) * 1997-05-02 2000-02-08 Webtv Networks, Inc. Automatically selecting and downloading device drivers from a server system to a client system that includes one or more devices
US6105063A (en) * 1998-05-05 2000-08-15 International Business Machines Corp. Client-server system for maintaining application preferences in a hierarchical data structure according to user and user group or terminal and terminal group contexts
US6323882B1 (en) * 1998-10-26 2001-11-27 Simulation Sciences, Inc. Method and systems for a graphical real time flow task scheduler
US20050022198A1 (en) * 1998-11-16 2005-01-27 Taskserver, Inc. Computer-implemented process management system
US6546364B1 (en) * 1998-12-18 2003-04-08 Impresse Corporation Method and apparatus for creating adaptive workflows
US6892230B1 (en) * 1999-06-11 2005-05-10 Microsoft Corporation Dynamic self-configuration for ad hoc peer networking using mark-up language formated description messages
US6442683B1 (en) * 1999-10-07 2002-08-27 Micron Technology, Inc. Apparatus for automatically retrieving and installing device drivers across a network
US6728787B1 (en) * 2000-03-31 2004-04-27 Mitsubishi Electric Research Labs, Inc System and method for locating and installing device drivers for peripheral devices
US7346910B1 (en) * 2000-05-26 2008-03-18 International Business Machines Incorporation Administration of groups of computer programs, data processing systems, or system resources
JP3852269B2 (ja) * 2000-05-29 2006-11-29 セイコーエプソン株式会社 ネットワーク上に存在するコンテンツを自動収集するシステム
US6725367B2 (en) * 2001-01-29 2004-04-20 Microsoft Corporation Methods and systems for constructing and interpreting hierarchical configuration files
US20030135384A1 (en) * 2001-09-27 2003-07-17 Huy Nguyen Workflow process method and system for iterative and dynamic command generation and dynamic task execution sequencing including external command generator and dynamic task execution sequencer
US6944867B2 (en) * 2001-10-04 2005-09-13 Lenovo (Singapore) Pte. Ltd. Method for providing a single preloaded software image with an ability to support multiple hardware configurations and multiple types of computer systems
US7565517B1 (en) * 2002-04-03 2009-07-21 Symantec Corporation Retargeting a captured image to new hardware while in a pre-boot environment
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
US7831969B2 (en) * 2002-08-13 2010-11-09 Brother Kogyo Kabushiki Kaisha Driver installing system for network devices
US7836445B2 (en) * 2003-03-13 2010-11-16 Robert Derek La Gesse Technique for installing a station device driver
US8086659B2 (en) * 2003-06-25 2011-12-27 Microsoft Corporation Task sequence interface
US7814126B2 (en) * 2003-06-25 2010-10-12 Microsoft Corporation Using task sequences to manage devices
US7448034B2 (en) * 2003-07-30 2008-11-04 International Business Machines Corporation Build time determination and installation of drivers on cloned systems
US20050198629A1 (en) * 2003-10-10 2005-09-08 Vipul Vishwanath Method and system for provisioning servers based on a policy and rule hierarchy
US8104043B2 (en) * 2003-11-24 2012-01-24 Microsoft Corporation System and method for dynamic cooperative distributed execution of computer tasks without a centralized controller
US8677117B2 (en) * 2003-12-31 2014-03-18 International Business Machines Corporation Remote management of boot application
US20050160157A1 (en) * 2004-01-15 2005-07-21 Collier Dan L. System and method for automatic device driver identification and installation
US20050200874A1 (en) * 2004-03-12 2005-09-15 Fuji Xerox, Co., Ltd. Driver management method, system, unit and program
CN1926521B (zh) * 2004-03-18 2010-10-06 英特尔公司 尽管资源不足仍支持引导的方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5935228A (en) * 1996-04-26 1999-08-10 International Business Machines Corporation Method for automatically enabling peripheral devices and a storage medium for storing automatic enable program for peripheral devices
CN1534449A (zh) * 2003-03-31 2004-10-06 网络外围设备的外围设备驱动程序维护方法
EP1528751A2 (en) * 2003-10-27 2005-05-04 Microsoft Corporation Simple and dynamic configuration of network devices

Also Published As

Publication number Publication date
RU2421785C2 (ru) 2011-06-20
EP1946222A1 (en) 2008-07-23
KR101343148B1 (ko) 2013-12-19
BRPI0617881A8 (pt) 2016-11-08
KR20080067634A (ko) 2008-07-21
JP2009514121A (ja) 2009-04-02
CN101297286A (zh) 2008-10-29
RU2008117122A (ru) 2009-11-10
JP4923058B2 (ja) 2012-04-25
BRPI0617881A2 (pt) 2011-08-09
US20070101342A1 (en) 2007-05-03
EP1946222A4 (en) 2009-01-14
WO2007055818A1 (en) 2007-05-18

Similar Documents

Publication Publication Date Title
CN101297286B (zh) 添加设备驱动程序的方法
US20110271272A1 (en) Application programming interface for identifying, downloading and installing applicable software updates
US6467088B1 (en) Reconfiguration manager for controlling upgrades of electronic devices
US7448034B2 (en) Build time determination and installation of drivers on cloned systems
US6144960A (en) Software registering/managing system and method thereof
CN100449524C (zh) 维护基于组件的软件产品
US8214631B2 (en) Host build and rebuild system and method
US8171141B1 (en) Provisioning system including stack manager
US6189051B1 (en) System and method for manufacturing hard disk master by downloading selected programs and drivers from a host through a network
KR101376916B1 (ko) 소프트웨어 애플리케이션을 신규 버전의 소프트웨어 애플리케이션으로 점진적으로 업그레이드하기 위한 방법, 기계 판독가능 저장 매체를 포함하는 제품 및 장치
US6151708A (en) Determining program update availability via set intersection over a sub-optical pathway
US8055496B2 (en) Ensuring product correctness in a multilingual environment
CN101288047B (zh) 用于软件内插附件组件的发现、鉴定和激活的方法和系统
US20030105847A1 (en) System and method for server managed modification of operating system data stored within a network device
US20090222806A1 (en) Methods and systems for incrementally updating a software appliance
US20110010700A1 (en) Virtualization of configuration settings
KR101682738B1 (ko) 관리 시스템 확장성
US9003399B2 (en) Methods, systems and computer products for a dynamic repository
US20210112143A1 (en) Information processing system, service providing device, and information processing method
CN101326515A (zh) 元数据驱动的应用程序部署
US20090044004A1 (en) Method for operating computer and operating system thereof
CN110334031A (zh) 内存分配代码检测方法、装置、计算机设备及存储介质
KR100499815B1 (ko) 컴포넌트 공유 관리 시스템 및 방법
CN110209427B (zh) 应用系统及其启动方法、电子设备、存储介质
US20050010650A1 (en) Network-based computer platform external access method and system

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
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150422

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150422

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

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: 20100623

Termination date: 20170926