国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      在計算機運行中交換設備的裝置與方法

      文檔序號:6643906閱讀:190來源:國知局
      專利名稱:在計算機運行中交換設備的裝置與方法
      技術領域
      本發(fā)明一般涉及與計算機互聯(lián)的設備的領域,而更具體地,涉及在計算機操作中交換或改變與計算機互聯(lián)的設備。
      背景技術
      完全“即插即用”操作系統(tǒng)的驅動器與設備能以極少到無須用戶的主動介入來處理設備的增加與消除。結果完全“即插即用”系統(tǒng)允許相對不老練的用戶容易與平順地安裝與交換設備,并且用戶無須理解軟件或具有編程能力。
      在各操作系統(tǒng)內(nèi),存在著一系列用于發(fā)現(xiàn)與初始化計算機中所包括的設備以便它們能正確地與該計算機的所有資源連通的驅動器。對于諸如Windows 95或98(微軟公司產(chǎn)品)等操作系統(tǒng),當在操作系統(tǒng)的安裝或引導期間起動驅動器時,驅動器枚舉或識別連接在計算機上的設備。然而對于一些設備,它們的相關設備驅動器是不能完全“即插即用”的。這些驅動器的實例包含用于硬盤驅動的IDE驅動器及用于軟盤驅動的軟盤驅動器。因為這些驅動器不能完全“即插即用”,這些設備的驅動器在運行時間期間不能枚舉設備。
      由于這一限制,在系統(tǒng)運行(熱交換hot swapping)或睡眠狀態(tài)(溫交換warm swapping)時,這些操作系統(tǒng)不能支持諸如硬盤驅動器、CD-ROM驅動器及軟盤驅動器等不具有完全“即插即用”驅動器的設備的交換。而是,用這些設備之一來交換另一個時要求用戶重新起動或重新引導計算機。這一要求是對用戶既費時又費事的。
      發(fā)明概述簡要的,本發(fā)明包括枚舉計算機系統(tǒng)中存在的第一設備而使計算機系統(tǒng)能識別該第一設備的方法,該計算機系統(tǒng)具有存儲器及使用存儲在該存儲器中的數(shù)據(jù)結構來建立計算機系統(tǒng)的工作配置的操作系統(tǒng),該數(shù)據(jù)結構具有對應于計算機系統(tǒng)中存在的設備的一或多個設備節(jié)點,該方法包括下述步驟在計算機系統(tǒng)操作時向操作系統(tǒng)提供第一設備已插入計算機系統(tǒng)中的指示;響應該指示為控制該第一設備枚舉一控制器;響應第一設備控制器的枚舉,初始化與該第一設備控制器關聯(lián)的驅動器;用初始化的驅動器定位與該第一設備控制器關聯(lián)的枚舉器(enumerator);以及用定位的枚舉器枚舉該第一設備,其中在初始化時與第一設備控制器關聯(lián)的驅動器只能定位與該第一設備控制器關聯(lián)的枚舉器。
      在本方法的另一方面中,在連接第一設備之前,該方法還包括下述步驟判定當前是否正在訪問計算機系統(tǒng)中的第二設備;從數(shù)據(jù)結構中清除對應于第二設備的設備節(jié)點及對應于用于控制該第二設備的控制器的設備節(jié)點;將在第二設備與第二設備控制器之間傳輸?shù)娜魏螖?shù)據(jù)信號從第二設備控制器到第二設備的傳輸中隔離;以及關閉第二設備的供電。
      在本方法的又另一方面中,清除對應于第二設備及第二設備控制器的設備節(jié)點的步驟包含卸載與第二設備及第二設備控制器關聯(lián)的所有驅動器的子步驟。
      在本發(fā)明的又一方面中,計算機程序產(chǎn)品包括具有實現(xiàn)在其中的用于枚舉計算機系統(tǒng)中存在的第一設備而使計算機系統(tǒng)能識別該第一設備的計算機可讀的程序代碼模塊的計算機可用的介質,該計算機系統(tǒng)具有存儲器及使用存儲在該存儲器中的數(shù)據(jù)結構來建立該計算機系統(tǒng)的工作配置的操作系統(tǒng),該數(shù)據(jù)結構具有對應于存在在計算機系統(tǒng)中的設備的一或多個設備節(jié)點,該計算機程序產(chǎn)品包含第一枚舉模塊,用于枚舉在計算機系統(tǒng)操作中將第一設備插入計算機系統(tǒng)之后枚舉用于控制第一設備的控制器;初始化模塊,用于響應第一設備控制器的枚舉初始化與第一設備控制器關聯(lián)的驅動器;定位器模塊,用于用初始化的驅動器識別與第一設備控制器關聯(lián)的枚舉器;以及第二枚舉模塊,用于利用與第一設備控制器關聯(lián)的定位的枚舉器枚舉第一設備,其中與第一設備控制器關聯(lián)的驅動器在初始化時只能定位與第一設備控制器關聯(lián)的枚舉器。


      圖1為符合本發(fā)明的計算機系統(tǒng)的框圖。
      圖2a與2b為符合本發(fā)明的交換進程的框圖流程圖。
      圖3為符合本發(fā)明的枚舉進程的框圖流程圖。
      圖4為符合本發(fā)明的設備交換系統(tǒng)的框圖。
      發(fā)明詳述下面在特定實施例的上下文中描述本發(fā)明,但并不旨在這樣限定本發(fā)明。
      圖1示出如何將符合本發(fā)明的計算機系統(tǒng)10的部件安裝在一起。如圖1中所示,計算機系統(tǒng)10包含配置管理器20、多個設備或資源30、登記處(registry)40、設備節(jié)點(devnode)樹50、及設備驅動器存儲器60。見下面對上文中元件的定義。最好在即插即用框架中實現(xiàn)計算機系統(tǒng)10。雖然圖1中示示出,計算機系統(tǒng)10包含其它元件,諸如處理器、存儲器、監(jiān)視器、及象鍵盤或指點設備等輸入設備。如本技術中已知的,其它元件也可包含在計算機系統(tǒng)10中。
      下面是計算機系統(tǒng)10中的這些元件的定義。可以作為虛擬設備驅動器(VxD)實現(xiàn)的“配置管理器”20是即插即用框架的中心部件。VxD是專門為Windows 95與98格式化的驅動器。包含DLL與DOS TSR格式在內(nèi)的其它驅動器也是可能有的。配置管理器20指導計算機系統(tǒng)10中的所有配置管理。為了指導配置管理,它能使用三個數(shù)據(jù)存儲器注冊表40、設備節(jié)點樹50及設備驅動器存儲器60,并能用四種軟件部件工作枚舉器、仲裁器、設備加載器及設備驅動器。
      “枚舉器”確定計算機系統(tǒng)10中當前安裝了哪些硬件設備及它們需要哪些資源。從而,枚舉便是發(fā)現(xiàn)或識別設備。如同配置管理器20,枚舉器也能實現(xiàn)為VxD。識別出各設備之后,枚舉器便建立“設備節(jié)點”。設備節(jié)點是包含關于識別的設備的基本信息的數(shù)據(jù)結構。設備節(jié)點能包含指示可能的配置、當前配置、狀態(tài)信息、及該設備的驅動器的字段。
      枚舉器識別出新設備之后,稱作“設備安裝器”的模塊在“注冊表”40中建立一新的項。注冊表40存儲項的分層樹,它們包含曾經(jīng)安裝在計算機系統(tǒng)10中的各設備的關鍵字與值。各項的關鍵字為各自的設備的標識,而各項中的值包含關于設備的類型的信息及其說明,在枚舉時應為特定設備加載哪些驅動器、驅動器修正號、制造商、及設備的潛在邏輯配置。值的信息能來自設備零售商提供的設備信息文件或來自設備本身?!霸O備信息文件”包含關于已知設備及它們的配置的信息。為了為剛安裝在系統(tǒng)中的設備建立設備節(jié)點,枚舉器能利用對應于注冊表40中的設備的項的信息。
      將枚舉器建立的各設備節(jié)點放置在“設備樹”50中。設備樹50為描述計算機系統(tǒng)10中存在的所有硬件的設備節(jié)點的分層樹。設備樹中的層次構成為使得將設備節(jié)點放置在控制這些設備節(jié)點的設備的設備節(jié)點的下方層次中,借此提供控制的指示。例如,將受總線控制的設備的設備節(jié)點放置在總線的設備節(jié)點下方。諸如總線的設備節(jié)點等設備節(jié)點稱作父節(jié)點,而諸如連接在總線上的設備等受父節(jié)點控制的設備節(jié)點則為子節(jié)點。
      枚舉器識別出設備并建立了其設備節(jié)點之后,配置管理器20調用與該設備關聯(lián)的“設備加載器”。能作為VxD實現(xiàn)的設備加載器加載與管理給定設備節(jié)點的設備驅動器及枚舉器。在由好幾個層的設備驅動器管理設備時,通常使用設備加載器。設備加載器協(xié)調好幾個層的工作并進行適用于所有設備驅動器的通用配置任務。
      “設備驅動器”控制與管理設備硬件。設備驅動器負責識別給定設備的特定資源需求并設定該設備以配置管理器20分配的配置操作。能將已安裝在計算機系統(tǒng)10中的所有設備30的設備驅動器存儲在設備驅動器存儲器60中。
      最后,也能作為VxD實現(xiàn)的“仲裁器”是由配置管理器20用來解決設備30之間的資源沖突的。仲裁器審閱安裝在計算機系統(tǒng)10中的設備30的需求表并找出資源的最佳分配來滿足所有設備。仲裁器為計算機系統(tǒng)10中的若干資源作出無沖突分配,其中包含輸入/輸出(I/O)地址、存儲器地址、中斷請求(IRQ)、及直接存儲器存取(DMA)通道。
      應指出仲裁器、枚舉器、注冊表、設備節(jié)點樹、配置管理器及設備加載器是包含微軟公司在Windows 95與Windows 98中提供的在內(nèi)的各種軟件零售商所提供的軟件的標準項目。
      下面是計算機系統(tǒng)10中的配置管理器20所使用的數(shù)據(jù)存儲器與軟件部件的更詳細的說明。建立計算機系統(tǒng)的工作配置的積木塊是設備節(jié)點。如上所述,設備節(jié)點是物理上存在在系統(tǒng)上的設備30的基本存儲器內(nèi)表示。它是包含關于設備及其驅動器的信息的數(shù)據(jù)結構。存儲在設備節(jié)點中的信息包含設備標識(ID)、其當前分配的配置、可能的邏輯配置、狀態(tài)信息、及設備驅動器入口點。如上所述,設備節(jié)點是由枚舉器建立的。響應設備節(jié)點的建立,配置管理器20導致適當驅動器的加載。
      用在設備節(jié)點數(shù)據(jù)結構中的“設備ID”為對計算機系統(tǒng)10中可包含的各設備獨一無二的ASCII串。該串通常標識找到該設備的部件,但由于它也用作注冊表40中的關鍵字,它必須是在計算機系統(tǒng)10內(nèi)獨一無二的,以便能可靠地檢索到關于該設備的信息。這一串能用來交叉參照關于存儲在注冊表40中的設備的數(shù)據(jù)。
      下面是設備ID的實例Root\*PNP 0000\0;ISAPNP\ADP1522-DEV0000\E8124123;BIOS\*PNP0100\0;及PCMCIA\MEGAHERTZ-XJ124FM-936B。如這些實例中所見,ID的第一部分標識找到該設備的部件。例如,ISAPNP對應于即插即用的設備的ISA總線。設備ID的這一命名方案為總線特定的命名方案。
      如上面所討論的,枚舉器為識別安裝的硬件與建立設備節(jié)點的部件。在計算機系統(tǒng)10中,各總線包含由配置管理器20調用來定位在其各自的總線上的設備的枚舉器。這些總線包含PCI、EISA、PCMCIA、SCSI等。這些總線上的設備通常配置成完全支持即插即用的。也能將ISA總線配置成支持即插即用的,并稱作ISAPNP總線。在總線上識別出的設備的設備節(jié)點可具有它們自己的枚舉器而在設備節(jié)點樹50上建立子節(jié)點。這些子設備節(jié)點的任何一個能具有在設備節(jié)點樹50上建立該設備節(jié)點的進一步子節(jié)點的枚舉器。
      為了識別在不能即插即用的標準ISA總線上配置的設備(有時稱作傳統(tǒng)設備)配置管理器20能使用檢測模塊而不是枚舉器。檢測模塊能使用識別傳統(tǒng)設備的方法,諸如檢驗硬編碼的I/O位置的預期值來檢測諸如鍵盤或中斷控制器等設備。
      枚舉器負責為它們定位的設備建立設備ID。如上所述,各標識符應是獨一無二的并在每一次系統(tǒng)引導時始終如一。應將該串構成為使它能用于標識注冊表40中獨一無二的項。該串通常以枚舉器的名稱開始,后面跟隨一“\”。例如,ISA即插即用枚舉器能將所有設備標識符起始為“ISAPNP\”。
      枚舉器構筑設備節(jié)點樹50并可參預在與各自的枚舉器關聯(lián)的總線上配置設備30。在大多數(shù)操作系統(tǒng)中,每一次計算機起動時發(fā)生枚舉進程。在枚舉進程結束時,設備節(jié)點樹50包含關于可利用的系統(tǒng)資源、所需的設備驅動器、及這些資源的其它要求的信息。
      設備節(jié)點樹50為表示計算機系統(tǒng)10中的硬件的結構的設備節(jié)點的分層的樹。從而,設備節(jié)點是在設備節(jié)點樹50的根上或者是父設備節(jié)點的子節(jié)點。一個設備節(jié)點能具有多個子設備節(jié)點。設備節(jié)點的父節(jié)點的其它子節(jié)點稱作兄弟。每一次起動計算機時構造設備節(jié)點樹50。此外,它可以是完全動態(tài)的,如果在計算機系統(tǒng)10中消除或增加設備30,甚至在計算機正在運行時改變。
      設備節(jié)點樹50為計算機系統(tǒng)10提供許多功能。首先,它描述計算機系統(tǒng)10中存在的所有硬件。此外,設備節(jié)點樹50為枚舉器提供配置它們的子硬件的機制,允許獨立于總線的驅動器。驅動器能是獨立于總線的,因為各總線的枚舉器能獨立于其它總線識別與配置受該總線控制的設備。通常,驅動器并不知道或關心它們在樹內(nèi)的精確位置。驅動器通常只關心它們自己的硬件設備或設備節(jié)點,而不注意樹中它們上面或下面的層。
      設備節(jié)點樹50包含計算機系統(tǒng)10中所有設備30的配置信息,并且配置管理器20用它來跟蹤與各設備關聯(lián)的資源,諸如中斷請求(IRQ)、輸入/輸出(I/O)端口及甚至聚SCSI標識符等非共享資源。設備節(jié)點樹50描述存在的設備與資源、資源需求、資源依存性、及當前資源分配。
      表1示出說明某些典型設備的設備ID及可期望在層次中何處能找到它們的設備節(jié)點樹的實例。未示出設備ID以外的各節(jié)點的實際內(nèi)容。
      表1設備節(jié)點樹實例Htree\Root\0-設備節(jié)點樹的根節(jié)點\Root\*PNP0801\0-老式聲音清除器兼容的聲音設備\Root\*PNPOC00\0-即插即用BIOS\BIOS\*PNP0901\0-超級VGA兼容的顯示器適配器\BIOS\*PNP0000\0-AT中斷控制器\BIOS\*PNP0100\0-AT定時器\BIOS\*PNP0200\0-AT DMA控制器\BIOS\*PNP0301\0-PS/2形式鍵盤控制器\BIOS\*PNP0400\0-標準LPT打印機端口\BIOS\*PNP0400\1-標準LPT打印機端口\BIOS\*PNP0501\0-16550通信端口\BIOS\*PNP0501\1-16550通信端口\BIOS\*PNP0700\0-PC標準軟盤控制器\BIOS\*PNP0800\0-AT形式揚聲器聲音\BIOS\*PNP0901\0-SVGA兼容的顯示器適配器\BIOS\*PNP0B00\0-AT實時時鐘\BIOS\*PNP0C01\0-系統(tǒng)存儲器\BIOS\*PNP0E00\0-PCMCLA控制器\PCMCIA\3C08SF\0-網(wǎng)絡適配器如表1中所示,根節(jié)點是聲音清除器與即插即用BIOS的父節(jié)點。即插即用BIOS又具有一系列子節(jié)點。即插即用BIOS的枚舉器識別這些設備的每一個并為各設備建立設備節(jié)點,其中各設備節(jié)點為即插即用BIOS設備節(jié)點的子節(jié)點。如上面討論的,這一分層結構示出這些子節(jié)點的每一個是受即插即用BIOS控制的。類似地,PCMCIA控制器的枚舉器識別受該PCMCIA控制器控制的網(wǎng)絡適配器,并為該網(wǎng)絡適配器建立一設備節(jié)點作為PCMCIA控制器的子節(jié)點。
      計算機系統(tǒng)10還使用與擴充注冊表40及各種設備信息文件(帶.INF文件名擴展)。注冊表40存儲曾經(jīng)安裝在特定機器上的所有設備30,其中包含諸如傳統(tǒng)設備等不允許完全即插即用的設備。注冊表40還存儲已由枚舉器定位的即插即用設備的有關信息、設備特定的狀態(tài)信息、設備對設備驅動器的連接、以及關于最后知道的配置的數(shù)據(jù)-用于加速資源分配。
      上面提到的設備信息文件包含關于已知設備及它們的配置的信息。計算機系統(tǒng)10能提供某些類別信息文件(例如SCSI.INF與MODEM.INF);其它是由設備制造商提供的。當枚舉器檢測到或枚舉新設備時,在所有已知的.INF文件中搜索與該設備ID匹配的項。在找到匹配時,便拷貝適當?shù)奈募⑺璧臄?shù)據(jù)拷貝到注冊表40中新建立的注冊表條目中。
      注冊表40是通過微軟Win 32API組在Windows 95、Windows 98與.Windows NT中訪問的全系統(tǒng)數(shù)據(jù)庫。此外,Windows 95與Windows 98提供對注冊表40的實方式訪問以便在切換到保護方式之前在引導期間能使用它。如前面指出的,注冊表40存儲類似于Windows3.1-格式.INI文件中的項的“關鍵字”與“值”的分層樹(除外Windows3.1.INI文件具有與注冊表的樹結構相反的平坦結構)。在枚舉特定設備時操作系統(tǒng)利用注冊表40來存儲關于應加載哪些驅動器的信息、以及諸如驅動器修正號、制造商、及該設備的潛在邏輯配置等信息。下面的表II示出示范性注冊表條目。
      表II注冊表條目實例\HKEY_LOCAL_MACHINE\ENUM\ROOT\*PNP0000\0000DrvDesc=”可編程中斷控制器”類別=”系統(tǒng)”BootConfig=(I/O端口20h,21h,A0h,及A1h-二進制資源數(shù)據(jù))驅動器=”系統(tǒng)\0000”硬件ID=”*PNP0000”InfName=”MACHINE.INF”Mfg=”微軟”NoSetupUI=”1”ENUM\BIOS\*PNP0000\0000\LogConfig0=(二進制資源數(shù)據(jù),在這一情況中作為上面的BootConfig)SYSTEM\CurrentControlSet\Services\Class\System\0000DriverDesc=”可編程中斷控制器”DevLoader\”*VPICD”EnumPropPages=”Sysclass.dll,EnumPropPages”表II中的注冊表條目示出可為特定設備包含在注冊表40中的信息的實例。在這一實例中,設備為可編程的中斷控制器。這一設備的信息包含可能的引導配置、與該設備關聯(lián)的設備驅動器、獨一無二的ID、該設備的信息文件名、及用于加載該設備的設備驅動器的設備加載器。
      大多數(shù)即插即用注冊表條目存儲在注冊表40的ENUM樹中,即\HKEY_LOCAL_MACHINE\ENUM。在ENUM下,各枚舉器具有其本身的分支,它曾經(jīng)枚舉與建立的各設備具有在該枚舉器下面的一個子節(jié)點。存在著一個稱作ENUM\ROOT的特殊枚舉器分支,它包含諸如傳統(tǒng)設備等非即插即用的硬件的注冊表條目,對于它們沒有枚舉器但能用上面討論的其它手段檢測到。例如,在安裝操作系統(tǒng)時,根據(jù)諸如MSDET.INF信息文件等信息文件中的表加載檢測模塊。當檢測到不完全允許即插即用的設備時,便從注冊表40中的適當設備信息文件中檢索關于它的信息。然后將這一信息存儲在注冊表40中建立在HKEY_LOCAL_MACHINE\ENUM\Root分支下的新節(jié)點中。
      當枚舉器或檢測模塊檢測到在注冊表40中沒有它的注冊表條目的設備時,設備安裝器在注冊表40中建立新項。大多數(shù)信息是由設置有該設備的.INF文件或直接由該設備的建立模塊提供的。注冊表40還存儲配置特定的信息,它是與是否與有能力的便攜式計算機對接或脫離對接有關的信息,以及用戶特定的信息。
      設備節(jié)點樹50與注冊表40之間的區(qū)別是重要的。在完全即插即用的系統(tǒng)中,設備節(jié)點樹50是當前安裝的設備的精確分層表示。反之,注冊表40包含曾經(jīng)安裝(即使它們當前不存在)的所有設備的信息。設備在注冊表40中的位置并不完全反映設備節(jié)點樹50中描述的分層結構。在注冊表40中,設備位于它們的枚舉器下方,但所有枚舉器是保持在平坦的表中的,意味著枚舉器并不按照識別它們的相關設備的枚舉器保持在分層結構中。設備節(jié)點樹50只存在在存儲器中,而注冊表40則保存在盤上。
      如前面指出的,設備驅動器控制與管理設備硬件。設備驅動器負責識別給定設備30的特定資源需求并將該設備設定為以配置管理器20所賦予的配置操作。配置管理器20提供設備驅動器能用來執(zhí)行其任務的服務與消息。
      設備驅動器檢驗設備節(jié)點樹50中表示其設備的分配的配置的設備節(jié)點部分來確定已為該設備分配了哪些資源。對于即插即用卡,給定設備的分配的資源在每一次引導時,或甚至在計算機系統(tǒng)10正在運行時(動態(tài)地)可以改變。邏輯配置描述對給定的硬件有效的各種配置。諸如它是否斷開或配置等關于設備的狀態(tài)的信息是由配置管理器20維護在設備節(jié)點樹50中的各設備節(jié)點中的。驅動器能通過向配置管理器20查詢該信息來查詢這一信息。在為特定的設備節(jié)點加載驅動器時,它向配置管理器20注冊,傳遞在分配或改變硬件配置時將調用的設備的入口點。雖然設備驅動器或其它部件不能直接訪問設備節(jié)點樹50或設備節(jié)點,它能檢索關于設備節(jié)點的本體的信息并執(zhí)行檢索及設置該設備節(jié)點中的信息的任務。配置管理器20提供這些服務在設備節(jié)點上執(zhí)行任務。然而,設備驅動器及其它部件能在注冊表40中存儲關于給定的設備節(jié)點的信息,以及檢索配置管理器20存儲在注冊表40中的關于設備節(jié)點的信息。
      設備加載器加載與管理給定設備節(jié)點的設備驅動器及枚舉器。當設備由設備驅動器的不同的層管理時,通常使用設備加載器。設備加載器協(xié)調不同的層的工作并執(zhí)行適用于所有設備驅動器的通用配置任務。
      配置管理器20能將設備加載器與給定的設備節(jié)點關聯(lián)。設備加載器也能為給定的設備節(jié)點或任何子設備節(jié)點加載枚舉器及設備驅動器。其它服務包含檢索與分配私有值給設備節(jié)點以及在設備描述符塊中檢索與設備節(jié)點關聯(lián)的任何動態(tài)加載的虛擬設備。
      仲裁器為分配諸如IRQ與I/O端口等各種資源的所有權的部件。資源仲裁器調解設備之間的資源沖突。仲裁器檢驗設備需求表并找出最佳資源分配來滿足所有設備。配置管理器20也提供服務與信息來支持資源仲裁器的操作。
      需求表標識設備30成功地操作所需的資源類型及與這些資源關聯(lián)的任何限制。IRQ、I/O端口、DMA通道與存儲器范圍是資源類型的實例。限制通常是資源間的依存性,諸如設備30要求必須見到組合在一起的IRQ3與I/O端口O2F8以便成功地操作。
      邏輯配置是設備30成功地操作所要求的資源的說明。任何給定的設備30可具有若干可能的邏輯配置。配置管理器20利用設備30的邏輯配置來決定如何在競爭中的設備之間分配資源。配置管理器20提供設備驅動器、枚舉器、及其它部件能用來檢驗與建立邏輯配置的服務。
      資源描述符描述邏輯配置中的資源。其中有存儲器、I/O端口、DMA通道、及IRQ的資源描述符。能根據(jù)需要建立其它資源描述符來標識設備可利用的其它類型的資源。
      存儲器資源描述符標識存儲器地址范圍。這一描述符包含描述存儲器資源的MEM_DES結構及標識各設備的可能存儲器配置的MEM_RANGE結構的數(shù)組。I/O端口資源描述符標識I/O端口地址范圍。它包含描述I/O端口資源的IO_DES結構及標識可能的端口配置的IO_RANGE結構的數(shù)組。
      DMA通道資源描述符標識一組DMA通道選擇對象。這一描述符為標識設備能使用的DMA通道的DMA_DES結構。最后,IRQ資源描述符標識一組IRQ選擇對象。它是標識設備能使用的IRQ及IRQ是否能共享的IRQ_DES結構。
      當以I/O端口資源描述符工作時,IOR_Alias與IOR_Decode值規(guī)定設備對其應答的端口別名。端口別名是設備30對之應答的地址,似乎它便是I/O端口的實際地址。此外,某些卡實際使用附加端口于不同目的,但使用使它們似乎正在使用別名的解碼方案;例如,ISA卡可解碼10位并需要03Coh。這一卡必須規(guī)定04h的IOR_Alias偏移及IOR_Decode 3(不使用別名作為實際端口)。為了方便,可將別名字段設定為零來指示不需要別名;在這一情況中,忽略解碼字段。
      如果該卡要使用7Coh、OBCoh、及OFCoh上的端口,其中這些端口具有不同的功能,IOR_Alias值將是相同的而IOR_Decode值將是OFh,指示端口地址的位11與12是有效的。從而,分配是對所有端口(PORT[i]+(n*alias*256))φ(decode*256/03FFh),其中n為任何整數(shù)而PORT為IOR_nPorts、IOR_Min、及IOR_Max字段規(guī)定的范圍。注意最小別名是4而最小解碼是3。
      由于ISA總線的歷史原因,假設使用其中PORT=n*400+Z(其中“Z”為范圍100h-3ffh內(nèi)的端口,而“N”大于或等于1)的任何端口的所有EISA與ISA卡將保留端口Z并將其它端口作為別名對待。如果保留了落入這一組中的端口但驅動器并不保留“Z”地址,則假設該設備是在局部總線上(諸如PCI),其中該保留的端口地址不出現(xiàn)在ISA總線上。
      范圍表是I/O端口或存儲器地址范圍(以DWORD形式)的排序的表,其中沒有兩個范圍重疊。管理I/O與存儲器資源的資源仲裁器利用該范圍表服務來發(fā)現(xiàn)給定的I/O或存儲器范圍是否與任何其它范圍沖突。這些服務檢測建立包含重疊的范圍表的企圖并或者失敗或者在已經(jīng)存在重疊時建立合并的范圍。各范圍必須指定連接的地址范圍,但范圍表本身可包含多個范圍,其中沒有一個必須與表中的任何其它范圍連接。
      與這些部件及資源聯(lián)合工作,配置管理器20為計算機系統(tǒng)10的所有設備30找出可工作的配置從而各設備30能與其它設備無沖突地使用其分配的IRQ號、I/O端口地址、及其它資源。配置管理器30還協(xié)助監(jiān)視計算機系統(tǒng)10中存在的設備30的數(shù)目與類型的改變,并在發(fā)生改變時根據(jù)需要管理設備30的配置。為了建立與維護配置,配置管理器20與枚舉器、資源仲裁器、設備加載器、及設備驅動器聯(lián)合工作。它提供這些部件用來執(zhí)行它們的配置任務的服務與信息。下面的表III示出配置管理器20所提供的一些服務的表及這些服務的各個的說明。
      表III配置管理器服務服務說明CONFIGMG_Create_DevNode 在硬件樹上增加設備節(jié)點。CONFIGMG_Disable_DevNode禁止硬件樹中的設備節(jié)點。CONFIGMG_Enable_DevNode 允許硬件樹中的設備節(jié)點。CONFIGMG_Query_Remove_SubTree 檢驗是否能消除設備節(jié)點及其后代。CONFIGMG_Reenumerate_DevNode使指定的設備節(jié)點的枚舉器接受CONFIG_ENUMERATE枚舉器功能。CONFIGMG_Remove_SubTree 消除設備節(jié)點及其子節(jié)點。
      可將這些服務用在計算機系統(tǒng)10中來允許在計算機系統(tǒng)10正在操作時在計算機系統(tǒng)10中插入與識別設備30。除了表III中所示的服務,還有許多在Windows 95與98中標準的服務能用在計算機系統(tǒng)10中。Karen Hazzah的“編寫Windows VxD及設備驅動器,第二版”(1997年R&amp;D Books出版)提供即插即用框架及其部件的更完整說明,通過引用將其結合在此。
      圖2a與2b為符合本發(fā)明的用于在操作中的計算機系統(tǒng)10中消除與插入具有不完全允許“即插即用”的驅動器的設備的進程的流程圖。這一進程能作為軟件程序、布線成執(zhí)行該進程的諸如可編程存儲器、固件或處理器等硬件設備或它們的某種組合實現(xiàn)。參見圖2a,在引導計算機系統(tǒng)10時,配置管理器20用枚舉器、設備節(jié)點、設備驅動器及注冊表40生成設備節(jié)點樹50(步驟110)。
      在計算機系統(tǒng)10正在運行(熱交換)或在睡眠狀態(tài)中(溫交換)時,計算機系統(tǒng)10的用戶能請求用當前存在在計算機系統(tǒng)10中的設備替換或交換不同的設備(步驟112)。為了作出這一請求,用戶能通過Windows型界面或與計算機系統(tǒng)10正在使用的操作系統(tǒng)兼容的任何其它類型界面查詢計算機系統(tǒng)10。在這一請求中,用戶能指定要消除的設備及要插入的新設備。此外,如果沒有設備要被消除,則用戶可以只指定要插入的設備。響應這一請求,配置管理器20調用用戶請求消除的設備的控制器的驅動器(步驟114)。這一調用能用CONFIGMG_Query_Remove_SubTree服務作出。如果要消除的設備是硬驅動器,這一設備控制器可以是例如IDE控制器,而如果要消除的設備是軟驅動器,則為軟控制器。取決于消除的設備的類型,其它控制器也是可能的。
      設備控制器的驅動器確定要消除的設備當前是否正在使用(步驟116)。例如,如果該設備是盤驅動器,驅動器會確定該驅動器上的文件當前是否打開。為了作出確定,可作出CONFIGMG_Query_Remove_SubTree調用或查詢。在盤驅動器的實例中,可通過若干層驅動器訪問該盤驅動器,諸如文件系統(tǒng)驅動器、盤驅動器驅動器及盤控制器驅動器。雖然盤控制器驅動器可能不知道盤驅動器上打開的文件,它能將關于狀態(tài)的查詢提交給能作出確定的其它驅動器層。
      如果該設備當前正在使用,通過界面通知用戶不能消除該設備(步驟118)。如果在應答該查詢中返回CR_REMOVED_VETOED指示,則確定該設備當前正在使用。在盤驅動器的實例中??梢韵蛴脩籼峁┬畔黻P閉該文件并在關閉文件之后重試交換。反之,如果該設備不在使用,則通過界面通知用戶能進行交換(步驟120)。如果返回的指示為CR_SUCCESS則該設備不在使用。
      在消除該設備之前,配置管理器20從設備節(jié)點樹50中消除與要消除的設備控制器關聯(lián)的所有設備節(jié)點及受該設備控制器控制的所有設備,其中包含要消除的該設備(步驟122)。這能用CONFIGMG_Remove_SubTree服務完成。作為這一操作的后果,從計算機系統(tǒng)10中卸載了與消除的設備節(jié)點相關的所有驅動器與驅動器字母。例如,消除軟盤驅動器及其控制器的設備節(jié)點會消除它們的相關驅動器及驅動器字母,諸如“a”驅動器。
      如果正在交換的設備是受同一控制器控制的,諸如都受IDE控制器控制的CD-ROM與硬驅動器,則只消除該控制器的設備節(jié)點。然而,如果正在交換的設備是受不同控制器控制的,則有必要消除兩個控制器的設備節(jié)點。如果正在插入新設備而不消除另一設備,則只須消除控制該新設備的控制器的設備節(jié)點。
      消除了設備節(jié)點之后,便斷開了要消除的設備與其控制器之間傳輸?shù)男盘?步驟124)。為了執(zhí)行這一信號斷開,可將一電路集成到控制器中或加到計算機系統(tǒng)10中控制器與要消除的設備之間。這一信號斷開電路可以是諸如開關設備,它在斷開時封鎖控制器與要消除的相關設備之間的信號傳輸。信號斷開電路的開關控制響應能交換該設備的指示。雖然信號斷開并非必要,但最好包含以免對控制器及要消除的設備的可能損壞。如果要交換的設備是受不同控制器控制的,也必須斷開要插入的設備的控制器的信號。如果要插入的設備不是交換另一設備的,斷開要插入的設備的控制器的信號也是必要的。
      除了斷開設備與其控制器之間傳輸?shù)男盘栔?,切斷正在消除的設備的供電(步驟126)。一旦信號已斷開及該設備已斷電,用戶便能從計算機系統(tǒng)10中消除該設備(步驟128)。
      如圖2b中所示,在用戶從計算機系統(tǒng)10中消除該設備之后,用戶便能插入新設備(步驟130)。在作出這一交換之前,可通過界面向用戶提供計算機系統(tǒng)10已準備好進行交換的指示。
      在向新設備供電與重新接通斷開的信號之前,用戶能通過界面提供已插入新設備的指示。作為替代,可在計算機系統(tǒng)10中包含傳感器電路來感測或確定已插入新設備,并提供已插入新設備的指示。
      給出了已插入新設備的指示,便向新設備供電(步驟132)并將從上述控制器斷開的信號重新接通到該新設備(步驟134)。響應這一指示,配置管理器20隨即指令枚舉器枚舉或識別該新增加的設備的控制器(步驟136)。這一枚舉器與該新設備的控制器連接在其上面的總線通信。枚舉可用CONFIGMG_Reenumernt_DevNode系統(tǒng)調用完成。通過重新枚舉該控制器,定位新設備的控制器并將其設備節(jié)點加到設備節(jié)點樹50上(步驟138)。如果交換的設備是受不同的控制器控制的,則也重新枚舉消除的設備的控制器。
      在將控制器的設備節(jié)點加到設備節(jié)點樹50上之后,還初始化對應于該控制器的驅動器(步驟140)。如上面所討論的,控制器的設備節(jié)點可包含關于該控制器的驅動器的位置的信息。在驅動器的初始化期間,該控制器的驅動器定位與該控制器關聯(lián)的枚舉器,后者將該新設備枚舉為連接在該控制器上(步驟142)。作為這一枚舉的結果,也將對應于該新設備的設備節(jié)點加到設備節(jié)點樹50上(步驟144)。設備節(jié)點樹50中存在了新設備的設備節(jié)點,計算機系統(tǒng)10便能識別與使用該新設備,似乎該新設備是在引導時安裝的一樣。
      如上面所討論的,當在計算機系統(tǒng)10正在運行時插入設備時,諸如Windows 95與98等操作系統(tǒng)不能識別與初始化具有不允許完全“即插即用”的驅動器的設備。反之,這些驅動器只能在初始化了對應的驅動器時才能枚舉設備,而這在傳統(tǒng)上只在起動或安裝操作系統(tǒng)期間出現(xiàn)。然而在圖2a與2b的進程中,控制器與設備的驅動器是卸載然后重新初始化的,這便允許甚至在計算機系統(tǒng)10正在運行或睡眠時也能識別與初始化新安裝的設備。
      識別計算機系統(tǒng)10中存在的設備的進程依賴于枚舉器的使用。枚舉器能與特定的設備節(jié)點關聯(lián),諸如總線或設備控制器的設備節(jié)點。此外,至少一個枚舉器與設備節(jié)點樹50的根節(jié)點關聯(lián)。配置管理器20使用與設備節(jié)點樹50的根節(jié)點關聯(lián)的枚舉器在起動時開始該枚舉進程。然而,不管枚舉器是與根節(jié)點、父節(jié)點還是子節(jié)點關聯(lián)的,枚舉進程都以相同方式進行。圖3示出符合本發(fā)明的枚舉進程的流程圖。
      首先,配置管理器20或與設備節(jié)點關聯(lián)的設備驅動器判定設備節(jié)點是否包含關聯(lián)的枚舉器(步驟210)。如果否,則該設備節(jié)點不能具有任何子節(jié)點與關聯(lián)的設備來枚舉并為其調用驅動器。反之,如果配置管理器20或設備驅動器判定該設備節(jié)點包含枚舉器,便調用該枚舉器(步驟212)。然后調用的枚舉器搜索與對應的設備節(jié)點的設備關聯(lián)或受其控制的任何設備(步驟214)。如果定位了這一設備,枚舉器便在注冊表40中搜索對應于該定位的設備的項(步驟216)。
      如果在注冊表40中未找到對應于定位的設備的項,稱作設備安裝器的模塊為該定位的設備在注冊表40中建立一新項(步驟218)。一旦為該設備建立了項,便以與任何其它安裝的或以前安裝的設備相同的方式對待它。如果找到或已新建立了項,枚舉器便將該項的設備節(jié)點加到設備節(jié)點樹50上(步驟220)。加到設備節(jié)點樹50上的定位的設備的設備節(jié)點是作為對具有找到該定位的設備的枚舉器的設備節(jié)點的子節(jié)點加入的。例如,如果IDE控制器的設備節(jié)點的枚舉器定位了硬驅動器,該硬驅動器的設備節(jié)點將作為設備節(jié)點樹50中的IDE控制器的設備節(jié)點的子節(jié)點加入。枚舉器還根據(jù)設備節(jié)點中的信息識別該定位的設備的設備驅動器(步驟222),并使用這一信息來調用該設備驅動器(步驟224)。然后該進程重復自己。
      圖4示出符合本發(fā)明的設備交換器70的框圖。設備交換器70可作為軟件程序、諸如可編程存儲器、固件或處理器等硬件設備、或者它們的某種組合實現(xiàn)。設備交換器70可作為諸如圖1中所示的計算機系統(tǒng)10等計算機系統(tǒng)的一部分加入。例如,如果作為軟件程序實現(xiàn),設備交換器能在激活時加載到計算機系統(tǒng)10的存儲器中。
      如圖4中所示,設備交換器70包含查詢模塊72、消除模塊74、斷開與供電模塊76及枚舉模塊78。這些模塊能在計算機系統(tǒng)10操作時加載到計算機系統(tǒng)10的存儲器中。操作中,圖4中的計算機系統(tǒng)10的用戶能用輸入設備作出請求用安裝在計算機系統(tǒng)10中的設備30交換另一設備。設備交換器70的查詢模塊72接受這一請求,它判定要消除的設備當前是否正受訪問(圖2a的步驟116)。如果是,查詢模塊72通過諸如計算機系統(tǒng)10中的監(jiān)視器等界面通知用戶該設備當前正在使用而此時不能消除(圖2a的步驟118)。如果不在訪問,查詢模塊72通知用戶可以接受交換(圖2a的步驟120)。
      消除該設備之前,消除模塊74從設備節(jié)點樹50中消除該設備的設備節(jié)點及其相關控制器(圖2a的步驟122)。這一消除同時卸載與該設備及控制器相關的所有驅動器及驅動器的驅動器字母。除了消除設備節(jié)點,斷開與供電模塊76信令斷開電路(未示出)斷開在被消除的設備與控制器之間傳輸?shù)男盘?圖2a的步驟124)。斷開與供電模塊76還切斷被消除的設備的供電(圖2a的步驟126)。
      交換設備之后,斷開與供電模塊76接收已插入新增加的設備的指示,向新增加的設備供電并信令斷開電路重新接通控制器與增加的設備之間傳輸?shù)男盘?圖2b的步驟132與134)。也接收已插入新增加的設備的指示的枚舉模塊78便定位新增加的設備的控制器并將該控制器的設備節(jié)點加到設備節(jié)點樹50中(圖2b的步驟136與138)。這一控制器可以是與消除的設備的控制器同一或不同的控制器。初始化與該控制器的設備節(jié)點關聯(lián)的設備驅動器并調用與該控制器關聯(lián)的枚舉器,后者定位新增加的設備并將其設備節(jié)點加到設備節(jié)點樹50上(圖2b的步驟140、142與144)。此時,計算機系統(tǒng)10的其余部分完全可以訪問該新增加的設備。
      已為了示例與說明的目的提出了本發(fā)明的較佳實施例的上文中的描述。這不是為了將本發(fā)明窮盡或限制在公開的精確方式上,而是根據(jù)上面的教導或者從本發(fā)明的實踐中有可能進行各種修改與改型。這一實施例是為了說明本發(fā)明的原理及使熟悉本技術的人員能在各種實施例中利用本發(fā)明及適合于設想的特殊用途的各種修改的實際應用而選擇與描述的。旨在由這里所附的權利要求及它們的等效物來定義本
      權利要求
      1.一種枚舉計算機系統(tǒng)中存在的第一設備而使該計算機系統(tǒng)能識別該第一設備的方法,該計算機系統(tǒng)具有存儲器及使用存儲在該存儲器中的數(shù)據(jù)結構來建立計算機系統(tǒng)的工作配置的操作系統(tǒng),該數(shù)據(jù)結構具有對應于該計算機系統(tǒng)中存在的設備的一或多個設備節(jié)點,該方法包括下述步驟當計算機系統(tǒng)正在操作時向該操作系統(tǒng)提供已將該第一設備插入計算機系統(tǒng)中的指示;響應該指示枚舉用于控制該第一設備的第一設備控制器;響應第一設備控制器的枚舉初始化與該第一設備控制器關聯(lián)的第一驅動器;用該初始化后的第一驅動器定位與該第一設備控制器關聯(lián)的枚舉器;以及用該定位的枚舉器枚舉該第一設備,其中當初始化該第一驅動器時,該第一驅動器只能定位與第一設備控制器關聯(lián)的枚舉器。
      2.對照權利要求1的方法,其中枚舉第一設備控制器的步驟包含將該第一設備控制器的設備節(jié)點加到該數(shù)據(jù)結構上的子步驟。
      3.按照權利要求1的方法,其中枚舉該第一設備控制器的步驟包含從存儲在計算機系統(tǒng)的存儲器中的設備節(jié)點表中定位該第一設備控制器的設備節(jié)點的子步驟。
      4.按照權利要求1的方法,其中枚舉第一設備的步驟包含從存儲在計算機系繞的存儲器中的設備節(jié)點表中定位第一設備的設備節(jié)點的子步驟。
      5.按照權利要求4的方法,其中枚舉第一設備的步驟還包含將該第一設備的定位的設備節(jié)點加到該數(shù)據(jù)結構上的子步驟。
      6.按照權利要求1的方法,其中枚舉第一設備的步驟包含將該第一設備的設備節(jié)點加到該數(shù)據(jù)結構上的子步驟。
      7.按照權利要求1的方法,還包括下述步驟在將第一設備連接到計算機系統(tǒng)上之后向該第一設備供電;以及接通在第一設備與第一設備控制器之間傳輸?shù)娜魏螖?shù)據(jù)信號。
      8.按照權利要求1的方法,在接通第一設備的步驟之前,還包括下述步驟確定當前是否正在訪問計算機系統(tǒng)中的第二設備;從該數(shù)據(jù)結構中清除對應于該第二設備的設備節(jié)點及對應于用于控制該第二設備的控制器的設備節(jié)點;隔離在第二設備與第二設備控制器之間傳輸?shù)娜魏螖?shù)據(jù)信號從第二設備控制器到第二設備的傳輸;以及關閉第二設備的供電。
      9.按照權利要求8的方法,其中清除對應于第二設備及第二設備控制器的設備節(jié)點的步驟包含卸載與該第二設備及該第二設備控制器關聯(lián)的所有驅動器的子步驟。
      10.按照權利要求8的方法,其中該第一設備控制器與第二設備控制器是同一控制器。
      11.按照權利要求8的方法,還包括將隔離的數(shù)據(jù)信號接通到第一設備上的步驟。
      12.按照權利要求1的方法,其中該第一設備是軟驅動器、硬驅動器、及CD-ROM驅動器之一。
      13.按照權利要求1的方法,其中該第一設備控制器為IDE驅動器控制器及軟驅動器控制器之一。
      14.按照權利要求8的方法,其中該第二設備為軟驅動器、硬驅動器、及CD-ROM驅動器之一。
      15.按照權利要求8的方法,其中該第二設備控制器為IDE驅動器控制器及軟驅動器控制器之一。
      16.一種計算機程序產(chǎn)品,包括具有用于枚舉計算機系統(tǒng)中存在的第一設備而使該計算機系統(tǒng)能識別該第一設備的計算機可讀的程序代碼模塊實現(xiàn)在其上的計算機可用的介質,該計算機系統(tǒng)具有存儲器及使用存儲在該存儲器中的數(shù)據(jù)結構來建立計算機系統(tǒng)的工作配置的操作系統(tǒng),該數(shù)據(jù)結構具有對應于該計算機系統(tǒng)中存在的設備的一或多個設備節(jié)點,該計算機程序產(chǎn)品包括第一枚舉模塊,用于在該計算機操作中將第一設備插入該計算機系統(tǒng)中之后枚舉用于控制該第一設備的第一設備控制器;初始化模塊,用于響應該第一設備控制器的枚舉初始化與該第一設備控制器關聯(lián)的第一驅動器;定位器模塊,用于用初始化的第一驅動器識別與該第一設備控制器關聯(lián)的枚舉器;以及第二枚舉模塊,用于用與該笫一設備控制器關聯(lián)的該定位的枚舉器枚舉該第一設備,其中在初始化第一驅動器時該第一驅動器只能定位與該第一設備控制器關聯(lián)的枚舉器。
      17.按照權利要求16的計算機程序產(chǎn)品,其中該第一枚舉模塊包含用于將第一設備控制器的設備節(jié)點加到該數(shù)據(jù)結構上的子模塊。
      18.按照權利要求16的計算機程序產(chǎn)品,其中該第一枚舉模塊包含用于從存儲在計算機系統(tǒng)的存儲器中的設備節(jié)點表中定位該第一設備控制器的設備節(jié)點的子模塊。
      19.按照權利要求16的計算機程序產(chǎn)品,其中該第二枚舉模塊包含用于從存儲在計算機系統(tǒng)的存儲器中的設備節(jié)點表中定位該第一設備的設備節(jié)點的子模塊。
      20.按照權利要求19的計算機程序產(chǎn)品,其中該第二枚舉模塊還包含用于將該第一設備的定位的設備節(jié)點加到該數(shù)據(jù)結構上的子模塊。
      21.按照權利要求16的計算機程序產(chǎn)品,其中該第二枚舉模塊包含用于將該第一設備的設備節(jié)點加到該數(shù)據(jù)結構上的子模塊。
      22.按照權利要求16的計算機程序產(chǎn)品,還包括用于在將該第一設備連接到該計算機系統(tǒng)上之后向該第一設備供電的供電模塊;以及用于接通在該第一設備與第一設備控制器之間傳輸?shù)娜魏螖?shù)據(jù)信號的開關模塊。
      23.按照權利要求16的計算機程序產(chǎn)品,還包括查詢模塊,用于確定當前是否正在訪問計算機系統(tǒng)中的第二設備;清除模塊,用于從該數(shù)據(jù)結構中消除對應于第二設備的設備節(jié)點及對應于控制該第二設備的控制器的設備節(jié)點;隔離模塊,用于隔離在第二設備與第二設備控制器之間傳輸?shù)娜魏螖?shù)據(jù)信號從第二設備控制器到第二設備的傳輸;供電模塊,用于切斷第二設備的供電,使得能將該第二設備從計算機系統(tǒng)上清除。
      24.按照權利要求23的計算機程序產(chǎn)品,其中該第一設備控制器與第二設備控制器為同一控制器。
      25.按照權利要求23的計算機程序產(chǎn)品,還包括用于將隔離的數(shù)據(jù)信號接通到第一設備上的開關模塊。
      26.按照權利要求23的計算機程序產(chǎn)品,其中該清除模塊包含用于卸載與第二設備及第二設備控制器關聯(lián)的所有驅動器的子模塊。
      27.按照權利要求16的計算機程序產(chǎn)品,其中該第一設備為軟驅動器、硬驅動器、及CD-ROM驅動器之一。
      28.按照權利要求16的計算機程序產(chǎn)品,其中該第一設備控制器為IDE驅動器控制器及軟驅動器控制器之一。
      29.按照權利要求23的計算機程序產(chǎn)品,其中該第二設備為軟驅動器、硬驅動器、及CD-ROM驅動器之一。
      30.按照權利要求23的計算機程序產(chǎn)品,其中該第二設備控制器為IDE驅動器控制器及軟驅動器控制器之一。
      31.一種用于枚舉計算機系統(tǒng)中存在的第一設備而使該計算機系統(tǒng)能識別該第一設備的計算機系統(tǒng),該計算機系統(tǒng)具有存儲器及使用存儲在該存儲器中的數(shù)據(jù)結構來建立該計算機系統(tǒng)的工作配置的操作系統(tǒng),該數(shù)據(jù)結構具有對應于該計算機系統(tǒng)中存在的設備的一或多個設備節(jié)點,該計算機系統(tǒng)包括在計算機系統(tǒng)操作時向操作系統(tǒng)提供已將第一設備插入該計算機系統(tǒng)中的指示的第一部件;響應該指示枚舉用于控制該第一設備的第一設備控制器的第二部件;響應第一設備控制器的枚舉,枚舉與該第一設備控制器關聯(lián)的第一驅動器的第三部件;用初始化的第一驅動器定位與該第一設備控制器關聯(lián)的枚舉器的第四部件;以及用該定位的枚舉器枚舉第一設備的第五部件;其中在初始化該第一驅動器時,該第一驅動器只能定位與該第一設備控制器關聯(lián)的枚舉器。
      全文摘要
      一種用于交換安裝在計算機系統(tǒng)中的設備的系統(tǒng)允許用戶在該計算機系統(tǒng)正在運行或在睡眠狀態(tài)中時進行設備交換。該系統(tǒng)能識別、訪問及使用新增加的設備而無須重新起動或重新引導該計算機系統(tǒng)。
      文檔編號G06F9/445GK1437726SQ00819275
      公開日2003年8月20日 申請日期2000年3月2日 優(yōu)先權日2000年3月2日
      發(fā)明者S·阿賴 申請人:鳳凰技術有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1