CN100461097C - 安装并行驱动程序的方法和设备 - Google Patents

安装并行驱动程序的方法和设备 Download PDF

Info

Publication number
CN100461097C
CN100461097C CNB2005100531919A CN200510053191A CN100461097C CN 100461097 C CN100461097 C CN 100461097C CN B2005100531919 A CNB2005100531919 A CN B2005100531919A CN 200510053191 A CN200510053191 A CN 200510053191A CN 100461097 C CN100461097 C CN 100461097C
Authority
CN
China
Prior art keywords
driver
file
package
equipment
unique identification
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
CNB2005100531919A
Other languages
English (en)
Other versions
CN1667574A (zh
Inventor
J·G·卡瓦拉瑞斯
J·亨特
J·T·科布
L·D·麦克米歇尔
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 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 CN1667574A publication Critical patent/CN1667574A/zh
Application granted granted Critical
Publication of CN100461097C publication Critical patent/CN100461097C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • EFIXED CONSTRUCTIONS
    • E04BUILDING
    • E04HBUILDINGS OR LIKE STRUCTURES FOR PARTICULAR PURPOSES; SWIMMING OR SPLASH BATHS OR POOLS; MASTS; FENCING; TENTS OR CANOPIES, IN GENERAL
    • E04H1/00Buildings or groups of buildings for dwelling or office purposes; General layout, e.g. modular co-ordination or staggered storeys
    • E04H1/12Small buildings or other erections for limited occupation, erected in the open air or arranged in buildings, e.g. kiosks, waiting shelters for bus stops or for filling stations, roofs for railway platforms, watchmen's huts or dressing cubicles
    • E04H1/1205Small buildings erected in the open air
    • E04H1/1216Public W.C.s
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F24HEATING; RANGES; VENTILATING
    • F24DDOMESTIC- OR SPACE-HEATING SYSTEMS, e.g. CENTRAL HEATING SYSTEMS; DOMESTIC HOT-WATER SUPPLY SYSTEMS; ELEMENTS OR COMPONENTS THEREFOR
    • F24D13/00Electric heating systems
    • F24D13/02Electric heating systems solely using resistance heating, e.g. underfloor heating
    • F24D13/022Electric heating systems solely using resistance heating, e.g. underfloor heating resistances incorporated in construction elements
    • F24D13/024Electric heating systems solely using resistance heating, e.g. underfloor heating resistances incorporated in construction elements in walls, floors, ceilings
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F24HEATING; RANGES; VENTILATING
    • F24HFLUID HEATERS, e.g. WATER OR AIR HEATERS, HAVING HEAT-GENERATING MEANS, e.g. HEAT PUMPS, IN GENERAL
    • F24H3/00Air heaters
    • F24H3/02Air heaters with forced circulation
    • 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/44536Selecting among different versions
    • EFIXED CONSTRUCTIONS
    • E04BUILDING
    • E04FFINISHING WORK ON BUILDINGS, e.g. STAIRS, FLOORS
    • E04F2290/00Specially adapted covering, lining or flooring elements not otherwise provided for
    • E04F2290/02Specially adapted covering, lining or flooring elements not otherwise provided for for accommodating service installations or utility lines, e.g. heating conduits, electrical lines, lighting devices or service outlets
    • E04F2290/023Specially adapted covering, lining or flooring elements not otherwise provided for for accommodating service installations or utility lines, e.g. heating conduits, electrical lines, lighting devices or service outlets for heating
    • 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
    • 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Architecture (AREA)
  • Thermal Sciences (AREA)
  • Combustion & Propulsion (AREA)
  • Mechanical Engineering (AREA)
  • Chemical & Material Sciences (AREA)
  • Civil Engineering (AREA)
  • Structural Engineering (AREA)
  • Stored Programmes (AREA)

Abstract

避免之后版本或其它相同命名的驱动程序重写驱动程序的方法和系统,它包括为各合格的驱动程序包产生唯一标识。然后,根据唯一标识,将来自驱动程序包的驱动程序文件或整个驱动程序包本身安装到公共存储器中的子目录位置。这样,就可以并行安装和加载具有相同名字的多个驱动程序包和驱动程序文件。

Description

安装并行驱动程序的方法和设备
技术领域
本发明涉及同时安装和加载的多个相同命名的驱动程序。
技术背景
驱动程序映像文件(或“驱动程序”)是将计算设备所用操作系统连接到外围设备的例行程序。驱动程序映像文件包括外围设备所用的机器语言,用于执行相应程序码所请求的功能。对于能和计算设备协同使用的外围设备,在所述外围设备能执行其预期功能之前,要将包含相关驱动程序文件的驱动程序包(包括驱动程序映像文件)安装到计算设备的硬盘驱动器上。
安装到计算设备的硬盘驱动器上的驱动程序包的数量随计算设备的操作系统所支持的外围设备数而增多。尤其是对大多数和计算设备联合使用的每一个外围设备,将驱动程序包的相当稳定的数据流安装到计算设备的硬盘驱动器上,用于代替或更新现有的驱动程序包或者和现有驱动程序包相关的驱动程序文件。
不幸的是,外围设备和相应驱动程序包的供应商常常使用相同名字的和上述驱动程序包有关的新更新版本的驱动程序文件。当把新更新的驱动程序包或者相关驱动程序文件安装到计算设备的硬盘驱动器上时,它们通常会覆盖之前安装的驱动程序包(它具有与之相关的同名驱动程序文件),而不论是否是和相同外围设备有关的同名驱动程序文件。因此,重复使用驱动程序文件名导致出现本领域技术人员所称的“驱动程序冲突”。驱动程序文件冲突的结果是使用具体驱动程序文件的外围设备实际上调用了和所需驱动程序文件名字相同的另一驱动程序文件,或者外围设备调用不再存在的驱动程序文件,这是因为它已经被之后安装的具有相同名字的驱动程序文件覆盖了。
Microsoft Corporation of Redmond,WA的研究员认为目前版本的
Figure C200510053191D0006144740QIETU
操作系统可以支持157000个以上的驱动程序文件,但是大约只有26000个驱动程序文件被唯一命名。即大约131000个操作系统支持的驱动程序文件具有重复的名字。而且,该研究还发现外围设备供应商提出的唯一命名的驱动程序文件数以至少12个/天的速度增加,但是操作系统支持的新的驱动程序文件总数以150个/天以上的速度增加。换句话说,具有重复名字的驱动程序文件以大约138个/天的速度增加。因此,驱动程序冲突的比例也增大。
以下假设代表了操作系统中加载的重复命名的驱动程序文件出现的问题。所述例子假设用户将打印机插到计算机上,并安装了相应的驱动程序包。所述驱动程序包包括信息文件“INF”,它指出驱动程序包中包含了哪些文件。通常,所述INF文件指出存在至少一个驱动程序映像文件(例如,“foo.sys”),它安装到用户计算机的硬盘驱动器上。所述例子还假设用户经常将复印机插到计算机上,并安装也具有名为“foo.sys”的驱动程序映像文件的相应驱动程序包。在当前实现的解决方案中,最新插入的复印机相应的驱动程序映像文件foo.sys安装在打印机相应的较旧的驱动程序映像文件上。结果,当要将复印机相应的foo.sys加载到计算机存储器中,供相应应用程序使用时,使用打印机就会导致驱动程序冲突。因此,打印机在用户的计算机上就不能工作。
另一假设例子涉及想要使用不同版本的驱动程序映像文件来驱动不同版本的外围设备的供应商。但是,当更新或升级较早版本驱动程序映像文件时,若供应商不能改变至少一个驱动程序映像文件的名字,则计算设备的硬盘驱动器上较早版本的驱动程序映像文件会被升级的驱动程序映像文件覆盖。因此,当较新版本的驱动程序映像文件覆盖了具有相同名字的之前版本的驱动程序映像文件时,需要之前版本的驱动程序映像文件的外围设备不能将所需驱动程序映像文件加载到存储器中,因此,所述外围设备不能在计算设备上操作。即,名字和之前版本的驱动程序映像文件相同的新的或更新的驱动程序映像文件已经安装到计算设备的硬盘驱动器上,代替了之前版本的驱动程序映像文件。
发明内容
本文说明了并行安装和加载驱动器。
为了支持和计算机协同使用的外围设备,将驱动程序包安装到计算设备的硬盘驱动器上。可为这样的驱动程序包产生一个强名字(strong name)。然后,所述强名字用作在公共存储器中为驱动程序包和有关驱动程序文件分配唯一子目录位置的基准,不论驱动程序包和相关驱动程序文件是否和其它驱动程序包和相关驱动程序文件共享一个名字。
附图说明
在以下详细说明中,由于以下详述使得各种改变和修改对本领域那些技术人员来说显而易见的,因此,所述实施方式仅用于示例说明的目的。在附图中,标记号码最左边的数字表示其中所述标记号码第一次出现的附图。在不同附图中使用相同的标记号码来表示类似或相同的物品。
图1显示计算设备例子,它安装驱动程序包来支持许多插入或连接到计算设备上的外围设备中至少一个。
图2说明可以按照实施方式所述进行安装的驱动程序包的例子。
图3说明了执行并行驱动安装的功能部分的例子,并演示了包括所述部分的相关处理流程的例子。
图4说明了图3中存储部分的例子。
图5说明了图3中存储部分的另一例子。
图6说明了可用于执行本文所述技术的通用计算机网络环境的例子。
具体实施方式
以下说明涉及安装和加载驱动程序包,包括相关驱动程序文件的技术。将驱动程序文件(包括至少一个驱动程序映像文件)安装到计算设备的硬盘驱动器上,作为驱动程序包的一部分,支持以硬连线或无线方式和相应计算设备共同使用的外围设备。但是,由于新的和更新版本的驱动程序文件常常具有和之前安装的驱动程序文件相同的名字,当操作各种外围设备时常常会出现冲突。
所述实施方式能并行安装和加载相同命名的驱动程序包和相关的驱动程序文件。即,所述实施方式能在相同硬盘驱动器上安装一个以上相同命名的驱动程序包和/或相关的驱动程序文件,并在不产生处理冲突的条件下加载到存储器中。更具体的是,所述安装包括在公共存储器的唯一分配的子目录中存储各驱动程序包和相关的驱动程序文件。若不并行的话,所述子目录和安装其它相同命名的驱动程序包和相关驱动程序文件的其它子目录接近。根据强名字为各驱动程序包分配各子目录。对驱动程序包而言,强名字是唯一的标识,可用于在任何计算设备上标记所述驱动程序包。
图1显示了用并行安装程序115安装驱动程序包110的计算设备105的例子。驱动程序包110(包括驱动程序文件)安装到计算设备105的硬盘驱动器上,支持以硬连线或无线方式和计算设备105共同使用的外围设备。可以和计算设备105共同使用的非排他性外围设备的例子包括复印机120、打印机125、游戏控制器130、个人数字助理(PDA)135、无线手机140和便携式摄像机145。其它外围设备(未显示)和音频/视频数据的输入/输出数据文件的传输等有关。当它们安装、连接或插到计算设备105中,或当它们和计算设备105无线通信时,这种外围设备可以和计算设备105共同使用。
而且,计算设备105可以是任意各种常规计算设备,包括桌面个人计算机(PC)、工作站、大型计算机、因特网设备和游戏控制器。而且,计算设备105可以是和网络有关的设备,包括但不限于PDA、便携式计算机和蜂窝式电话120等,它们可以通过有线和/或无线连接方式和网络进行通信。下面参考附图6进一步详细说明客户机或服务器的实施方式。
驱动程序包110可以通过并行安装程序115安装到计算设备105的硬盘驱动器上。计算设备105的并行安装程序115可以通过计算机可存取的介质(包括但不限于CD-ROM、闪存RAM或软盘)接收驱动程序包110(包括相关的驱动程序文件)。或者,计算设备105的并行安装程序115可以通过网络接收驱动程序包110和相关文件,作为从网站或中央服务器传送的操作系统升级或其它类型数据的一部分。
图2说明了驱动程序包110的例子。但是,按照本文实施例并行安装的驱动程序包或其它相关驱动程序文件不限于图2所述的。
外围设备的供应商通常提供驱动程序包110和相关驱动程序文件,支持外围设备在计算设备105上的功能。和驱动程序包110相关的驱动程序文件的例子包括设备设置信息文件(即,INF)210、至少一个驱动程序映像文件(即,“.sys”)215、驱动程序目录文件220、一个或多个辅助安装程序文件225和其它文件230(包括定制设备加载应用程序、设备图标、驱动程序库文件等)。
设备设置信息(INF)文件210包含操作系统设置组件所需的信息,用于加载外围设备的支持。
驱动程序映像文件215包含驱动程序的映像文件。驱动程序映像文件扩展名的非限制性例子是“.sys”,如Microsoft 
Figure C200510053191D0006144740QIETU
操作系统中所用的。当它们形成操作系统和外围设备(与计算设备105共同使用)之间的接口时,驱动程序映像文件常称为“驱动程序”。
驱动程序目录文件220包括对应于外围设备和/或驱动程序包供应商的数字签名。驱动程序目录文件220也可以包括供应商的公钥或者公钥标记,它和数字签名相结合或者附于其上。
辅助安装程序225是辅助安装和管理安装或连接到计算设备105上的外围设备的可选驱动程序文件。
图3显示了执行并行安装驱动程序文件所用处理流程的功能部分的实施方式。
在图3所示的实施例中,在外围设备通过硬连线或无线方式和计算设备105连接之前或之后,安装程序115将驱动程序包110接收到计算设备105中。如上所述,驱动程序包110可以从计算机可存取的介质如CD-ROM、闪存RAM、软盘等或通过网络在线接收。
安装程序115是和计算设备105相关的模块或组件,它们接收驱动程序包110并产生用于驱动程序包110的“强名字”305。强名字305是在至少计算设备105上驱动程序包110的唯一标识。而且,强名字305可用于唯一标记驱动程序包110,以及和驱动程序包110相关的任意一个驱动程序文件210、215、220、225和230。
安装程序115产生强名字305,作为驱动程序包110所含、有关或附带的数据的函数。更具体的是,可以产生强名字305,作为来自和驱动程序包110有关的驱动程序文件210、215、220、225和230的数据的任意组合的散列(hash)、任意这种数据的连接或者散列和连接的可变组合。例如,使用SHA1散列(20字节)的驱动程序目录文件220、至少一部分设备设置信息文件(即,INF)210和至少一种版本、日期、结构和语言的设备设置信息文件210可以产生强名字305。或者,强名字305可以包含在驱动程序包110中,作为INF文件的部分。这种信息可以包含驱动程序文件的版本或者制造商的名字。因此,“产生”强名字305仅仅是从驱动程序包中的合适文件提取强名字的功能。
所需的产生强名字305的效果或许是将驱动程序包110及其相关驱动程序文件反向与供应商关联起来,用于之后的标识和支持的目的。因此,强名字305还包含供应商名字、供应商公钥或公钥标记、驱动程序包版本和与驱动程序包110有关的其它驱动程序文件的任意组合的散列和/或连接。这种数据仅作为例子提供,决不是具体限制所涉及的实际驱动程序包。
在图3的例子中,安装程序115可使用强名字305来为驱动程序文件310分配驱动程序存储315中的唯一存储位置。所述唯一的存储位置可以分配给整个驱动程序包110,或者分配给和驱动程序包110相关的一个或多个驱动程序文件,这包括驱动程序包110本身或者设备设置信息文件210、驱动程序映像文件215、驱动程序目录文件220、辅助安装程序225或“其它”文件230的任意组合。
驱动程序存储315是和计算设备105有关的存储部件或模块,它包含许多子目录,各子目录分配给单独的驱动程序包或者至少一个相关的驱动程序文件,用于产生强名字305。下面参考图4详细说明驱动程序存储315的实施方式。
图3的例子还提到根据强名字305从驱动程序包110中的一个驱动程序文件提取的具体数据的存储。尤其是,所述例子显示了服务名320,它从驱动程序包110的设备设置信息(INF)文件210提取,被分配了存储名数据库325中的唯一存储位置。操作系统使用服务名和相关的参数,为外围设备建立通向支持外围设备的驱动程序文件的映像路径。下面参考图5进一步详细说明服务名数据库325的实施方式。
图4显示了驱动程序存储315的例子。驱动程序存储315可以是计算设备105有关的存储模块或组件。驱动程序存储315包括许多子目录,各自和用于各驱动程序包110或至少一个有关驱动程序文件的强名字305一致。因此,各子目录根据强名字305安装驱动程序包110或有关驱动程序文件。
通过并行安装相同命名的驱动程序包或有关驱动程序文件(包括驱动程序映像文件),驱动程序存储315能使系统减少驱动程序映像冲突的出现。供应商将相同的名字重复用于多种版本的驱动程序文件,尤其是驱动程序映像文件。或者,不同供应商常常将相同的名字用于不同外围设备相关的驱动程序文件(例如,驱动程序映像文件)。因此,根据唯一标识如强名字305来存储驱动程序包及其有关驱动程序文件的实施例能将相同命名的驱动程序文件并行安装到驱动程序存储315中。
图4的例子假设安装到图3所示驱动程序存储315中的驱动程序文件310是不同驱动程序包对应的驱动程序映像文件。更具体的是,在图4中,三种不同驱动程序映像文件(名为foo.sys)可以并行安装到驱动程序存储315的子目录405、410和415中。所述单独驱动程序映像文件(名为foo.sys)根据各驱动程序映像文件的各驱动程序包产生的强名字“strongname.1”、“strongname.2”和“strongname.3”安装到子目录405、410和415中。至于图4的例子,来自不同驱动程序包的相同命名的驱动程序文件可以并行安装到计算设备105中。而且,没有任何名为foo.sys的驱动程序映像文件会相互覆盖,不论它们安装到计算设备105的硬盘驱动器上的驱动程序存储315中的顺序。
图5显示了服务名数据库325的例子,用于辅助加载驱动程序文件。尤其是,当操作系统将用于外围设备的驱动程序映像文件从驱动程序存储315加载到计算设备105的存储器中时,避免了驱动冲突。尤其是,所述操作系统确定子目录405、410和415中哪一个已经安装了用于将计算设备105上的操作系统连接到外围设备上的合适驱动程序映像文件。
在图5中,服务名数据库325可以是和计算设备105有关的存储模块或组件。服务器数据库325识别和驱动程序包及其相关驱动程序文件的强名字一致的许多子目录。因此,服务名数据库325的各子目录存储了和驱动相关的参数,如服务关键字、映像路径或和安装在驱动程序存储315中的驱动程序包110或相关驱动程序文件相对应的其它信息。服务名数据库仅仅是将操作指向给定外围设备的具体驱动的模块例子。
服务名数据库325包括服务关键字、映像路径和与图4中的驱动程序映像文件相对应的其它服务有关的信息。子目录模块505、510和515各自存储服务关键字、映像路径和其它信息,对应于图4中具有强名字“strongname.1”、“strongname.2”和“strongname.3”的驱动程序映像文件。
例如,图5显示服务关键字“ServiceName.StrongName.1”505包括从给定强名字“strongname.1”的驱动程序包提取的服务名。映像路径“%DriverStore%\StrongName.1\Foo.Sys”510将外围设备程序编码指向在驱动程序存储315中的子目录%DriverStore%\StrongName.1405安装的驱动程序映像文件foo.sys(见图4)。所述参数“其它信息”包括和任意其它服务名有关的数据,它可用于支持以硬连线或无线方式和计算设备105共同使用的外围设备。因此,操作系统可以访问服务名数据库325,并通过合适的服务名参数指向驱动程序存储315中安装的合适驱动程序映像文件,将外围设备的程序编码连接到操作系统上。因此,操作系统可以将名为foo.sys的正确驱动程序映像文件加载到计算设备105的存储器中,操作所述外围设备。
在所述实施方式中,并行安装驱动程序包及其相关的驱动程序文件。但是,若另一驱动程序文件共享相同的名字的话,并不是所有的相关驱动程序文件(例如,驱动程序映像文件)从其各自的驱动程序存储位置加载到计算设备的存储器中。INF文件的另一实施方式包括命令操作系统的标志,从驱动程序存储315加载和驱动程序包相关的驱动程序文件。后者对应的编码例子如下所述:
#if_SETUPAPI_VER>=0 x 0600
//
//(AddService)并行安装服务
//
#define SPSVCINST_SIDE_BY_SIDE(0 x 00000800)
#endif//_SETUPAPI_VER>=0 x 0600。
标志“SPSVCINST_SIDE_BY_SIDE”(非限制性例子)确立了将来自安装在驱动程序存储315中的驱动程序包的驱动程序映像文件从驱动程序存储315加载到计算设备105的存储器上,操作外围设备。
图6说明了通用计算机环境600,它可以用于执行上述并行加载驱动程序文件的技术。所述计算机环境600仅是计算环境的例子,决不是要对计算机和网络结构的应用或功能范围进行限制。计算机环境600也不应解释为具有和计算机环境600例子中所述任意一个组件或组件的组合相关的任意相关性或要求。
计算机环境600包括呈计算机602形式的通用计算设备,它包括计算设备105。所述计算机602的部件包括但不限于一个或多个处理器或处理单元604、系统存储器606以及将各种系统组件(包括处理器604)耦合到系统存储器606上的系统总线608。
系统总线608表示了任意几种类型的总线结构中的一种或多种,包括存储器总线或存储控制器、外围总线、图像加速端口和使用任意各种总线结构的处理器或局部总线。通过例子,这种结构可以包括工业标准结构(ISA)总线、微通道结构(MCA)总线、增强ISA(EISA)总线、视频电子标准协会(VESA)局部总线、外围组件互连(PCI,已知为Mezzanine总线),PCI快速总线、通用串行总线(USB)、安全数据(SD)总线或者IEEE1394,即,火线总线)。
计算机602可以包括各种计算机可读介质。这种介质可以是任何计算机602可访问的介质,包括易失性和非易失性的介质、可移动或不可移动的介质。
系统存储器606包括呈易失性存储器形式的计算机可读介质,如随机存取存储器(RAM)610、和/或非易失性的存储器,如只读存储器(ROM)612或闪存RAM。基本输入/输出系统(BIOS)614包括例如在启动过程中帮助在计算机602中部件之间转送信息的基本例行程序,它们存储在ROM612或闪存RAM中。RAM610通常包含数据和/或程序模块,它们通过处理单元604直接存取和/或操作。
计算机602也包括其它可移动/不可移动的,易失性/非易失性计算机存储介质。例如,图6说明了从不可移动的非易失性的磁性介质(未显示)读取和写入的硬盘驱动器616、从可移动、非易失性磁盘620(例如,软盘)上读取和写入的磁盘驱动器618以及从可移动、非易失性光盘624如CD-ROM、DVD-ROM或其它光学介质上读取和/或写入的光盘驱动器622。硬盘驱动器616、磁盘驱动器618和光盘驱动器622通过一个或多个数据介质接口625各自连接到系统总线608上。或者,硬盘驱动器616、磁盘驱动器618和光盘驱动器622通过一个或多个接口(未显示)连接到系统总线608上。
所述磁盘驱动器及其相关的计算机可读介质提供了计算机可读指令、数据结构、程序模块和其它计算机602的数据的非易失性存储方式。虽然所述例子说明了硬盘驱动器616、可移动磁盘620和可移动光盘624,但是应意识到也可以使用其它类型的计算机可读介质(可存储计算机可存取的数据),如磁带或其它磁性存储设备、闪存卡、CD-ROM、数字通用盘(DVD)或其它光学存储器、随机存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)等来执行示例计算系统和环境。
可以将许多程序模块存储到硬盘616、磁盘620、光盘624、ROM612和/或RAM610上,例如,操作系统626、一个或多个应用程序628、其它程序模块630和程序数据632。所述操作系统626、一个或多个应用程序628、其它程序模块630和程序数据632各自(或其一些组合)可以实现支持所述分布式文件系统的全部或部分驻留组件。
用户可以通过输入设备如键盘634和指向设备636(例如,鼠标)将命令和信息输入计算机602中。其它输入设备638(具体未显示)包括麦克风、操纵杆、游戏垫、圆盘式卫星电视天线、串行端口、扫描仪等。这些和其它输入设备通过输入/输出接口640和处理单元604连接,所述接口640耦合到系统总线608上,也可以通过其它接口和总线结构连接,如并行端口、游戏端口或通用串行总线(USB)。
监视器642或其它类型的显示设备也可以通过接口如视频适配器644连接到系统总线608上。除了监视器642以外,其它输入外围设备包括组件如扬声器(未显示)和打印机646,它们可以通过I/O接口604连接到计算机602上。
通过逻辑连接到一个或多个远程计算机,如远程计算设备648上,计算机602可以在网络环境下操作。例如,远程计算设备648可以是PC、便携式计算机、服务器、路由器、网络计算机、对等设备或其它普通网络节点等。远程计算设备648描述为便携式计算机,它可以包括本文所述相对于计算机602的许多或所有元件和特征。或者,计算机602也可以在非网络环境中操作。
计算机602和远程计算机648之间的逻辑连接描述为局域网(LAN)650和广域网(WAN)652。这种网络环境常用于办公室、企业式计算机网络、企业内部互联网和因特网。
当在LAN网络环境中使用时,计算机602通过网络接口或适配器654连接到局域网650中。当在WAN网络环境中使用时,计算机602通常包括调制解调器656或其它在大网络652上建立连接的装置。调制解调器656可以置于计算机602的外部或内部,通过I/O接口640或其它合适机制连接到系统总线608上。应意识到,所述网络连接是例子,可以使用其它在计算机602和648之间建立至少一种通信连接的装置。
在网络环境中,如计算环境600所示,相对于计算机602或其部分所述的程序模块可以存储在远程存储器设备中。例如,远程应用程序658驻留在远程计算机648的存储器设备中。为了进行说明,本文将应用或程序和其它可执行的程序组件,诸如操作系统描述为离散的程序块,虽然认为这种程序和组件在各时间下驻留在计算设备602的不同存储组件中,并由计算机至少一个数据处理器执行。
在计算机可执行指令的一般背景中说明了各种模块和技术,如程序模块,由一个或多个计算机或其它设备执行。通常,程序模块包括例行程序、程序、对象、组件、数据结构等,用于执行具体的任务,或实现具体的抽象数据类型。通常,可以按照各种实施方式中所希望的,组合或分布程序模块的功能。
这些模块和技术的实现可以存储在计算机可读介质中,或者在一些计算机可读介质形式之间传送。计算机可读介质可以是任何可用的介质,它们可被计算机访问。例如,计算机可读介质包括“计算机存储介质”和“通信介质”,但不限于这些。
“计算机存储介质”包括易失性和非易失性的,可移动和不可移动的介质,可以用任何存储信息如计算机可读指令、数据结构、程序模块或其它数据的方法或技术实现。
计算机存储介质包括(但不限于)RAM、ROM、EEPROM、闪存RAM或其它存储技术、CD-ROM、数字通用盘(DVD)或其它光学存储器、磁带盒、磁带、磁盘存储或其它磁存储设备,或任何可用于存储所需的信息并被计算机访问的其它介质。
“通信介质”通常包括计算机可读指令、数据结构、程序模块或调制数据信号中的其它数据,如载波或其它传送机制。通信介质也包括任何信息传输介质。术语“调制数据信号”是指以在信号中编码信息的方式设置或改变其一个或多个特征的信号。作为非限制性的例子,通信介质包括有线介质,如有线网络或直接有线连接,以及无线介质,如声波、RF、红外线和其它无线介质。在计算机可读的介质范围内包括上述的任意组合。
虽然已经说明了本发明的实施方式和应用,但是应理解本发明并不限制于上述精确的构型和资源。在不背离权利要求所限定的发明范围的条件下,可以在本发明的排列、操作以及方法和系统的细节上作出对本领域那些技术人员来说显而易见的各种修改、改变和变化。

Claims (38)

1.一种用于安装驱动程序的方法,所述方法包括:
接收驱动程序包;
产生用于驱动程序包的唯一标识;以及
根据唯一标识为驱动程序包相关的驱动程序文件分配存储位置。
2.如权利要求1所述的方法,其特征在于,
所述驱动程序文件包括驱动程序映像文件,
所述方法还包括从存储位置将驱动程序映像文件加载到存储器中。
3.如权利要求1所述的方法,其特征在于,所述驱动程序文件包括驱动程序映像文件和包含服务名的设备设置信息文件中的至少一个。
4.如权利要求1所述的方法,其特征在于,产生用于驱动程序包的唯一标识包括将驱动程序包有关的至少一个驱动程序文件散列。
5.如权利要求4所述的方法,其特征在于,至少一个驱动程序文件包含驱动程序目录文件、设置信息文件和驱动程序映像文件中任意一个。
6.如权利要求4所述的方法,其特征在于,产生用于驱动程序包的唯一标识包括将至少一个驱动程序文件的散列连接到驱动程序目录文件和来自驱动程序包的公钥中的至少一个。
7.如权利要求1所述的方法,其特征在于,按照唯一标识将存储位置分配给来自驱动程序包的驱动程序文件,包括将驱动程序包有关的至少一个驱动程序文件分配到驱动程序存储的子目录中。
8.如权利要求1所述的方法,其特征在于,按照唯一标识将存储位置分配给来自驱动程序包的数据,包括将服务名参数分配给服务名数据库。
9.一种用于安装驱动程序的方法,所述方法包括:
产生相同命名的驱动程序文件所对应的各驱动程序包的唯一标识;以及
根据唯一标识将各驱动程序包相关的驱动程序文件分配给公共存储中的子目录。
10.如权利要求9所述的方法,其特征在于,
所述驱动程序文件包括驱动程序,以及
所述方法还包括从子目录之一将驱动程序加载到存储器中。
11.如权利要求9所述的方法,其特征在于,所述驱动程序文件包括驱动程序映像文件和包含服务名的设备设置信息文件中的至少一个。
12.如权利要求9所述的方法,其特征在于,产生相同命名的驱动程序文件所对应的各驱动程序包的唯一标识包括将驱动程序包有关的至少一个驱动程序文件散列。
13.如权利要求12所述的方法,其特征在于,产生相同命名的驱动程序文件所对应的各驱动程序包的唯一标识包括将供应商的数字签名添加到所述散列上。
14.如权利要求9所述的方法,其特征在于,将来自各驱动程序包的驱动程序文件分配给公共存储中的子目录避免了重写之前版本的相同命名的驱动程序文件。
15.如权利要求11所述的方法,其特征在于,所述分配包括根据各驱动程序映像文件对应的驱动程序包所用的唯一标识将来自各驱动程序包的驱动程序文件分配到驱动程序存储的子目录中。
16.如权利要求11所述的方法,其特征在于,所述分配包括将来自各驱动程序包的服务名分配到服务名数据库中,所述服务名数据库包括服务关键字和对应驱动程序文件之一的映像路径。
17.一种用于安装驱动程序的设备:
用于产生驱动程序包的唯一标识的装置,
用于根据唯一标识为驱动程序包相关的驱动程序文件分配存储位置的装置。
18.如权利要求17所述的设备,其特征在于,
所述驱动程序文件包括驱动程序映像文件,以及
所述设备还包括用于从存储位置将驱动程序加载到存储器中的装置。
19.如权利要求17所述的设备,其特征在于,所述唯一标识是驱动程序包有关的至少一个驱动程序文件的散列。
20.如权利要求17所述的设备,其特征在于,所述唯一标识结合了驱动程序目录文件和对应于驱动程序包供应商的公钥中的至少一个。
21.如权利要求17所述的设备,其特征在于,所述驱动程序文件是驱动程序映像文件和辅助安装程序中的至少一个,且所述存储位置是驱动程序存储子目录。
22.如权利要求17所述的设备,其特征在于,所述驱动程序文件是服务名,且存储位置是存储相应服务关键字和映像路径的数据库。
23.如权利要求17所述的设备,其特征在于,所述用于为驱动程序包有关的驱动程序文件分配存储位置的装置制止了分配到之前分配的存储位置。
24.一种用于安装驱动程序的设备,它包括:
为驱动程序包产生唯一标识的安装程序;以及
用于根据唯一标识安装驱动程序包相关的文件的存储器。
25.如权利要求24所述的设备,其特征在于,
和驱动程序包有关的文件包括驱动程序,以及
所述设备还包括将驱动程序加载到存储器中的加载程序。
26.如权利要求24所述的设备,其特征在于,所述安装程序产生唯一标识,作为驱动程序包有关的至少一个驱动程序文件的散列函数。
27.如权利要求24所述的设备,其特征在于,所述安装程序通过结合和驱动程序包有关的数字签名和公钥中的至少一个来产生唯一标识。
28.如权利要求24所述的设备,其特征在于,所述存储器包括对应于唯一标识的子目录。
29.如权利要求28所述的设备,其特征在于,所述存储器是驱动程序存储,且所述文件包括驱动程序映像文件和辅助安装程序中的至少一个。
30.如权利要求28所述的设备,其特征在于,所述存储器是数据库,且所述文件包括具有相应服务关键字和映像路径的服务名。
31.一种用于安装驱动程序的设备,它包括:
用于产生驱动程序包用唯一标识的装置,以及
根据唯一标识存储驱动程序包有关的文件的装置。
32.如权利要求31所述的设备,其特征在于,
和驱动程序包有关的文件包括驱动程序映像文件,以及
所述设备还包括将驱动程序映像文件加载到存储器中的装置。
33.如权利要求31所述的设备,其特征在于,所述产生装置将来自驱动程序包的至少一个驱动程序文件散列。
34.如权利要求31所述的设备,其特征在于,所述产生装置将驱动程序包有关的数字签名加入唯一标识中。
35.如权利要求31所述的设备,其特征在于,所述存储装置具有对应唯一标识的子目录。
36.如权利要求34所述的设备,其特征在于,所述存储装置具有存储驱动程序包、驱动程序映像文件和辅助安装程序中至少一种的子目录。
37.如权利要求34所述的设备,其特征在于,所述存储装置存储具有对应服务关键字和映像路径的服务名。
38.如权利要求34所述的设备,其特征在于,所述存储装置存储从操作系统到特定设备的驱动程序文件的指针。
CNB2005100531919A 2004-03-02 2005-03-02 安装并行驱动程序的方法和设备 Expired - Fee Related CN100461097C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/791,586 2004-03-02
US10/791,586 US7216344B2 (en) 2004-03-02 2004-03-02 Side-by-side drivers

Publications (2)

Publication Number Publication Date
CN1667574A CN1667574A (zh) 2005-09-14
CN100461097C true CN100461097C (zh) 2009-02-11

Family

ID=34838858

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100531919A Expired - Fee Related CN100461097C (zh) 2004-03-02 2005-03-02 安装并行驱动程序的方法和设备

Country Status (5)

Country Link
US (1) US7216344B2 (zh)
EP (1) EP1577766A3 (zh)
JP (1) JP4286798B2 (zh)
KR (1) KR100988961B1 (zh)
CN (1) CN100461097C (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7251812B1 (en) * 2001-10-31 2007-07-31 Microsoft Corporation Dynamic software update
US7293272B1 (en) 2004-02-26 2007-11-06 Veritas Operating Corporation Device driver processing for automated system restores
US7523089B2 (en) * 2005-09-30 2009-04-21 Microsoft Corporation Offline servicing of image files
JP2008146601A (ja) * 2006-12-13 2008-06-26 Canon Inc 情報処理装置及び情報処理方法
JP4710837B2 (ja) * 2007-01-22 2011-06-29 富士ゼロックス株式会社 画像処理装置及びプログラム
US7996831B2 (en) * 2007-02-19 2011-08-09 Kabushiki Kaisha Toshiba Office equipment and program installation support method
US20090307680A1 (en) * 2008-06-06 2009-12-10 Microsoft Corporation Side-by-side driver installation
CN103294617A (zh) * 2012-02-29 2013-09-11 鸿富锦精密工业(深圳)有限公司 扩展电子装置的设备驱动的方法及便携式智能电子装置
US8972973B2 (en) 2012-06-27 2015-03-03 Microsoft Technology Licensing, Llc Firmware update discovery and distribution
US9110761B2 (en) 2012-06-27 2015-08-18 Microsoft Technology Licensing, Llc Resource data structures for firmware updates
US9235404B2 (en) 2012-06-27 2016-01-12 Microsoft Technology Licensing, Llc Firmware update system
US9032423B2 (en) 2013-06-21 2015-05-12 Microsoft Technology Licensing, Llc Dependency based configuration package activation
US20160070557A1 (en) * 2014-09-09 2016-03-10 Tsuyoshi Yamada Information processing apparatus, information processing method, and information processing system
CN104360889B (zh) * 2014-12-08 2017-11-10 中科创达软件股份有限公司 一种驱动程序加载方法及装置
KR20170010574A (ko) 2015-07-20 2017-02-01 삼성전자주식회사 정보처리장치, 영상처리장치 및 그들의 제어방법
US11223537B1 (en) 2016-08-17 2022-01-11 Veritas Technologies Llc Executing custom scripts from the host during disaster recovery
CN108536465A (zh) * 2017-12-31 2018-09-14 广州用能互联网有限公司 一种电网监测硬件设备驱动程序配置及安装方法
US10990371B2 (en) * 2018-01-17 2021-04-27 Crowdstrike, Inc. Device driver non-volatile backing-store installation
US11423186B2 (en) 2018-01-17 2022-08-23 Crowdstrike, Inc. Verified inter-module communications interface

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002366501A (ja) * 2001-06-11 2002-12-20 Murata Mfg Co Ltd 周辺デバイス、コンピュータシステム、及びインストーラプログラム
US20030160989A1 (en) * 2002-02-25 2003-08-28 Xerox Corporation System for installing a printer driver on a network

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5802365A (en) * 1995-05-05 1998-09-01 Apple Computer, Inc. Dynamic device matching using driver candidate lists
US5978912A (en) * 1997-03-20 1999-11-02 Phoenix Technologies Limited Network enhanced BIOS enabling remote management of a computer without a functioning operating system
JP2003503793A (ja) * 1999-06-30 2003-01-28 マイクロソフト コーポレイション 共用システムファイルを保護するシステム及び方法
US6976252B2 (en) * 2002-05-17 2005-12-13 Hewlett-Packard Development Company, L.P. Systems and methods for driver installation
US7334099B2 (en) * 2002-06-28 2008-02-19 Microsoft Corporation Method and system for managing image files
US7457831B2 (en) * 2003-03-31 2008-11-25 Microsoft Corporation Peripheral device driver maintenance scheme for networked peripheral device clients

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002366501A (ja) * 2001-06-11 2002-12-20 Murata Mfg Co Ltd 周辺デバイス、コンピュータシステム、及びインストーラプログラム
US20030160989A1 (en) * 2002-02-25 2003-08-28 Xerox Corporation System for installing a printer driver on a network

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
The End of DLL Hell. Rick Anderson,全部,Microsoft Corporation(http://msdn2.microsoft.com). 2000
The End of DLL Hell. Rick Anderson,全部,Microsoft Corporation(http://msdn2.microsoft.com). 2000 *

Also Published As

Publication number Publication date
EP1577766A2 (en) 2005-09-21
CN1667574A (zh) 2005-09-14
KR100988961B1 (ko) 2010-10-20
EP1577766A3 (en) 2007-06-27
JP2005251204A (ja) 2005-09-15
KR20060043307A (ko) 2006-05-15
US7216344B2 (en) 2007-05-08
US20050197996A1 (en) 2005-09-08
JP4286798B2 (ja) 2009-07-01

Similar Documents

Publication Publication Date Title
CN100461097C (zh) 安装并行驱动程序的方法和设备
US10419289B2 (en) System and method for configuration management service
US9928041B2 (en) Managing a software appliance
US7779055B2 (en) Device memory management during electronic file updating
EP2021937B1 (en) Techniques to perform gradual upgrades
CN101453367B (zh) 软件部署方法和系统及软件部署服务器和用户服务器
CN101179430B (zh) 一种分布式系统软件版本更新控制装置及方法
CN101788892B (zh) 标签打印系统
US20080109801A1 (en) Dynamically generating installable software artifacts in a canonical form
CN101821729B (zh) 应用程序的远程自动供应和发布
US20070282801A1 (en) Dynamically creating and executing an application lifecycle management operation
CN104115446A (zh) 子设备发现和管理
CN111857801B (zh) 一种移动应用的构建方法
CN106569863B (zh) 基于资源和代码模块化的安卓app资源更新和修复的方法
US20120096453A1 (en) Software Package Management Mechanism
CN112835568A (zh) 一种项目构建方法和装置
CN101436124A (zh) 一种嵌入式设备kjava应用程序管理系统及方法
CN101326515A (zh) 元数据驱动的应用程序部署
CN1269044C (zh) 一种更新存储在非易失性存储器中的图象的设备和方法
CN104793998A (zh) 终端系统资源管理方法及装置
CN1218246C (zh) 一种智能网业务管理接入点自动升级的方法
US20130067452A1 (en) Management server, host device, and application management method
JPH11312080A (ja) 計算機ネットワークシステムおよびプログラム更新方法
KR100509753B1 (ko) 데스크탑컴퓨터와휴대용단말기의인터페이스방법
CN102339231A (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
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

Granted publication date: 20090211

Termination date: 20190302

CF01 Termination of patent right due to non-payment of annual fee