專利名稱:并行驅動程序的制作方法
技術領域:
本發明涉及同時安裝和加載的多個相同命名的驅動程序。
背景技術:
驅動程序映像文件(或“驅動程序”)是將計算設備所用操作系統連接到外圍設備的例行程序。驅動程序映像文件包括外圍設備所用的機器語言,用于執行相應程序碼所請求的功能。對于能和計算設備協同使用的外圍設備,在所述外圍設備能執行其預期功能之前,要將包含相關驅動程序文件的驅動程序包(包括驅動程序映像文件)安裝到計算設備的硬盤驅動器上。
安裝到計算設備的硬盤驅動器上的驅動程序包的數量隨計算設備的操作系統所支持的外圍設備數而增多。尤其是對大多數和計算設備聯合使用的每一個外圍設備,將驅動程序包的相當穩定的數據流安裝到計算設備的硬盤驅動器上,用于代替或更新現有的驅動程序包或者和現有驅動程序包相關的驅動程序文件。
不幸的是,外圍設備和相應驅動程序包的供應商常常使用相同名字的和上述驅動程序包有關的新更新版本的驅動程序文件。當把新更新的驅動程序包或者相關驅動程序文件安裝到計算設備的硬盤驅動器上時,它們通常會覆蓋之前安裝的驅動程序包(它具有與之相關的同名驅動程序文件),而不論是否是和相同外圍設備有關的同名驅動程序文件。因此,重復使用驅動程序文件名導致出現本領域技術人員所稱的“驅動程序沖突”。驅動程序文件沖突的結果是使用具體驅動程序文件的外圍設備實際上調用了和所需驅動程序文件名字相同的另一驅動程序文件,或者外圍設備調用不再存在的驅動程序文件,這是因為它已經被之后安裝的具有相同名字的驅動程序文件覆蓋了。
Microsoft Corporation of Redmond,WA的研究員認為目前版本的Windows操作系統可以支持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 Windows操作系統中所用的。當它們形成操作系統和外圍設備(與計算設備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.1 405安裝的驅動程序映像文件foo.sys(見圖4)。所述參數“其它信息”包括和任意其它服務名有關的數據,它可用于支持以硬連線或無線方式和計算設備105共同使用的外圍設備。因此,操作系統可以訪問服務名數據庫325,并通過合適的服務名參數指向驅動程序存儲315中安裝的合適驅動程序映像文件,將外圍設備的程序編碼連接到操作系統上。因此,操作系統可以將名為foo.sys的正確驅動程序映像文件加載到計算設備105的存儲器中,操作所述外圍設備。
在所述實施方式中,并行安裝驅動程序包及其相關的驅動程序文件。但是,若另一驅動程序文件共享相同的名字的話,并不是所有的相關驅動程序文件(例如,驅動程序映像文件)從其各自的驅動程序存儲位置加載到計算設備的存儲器中。INF文件的另一實施方式包括命令操作系統的標志,從驅動程序存儲315加載和驅動程序包相關的驅動程序文件。后者對應的編碼例子如下所述#if SETUPAPI VER>=0x0600////(AddService)并行安裝服務
//#define SPSVCINST_SIDE_BY_SIDE(0x00000800)#endif//_SETUPAPI_VER>=0x0600。
標志“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、紅外線和其它無線介質。在計算機可讀的介質范圍內包括上述的任意組合。
雖然已經說明了本發明的實施方式和應用,但是應理解本發明并不限制于上述精確的構型和資源。在不背離權利要求所限定的發明范圍的條件下,可以在本發明的排列、操作以及方法和系統的細節上作出對本領域那些技術人員來說顯而易見的各種修改、改變和變化。
權利要求
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所述的設備,其特征在于,所述存儲裝置存儲從操作系統到具體設備的驅動程序文件的指針。
全文摘要
避免之后版本或其它相同命名的驅動程序重寫驅動程序的方法和系統,它包括為各合格的驅動程序包產生唯一標識。然后,根據唯一標識,將來自驅動程序包的驅動程序文件或整個驅動程序包本身安裝到公共存儲器中的子目錄位置。這樣,就可以并行安裝和加載具有相同名字的多個驅動程序包和驅動程序文件。
文檔編號G06F9/445GK1667574SQ20051005319
公開日2005年9月14日 申請日期2005年3月2日 優先權日2004年3月2日
發明者J·G·卡瓦拉瑞斯, J·亨特, J·T·科布, L·D·麥克米歇爾, S·喬德 申請人:微軟公司