TW201445448A - 目標裝置及非現存裝置之驅動程式安裝 - Google Patents

目標裝置及非現存裝置之驅動程式安裝 Download PDF

Info

Publication number
TW201445448A
TW201445448A TW102132223A TW102132223A TW201445448A TW 201445448 A TW201445448 A TW 201445448A TW 102132223 A TW102132223 A TW 102132223A TW 102132223 A TW102132223 A TW 102132223A TW 201445448 A TW201445448 A TW 201445448A
Authority
TW
Taiwan
Prior art keywords
driver
computer
unconnected
drivers
update
Prior art date
Application number
TW102132223A
Other languages
English (en)
Inventor
Mark Henriksen Phaedrus
Faisal Ansari
Jordan Cohen
James Cavalaris
Adam Lenart
Ullattil Shaji
Rajiv Poonamalli
Sharad Goel
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 TW201445448A publication Critical patent/TW201445448A/zh

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

目標裝置及非現存裝置之驅動程式安裝
提出之發明係關於一種目標裝置及非現存裝置之驅動程式安裝。
電腦裝置一般包含各種有時可以被更新的機能。舉例而言,一個電腦裝置的一個元件裝置(例如繪圖卡、資料儲存裝置或輸入裝置等等)會關聯到能致動此元件裝置以在電腦裝置中發揮功能的驅動程式。與元件裝置關聯的製造商等存在可發行對於裝置驅動程式的更新,因而能修復軟體上的錯誤,解決相容性的問題,或是增進元件裝置的機能等等。更新可被安裝於電腦裝置以取代或擴充之前版本的裝置驅動程式。
此【發明內容】用以以簡化的形式介紹精選概念,且將於下文【實施方式】中進一步描述。此【發明內容】不用於描述所主張標的之關鍵特徵或基本特徵,亦不用於輔助決定所主張標的之範疇。
此處提出用以安裝或更新元件裝置的驅動程式,以 改善自動起始、效能及/或完成這些程序的技術。依據這些技術,當可連接裝置的驅動程式或是更新是可獲得(available)的時候,作業系統可在此裝置為非現存(例如未連接於電腦裝置)時取得並安裝驅動程式。在某些例子中,驅動程式也許是被設定成可從網路可存取更新服務來獲得,其中網路可存取更新服務中存有此裝置的驅動程式。作業環境也可以以用於之前有連接過的裝置的更新驅動程式取代目前的驅動程式,即使此裝置現在未連接於電腦裝置;或是對之前未連接於電腦裝置的裝置安裝驅動程式。以此方式,作業環境可在元件裝置連接上電腦裝置時,擷取(retrieve)用於此裝置的驅動程式和更新而節省使用者的心力並增進使用者經驗。
於某些實施例中,用以管理可連接於電腦裝置之裝置的驅動程式的一或多個方法是可被考量的。這些方法可以包含但不限於包含以下步驟:請求用於一或多個可連接於電腦裝置的裝置之一或多個裝置驅動程式;及收到作為回覆的驅動程式的更新集。驅動程式的更新集可包含用於裝置的一或多個驅動程式,此裝置在請求時未與電腦裝置連接。這些方法另可包含安裝用於未連接於電腦裝置的裝置之驅動程式;及當未連接裝置被電腦裝置刪除時,組態設定此驅動程式以啟動之步驟。
一種儲存用以管理裝置驅動程式的指令的電腦可讀儲存媒體也被提供。當被執行時,指令可令電腦裝置執行一方法,此方法包含以下步驟。從更新服務請求用於可連接於電腦裝置的與一或多個裝置之一或多個驅動程式。從更新服 務請求驅動程式的步驟可包括編譯儲存於電腦裝置中裝置驅動程式的清單之步驟。驅動程式的清單可包含用於一或多個在請求時未與電腦裝置連接的裝置的驅動程式,用於一或多個從未與電腦裝置連接過的裝置的驅動程式,以及這些驅動程式的驅動程式版本資訊。一或多個電腦裝置屬性可被判斷,且連同裝置驅動程式的清單被傳送給更新服務。作為回覆,可收到裝置驅動程式的更新集,且裝置驅動程式的更新集可包含用於未連接裝置的至少一個驅動程式。此方法亦可包含安裝用於未連接於電腦裝置的裝置之驅動程式;以及當未連接裝置被電腦裝置刪除時,組態設定用於未連接裝置的驅動程式以啟動之步驟。
附加的一或多個用以管理裝置驅動程式的方法也是可被考量的。這些方法可包含但不限於包含接收請求以更新裝置驅動程式,此請求係對於可連接於電腦裝置的一或多個裝置之步驟。與此要求一併地,可接收電腦裝置的系統規格。系統規格可包含關於用於未連接裝置的驅動程式的資訊。此方法也可比較系統規格與儲存的驅動程式資訊,並獲得驅動程式的更新集,驅動程式的更新集包含用於未連接裝置的驅動程式。此方法另可包含判斷裝置驅動程式是否對於之前未與電腦裝置連接過的裝置而言是可獲得的之步驟。而此判斷可依據包含於系統規格的電腦裝置屬性。若有驅動程式對於之前未與電腦裝置連接過的裝置而言是可獲得的,此方法可將此驅動程式加入更新集,並提供更新集給電腦裝置。
100‧‧‧例示環境
102‧‧‧電腦裝置
104‧‧‧裝置
105‧‧‧裝置
106‧‧‧裝置
104a-106a‧‧‧驅動程式
104b-106b‧‧‧驅動程式
104c-106c‧‧‧驅動程式
108‧‧‧裝置模組
110‧‧‧驅動程式管理器
112‧‧‧系統規格建立器
114‧‧‧資料儲存器
116‧‧‧裝置管理器
118‧‧‧裝置紀錄器
120‧‧‧本地端驅動程式儲存器
122‧‧‧更新服務
124‧‧‧驅動程式儲存器
126‧‧‧資料儲存器
128‧‧‧驅動程式發布者
130‧‧‧已連接裝置的驅動程式的清單
132‧‧‧未連接裝置的驅動程式的清單
134‧‧‧目標裝置的驅動程式的清單
136‧‧‧系統規格
138‧‧‧更新集
140‧‧‧驅動程式1
142‧‧‧驅動程式4
144‧‧‧驅動程式7
146‧‧‧驅動程式1
148‧‧‧驅動程式4
150‧‧‧驅動程式10
1601‧‧‧電腦裝置
1602‧‧‧處理單元
1604‧‧‧系統記憶體
1605‧‧‧作業系統
1606‧‧‧程式模組
1608‧‧‧虛線
1609‧‧‧可移除式儲存器
1610‧‧‧不可移除式儲存器
1612‧‧‧輸入裝置
1614‧‧‧輸出裝置
1616‧‧‧通訊連線
1618‧‧‧其他電腦裝置
1620‧‧‧軟體應用程式
1700‧‧‧行動電腦裝置
1702‧‧‧系統
1705‧‧‧顯示器
1710‧‧‧輸入鍵
1715‧‧‧側邊輸入元件
1717‧‧‧應用程式
1720‧‧‧發光二極體(LED)
1725‧‧‧音頻轉換器
1730‧‧‧周邊裝置埠
1735‧‧‧選擇性的小型鍵盤
1760‧‧‧處理器
1762‧‧‧記憶體
1764‧‧‧作業系統
1768‧‧‧儲存器
1770‧‧‧電源供應器
1772‧‧‧射頻介面層
1774‧‧‧音訊介面
1776‧‧‧視訊介面
1810‧‧‧平板電腦裝置
1814‧‧‧目錄服務
1815‧‧‧網路
1816‧‧‧儲存器
1820‧‧‧伺服器
1824‧‧‧入口網站
1826‧‧‧信箱服務
1828‧‧‧即時訊息商店
1830‧‧‧社群網路服務
詳細描述係參閱隨附圖式來描述。在描述及圖式之不同例子中,可使用相同的元件符號指示類似或相同的項。
第1A圖係為作用於採用本案討論技術的例示環境之圖式。
第1B圖係為作用於採用本案討論技術的另一例示環境之圖式。
第2圖係為描述關於一或多個實施例的方法的範例流程圖。
第3圖係為描述關於一或多個實施例的方法的範例流程圖。
第4圖係為描述關於一或多個實施例的方法的範例流程圖。
第5圖係為描述關於一或多個實施例的方法的範例流程圖。
第6圖係為描述關於一或多個實施例的方法的範例流程圖。
第7圖係為描述關於一或多個實施例的方法的範例流程圖。
第8圖係為描述關於一或多個實施例的方法的範例流程圖。
第9圖係為描述關於一或多個實施例的方法的範例流程圖。
第10圖係為描述關於一或多個實施例的方法的範例流程圖。
第11圖係為描述關於一或多個實施例的方法的範例流程圖。
第12圖係為描述關於一或多個實施例的方法的範例流程圖。
第13圖係為描述關於一或多個實施例的方法的範例流程圖。
第14圖係為描述關於一或多個實施例的方法的範例流程圖。
第15圖係為描述關於一或多個實施例的方法的範例流程圖。
第16圖係為描繪可被實施的本發明的實施例的電腦裝置的物理元件之例的方塊圖。
第17A圖和第17B圖係為可被實施的本發明的實施例的行動電腦裝置的簡化方塊圖。
第18圖係為可被實施的本發明的實施例的分散式電腦系統的簡化方塊圖。
本揭露之實施例提供用以管理可連接於電腦裝置的元件裝置的裝置驅動程式的技術。本揭露之執行提供在電腦裝置的驅動程式無縫安裝及更新。驅動程式和更新特別是可透過線上服務、第三方伺服器、驅動程式供應伺服器或作業系統供應伺服器提供。在電腦領域中,很多情境中透過有線或無線連接等方式,與附加於例如電腦等電腦裝置的元件裝置有所關聯。舉例而言,一個傳統的電腦裝置能利用鍵盤、 滑鼠、顯示裝置、音效卡、匯流排控制器、數位攝影機等視訊擷取裝置、揚聲器、顯示轉接器、音訊轉接器、儲存裝置、網路轉接器、麥克風、通用序列匯流排裝置、火線(firewire,IEEE 1394)控制器及裝置、光碟片(Digital Versatile Disk,DVD)驅動裝置、網路卡、數位用戶迴路(Digital Subscriber Loop,DSL)數據機、纜線(cable)數據機、螢幕、印表機、傳真機、掃描儀等裝置。為了要能夠提供對於這些元件裝置的能力的存取,一個軟體元件,通常是作為驅動程式,可被安裝於電腦以作為介面,使得應用程式和作業環境可與元件裝置互動進而操作元件裝置。舉例而言,此軟體可依應用程式或作業環境的請求去存取輸入給元件裝置(例如能力調用或資料傳送),也可中繼資料給此元件裝置。此軟體亦可致能元件裝置的輸出(例如狀態報告、從使用者輸入裝置所得到的使用者輸入或是以相機擷取的視訊)以讓輸出被顯示或被提供給各種應用程式及/或作業環境。此軟體可組態設定元件裝置以令元件裝置與其他裝置通訊,也可調解元件裝置於作業環境(例如作業系統)之中的安裝及/或從作業環境中對於裝置的移除。
鑒於用於裝置之可獲得的驅動程式的範圍,作業環境可被組態設定為用各種方式去管理用於裝置的驅動程式之安裝。通常,一個驅動程式會被加入系統;舉例而言,不論使用者在何時加入一個新硬體於機器中。舉例而言,使用者可在安裝裝置時提供驅動程式,如藉由提供一同被封裝於此裝置的可移除式媒體,其中此裝置包含有用於驅動程式的安裝封裝。或者是,當一個裝置是第一次被連接上電腦時,作 業環境可執行連串的搜尋和選擇以識別出要被安裝的驅動程式。在某些實施例中,作業環境可從能透過網際網路或區網(Local Area Network,LAN)存取的驅動程式程式庫(library)或伺服器,要求用於此裝置的驅動程式;可透過網路接收驅動程式;且可將驅動程式安裝於作業環境之中。於某些實例中,作業環境可從裝置直接獲得驅動程式,此裝置可儲存自身的驅動程式並能夠在進行安裝時提供驅動程式給作業環境,即使目前還沒有此種驅動程式被安裝(例如可利用隨插即用(plug-and-play,PnP)的技術)。一般而言,隨插即用是一種便於辨別(recognition)和識別(identification)插入於系統的硬體設備之方法論,因此便於裝置於作業系統中的自動安裝和組態設定。於其他實例中,作業環境可以是與驅動程式一併被預載給裝置,或是可包含預設驅動程式集,其中預設驅動程式集包括用於一般種類的裝置的多個預設驅動程式。驅動程式也可被更新以修復驅動程式中的問題/錯誤,增加效能,及/或增加額外的裝置特徵。然而,裝置驅動程式一般只有在裝置被連接於電腦裝置時會被更新。
如同於此的討論,驅動程式可被各種元件裝置所管理。本揭露的系統和方法可合併用戶端/伺服器基礎架構,此架構允許支援元件裝置,不論元件裝置是否連接於電腦裝置。特別是,揭露的實施例提供作業環境對於裝置去刪除、下載及安裝驅動程式的能力;其中裝置是之前有連接過電腦,或未曾連接過電腦,即使這些裝置未在偵測、下載及/或安裝驅動程式或更新時連接到電腦。舉例而言,作業環境可 被組態設定成去確認是否要在安裝後更新驅動程式以用更新後的驅動程式取代目前的驅動程式,或是去確認之前未與電腦裝置連接過的裝置的驅動程式(例如因為裝置是新發售且已知可與電腦裝置連接的產品)。在某些實例之中,包含一或多個驅動程式及/或驅動程式更新的更新集可以能是經由網路連線從外部來源(例如製造商或更新服務等)獲得。為了防止在需要驅動程式的裝置連接時在使用上有延遲或失敗,作業環境可被組態設定成當網路連線是可獲得的時候擷取驅動程式,儲存擷取到的驅動程式直到有對應裝置被連接,且依據裝置的連接來啟動此裝置。如在此所用的,「連接」係指裝置是可通訊地被連接,無論實體上的連接是否存在。
在接下來的討論之中,描述到一個例式的作業環境的和一個例示情形,這些例子是可實行利用此處所述之技術。包括討論之技術的例示程序也有被描述到,並可被實行於例示環境和其他環境。特別是,即使本揭露描述用戶端及伺服器組態設定,本揭露的系統及方法可應用於在兩個或兩個以上任意的電腦環境中的通訊,而此種通訊須被認為是本揭露的範圍之中。尤其是,在傳統的驅動程式傳送機制難以支援新的或更新過的驅動程式時,本揭露也可應用於行動及無線裝置。在此描述的特殊的實施例應在各方面上都是說明性的而非限制性的。在不脫離本揭露之範圍的情況下關於本揭露之領域之技藝的替代實施例會變得明顯易見。因此,例示環境並不限於執行例示程序。類似地,例示程序不限於在例示環境中實施。
第1A圖描繪於此討論之可用於提供管理裝置驅動程式的技術的例示環境100。第1B圖進一步描繪第1A圖所示的例示環境100的一部分,並將詳述如下。環境100一般包含可與更新服務122相連的電腦裝置102。電腦裝置102可被實施成任何適合的電腦裝置,例如可以是但不限於是桌上型電腦、可攜式電腦(例如筆記型電腦)、手機、平板電腦之類的。一種電腦裝置102的不同範例的變化被繪示且描述於第16圖。電腦裝置102可被組態設定成檢驗電腦裝置102的作業環境以判斷是否需要新的或更新的裝置驅動程式。若用於特定裝置之新的或更新的驅動程式在作業環境中是不可獲得的,電腦裝置102可被組態設定成會去與更新服務122通訊以獲得一個更新的驅動程式及/或新驅動程式之集合。從更新服務122獲得的驅動程式的集合可包括用於在檢驗時未連接於電腦裝置102的裝置的一或多個驅動程式,及/或用於之前未與電腦裝置102連接過的裝置的一或多個驅動程式。
電腦裝置102也可被組態設定成會接收或交互操作一或多個元件裝置104、105和106(以下稱為裝置104-106)。例如當電腦裝置102是啟動且作業中時,裝置104-106可具有插入進去如電腦裝置112並被電腦裝置112辨識的能力。在某些實施例中,電腦裝置102的裝置模組108可執行一或多個作業以提供裝置辨識,包含識別裝置以及相關的裝置資訊。裝置的識別可包含其他資訊的收集,包括驅動程式對於電腦裝置102現在是否是可獲得的,且一併於與任何關於用於裝置的驅動程式的存在的資訊。被識別的資訊可被傳送給 驅動程式管理器110以儲存於資料儲存器114。在某些實施例中,裝置104-106可由使用者進行連接或被製造商安裝。電腦裝置102也可包含被組態設定成會管理裝置104-106及裝置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是隨插即用設備,隨插即用設備致能安裝於電腦裝置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的驅動程式104c-106c(例如可用以取代驅動程式104a-106a或驅動程式104b-106b)。
替代元件(未繪示)可包括被組態設定成令使用者進行選擇和決定去下載或安裝任何驅動程式的使用者介面。這種服務的例子可以是能讓使用者選擇特定驅動程式檔案來更新的圖形使用者介面(Graphical User Interface,GUI)裝置程式。這種設備可與本揭露的系統與方法一併被實作以提供關於電腦裝置的資訊給能進行配對及識別的伺服器,以及適當的更新驅動程式。
接下來的討論描述依據本揭露的一或多個實施例的安裝及更新裝置驅動程式的例式程序。在部分的下述討論中,參照第1A圖及第1B圖的環境100。於至少某些實施例中,程序的概念可透過如上所論的一或多個個體實作,例如電腦裝置102(或是如上所論的電腦裝置元件之一)、更新服務 122及/或驅動程式發布者128。但對於第1A圖及第1B圖的特定元件之參照僅為說明用途,並不將揭露限制於於此描述的實施例。下述程序進一步地繪示於第2圖至第15圖,其中例示實施例的態樣被描繪成描述依據一或多個實施例的一或多個程序的流程圖。
例示實施例描述於第2圖,其中繪示用以管理驅動程式的方法200。附加的實施例描述於第3圖至第10圖,其中方法300、400、500、600、700、800、900及1000對於方法200提供附加且/或選擇性的(optional)流程運作。
方法可從作業202開始,其中產生要求,此要求係對於用於可連接於電腦裝置的複數個裝置的裝置驅動程式的更新集。舉例而言,可開始對於一或多個驅動程式的更新之確認,此一或多個驅動程式係用於電腦裝置102可獲得的裝置。在某些實施例中,方法200的作業202可另包括第3圖的作業302、304及306,該等作業描述當更新的驅動程式在作業202被請求時執行之選擇性的作業。於作業302,儲存於電腦裝置的驅動程式的清單被編譯。為了編譯驅動程式的清單,可執行驅動程式現在是否已被安裝於電腦裝置102的判斷。電腦裝置102可調查驅動程式儲存器和任何系統的硬體裝置以探索可獲得的驅動程式。於某些例子中,編譯驅動程式的清單的作業可包含例如查詢(query)本地端驅動程式儲存器(例如電腦裝置中已下載且可獲得的驅動程式池),以判斷是否有一或多個驅動程式(例如驅動程式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可另包含對應的驅動程式的資訊(例如驅動程式的版本編號、發布日期或唯識別碼(unique identifying number,unique ID)等)。驅動程式可被指定有唯一識別碼(例如驅動程式1 140被指定為號碼「1」,驅動程式4 142被指定為號碼「4」,驅動程式7 144被指定為號碼「7」)。此處提供之例係經簡化以便說明。任何指令唯識別子給儲存於電腦裝置102中的裝置驅動程式的機制之利用都是可被考量的。於某些例子,識別碼可以在更新發布時被指定。電腦裝置102(例如通過驅動程式管理器110)可從電腦裝置資料儲存器(例如資料儲存器114)獲得驅動程式的識別碼,其中此驅動程式係已知為在電腦裝置的更新集之中。
對於各種類的驅動程式,驅動程式管理器110可指示裝置管理器116去檢驗本地端驅動程式儲存器120,以判斷是否有任何儲存於驅動程式儲存器120中的驅動程式是被包含於清單中最適合的(例如最新的或最特定的)裝置驅動程式。於某些實施範例,驅動程式管理器110也可對於可獲得的驅動程式去確認其他作業系統元件。於進一步的實施例,可使用偵測演算法以判斷已安裝的驅動程式。舉例而言,這 種演算法可透過作業環境的應用程式介面(application program interface,API)實作驅動程式擷取。不論是否執行特定技術,在每一種連線情況下的裝置的驅動程式的清單都可被獲得。
在某些例子中,未連接裝置的驅動程式的清單132可對應於已經超過預定時間量都未連線的裝置。電腦裝置102可將長時間的未連線解釋成此裝置可能不會再重連的指示。於此例子中,為了避免重複地下載及安裝用於可能不再重連的裝置的驅動程式,作業302可另包含第4圖繪示之方法400中的作業402和404。於作業402,判斷裝置未連接的時間長度。若此未連接期間超過預定時間量,方法300可進行作業404,其中從已編譯的驅動程式清單中排除用於裝置的驅動程式。在某些實施例中,當驅動程式管理器110請求裝置管理器116來提供之前有連接過但現在未連接的裝置的清單時,作業300亦可評估從每一個裝置從最後存在時起消逝的時間量。若已消逝的時間量已超過預設的門檻值,驅動程式管理器110可接著在將未連接裝置的驅動程式的清單132插入系統規格前,將此驅動程式從未連接裝置的驅動程式的清單132之中排除。因此電腦裝置102可嘗試去制止用於此裝置的更新驅動程式之擷取、下載及/或安裝。於替代的實施例中,電腦裝置102可另被組態設定成去提供被排除的裝置的驅動程式的清單給更新服務122。被排除的裝置的驅動程式的清單可包含關於這些驅動程式被從此清單中排除之資訊(例如超過的未連接時間)。
重新參照第3圖,在編譯儲存於電腦裝置的裝置驅動程式的清單之後,方法300可進行作業304,其中建立對於電腦裝置的系統規格。在某些實施例中,在收集已儲存的驅動程式的清單之後,電腦裝置102(例如透過裝置模組108)可接著被組態設定成去編譯包含此清單的系統規格。依此利用,系統規格可以大致地被定義成電腦裝置環境的規格,包含已安裝的裝置、驅動程式、硬體組態設定及/或其他系統資訊。在建立系統規格的作業304可以選擇性地包含第5圖所示之方法500中的作業502及504。於作業502,可判斷一或多個電腦裝置屬性。電腦裝置屬性可包含例如作業系統的描述、語言、基本輸入輸出系統(basic input/output system,BIOS)資訊、硬體組態設定資訊、設備資訊等資訊。於附加的實施例中,電腦裝置屬性也可包含已知目標裝置的清單。在判斷此一或多個電腦裝置屬性之後,方法500可進行作業504,其中將此一或多個電腦裝置屬性和驅動程式的清單130、132及134一起插入系統規格。系統規格136可依據可辨識的資料格式被產生。舉例而言,系統規格136可符合可延伸標示語言概要(Extensible Markup Language schema,XML schema)。於某些實施例中,此概要或用於系統規格資訊的其他文件格式可以被系統規格建立器112所產生。
重新參照第3圖,當對於電腦裝置102的系統規格136已產生時,方法300可進行作業306,其中傳送系統規格給更新服務。具例而言,重新參照第1B圖,系統規格136可被傳送給更新服務122以引發更新服務的查詢,此查詢係為 了對於已編譯的驅動程式的清單中的每一個驅動程式而言的較佳驅動程式(例如最新的驅動程式,或設計給此特定裝置而非給大範圍的相似裝置之驅動程式)。如果網路連線是可獲得的,電腦裝置102可連接到更新服務122以獲得可獲得的更新和對於連接的驅動程式而言下載和安裝更新所需的資訊,之前有連接過但現在未連接的驅動程式,及/或目標驅動程式。這些資訊一般可定義成更新集(例如第1B圖的更新集138)。電腦裝置102可作成任何向更新服務122的連線,包含但不限定是,透過網際網路、區域網路、廣域網路(Wide Area Network,WAN)、撥接、其他連線或多個連線的組合。
於某些實施例中,系統規格136可被打包(package)以傳送給更新服務122。舉例而言,打包和傳送都可利用簡單物件存取協定(Simple Object Access Protocol,SOAP)產業標準來執行。如於本領域所知,SOAP是用於在分散式(decentralized)的分散環境(distributed environment)交換資訊的輕量的協定。SOAP協定是基於XML且由以下單元組成:(1)定義用以描述訊息內容以及如何處理的架構的包絡(envelope);(2)用以明示應用程式定義(application-defined)的資料類型的實例(instance)的組編碼規則;及(3)用以表現遠端程序呼叫及回應的公約(convention)。
重新參照第2圖,在請求驅動程式更新之後,方法200可進行作業204,其中接收驅動程式的更新集。如第1B圖所示,若有更適合的驅動程式是可獲得的,電腦裝置102可接著從更新服務122接收包含更新集138的回應。接收到 的更新集138可包含用於已安裝有驅動程式的裝置的較佳(例如較新的或較特定的)的驅動程式的清單;此清單包含用於之前有連接過但在請求時未連接的裝置之更新驅動程式,及用在之前從未曾連接過的裝置之驅動程式。
作業204可另包括第6圖繪示之方法600的作業602和604。於作業602,可與更新集一併接收驅動程式子集。重新參照第1B圖,在接收的更新集138中的驅動程式可被考量為該等驅動程式可以是關聯驅動程式的收集(collection)的一部分或是驅動程式子集。任何或所有接收的驅動程式可標記成更新子集的一部分,意味著電腦裝置可被指導去安裝所有的子集中的更新或是不更新。電腦裝置102可被組態設定成去辨識出接收的更新集138中的兩個或兩個以上驅動程式是關連的驅動程式。若更新集138含有關聯驅動程式的子集,電腦裝置102可另被組態設定成去一起安裝此驅動程式的子集,即使與驅動程式子集相關的一或多個關聯的裝置並非在偵測、下載及/或安裝時連接於電腦。更新子集已被詳述於標題為「更新集之聚集(Aggregation of Update Sets)」美國專利申請案第13/571,849號之中,此案於2012/8/10提出申請,在此將此案併入作為參考文件。作業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中接收的資訊以下載一或多個驅動程式檔案(例如包含對於可應用的裝置的資訊檔案(INFs)之封包(cabinet,CAB)裝置封包(package)檔案),且可更新系統建立應用程式以利用這些下載檔案。電腦裝置102可接著(例如透過驅動程式管理器110)判斷是否要下載和安裝驅動程式,例如利用自動化規則或是藉由獲得使用者的同意。或者是,使用者可選擇已經安裝但現在沒有連線的裝置,且選擇去更新此裝置的驅動程式。用於被選擇的裝置的識別資訊可依據本揭露的前述方法從裝置管理器116被傳送到驅動程式管理器110。使用者介面可利用本揭露來讓使用者進行選擇與決定是否去下載或安裝驅動程式於本地端。
電腦裝置102可另被組態設定成去安裝一或多個驅 動程式作為更新集的子集的一部分。舉例而言,於某些實施例,作業206可另包含第9圖所繪示之方法900的作業902。於作業902,用於未連接裝置的更新的驅動程式可作為更新集的子集的一部分被安裝,如上所述。
電腦裝置102可另被組態設定成去接收用以讓一或多個目標裝置的驅動程式安裝於電腦裝置102的指令。舉例而言,電腦裝置102可接收包含關於任何適合於目標裝置的驅動程式之資訊之回應。於某些例子中,若電腦裝置102包含特定硬體組態設定,一或多個目標裝置的驅動程式可以被組態設定成要安裝,即使關聯的目標裝置的驅動程式之前沒有與電腦裝置102連接過。目標裝置的安裝指定可在更新被發布時指定給裝置驅動程式(給更新服務),或晚點才指定。此外,更新可指定去安裝於包含前述特定硬體組態設定的電腦裝置,且驅動程式可被指定為對於這些硬體組態設定的目標集合的一部分。舉例而言,驅動程式發布者128可令更新服務122推播(push)目標裝置的驅動程式的集合,給任何具有特別的硬體組設定或其他系統規格之電腦裝置102。於進一步的實施例中,指令可被接收以將目標裝置的驅動程式儲存於本地端儲存器。電腦裝置102可判斷是否要安裝更新(可透過自動化規則或使用者的同意),且若目標裝置的驅動程式被安裝,電腦裝置102可將目標驅動程式儲存於驅動程式儲存器。
一或多個額外的作業在於作業206中的驅動程式安裝之後被執行之事是可被考量的。於其他例子中,提供了用於驅動程式安裝的方法1000,如第10圖所繪示。方法1000 可具有作業1002,其中安裝用於對應裝置的元資料封包。於某些例子中,用於裝置的驅動程式可包含元資料封包,元資料封包描述此裝置,例如產品資訊(例裝置的圖片、購買、活化、許可、關於裝置的保固期間、模型號碼、產品編號或是識別裝置的序號)、函式(function)清單、能由使用者或應用程式喚起的關於裝置的函式之清單,或產品文件。元資料封包也可描述包含標題的更新的各種特性、描述、用以判斷更新是否適用於電腦的規則,及用以安裝更新內容的指令。元資料可被包含於驅動程式(或可關於驅動程式),且在一個這種的實施例中,這個元資料封包可以和驅動程式一起被接收且安裝於裝置。元資料可與被儲存以在後續的更新查詢之用。
方法1000可另進行作業1004,其中安裝與裝置連結的至少一個應用程式。若適當,電腦裝置102可接著從更新服務122下載一或多個驅動程式(例如下載驅動程式酬載(payload))。於某些實施例,驅動程式管理器110可判斷是否要下載接收的驅動程式。基於接收的元資料,電腦裝置102可獲得及/或安裝適當的驅動程式。請注意資訊的更新集也可被電腦裝置應用程式所利用或被用於顯示資訊給使用者。顯示的資訊可以是用於下載或安裝一或多個驅動程式的提供(offer),且一或多個驅動程式係敘述於接收的更新集。若適當,電腦裝置102可接著指示驅動程式管理器110在下載完成後或其他指定時間安裝驅動程式。於某些實施例,裝置管理器116可接收指令以將安裝完的驅動程式儲存於驅動程式儲存器以在裝置連接時之用。如果關聯的裝置在下載或安裝 時未連接,接著驅動程式可被傳送到驅動程式儲存器(例如驅動程式儲存器120),因此當關聯的裝置暫連線時,此驅動程式可從驅動程式儲存器被提取(fetch)且被裝置管理器116啟動。於某些實施例,可提供驅動程式安裝錯誤。如果收到錯誤通知,可在晚一點或電腦裝置102重開機後嘗試驅動程式安裝。
方法1000可接著進行作業1006,其中在更新驅動程式的安裝後,移除用於裝置的之前的版本資訊。於某些實施例,可接收指示,指令指示要從集合中移除特別的更新。舉例而言,電腦裝置102可被更新伺服器122通知說更新是要從電腦裝置中移除。在接收用於裝置的更新的伺服器或是接收移除通知之後,電腦裝置102可反安裝驅動程式的儲存版本且安裝更新的驅動程式。
於某些實施範例,自動安裝函式(例如自動更新(AutoUpdate))可執行一或多個驅動程式的安裝函式。舉例而言,自動更新函式可被組態設定成在使用者回應之後週期性地更新電腦裝置中驅動程式的資訊。使用者可選擇要自動更新服務啟動於電腦裝置102。因此,自動更新服務可以是類似於裝置管理器116,且可自動顯示更新的清單給使用者。於某些實施例,自動更新服務可以是裝置管理器的一個元件。實施中,自動更新服務可以被電腦裝置102中的事件啟動。關於電腦裝置102的資訊可被收集。電腦裝置的資訊可被傳送給更新服務122。更新即可被回送給自動更新之用。自動更新服務可利用更新集的資料以將驅動程式的清單提供給使用 者,且使用者可接著選擇用以安裝的一或多個驅動程式,而驅動程式的清單可以是從此用以安裝的一或多個驅動程式而來。對於任何被使用者選擇的驅動程式,可執行下載,且裝置管理器可接著執行安裝。
重新參照第2圖,在安裝完接收的驅動程式之後,方法200可接著進行作業208,其中可組態設定用於未連接裝置的至少一個接收的更新在此裝置連接時為啟動。當未連接裝置重新連接(或是第一次連接)時,電腦裝置102可組態設定用於此未連接裝置的一或多個驅動程式對於電腦裝置102成為啟動。當未連接裝置重新連接時,或當目標裝置第一次連接時,用於此裝置的驅動程式可(例如從驅動程式儲存器120)被擷取且一或多個作業可被電腦裝置102執行以啟動驅動程式而供使用。對於將存在的驅動程式繫於未連接裝置,以致於驅動程式更新必須在此裝置最終重新連接後經歷活化之狀態,無效此狀態的能力有助於確保裝置開始此過期的驅動程式,即使只是一下子。舉例而言,若更新的驅動程式包含安全性修復,在重新連接啟動驅動程式可以是有用於從利用之前的驅動程式的狀態下防止惡意的使用者。如果之前的驅動程式存在有安全議題,允許用於目標未連線裝置的安全性更新可致能電腦裝置102保護措施,而保護措施是對於可能在開始的驅動程式更新被展開後以外的情形引起之有可能的威脅。
下述討論關於可被例如更新服務,如是更新服務122,所提供的一或多個技術。例示實施例描繪於第11圖, 其中描述用以管理驅動程式的方法1100。額外的實施例描繪於第12圖至第15圖,其中方法1200、1300、1400和1500提供關於方法1100的選擇性的程序作業。於至少某些實施之中,這些方法描述用以於電腦裝置管理裝置驅動程式的技術例示技術。
方法1100可以從作業1102開始,其中接收對於裝置驅動程式的請求。重新參照第1A圖及第1B圖,於某些實施例,要求可被更新服務122從電腦裝置102以驅動程式的更新查詢的形式接收,如上面已進一步描述的第2圖中的作業202。方法1100可進行作業1104,其中接收電腦裝置的資訊。舉例而言,更新服務122可從電腦裝置102接收結構化格式(例如像前述第1B圖的系統規格136)的電腦裝置的資訊。於某些實施例中,作業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使用,而去調查驅動程式的內部資料庫以找到對於電腦裝置102而言合適的驅動程式。對於清單中的每一個裝置更新服務122可評估用於此裝置且已被發布於更新服務122的驅動程式,並利用配對最佳化演算法計算是否有任一個可獲得的驅動程式在更新服務122是較新、較特定或在 其他方面較適合於列於系統規格的驅動程式。演算法可被組態設定成將版本編號、發布日期、硬體裝置識別碼(例如PnP硬體ID或相容的ID)或其他分級(ranking)資訊中的至少一個接受為輸入。特別的是,若沒有找到適合的驅動程式,或是若電腦裝置102已經有最新且最合適的驅動程式,此情況的適合指示可包含於更新集138且傳送給電腦裝置102。
更新伺服器可儲存有與接收清單中相同版本的裝置驅動器之事是可被考量的。為了避免相同驅動程式版本的重複安裝,作業1106可另包含第13圖所繪示之方法1300的作業1302。於作業1302,可比較指定給清單中的驅動程式(如第1B圖所繪示及如上所述)的識別資訊與儲存於更新服務的驅動程式的資訊。具例而言,可以比較於接收的系統規格中的驅動程式的裝置驅動程式的識別碼與儲存於更新服務122的對應的裝置驅動程式的裝置驅動程式的識別碼。於某些例子中,裝置驅動程式的識別碼識別裝置驅動程式的版本。其他裝置驅動程式的識別資訊也可被利用於比較之事是另可被考量的。
重新參照第11圖,若有更新是可獲得的,方法1100可進行作業1108,其中擷取裝置驅動程式的更新集。於某些實施例中,若是有更新是可獲得的,更新服務122可收集更新集及驅動程式的資訊,並可組態設定更新集及資訊以傳送給電腦裝置。舉例而言,若是找到用於一或多個驅動程式的更新,更新服務可建立包括更新的驅動程式及驅動程式的資訊的更新集138,且可組態設定更新集138以下載到電腦裝置 102。於一個實施例中,包含支援裝置的對應的資訊檔案之關聯的驅動程式檔案會被收集且加入更新集138。裝置驅動程式的更新集138可包含用於未連接裝置的至少一個更新的驅動程式。
如上所提及,作業1108可亦包含方法1400的作業1402,其中可執行驅動程式資訊比較。若是儲存在更新服務122的驅動程式版本配對(match)於接收於系統規格136中的驅動程式版本,此驅動程式可從更新服務所提供的更新的清單中被排除,如下所述。於作業1402,可從更新集中排除此裝置驅動程式。
如上所述,作業1108可額外地包含繪示於第15圖的方法1500的作業1502和1504。驅動程式從更新清單中被排除以外之事是可被考量的,如上所述。於此例子中,驅動程式可被包含於更新集中。在做完這個判斷後,方法1500可進行作業1504,其中驅動程式可包含於更新集之中。若更新包含於更新且為更新子集的一部分,更新服務122可提供指令給關於要安裝子集的電腦裝置102。指令可包括子集中要安裝於電腦裝置102中的每一個驅動程式。若電腦裝置102無法安裝每一個驅動程式,更新服務可傳送指令給電腦裝置以使電腦裝置不要安裝更新子集中的任何驅動程式。
如本領域之具一般知識者所能理解的,於此描述之用以更新驅動程式的作業和程序也可適用於去得到從未與電腦裝置連線的驅動程式。因此,方法1100可進行作業1110,其中用於目標裝置的驅動程式之判斷是可獲得的。於某些實 施例,更新服務122可在執行判斷用於連接的或之前有連接的裝置的更新集之同時,執行目標裝置確認。本揭露另提供以下作業:更新服務122可被組態設定成去選擇性地散佈驅動程式給具有特定硬體組態設定的機器,即使關聯的裝置之前未與電腦裝置連接過。目標裝置的驅動程式可被擷取且被包含於更新集138。於某些實施範例,用於目標裝置的目標驅動程式可被指定成更新子集的一部分,此更新子集瞄準電腦裝置102的硬體組態設定。為了提供目標裝置的驅動程式,更新服務122可判斷是否有任何目標裝置的驅動程式包含於可以去下載的已知的目標裝置的清單中。更新服務122也可判斷是否有存在任何用於適合電腦裝置的目標裝置的驅動程式,其中此驅動程式不包含於被電腦裝置102所支援的驅動程式的清單中。特別的是,驅動程式可被指定給更新服務122作為適合下載及安裝於電腦裝置,即使更新服務122沒有從電腦裝置102收到用於此裝置的裝置資訊或驅動程式資訊(例如因為電腦裝置102不知道此驅動程式或目標裝置)。於某些例子中,目標驅動程式或更新(例如驅動程式106c)可從驅動程式發布者128和指示起被推播給更新服務122,且指示是讓具有特定作業系統及/或硬體組態設定的電腦裝置去接收推播的更新。或者是,更新服務122可基於電腦裝置作業系統及/或硬體組態設定的相似度分析,判斷電腦裝置是否接收目標驅動程式的更新。
如第1B圖所述,新裝置驅動程式(驅動程式10 152)可儲存於更新服務(或從更新發布者128中擷取)。若目標裝置 示可獲得的,方法1000可進行作業1112,其中將目標裝置加入更新集。舉例而言,更新服務122可收集一或多個目標驅動程式及對應的驅動程式資訊以加入更新集。
在將有關的更新收集進更新集之後,方法1100可另進行作業1114,其中提供裝置驅動程式的更新集給電腦裝置。更新服務122可回傳包含一或多個目標驅動程式的更新集給電腦裝置。更新服務122可接著通知這些驅動程式的驅動程式管理器110,並提供需要下載和安裝的驅動程式的資訊給電腦裝置102。如前所論,依據特別的電腦裝置利用或與更新伺服器互動的應用程式,作業1114可包含回傳對於特定配對的驅動程式的元資料之作業。於一個實施例中,此回應可以是以元資料之集合的格式,或能下載識別的驅動程式的位置之集合的格式。於另一實施例中,此回應可以是對於用於請求裝置的單一配對的驅動程式之元資料。給電腦裝置102的指令也可被提供以儲存新目標裝置的驅動程式(例如存於驅動程式儲存器120)。如上所論,電腦裝置102可接著以使電腦裝置102與電腦裝置的應用程式或使用一致的方式利用資訊。
一些方法及系統可被實施以執行於此討論的技術。方法和系統的概念可被實施於硬體、韌體、軟體或前述各者之結合。這些方法被表示成特定作業被一或多個裝置所執行的一組方塊,且不需限於藉由對應之方塊所表示的順序來執行這些作業。進一步地,依據一或多個實施方式,表示特別的方法的概念的作業可以與不同方法的作業結合及/或互換。 方法的概念可透過如前所論的各種個體與參考環境100或其他電腦環境之間的互動被實施。
用以安裝及更新裝置驅動程式的技術有被描述。雖然實施例是以特定結構上的特徵及/或方法的動作的文字被描述,申請專利範圍所定義的實施例並不需受限於特定如上所述的技術或步驟之事是可被了解的。更準確的說,特定特徵及動作係作為實施請求的實施例的例示形式被揭露。
於此的實施例及功能性的描述可透過複數的電腦系統運作,電腦系統可以是但不限於是桌上型電腦系統、有線及無線電腦系統,可攜式電腦(例如手機、小筆電(netbook)、平板電腦或平板型的電腦、筆記型電腦及膝上型電腦)、手持裝置、多處理裝置及大型電腦(mainframe computer)。
此外,於此的實施例及功能性的描述可在分散式系統(例如運用雲端的電腦系統)上運作,其中應用程式功能、記憶體、資料儲存器及恢復與各種處理函式可透過分散式電腦網路(例如網際網路或內部網路)互相遠端運作。使用者介面和各種類型的資訊可透過板上(on-board)電腦裝置顯示器或關聯於一或多個電腦裝置的遠端顯示單元顯示。舉例而言,使用者介面及各種類型的資訊可被顯示,且可與投射有使用者介面及各種類型的資訊的壁面互動。與具有本發明的實施例的複數個電腦系統之互動可被實施成包含按鍵單元、觸控面板單元、聲音或其他音訊單元以及手勢單元等等;其中關於手勢單元,關聯的電腦裝置裝備有用於擷取及翻譯使用者手勢的偵測(例如相機)功能以控制電腦裝置的功能。
第16圖至第18圖及關聯的描述提供可實施之本發明的實施例各種作業環境的討論。但是,繪示及討論於第16圖至第18圖的概念的裝置及系統,是為了例示及圖示之目的且不用以限制可用於實施於此描述的本發明的實施例之大量電腦裝置組態設定。
第16圖係為繪示可實施之本發明的實施例的電腦裝置1601的物理元件(例如硬體)之方塊圖,電腦裝置1601包含電腦裝置102、更新服務122及驅動程式發布者128。敘述如下的電腦裝置元件可適用於敘述如上的電腦裝置。於基本組態設定,電腦裝置1601可包含至少一個處理單元1602及系統記憶體1604。依據組態設定及電腦裝置的種類,系統記憶體1604可包括但不限於是揮發性儲存器(例如是隨機存取記憶體(Random Access Memory,RAM))、非揮發性儲存器(唯讀記憶體(Read-Only Memory,ROM))、快閃記憶體或這些記憶體的任何組合。系統記憶體1604可包含作業系統1605及適用於運行軟體應用程式1620的一或多個程式模組1606。舉例而言,當電腦裝置1601作為電腦裝置102被使用時,軟體應用程式1620可包含驅動程式管理器110及裝置管理器116。作業系統1605例如可適用於去控制電腦裝置1601的作業。除此之外,本發明的實施例可實施成結合圖形函式庫、其他作業系統或任何其他應用程式,但並不限於任何特別的應用程式或系統。透過在虛線1608中的這些元件,基本組態設定繪示於第16圖。電腦裝置1601可具有額外的特徵或功能。舉例而言,電腦裝置1601也可具有額外的資料儲存裝置 (可移除式或不可移除式),例如是但不限於是磁片(magnetic disk)、光碟片(optical disk)或磁帶(type)。透過可移除式儲存裝置1609及不可移除式儲存裝置1610,這種額外的儲存器繪示於第16圖。
如上所述,複數個程式模組及資料檔案可儲存於系統記憶體1604之中。當執行於處理單元1602時,程式模組1606可執行以下程序,包括但不限於是繪示於第2圖的方法200或繪示於第11圖的方法1100之一或多個階段。其他的程式模組可依據本發明的實施例被使用,且係可包含電子郵件及聯絡人應用程式(contacts application)、文字處理應用程式、試算表程式、資料庫應用程式、投影片簡報應用程式,或是繪圖或電腦輔助應用程式等。
除此之外,本發明的實施例可實施於電子電路,電子電路包含離散電子單元、包含邏輯閘的封裝或積體電子晶片、利用微處理器的電路,或是包含有電子元件或微處理器的單晶片。舉例而言,本發明的實施例可透過單晶片系統(System-on-Chip,SOC)實施,其中繪示於第16圖的每一個或多個元件可被整合成一單個積體電路。這種的SOC裝置可包或一或多個處理單元、繪圖單元、通訊單元、系統視覺化單元及各種應用功能全都可被整合(或結合)於個晶片基板上以作為單個積體電路。當透過SOC運作,於此的功能和描述可透過與電腦裝置1601的其他元件整合成單個積體電路(晶片)之特定應用邏輯運作。本發明的實施例也可利用其他能執行邏輯運算的技術來實施,例如邏輯及(AND)、邏輯或(OR)或邏 輯反(NOT),且包括但不限於是機械的、光學的、流體的及量子的技術。此外,本發明的實施例可實施於通用電腦(general purpose computer)之中或是於任何其他電路或系統之中。
電腦裝置1601也可具有一或多個輸入裝置1612,例如鍵盤、滑鼠、數位筆、聲音輸入裝置、觸控輸入裝置等。輸出裝置1614例如是顯示器、揚聲器或印表機等,也可被包含。上述裝置僅為例示且也可使用其他裝置。電腦裝置1601可包含允許與其他電腦裝置1618通訊的一或多個通訊連線1616。適用的通訊連線1616的例示可包含但不限於是射頻(radio frequency,RF)的傳送器、接收器及/或收發器電路,亦或是通用序列匯流排(Universal Serial Bus,USB)、平行及/或序列連接埠。
備用於此而所稱之電腦可讀媒體可包含電腦儲存媒體。電腦儲存媒體可包含揮發性或非揮發性及/或可移除式或不可移除式媒體,可以以任何用於資訊的儲存的技術實施,例如電腦可讀指令、資料結構或程式模組。系統記憶體1604、可移除式儲存裝置1609及不可移除式儲存裝置1610都是電腦儲存媒體的例示(例如記憶體儲存器)。電腦儲存媒體可包含RAM、ROM、電子抹除式可複寫唯讀記憶體(Electrically Erasable Programmable Read Only Memory,EEPROM)、快閃記憶體或其他的記憶體技術,光碟(Compact Disc Read-Only Memory,CD-ROM)、DVD或其他光學儲存器,磁匣(megnetic cassette)、磁帶、磁碟儲存器或其他磁性儲存裝置,若任何其他能用於儲存資訊且能被電腦裝置1601存取的製造物體。任 何這種的電腦儲存媒體可以式電腦裝置1601的一部分。電腦儲存媒體不包含載波或其他擴散的(propagated)或調變的資料訊號。
通訊媒體可實作成電腦可讀指令、資料結構、程式模組或其他於調變資料訊號中的其他資料,例如載波或其他傳送機制,且包含任何資料傳送媒體。「調變的資料訊號」一詞可描述具有一或多個特性集(characteristics set)的訊號,或是以此方式改變以編碼訊號中的資訊之訊號。藉由例示而非限制,通訊媒體可包含有線媒體例如有線網路路或直接的有線連接,及無線媒體例如聲波、射頻、紅外線及其他無媒體。
第17A圖及第17B圖繪是行動電腦裝置1700,舉例而言,手機、智慧型手機、平板個人電腦1810、筆記型電腦等,且可實施本發明的實施例,包含電腦裝置102、更新服務122及驅動程式發布者128。參照第17A圖,第17A圖繪示用以實施實施例的行動電腦裝置1700的實施例。於基本組態設定,行動電腦裝置1700是具有輸入單元和輸出單元的手持式電腦。行動電腦裝置1700一般包含顯示器1705及讓使用者可輸入資訊到行動電腦裝置1700的一或多個輸入鍵1710。行動電腦裝置1700的顯示器1705也可作為輸入裝置運作(例如觸控螢幕顯示器)。若含有側邊輸入元件1715,側邊輸入元件1715可讓使用者進一步地輸入。側邊輸入元件1715可以是旋轉開關、按鈕或任何的其他種類的人工輸入單元。於替代實施例中,行動電腦裝置1700可結合多或少的輸入單元。舉例 而言,於某些實施例中顯示器1705可以不是觸控螢幕。於其他的替代實施例中,行動電腦裝置1700是可攜式電話系統,例如手機。行動電腦裝置1700也可包含選擇性的小型鍵盤1735。選擇性的小型鍵盤1735可以是實體鍵盤或是由處孔螢幕顯示器所產生的軟體鍵盤。於各種實施例中,輸出單元包含用以顯示圖形使用者介面的顯示器1705,及/或音頻轉換器(audio transducer)1725(例如揚聲器)。於某些實施例中,行動電腦裝置1700結合用以提供使用者觸覺回饋的震動傳感器(vibration transducer)。於其他的替代實施例中,行動電腦裝置1700結合輸入及/或輸出連接埠,例如音訊輸入(例如麥克風插孔)、音源輸出(例如頭戴式耳機插孔),及用以傳送訊號給外部裝置或從外部裝置接收訊號的視訊輸出(例如高解析度多媒體介面(High Definition Multimedia Interface,HDMI))連接埠。
第17B圖是方塊圖,該圖繪示行動電腦裝置的實施例的架構。意即,行動電腦裝置1700可結合系統(例如架構)1702以實施某些實施例。於一實施例中,系統1702係實施成可運行一或多個應用程式(例如瀏覽器、電子信箱、行事曆、聯絡人管理、訊息用戶端程式(messaging client)、遊戲及媒體用戶端程式/播放器)的「智慧型手機」。於某些實施例中,系統1702整合成電腦裝置,例如一個人數位助理器(Personal Digital Assistant,PDA)及無線電話。
一或多個應用程式1766可被載至記憶體1762且執行於或關聯於作業系統1764。應用程式的例示包括電話撥打 程式、電子郵件程式、個人資訊管理(Personal Information Management,PIM)程式、文字處理程式、試算表程式、網際網路瀏覽器程式及/或訊息程式等等。系統1702可包含具有記憶體1762的非揮發性儲存器區域1768。非揮發性儲存器區域1768可用於儲存即使系統1702關機也不該失去的持續資訊(persistent information)。應用程式1766可使用且儲存於非揮發性儲存器區域1768中的資訊,例如電子郵件或被電子郵件應用程式所使用的其他訊息等。同步應用程式(未繪示)亦常駐於系統1702且設計成去與主機電腦(host computer)中的對應的同步應用程式互動,以使儲存於非揮發性儲存器區域1768的資訊同步於儲存於主機電腦的對應資訊。需被注意的是,其他應用程式也可載入記憶體1762且運行於行動電腦裝置1700;當電腦裝置102實施成行動電腦裝置1700時,其他應用程式包括前述的驅動程式管理器110及裝置管理器116。
系統1702具有電源供應器1770,電源供應器1770可實施成一或多個電池。電源供應器1770可更包含外部電源,例如將電池補充或充電的直流轉換器(AC adapter)或供電座式充電器(powered docking cradle)。
系統1702可包含執行傳送及接收射頻通訊的功能之射頻(radio)1772。透過通訊承載(communications carrier)或服務提供者,射頻1722幫助系統1702與「外界」的無線通訊。於射頻1772的來往傳輸可受作業系統1764控制的引導。換句話說,射頻1772所接收的通訊可透過作業系統1764散播給應用程式1766,反之亦同。
視覺指示器1720可用於提供視覺通知,及/或音訊介面1774可用於透過音頻轉換器1725產生聽覺通知。於繪示的實施例中,視覺指示器170是發光二極體(Light Emitting Diodes,LED)且音頻轉換器是揚聲器。這些裝置可直接耦接於電源供應器1770,使得即使處理器1760和其他元件可能斷電以節省電池電力時,這些裝置也能在啟動時能持續通知機制所要求的一段期間。LED可被程式設定成無限制地維持,直到使用者採取行動去指示裝置的電源啟動狀態。音訊介面1774是用以提供音頻訊號(audible signal)給使用者或從使用者接收音頻訊號。舉例而言,除了連接到語音頻轉換器1725以外,音訊介面1774也可連接到麥克風以接收音頻輸入,例如以便於電話會話。依據本發明的實施例,麥克風也可作為音訊感測器以便於如下述方式通知的控制。系統1702可另包含視訊介面1776,視訊介面1776致能板上相機1730以紀錄靜止圖像或是視訊流等。
實施有系統1702的行動電腦裝置1700可具有額外的特徵或功能。舉例而言,行動電腦裝置1700也可包含額外的(可移除式及/或不可移除式)資料儲存裝置,例如磁碟片、光碟片或磁帶。這種額外的儲存器繪示成第14B圖中的非揮發性儲存器區域1768。
由行動電腦裝置1700產生或擷取的資料/資訊以及透過系統1702儲存的資料/資訊可以被儲存於本地端的行動電腦裝置1700中,如上所述,或者是資料可被儲存於任意數量的儲存媒體中;儲存媒體可透過射頻1772被裝置存取,或 透過在行動電腦裝置1700與分離的處理裝置之間的有線連接被裝置存取,且此分離的處理裝置係關聯於行動電腦裝置1700;舉例而言,於分散式處理網路的伺服器電腦,例如網際網路。須注意的是這些資料/資訊可透過行動電腦裝置1700、透過射頻1772或透過分散式電腦網路。類似地,這種資料/資訊可容易地傳輸於用以儲存的電腦裝置與依據常見的資料/資訊傳輸及儲存手段的利用之間,包含電子郵件及合作資料/資訊分享系統。
第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獲得內容。
本發明的實施例,舉例而言,係配合方塊圖及/或關 於本發明實施例的選擇性的方法、系統及電腦裝置產品的圖式之參考描述於上。方塊裝的功能或動作節點可不按照流程圖的所繪示的順序發生。舉例而言,所繪示連續的兩方塊事實上可以是本質上同時發生地執行,或是這些方塊有時可以以相反的順序執行,端依據所包含的功能/動作。
不論以任何方式,提供於本申請的一或多個實施例的敘述及圖式並非用以限制或約束請求之發明的範圍。提供於本申請的實施例、例示及細節被認為是已充分表達所有內容且能使他人製作並利用請求之發明的最佳實施例(best mode)。請求之發明不應被解釋成限制於任何提供於本申請的實施例、例示或細節。不論是否組合地或分開地繪示或描述,各種特徵(結構上和方法上都是)可用以被選擇性地包含或省略來產生具有特定特徵之組合的實施例。得到本申請提供之描述及圖示,本領域之具有通常知識者可想像出落入本發明概念的較廣觀點之精神的變化、修改或取代的實施例,發明概念係實施於本申請,且本申請並不從請求的發明之較廣範圍中分離。
100‧‧‧例示環境
102‧‧‧電腦裝置
104‧‧‧裝置
105‧‧‧裝置
106‧‧‧裝置
104a-106a‧‧‧驅動程式
104b-106b‧‧‧驅動程式
104c-106c‧‧‧驅動程式
108‧‧‧裝置模組
110‧‧‧驅動程式管理器
112‧‧‧系統規格建立器
114‧‧‧資料儲存器
116‧‧‧裝置管理器
118‧‧‧裝置紀錄器
120‧‧‧本地端驅動程式儲存器
122‧‧‧更新服務
124‧‧‧驅動程式儲存器
126‧‧‧資料儲存器
128‧‧‧驅動程式發布者
130‧‧‧已連接裝置的驅動程式的清單
132‧‧‧未連接裝置的驅動程式的清單
134‧‧‧目標裝置的驅動程式的清單
136‧‧‧系統規格
138‧‧‧更新集
140‧‧‧驅動程式1
142‧‧‧驅動程式4
144‧‧‧驅動程式7
146‧‧‧驅動程式1
148‧‧‧驅動程式4
150‧‧‧驅動程式10

Claims (20)

  1. 一種用以管理裝置驅動程式的電腦實施方法,包括以下步驟:請求一或多個驅動程式,該一或多個驅動程式用於與一電腦裝置連接的至少一個裝置;接收一裝置驅動程式的更新集,其中該更新集中的至少一個驅動程式是用於一未連接裝置的一驅動程式,其中該未連接裝置是在請求時未與該電腦裝置連接的一裝置;及將用於該未連接裝置的該至少一個驅動程式安裝於該電腦裝置;及當該未連接裝置被該電腦裝置刪除時,組態設定用於該未連接裝置的該至少一個驅動程式以啟動。
  2. 如請求項1所述之電腦實施方法,其中該請求至少一個驅動程式的步驟包括以下步驟:編譯一裝置驅動程式的清單,該清單儲存於該電腦裝置中,其中該清單至少包含該未連接裝置的驅動程式及一第二裝置的驅動程式,並另包含未連接裝置的驅動程式的版本資訊以及第二裝置的驅動程式的版本資訊;及建立至少包含儲存於該電腦裝置中的該裝置驅動程式的清單的一系統規格。
  3. 如請求項2所述之電腦實施方法,另包括以下步驟:判斷一或多個電腦裝置屬性;及 將該一或多個電腦裝置屬性插入該系統規格。
  4. 如請求項3所述之電腦實施方法,另包括以下步驟:傳送該系統規格給一更新服務。
  5. 如請求項4所述之電腦實施方法,另包括以下步驟:接收作為該更新集的一部分的一驅動程式子集,其中該驅動程式子集包含兩個或兩個以上驅動程式及用以一併安裝該兩個或兩個以上驅動程式的多個指令;接收作為該驅動程式子集的一部分的一驅動程式,該驅動程式用於該第二裝置及對應裝置驅動程式的版本資訊,其中接收的對應裝置驅動程式的版本資訊,是與包含於該裝置驅動程式的清單中的該第二裝置的驅動程式的版本資訊相同;及安裝該第二裝置的驅動程式。
  6. 如請求項4所述之電腦實施方法,另包括以下步驟:與該更新集一併地,接收用於之前未與該電腦裝置連接過的一裝置之至少一個新驅動程式,及接收用以安裝該至少一個新驅動程式的多個指令。
  7. 如請求項2所述之電腦實施方法,其中該編譯一裝置驅動程式的清單的步驟包括以下步驟:判斷一第二未連接裝置未與該電腦裝置連接的一時間長 度;以及若該未連接時間超過一未連接時間的預定最大長度,排除該裝置驅動程式的該清單中一關聯於該第二未連接裝置的驅動程式。
  8. 如請求項7所述之電腦實施方法,另包括以下步驟:與該未連接裝置的驅動程式一併接收一更新的第二未連接裝置的驅動程式,並將該更新的第二未連接裝置的驅動程式作為一關聯裝置驅動程式子集的一部分;及安裝該更新的第二未連接裝置的驅動程式。
  9. 如請求項1所述之電腦實施方法,其中該將該至少一個驅動程式安裝於該電腦裝置的步驟另包括以下步驟:安裝用以描述該未連接裝置的一目前元資料封包;及安裝連結於該未連接裝置的至少一個應用程式。
  10. 如請求項1所述之電腦實施方法,另包括以下步驟:在安裝該至少一個驅動程式後,從該電腦裝置移除一對應之前的驅動程式版本。
  11. 一種儲存用以管理裝置驅動程式的多個指令的電腦可讀儲存媒體,該些指令被執行時令一電腦裝置執行一方法,該方法包括以下步驟:從一更新服務請求用於可連接於一電腦裝置的與一或多 個裝置之一或多個驅動程式,另包括以下步驟:編譯一裝置驅動程式的清單,該清單儲存於該電腦裝置中,其中該清單至少包含一未連接裝置的驅動程式及一第二裝置的驅動程式,並另包含未連接裝置的驅動程式的版本資訊以及第二裝置的驅動程式的版本資訊,其中該未連接裝置是在請求時未與該電腦裝置連接的一裝置;判斷一或多個電腦裝置屬性;傳送該一或多個電腦裝置屬性及該裝置驅動程式的清單給該更新服務;從該更新服務接收一裝置驅動程式的更新集,其中該更新集中的至少一個驅動程式是用於該未連接裝置的一驅動程式;將用於該未連接裝置的該至少一個驅動程式安裝於該電腦裝置;及當該未連接裝置被該電腦裝置刪除時,組態設定用於該未連接裝置的該至少一個驅動程式以啟動。
  12. 如請求項11所述之電腦實施方法,更包括以下步驟:與該更新集一併地,接收用於之前未與該電腦裝置連接過的一裝置之至少一個新驅動程式,及接收用以安裝該至少一個新驅動程式的多個指令。
  13. 如請求項11所述之電腦實施方法,更包括以下步驟:接收作為該更新集的一部分的一驅動程式子集,其中該 驅動程式子集包含兩個或兩個以上驅動程式及用以一併安裝該兩個或兩個以上驅動程式的多個指令;接收作為該驅動程式子集的一部分的一驅動程式,該驅動程式用於該第二裝置及對應裝置驅動程式的版本資訊,其中接收的對應裝置驅動程式的版本資訊,是與包含於該裝置驅動程式的清單中的該第二裝置的驅動程式的版本資訊相同;及只在該未連接裝置的驅動程式已安裝時,安裝該第二裝置的驅動程式。
  14. 如請求項11所述之電腦實施方法,更包括以下步驟:判斷一第二未連接裝置未與該電腦裝置連接的一時間長度;以及若該未連接時間超過一未連接時間的預定最大長度,排除該裝置驅動程式的該清單中一關聯於該第二未連接裝置的驅動程式。
  15. 如請求項14所述之電腦實施方法,更包括以下步驟:與該未連接裝置的驅動程式一併接收一更新的第二未連接裝置的驅動程式,並將該更新的第二未連接裝置的驅動程式作為一關聯裝置驅動程式子集的一部分;及安裝該更新的第二未連接裝置的驅動程式。
  16. 一種用以管理裝置驅動程式的電腦實施方法,包括以下 步驟:接收一請求以更新裝置驅動程式,該請求係對於可連接於一電腦裝置的一或多個裝置;接收用於該電腦裝置的電腦裝置組態設定資訊,該電腦裝置組態設定資訊包含關於用於一未連接裝置的至少一個裝置驅動程式的資訊,其中該未連接裝置包含一個在該請求時未與該電腦裝置連接的裝置;比較該電腦裝置組態設定資訊與儲存的驅動程式資訊;擷取一裝置驅動程式的更新集,該裝置驅動程式的更新集包含用於該未連接裝置的至少一個更新的裝置驅動程式;判斷一新裝置驅動程式是否對於之前未與該電腦裝置連接過的一新裝置而言是可獲得的;將該新裝置驅動程式加入該更新集;及提供該更新集給該電腦裝置。
  17. 如請求項16所述之電腦實施方法,其中接收電腦裝置組態設定資訊的步驟另包括以下步驟:接收一裝置驅動程式的清單及接收對應的裝置驅動程式的資訊,該裝置驅動程式的清單儲存於該電腦裝置。
  18. 如請求項17所述之電腦實施方法,其中該接收對應的裝置驅動程式的資訊的步驟另包括以下步驟:接收指定給該未連接裝置的識別資訊及接收該清單中的至少一個第二裝置的驅動程式。
  19. 如請求項18所述之電腦實施方法,其中該比較該電腦裝置組態設定資訊與儲存的驅動程式資訊的步驟另包括以下步驟:將接收之指定給該第二裝置的驅動程式之該識別資訊,與用於該第二裝置的一對應更新驅動程式的識別資訊進行比較;及若前述識別資訊相同,從該裝置驅動程式的更新集中排除該對應更新驅動程式。
  20. 如請求項18所述之電腦實施方法,另包括以下步驟:從該清單中,接收一第三裝置的驅動程式及一第三裝置的驅動程式的識別資訊;將接收的該第三裝置的驅動程式的識別資訊,與用於該第三裝置的一對應更新驅動程式的識別資訊進行比較;判斷該第三裝置的驅動程式係包含於一驅動程式子集;及提供該驅動程式的更新集中的該對應更新驅動程式。
TW102132223A 2013-05-31 2013-09-06 目標裝置及非現存裝置之驅動程式安裝 TW201445448A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/907,069 US8949815B2 (en) 2013-05-31 2013-05-31 Driver installation for targeted and non-present devices

Publications (1)

Publication Number Publication Date
TW201445448A true TW201445448A (zh) 2014-12-01

Family

ID=49640138

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102132223A TW201445448A (zh) 2013-05-31 2013-09-06 目標裝置及非現存裝置之驅動程式安裝

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 广州视源电子科技股份有限公司 管理镜像文件的方法、装置、处理器及存储介质

Family Cites Families (30)

* 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
US8151280B2 (en) 2003-10-27 2012-04-03 Microsoft Corporation Simple and dynamic configuration of network devices
FR2880489B1 (fr) * 2005-01-06 2007-04-06 Roger Colette Abigael Azulay Dispositif de connexion automatique au reseau internet.
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
CN102880488B (zh) * 2012-09-12 2017-09-01 北京奇虎科技有限公司 驱动程序修复方法、设备和系统

Also Published As

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

Similar Documents

Publication Publication Date Title
TW201445448A (zh) 目標裝置及非現存裝置之驅動程式安裝
US20140359593A1 (en) Maintaining known dependencies for updates
US9311109B2 (en) Synchronizing device association data among computing devices
US10146554B2 (en) Extraction of operating system-specific characteristics via a communication interface
US20110302574A1 (en) Update management server, electronic apparatus, update management system, and method therefor
KR20130084659A (ko) 휴대형 컴퓨팅 디바이스의 리소스들을 관리하기 위한 시스템 및 방법
CN104765621A (zh) 一种在集群节点中部署程序的方法和系统
CN109313589B (zh) 实现与外部功能的交互
US11263297B2 (en) Dynamic insertion of variablized secrets in a pipeline integration system
WO2016206437A1 (zh) Rom包生成方法及装置
US20230393861A1 (en) Using interchangeable non-compute resources for cloud-based applications
US20220350641A1 (en) Securely cascading pipelines to various platforms based on targeting input
US10642839B2 (en) Associating hardware to store applications
Raspbian et al. Asp. Net Core and Azure with Raspberry Pi 4