專利名稱:動(dòng)態(tài)注冊(cè)表分區(qū)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明主要涉及系統(tǒng)注冊(cè)表,尤其涉及一種便于動(dòng)態(tài)注冊(cè)表分區(qū)的系統(tǒng)及方法。
背景技術(shù):
大部分傳統(tǒng)的操作系統(tǒng)都使用便于信息存儲(chǔ)的注冊(cè)表,所述信息比如是配置信息。注冊(cè)表可以用于操作系統(tǒng)和運(yùn)行在操作系統(tǒng)下的應(yīng)用程序和服務(wù)程序的信息存儲(chǔ)設(shè)備。在一個(gè)例子中,注冊(cè)表存儲(chǔ)著從啟動(dòng)參數(shù)到用戶桌面設(shè)置這樣廣泛的配置設(shè)置。注冊(cè)表可以作為存儲(chǔ)在計(jì)算機(jī)存儲(chǔ)系統(tǒng)中的一個(gè)或多個(gè)配置文件來(lái)存儲(chǔ)(例如,永久的和/或非永久的)。
在安裝時(shí),應(yīng)用程序可以向注冊(cè)表中寫入(例如,存儲(chǔ))信息。注冊(cè)表是一個(gè)分等級(jí)的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)包括涉及每臺(tái)計(jì)算機(jī)和/或每個(gè)用戶數(shù)據(jù)存儲(chǔ)器的鍵的子樹(shù)。鍵可以包括被稱作記錄值條目的數(shù)據(jù)項(xiàng),并且還可以包含子鍵。在注冊(cè)表結(jié)構(gòu)中,鍵(和子鍵)可以被想像成類似于具有記錄值的條目,就象文件一樣。例如,系統(tǒng)注冊(cè)表可以在重啟,登入和登出時(shí)改變。
例如,注冊(cè)表可以包括以下主要部分(例如,子樹(shù))HKEY_Classes_Root-文件關(guān)聯(lián)和OLE信息HKEY_Current_User-當(dāng)前用戶的相關(guān)設(shè)置HKEY_User-系統(tǒng)每位用戶的當(dāng)前用戶信息HKEY_Local_Machine-硬件、操作系統(tǒng)和安裝應(yīng)用程序的設(shè)置HKEY_Current_Configuration-顯示器和打印機(jī)的設(shè)置HKEY_Dyn_Data-執(zhí)行數(shù)據(jù)隨著操作系統(tǒng)技術(shù)的每次發(fā)展,對(duì)于操作系統(tǒng)、尤其對(duì)于系統(tǒng)注冊(cè)表來(lái)說(shuō),同時(shí)允許傳統(tǒng)程序和本地程序并存成為了一項(xiàng)艱難的任務(wù)。例如,不同版本的應(yīng)用程序可以在通用配置數(shù)據(jù)結(jié)構(gòu)中存儲(chǔ)它們的配置信息。事實(shí)上,不同版本的應(yīng)用程序通常在通用的配置數(shù)據(jù)結(jié)構(gòu)中將它們的配置信息存儲(chǔ)在同一位置上。因而,后安裝的版本會(huì)覆蓋掉早些時(shí)候安裝的版本的配置信息。結(jié)果,由于早期版本的配置信息已被改變,所以早期的版本不能夠正常運(yùn)行(或根本不能夠運(yùn)行)。有時(shí)存在于通用配置數(shù)據(jù)結(jié)構(gòu)中的殘存配置還會(huì)干擾后安裝的版本的正常運(yùn)行。
通常,當(dāng)新版本的操作系統(tǒng)(比如,32位)出現(xiàn)時(shí),兼容性和互用性問(wèn)題就會(huì)出現(xiàn)。為了避免這類的兼容性問(wèn)題,同老的16位應(yīng)用程序相比,會(huì)命令新的32位應(yīng)用程序把它們的配置信息存儲(chǔ)在不同的位置(例如,獨(dú)立的系統(tǒng)注冊(cè)表)。另外,會(huì)指示它們對(duì)它們的應(yīng)用程序接口(API)和動(dòng)態(tài)鏈接庫(kù)(DLL)使用不同的名字。盡管這個(gè)傳統(tǒng)解決方案有助于兼容性和互用性問(wèn)題,但是它強(qiáng)迫軟件開(kāi)發(fā)者將大量的資源用于軟件的改造而不是開(kāi)發(fā)新的或改進(jìn)的軟件。也就是說(shuō),需要對(duì)16位版本的軟件應(yīng)用程序作較大地修改以使其接口32位版本。
發(fā)明內(nèi)容
為了對(duì)本發(fā)明的一些方面提供基本的了解,下面給出了本發(fā)明的簡(jiǎn)單概述。此概述并非本發(fā)明的總的看法。其并不意味著確定本發(fā)明的關(guān)鍵/重要要素或者限制本發(fā)明的保護(hù)范圍。唯一目的是以簡(jiǎn)單的形式給出本發(fā)明的一些原理,作為稍后將要詳細(xì)描述的前序。
本發(fā)明提出了一種用于提供對(duì)存儲(chǔ)在系統(tǒng)注冊(cè)表中的信息進(jìn)行訪問(wèn)的系統(tǒng)和方法,并且,進(jìn)一步簡(jiǎn)化了系統(tǒng)注冊(cè)表的動(dòng)態(tài)分區(qū)(例如,應(yīng)用程序和/或獨(dú)立操作系統(tǒng))的通用方式。本發(fā)明為客戶端、組件和/或應(yīng)用程序提供了系統(tǒng)注冊(cè)表的用戶化視圖。用戶化例如可以基于版本、計(jì)算機(jī)配置、用戶和/或其他適當(dāng)?shù)男畔?。此外,可以在運(yùn)行時(shí)修改系統(tǒng)注冊(cè)表的用戶化視圖。額外的和/或可替換的,也可以準(zhǔn)許低等級(jí)組件(例如,客戶端和/或應(yīng)用程序)訪問(wèn)動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元來(lái)操縱(例如,添加,刪除和/或修改)重定向信息(例如,經(jīng)由接口組件)。
可以動(dòng)態(tài)的提供信息以響應(yīng)根據(jù)存儲(chǔ)在動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元中的注冊(cè)表分區(qū)信息的請(qǐng)求。因此,基于或者至少部分基于存儲(chǔ)在動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元中的重定向信息、向請(qǐng)求器(例如,組件和/或應(yīng)用程序)提供當(dāng)前系統(tǒng)注冊(cè)表信息。因此,依照本發(fā)明的一方面,管理程序可以在用戶化框架環(huán)境下運(yùn)行應(yīng)用程序,所述環(huán)境可以全面重定向所有的系統(tǒng)注冊(cè)表調(diào)用,在某一特定點(diǎn)和時(shí)間保證系統(tǒng)注冊(cè)表不被改變。也就是說(shuō),用戶可以在不中斷應(yīng)用程序的情況下,將系統(tǒng)注冊(cè)表中的單個(gè)寫操作重定向至不同的位置。
動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元存儲(chǔ)同至少一個(gè)應(yīng)用程序和系統(tǒng)注冊(cè)表相關(guān)聯(lián)的重定向信息。攔截組件接收訪問(wèn)系統(tǒng)注冊(cè)表的請(qǐng)求(例如,來(lái)自應(yīng)用程序),并且基于或者至少部分基于存儲(chǔ)在動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元中的重定向信息、返回與系統(tǒng)注冊(cè)表相關(guān)聯(lián)的信息。例如,攔截組件可以通過(guò)確定在動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元中的重定向信息是否被利用來(lái)觀察請(qǐng)求實(shí)體的特性和/或特征。
可以把重定向信息存儲(chǔ)在動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元(例如,鍵/轉(zhuǎn)化鍵)中。例如,動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元可以是系統(tǒng)中的重映射表,可以當(dāng)攔截組件攔截來(lái)自客戶端(例如,應(yīng)用程序)的系統(tǒng)服務(wù)調(diào)用時(shí),動(dòng)態(tài)地操縱該表格。
本發(fā)明的另一方面提供了特殊的組件(例如,應(yīng)用程序)來(lái)初始化適于所述組件(例如,用戶化視圖)的系統(tǒng)注冊(cè)表(例如,列表)的視圖。例如,把一個(gè)或多個(gè)特性同視圖(例如,列表)相關(guān)聯(lián)—源節(jié)點(diǎn)、目標(biāo)節(jié)點(diǎn)和/或?qū)傩?例如,<NS,ND,P>)。組件可以用不同的需求元素(例如,<A,B,P>)來(lái)更新視圖(例如,目錄)。當(dāng)組件試圖訪問(wèn)注冊(cè)表鍵,該鍵屬于鍵A且滿足屬性P時(shí),重定向調(diào)用到子樹(shù)B(例如,通過(guò)攔截組件)。雖然在此例中聲明了重定向的單一等級(jí),但是可以理解的是,能夠應(yīng)用零,一或更高等級(jí)的間接和/或?qū)盈B規(guī)則來(lái)操縱特殊的調(diào)用。
因此,在確定是否重新映射(例如,重定向)的過(guò)程中,攔截組件調(diào)查請(qǐng)求實(shí)體(例如客戶端)已經(jīng)通過(guò)的參數(shù)。其后,在一個(gè)例子中,攔截組件可以構(gòu)造另一組參數(shù)并且用修改的一組參數(shù)產(chǎn)生本地調(diào)用,其中構(gòu)造的這組參數(shù)與請(qǐng)求實(shí)體的(例如,客戶端的)的需求相匹配。
為了實(shí)現(xiàn)之前和后面所述的內(nèi)容,此處聯(lián)系下面的描述和附圖來(lái)圖解說(shuō)明本發(fā)明的各個(gè)方面。然而,這些方面是指示性的,而不是應(yīng)用本發(fā)明原理的幾種途徑,本發(fā)明試圖包含所有這些方面及其等效變換。當(dāng)結(jié)合附圖考慮時(shí),本發(fā)明的其他優(yōu)點(diǎn)和特點(diǎn)通過(guò)以下對(duì)本發(fā)明的詳細(xì)描述將變得顯而易見(jiàn)。
圖1是依照本發(fā)明一方面的動(dòng)態(tài)注冊(cè)表分區(qū)系統(tǒng)的框圖。
圖2是依照本發(fā)明一方面的動(dòng)態(tài)注冊(cè)表分區(qū)系統(tǒng)的框圖。
圖3是依照本發(fā)明一方面的動(dòng)態(tài)注冊(cè)表分區(qū)系統(tǒng)的框圖。
圖4是依照本發(fā)明一方面提供的簡(jiǎn)化動(dòng)態(tài)注冊(cè)表分區(qū)以支持多重注冊(cè)表視圖的方法的流程圖。
圖5是依照本發(fā)明一方面的同動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元相連接的方法的流程圖。
圖6圖解說(shuō)明了能夠運(yùn)行本發(fā)明的示例性操作環(huán)境。
具體實(shí)施例方式
下面將參照附圖具體描述本發(fā)明,其中同一元件始終用同一參考數(shù)字表示。在隨后的描述中,為了便于解釋,將闡明大量的具體細(xì)節(jié)以便對(duì)本發(fā)明提供一個(gè)徹底的理解。然而,很顯然的是,在沒(méi)有這些具體細(xì)節(jié)的情況下也可以實(shí)施本發(fā)明。出于其他原因,為了便于描述本發(fā)明,在框圖表中示出了眾所周知的結(jié)構(gòu)和裝置。
如在本申請(qǐng)中使用的,術(shù)語(yǔ)“計(jì)算機(jī)組件”意指計(jì)算機(jī)相關(guān)實(shí)體,如硬件、軟硬件的結(jié)合、軟件或執(zhí)行中的軟件。例如,計(jì)算機(jī)組件可以是,但并不局限于是,在處理器上運(yùn)行的進(jìn)程,處理器,對(duì)象,可執(zhí)行的,執(zhí)行線程,程序和/或計(jì)算機(jī)。通過(guò)舉例說(shuō)明,運(yùn)行在服務(wù)器上的應(yīng)用程序和服務(wù)器都可以是計(jì)算機(jī)組件。一個(gè)或多個(gè)計(jì)算機(jī)組件可以駐留在執(zhí)行進(jìn)程和/或執(zhí)行線程里,并且組件可以定位在一臺(tái)計(jì)算機(jī)上和/或由兩個(gè)或多個(gè)計(jì)算機(jī)組成的分布式計(jì)算機(jī)上。將理解的是,在這里定義的術(shù)語(yǔ)計(jì)算機(jī)組件可以是各種各樣的系統(tǒng)和/或組件。
參照?qǐng)D1,圖示了依照本發(fā)明一方面的動(dòng)態(tài)注冊(cè)表分區(qū)系統(tǒng)100。系統(tǒng)100包括攔截組件110和動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元120。作為選擇,系統(tǒng)100還可以包括系統(tǒng)注冊(cè)表130。雖然已經(jīng)將系統(tǒng)注冊(cè)表130作為一個(gè)單獨(dú)的數(shù)據(jù)存儲(chǔ)單元進(jìn)行了描述,但是本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到的是,可以直接在系統(tǒng)注冊(cè)表130和/或間接在系統(tǒng)注冊(cè)表130(例如,通過(guò)使用參考符號(hào),指針和/或其他間接工具)存儲(chǔ)信息。所附權(quán)利要求的范圍意指包括所有這種系統(tǒng)注冊(cè)表配置。
所述系統(tǒng)100提供對(duì)存儲(chǔ)在系統(tǒng)注冊(cè)表中信息的訪問(wèn),并且,簡(jiǎn)化(例如,應(yīng)用程序和/或獨(dú)立的操作系統(tǒng))系統(tǒng)注冊(cè)表動(dòng)態(tài)分區(qū)的通用方法。本發(fā)明便于向組件和/或應(yīng)用程序提供系統(tǒng)注冊(cè)表的用戶化視圖。例如,用戶化取決于版本、計(jì)算機(jī)配置、用戶和/或其他合適的信息。值得注意的是,系統(tǒng)100可以在運(yùn)行時(shí)(例如,動(dòng)態(tài)操縱)操縱系統(tǒng)注冊(cè)表130的用戶化視圖。另外的和/或可選擇的,也準(zhǔn)許低等級(jí)的組件訪問(wèn)動(dòng)態(tài)分區(qū)數(shù)據(jù)單元以操縱重定向信息(例如,通過(guò)下面描述的接口組件(未示出))。
響應(yīng)基于存儲(chǔ)在動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元120中的分區(qū)信息的請(qǐng)求,可以動(dòng)態(tài)地提供信息。因此,基于或者至少部分基于存儲(chǔ)在動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元120中的重定向信息、向請(qǐng)求器(例如,組件和/或應(yīng)用程序)提供當(dāng)前系統(tǒng)注冊(cè)表信息。
例如,終端服務(wù)器想要基于登錄用戶的不同注冊(cè)表視圖。此外,框架想具有第二視圖,例如,合并來(lái)自注冊(cè)表中不同位置的信息。傳統(tǒng)系統(tǒng)提供多個(gè)視圖;然而,對(duì)多視圖的支持通常難于編碼。因此,作為將來(lái)的需求,典型地需要修改注冊(cè)表API以使其支持這些需求—由此,反向兼容是十分困難的。
由于大量不同的組件依賴于系統(tǒng)注冊(cè)表,故而對(duì)注冊(cè)表難于編碼進(jìn)一步導(dǎo)致了問(wèn)題。改變系統(tǒng)注冊(cè)表會(huì)因傳統(tǒng)的應(yīng)用程序產(chǎn)生問(wèn)題。例如,通常,為了保證在64位操作系統(tǒng)下應(yīng)用程序的兼容性/互用性,在不同的位置分區(qū)系統(tǒng)注冊(cè)表。注冊(cè)表鍵的難于編碼的列表通過(guò)不同途徑定義了不同的位置,以便為(1)本地應(yīng)用程序和(2)傳統(tǒng)(例如,32位)應(yīng)用程序編譯視圖。
動(dòng)態(tài)分區(qū)系統(tǒng)100對(duì)應(yīng)用程序?qū)嶋H上是透明的。然而,依照本申請(qǐng)的一方面,允許希望使用系統(tǒng)注冊(cè)表動(dòng)態(tài)分區(qū)的應(yīng)用程序做這些。
要求根據(jù)比如版本號(hào)來(lái)展示系統(tǒng)注冊(cè)表130的不同視圖的組件,可以通過(guò)使用系統(tǒng)100來(lái)容易地實(shí)現(xiàn)不同的視圖。COM+組件也能通過(guò)使用系統(tǒng)100來(lái)分區(qū)系統(tǒng)注冊(cè)表130。
依照本發(fā)明的另一方面,管理程序能夠在用戶化的框架環(huán)境下運(yùn)行應(yīng)用程序,所述環(huán)境可以充分重定向所有的系統(tǒng)注冊(cè)表調(diào)用,保證系統(tǒng)注冊(cè)表不被改變直到某一確定的點(diǎn)和時(shí)間。也就是說(shuō),用戶可以在不中斷應(yīng)用程序的前提下,將系統(tǒng)注冊(cè)表中的單個(gè)寫操作重定向到不同位置。
最后,可以使用擴(kuò)展和/或用戶化加載程序,該程序在操作系統(tǒng)中根據(jù)圖像標(biāo)題的標(biāo)記來(lái)調(diào)用DLL。DLL能加載特殊的圖像(例如,像COM+程序),并且,如果可應(yīng)用,可以改變系統(tǒng)注冊(cè)表視圖。
動(dòng)態(tài)分區(qū)數(shù)據(jù)單元120存儲(chǔ)同至少一個(gè)應(yīng)用程序和系統(tǒng)注冊(cè)表130相關(guān)聯(lián)的重定向信息。攔截組件110接收訪問(wèn)系統(tǒng)注冊(cè)表130的請(qǐng)求(例如,來(lái)自應(yīng)用程序的),并且基于或至少部分基于存儲(chǔ)在動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元120中的重定向信息,返回與系統(tǒng)注冊(cè)表130相關(guān)聯(lián)的信息。例如,攔截組件110可以在確定在動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元120中的重定向信息是否被利用來(lái)觀察請(qǐng)求實(shí)體的特性和/或特征。
重定向信息可以存儲(chǔ)在動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元120中(例如,鍵/轉(zhuǎn)化鍵)。例如,動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元120可以是在系統(tǒng)100中的重映射表,當(dāng)攔截組件110攔截來(lái)自客戶端(例如,應(yīng)用程序)的系統(tǒng)服務(wù)調(diào)用時(shí),可以動(dòng)態(tài)操縱該表。
此外,依照本發(fā)明的一方面,請(qǐng)求的發(fā)送器(例如,應(yīng)用程序)不確認(rèn)返回信息是否基于或至少部分基于重定向信息。
系統(tǒng)100因而超出傳統(tǒng)系統(tǒng)中的兩種可用的靜態(tài)視圖。系統(tǒng)100使對(duì)系統(tǒng)注冊(cè)表130的動(dòng)態(tài)操縱更為便利。因此,在一個(gè)例子中,靜態(tài)系統(tǒng)注冊(cè)表是不可用的(例如,為了支持靜態(tài)注冊(cè)表視圖)。取而代之,特殊的組件(例如,應(yīng)用程序)能夠初始化適于組件(例如,系統(tǒng)注冊(cè)表130的用戶化視圖)的系統(tǒng)注冊(cè)表130的視圖(例如,列表)。例如,可以把一個(gè)或多個(gè)屬性同視圖(例如,列表)相關(guān)聯(lián)—源節(jié)點(diǎn)、目標(biāo)節(jié)點(diǎn)和/或?qū)傩?例如,<NS,ND,P>)。組件能夠通過(guò)不同的需求要素(例如,<A,B,P>)來(lái)更新視圖(例如,列表)。當(dāng)組件試圖訪問(wèn)注冊(cè)表鍵,且該鍵屬于鍵A且其屬性為P時(shí),重新定向調(diào)用到子樹(shù)B(例如,通過(guò)攔截組件110)。雖然在此例中聲明了單一的重定向等級(jí),但是可以理解的是,能應(yīng)用零、一或更高級(jí)的間接和/或?qū)盈B規(guī)則來(lái)操縱特殊的調(diào)用。
因此,在一個(gè)例子中,攔截組件110接收對(duì)來(lái)自系統(tǒng)注冊(cè)表130中的信息(例如,攔截組件110攔截來(lái)自客戶端、例如應(yīng)用程序的調(diào)用)的請(qǐng)求,以便訪問(wèn)系統(tǒng)注冊(cè)表130。在響應(yīng)所述請(qǐng)求之前,攔截組件110觀察動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元120來(lái)確定系統(tǒng)注冊(cè)表130的目錄的重新映射是否適當(dāng)。如果是,攔截組件110基于或者至少部分基于存儲(chǔ)在動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元120中的重定向信息,返回同系統(tǒng)注冊(cè)表130相關(guān)的信息。
為了確定是否重新映射(例如,重定向),攔截組件110能夠探查請(qǐng)求實(shí)體(例如,客戶端)已經(jīng)通過(guò)的參數(shù)。其后,在一個(gè)例子中,攔截組件110能夠創(chuàng)建另一組匹配請(qǐng)求實(shí)體(例如,客戶端)需求的參數(shù)并且用修改的該組參數(shù)來(lái)進(jìn)行本地調(diào)用。
例如,可以通過(guò)等級(jí)樹(shù)來(lái)描述系統(tǒng)注冊(cè)表130,并且應(yīng)用程序能夠使用這個(gè)樹(shù)上的任何節(jié)點(diǎn),該樹(shù)提供了從這個(gè)樹(shù)的根到其任何節(jié)點(diǎn)的完整路徑。動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元120可以用作重定向樹(shù),以便驗(yàn)證客戶端調(diào)用是否應(yīng)該轉(zhuǎn)到它試圖訪問(wèn)的節(jié)點(diǎn)和/或系統(tǒng)樹(shù)上的另一個(gè)節(jié)點(diǎn)。
在一個(gè)例子中,動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元120中的節(jié)點(diǎn)有一組屬性和/或規(guī)則,用于定義怎樣執(zhí)行重新映射。例如,動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元120樹(shù)不必包含系統(tǒng)注冊(cè)表130的樹(shù)所擁有的全部節(jié)點(diǎn),而是包含那些執(zhí)行過(guò)操作(例如,重新映射)的節(jié)點(diǎn)。因此,動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元120樹(shù)比系統(tǒng)注冊(cè)表130樹(shù)更小。此外,動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元120的大小依賴于用戶定義的重新映射信息。
例如,客戶端(例如,應(yīng)用程序)可以產(chǎn)生訪問(wèn)系統(tǒng)注冊(cè)表130的調(diào)用,系統(tǒng)注冊(cè)表130為節(jié)點(diǎn)提供完整的路徑。調(diào)用通常返回一個(gè)句柄,該句柄是指向系統(tǒng)注冊(cè)表130樹(shù)中某一位置的唯一數(shù)字。客戶端能夠用這個(gè)句柄產(chǎn)生并發(fā)的請(qǐng)求。特別是,并發(fā)調(diào)用利用已經(jīng)傳遞的返回句柄作為相對(duì)路徑。因此,如果返回句柄指向了一個(gè)不同位置,而該位置并非所期望的,那么客戶端(例如,應(yīng)用程序)操作不會(huì)起作用。
為了支持合并視圖,攔截組件110可以用動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元120中的一組規(guī)則來(lái)重新映射客戶端(例如,應(yīng)用程序)調(diào)用到多個(gè)位置。此后,攔截組件110確定哪一個(gè)位置返回到調(diào)用客戶端(例如,應(yīng)用程序)。
轉(zhuǎn)向圖2,舉例說(shuō)明了依照本發(fā)明一方面的動(dòng)態(tài)注冊(cè)表分區(qū)系統(tǒng)200。系統(tǒng)200包括攔截組件110,動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元和接口組件140。作為選擇,系統(tǒng)200還可以包括系統(tǒng)注冊(cè)表130。
所述接口組件140使對(duì)系統(tǒng)注冊(cè)表130(例如,客戶端和/或應(yīng)用程序)的視圖操作更為便利。例如,所述接口組件140可以是API。由接口組件14實(shí)現(xiàn)的示例性接口如下LONG ∥這將在重映射表中添加條目RegAddRemapEntry(HKEY hSrc, ∥重新映射源HKEY hDest, ∥調(diào)用指向的目標(biāo)位置DWORD srcRemapID ∥多重蜂格重新映射。來(lái)自于早期調(diào)用,簡(jiǎn)稱為Remap-IDLONG reserve,∥為以后使用LONG Signature, ∥識(shí)別相同組件添加/移除(可選擇地)的標(biāo)識(shí)(DWORD*)(filter) ∥當(dāng)重新映射發(fā)生時(shí)調(diào)用過(guò)濾功能(可選擇地)DWORD Flag, ∥標(biāo)記指示映射狀況,比如合并,例如,獲得優(yōu)先權(quán)的實(shí)體等等,和/或當(dāng)重定向有效時(shí)(例如,當(dāng)讀/寫等時(shí))DWORD*RampID ∥接收為稍后清除目的使用的重新映射的ID)RegDeleteRemapEntry(LONG SignatureLONG RemapID)可以從DLL中輸出API。在一個(gè)例子中,為了定義新的類根,調(diào)用API如下hSrc指向\REGISTRY\Machine\software\ClasseshDest指向用戶類標(biāo)記設(shè)置連通API和合并視圖,“Read”將首先優(yōu)先取得hDest然后是hSrc?!癈reate”優(yōu)先取得hSrc,如果拒絕訪問(wèn)的話再取得hDest。
在另一個(gè)例子中,為了合并多個(gè)蜂格成單個(gè)蜂格,用第三參數(shù)來(lái)層疊系統(tǒng)注冊(cè)表130中的多個(gè)視圖。此外,使用hSrc指向Classes Root并且hDest指向重定向位置的合并視圖來(lái)重新映射視圖。
系統(tǒng)200因而使系統(tǒng)注冊(cè)表130的視圖的動(dòng)態(tài)操縱更為便利。例如,當(dāng)不同組件使用API來(lái)用戶化他們自己的注冊(cè)表視圖的同時(shí),經(jīng)由接口組件140利用有效API可以完成操作。因此,組件(例如,子系統(tǒng))可以動(dòng)態(tài)地(例如,在不改變操作系統(tǒng)中任何東西的情況下)創(chuàng)建他們自己的注冊(cè)表視圖。從而,減輕了組件(例如,應(yīng)用程序)開(kāi)發(fā)者為了創(chuàng)建他們自己的系統(tǒng)注冊(cè)表視圖而向系統(tǒng)注冊(cè)表130中編碼條目的負(fù)擔(dān)。另外,系統(tǒng)注冊(cè)表130同傳統(tǒng)系統(tǒng)相比更容易管理。
因此,依照本發(fā)明的一方面,使用系統(tǒng)200的框架能夠定義自己的系統(tǒng)注冊(cè)表130的合并視圖。依照本發(fā)明的另一個(gè)方面,應(yīng)用程序能夠定義它們自己的合并視圖,例如,從系統(tǒng)注冊(cè)表130的不同位置取不同的子樹(shù)。此外,OLE和/或COM激活代碼定義它們自己的一組規(guī)則,以便使主要應(yīng)用程序能夠使用正確的組件。例如,基于參數(shù),第一組件(例如,URT)可以重新定義動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元120,動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元120完全影響由第一組件管理的所有應(yīng)用程序。
下面參照?qǐng)D3,舉例說(shuō)明了依照本發(fā)明一方面的動(dòng)態(tài)注冊(cè)表分區(qū)系統(tǒng)300。系統(tǒng)300包括攔截組件110,動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元120,系統(tǒng)注冊(cè)表130,接口組件140,應(yīng)用程序310,操作系統(tǒng)320和應(yīng)用程序主機(jī)330。應(yīng)用程序主機(jī)330例如可以包括應(yīng)用程序加載器,操作系統(tǒng)組件,例如,兼容性層和/或結(jié)構(gòu)平臺(tái)。例如,應(yīng)用程序主機(jī)330經(jīng)由接口組件140使存儲(chǔ)在動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元中的信息的初始化和/或操作變得便利。
通常,從應(yīng)用程序310發(fā)送系統(tǒng)注冊(cè)表信息請(qǐng)求到應(yīng)用程序主機(jī)330(例如,應(yīng)用程序加載器,操作系統(tǒng)組件,例如,兼容性層,和/或結(jié)構(gòu)平臺(tái))。應(yīng)用程序主機(jī)330向操作系統(tǒng)320提供與請(qǐng)求相關(guān)聯(lián)的信息。然后,操作系統(tǒng)320向攔截組件110發(fā)送對(duì)系統(tǒng)注冊(cè)表信息的請(qǐng)求。
攔截組件110把系統(tǒng)注冊(cè)表信息返回給操作系統(tǒng)。如果同請(qǐng)求相關(guān)聯(lián)的重定向信息存儲(chǔ)在動(dòng)態(tài)分區(qū)數(shù)據(jù)單元120中,則基于或者至少部分基于存儲(chǔ)在動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元120中存儲(chǔ)的重定向信息來(lái)提供信息。然后操作系統(tǒng)320經(jīng)由應(yīng)用程序主機(jī)330向應(yīng)用程序310提供系統(tǒng)注冊(cè)表信息。然而,系統(tǒng)300進(jìn)一步使通過(guò)應(yīng)用程序310來(lái)對(duì)存儲(chǔ)在動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元120中的重定向信息的操作更加便利。因此,應(yīng)用程序310能夠經(jīng)由應(yīng)用程序主機(jī)330向接口組件140提供請(qǐng)求,以便添加,刪除和/或修改存儲(chǔ)在動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元120中的重定向信息。
簡(jiǎn)要的轉(zhuǎn)向圖4和5,舉例說(shuō)明了依照本發(fā)明實(shí)現(xiàn)的方法。然而,為了簡(jiǎn)要說(shuō)明的目的,以一連串的塊的形式示出并描述該方法,可以理解的是,本發(fā)明并不局限于塊的順序,因?yàn)橐勒毡景l(fā)明一些塊和/或在這里示出并描述的其他塊可以出現(xiàn)不同的順序。此外,依照本發(fā)明不是所有圖示的塊在此方法中都是必需執(zhí)行的。
依照由一個(gè)或多個(gè)組件執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的總體環(huán)境來(lái)描述本發(fā)明,例如像程序模塊。一般地,程序模塊包括例程、程序、對(duì)象、數(shù)據(jù)結(jié)構(gòu)等等,這些都用來(lái)執(zhí)行特殊任務(wù)或?qū)崿F(xiàn)特殊的抽象數(shù)據(jù)類型。典型地,程序模塊的功能像在不同實(shí)施例里所期望的那樣結(jié)合或分配。
參照?qǐng)D4,示出了依照本發(fā)明一方面的方法400,該方法便于動(dòng)態(tài)注冊(cè)表分區(qū)以支持多重注冊(cè)表視圖。在步驟410,攔截(例如,通過(guò)攔截組件110)對(duì)系統(tǒng)注冊(cè)表信息的請(qǐng)求。在步驟420,確定與所述請(qǐng)求相關(guān)聯(lián)的重定向信息是否存儲(chǔ)在動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元中。
如果在步驟420中確定的結(jié)果是“是”,那么在步驟430,基于或者至少部分基于存儲(chǔ)在動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元中的重定向提供與請(qǐng)求相關(guān)聯(lián)的信息。例如,信息可以提供給請(qǐng)求客戶端。在確定動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元中的重定向信息是否被使用的過(guò)程中,信息可以取決于版本,請(qǐng)求實(shí)體的特征和/或特性,并且,不做進(jìn)一步的處理。如果在步驟420確定的結(jié)果是“否”,那么在步驟440,則基于或者至少部分基于存儲(chǔ)在系統(tǒng)注冊(cè)表中的信息提供與請(qǐng)求相關(guān)聯(lián)的信息,并且不做進(jìn)一步的處理。
接下來(lái),轉(zhuǎn)到圖5,示出了依照本發(fā)明一方面的與動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元相關(guān)聯(lián)的方法500。在步驟510,接收(例如,通過(guò)接口組件140)存儲(chǔ)在動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元中的添加,刪除和/或修改重定向信息的請(qǐng)求。在步驟520,確定請(qǐng)求的發(fā)起者是否被授權(quán)發(fā)起請(qǐng)求行為(例如,添加,刪除和/或修改)。如果在步驟520確定的結(jié)果是“是”,那么在步驟530,執(zhí)行存儲(chǔ)在動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元中重定向信息的添加,刪除和/或修改請(qǐng)求,并且,不再作進(jìn)一步處理。如果在步驟520確定的結(jié)果是“否”,不再作進(jìn)一步處理。
為了給本發(fā)明多個(gè)方面提供另外的內(nèi)容,將用圖6和下面的討論來(lái)提供一個(gè)對(duì)適宜的操作環(huán)境610的簡(jiǎn)要的,大體的描述,在操作環(huán)境610里,可以實(shí)施本發(fā)明的不同的方面。雖然在計(jì)算機(jī)可執(zhí)行指令的總體環(huán)境中描述本發(fā)明,例如像可被一個(gè)或多個(gè)計(jì)算機(jī)或其他設(shè)備執(zhí)行的程序模塊,但是本領(lǐng)域技術(shù)人員可以認(rèn)識(shí)到的是,結(jié)合其他程序模塊和/或硬件與軟件的結(jié)合也可以實(shí)現(xiàn)本發(fā)明。然而總體上講,程序模塊包括例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等等,這些都用來(lái)執(zhí)行特殊的任務(wù)或?qū)崿F(xiàn)特殊的數(shù)據(jù)類型。操作環(huán)境610僅僅是合適的操作環(huán)境中的一個(gè)例子,并不意味著對(duì)本發(fā)明用途或功能范圍的限定。其他眾所周知的適合應(yīng)用本發(fā)明的操作系統(tǒng)、環(huán)境和/或配置,包括但并不局限于個(gè)人計(jì)算機(jī)、掌上或膝上電腦設(shè)備、多處理器系統(tǒng)、基于微處理器系統(tǒng)、電子程序電子設(shè)備、網(wǎng)絡(luò)PC機(jī)、微型計(jì)算機(jī)、大型計(jì)算機(jī)、包括上述系統(tǒng)或設(shè)備的分布式計(jì)算環(huán)境等等。
參照?qǐng)D6,用于實(shí)現(xiàn)本發(fā)明不同方面的示范性的環(huán)境610包括計(jì)算機(jī)612。所述計(jì)算機(jī)612包括處理單元614,系統(tǒng)存儲(chǔ)器616和系統(tǒng)總線618。所述系統(tǒng)總線618連接系統(tǒng)組件與處理單元614,該系統(tǒng)組件包括但并不局限于系統(tǒng)存儲(chǔ)器616。所述處理單元614可以是任意種類的合適的處理器。復(fù)合式微處理器和其他多微處理器體系結(jié)構(gòu)也可以用作處理單元614。
系統(tǒng)總線618可以是多種總線結(jié)構(gòu)中的任何一種,包括存儲(chǔ)器總線或存儲(chǔ)器控制器、外圍總線或外部總線和/或本地總線,這些總線使用任何種類的合適的總線體系結(jié)構(gòu)包括但并不局限于8位總線、工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu)(ISA)、微信道結(jié)構(gòu)(MSA)、擴(kuò)展工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu)(EISA)、智能磁盤設(shè)備(IDE)、VESA局部總線(VLB)、可編程序通信接口(PCI)、通用串行總線架構(gòu)(USB)、加速圖形接口(AGP)、個(gè)人計(jì)算機(jī)存儲(chǔ)卡國(guó)際協(xié)會(huì)總線(PCMCIA)和小型計(jì)算機(jī)系統(tǒng)接口(SCSI)。
系統(tǒng)存儲(chǔ)器616包括易失性存儲(chǔ)器620和非易失性存儲(chǔ)器622?;据斎胼敵鱿到y(tǒng)(BIOS)存儲(chǔ)在非易失性存儲(chǔ)器622中,包括在計(jì)算機(jī)612內(nèi)的各元件之間傳送信息的基本程序,例如在啟動(dòng)期間。為了解釋說(shuō)明,而并非限制范圍,非易失性存儲(chǔ)器622可以包括只讀存儲(chǔ)器(ROM)、可編程只讀有儲(chǔ)器(PROM)、電可編程只讀存儲(chǔ)器(EPROM)、電可擦除只讀存儲(chǔ)器(EEPROM)或者閃存。易失性存儲(chǔ)器620包括隨機(jī)存取存儲(chǔ)器(RAM),起到像外部高速緩沖存儲(chǔ)器一樣的作用。為了解釋說(shuō)明,而并非限制范圍,RAM可以用下列的多種形式,例如同步隨機(jī)存取存儲(chǔ)器(SRAM)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、同步動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(SDRAM)、雙數(shù)據(jù)速率同步動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DDRSDRAM)、增強(qiáng)同步動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(ESDRAM)、同步聯(lián)合動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(SLDRAM)和直接Rambus RAM(DRRAM)。
計(jì)算機(jī)612還包括可移動(dòng)/非可移動(dòng)、易失性/非易失性的計(jì)算機(jī)存儲(chǔ)介質(zhì)。如圖6所示,例如磁盤存儲(chǔ)設(shè)備624。磁盤存儲(chǔ)設(shè)備624包括但不局限于下列設(shè)備磁盤驅(qū)動(dòng)器、軟盤驅(qū)動(dòng)器、磁帶驅(qū)動(dòng)器、Jaz驅(qū)動(dòng)器、Zip驅(qū)動(dòng)器、LS-100驅(qū)動(dòng)器、閃存卡或者記憶棒。另外,磁盤存儲(chǔ)設(shè)備624還可以包括獨(dú)立存儲(chǔ)介質(zhì)或與其他存儲(chǔ)介質(zhì)相結(jié)合,其他存儲(chǔ)介質(zhì)包括但不局限于光盤驅(qū)動(dòng)器比如光盤驅(qū)動(dòng)器(CD-ROM)、CD只讀驅(qū)動(dòng)器(CD-R Driver)、CD可擦寫驅(qū)動(dòng)器(CD-RW Drive)或者數(shù)字視頻光盤驅(qū)動(dòng)器(DVD-ROM)。為便于磁盤存儲(chǔ)設(shè)備624與系統(tǒng)總線618的連接,示范性的使用像接口626一樣的可移動(dòng)的或不可移動(dòng)的接口。
可以理解的是,圖6描述了這樣一種軟件,該軟件在用戶與合適的操作環(huán)境610中描述的基本計(jì)算機(jī)資源之間充當(dāng)媒介。這種軟件包括操作系統(tǒng)628。操作系統(tǒng)628可以存儲(chǔ)在磁盤存儲(chǔ)設(shè)備624中,起到控制和分配計(jì)算機(jī)系統(tǒng)612資源的作用。系統(tǒng)應(yīng)用程序630通過(guò)存儲(chǔ)在系統(tǒng)存儲(chǔ)器616或磁盤存儲(chǔ)設(shè)備624上的程序模塊632和程序數(shù)據(jù)634利用操作系統(tǒng)628管理的資源??梢岳斫獾氖牵诟鞣N操作系統(tǒng)或操作系統(tǒng)的組合上都可以實(shí)現(xiàn)本發(fā)明。
用戶通過(guò)輸入設(shè)備636向計(jì)算機(jī)612輸入命令或信息。輸入設(shè)備636包括但不局限于指示設(shè)備比如鼠標(biāo)、軌跡球、觸針、觸摸板、鍵盤、麥克風(fēng)、手柄、游戲柄、圓盤式衛(wèi)星電視天線、掃描儀、TV調(diào)諧卡、數(shù)碼相機(jī)、數(shù)碼攝像機(jī)、網(wǎng)絡(luò)攝像頭等等。這些和其它輸入設(shè)備經(jīng)由連接端口638通過(guò)系統(tǒng)總線618和處理單元614相連。連接端口638例如包括串行端口、并行端口、游戲端口、通用串行總線(USB)。輸出設(shè)備640使用和輸入設(shè)備636所使用的端口類型相同的一些端口。從而,例如,USB端口可以用來(lái)向計(jì)算機(jī)612提供輸入,同時(shí)還從計(jì)算機(jī)612向輸出設(shè)備640輸出信息。提供輸出適配器642以用來(lái)說(shuō)明存在一些輸出設(shè)備640,諸如監(jiān)視器、揚(yáng)聲器和在還需要特殊適配器的其他輸出設(shè)備640中的打印機(jī)。為了解釋說(shuō)明而并非限制,輸出適配器642包括視頻和音頻卡,它們?cè)谳敵鲈O(shè)備640和系統(tǒng)總線618之間提供了連接的手段。需要注意的是,其他設(shè)備和/或設(shè)備的系統(tǒng)提供了輸入輸出兩項(xiàng)能力,比如遠(yuǎn)程計(jì)算機(jī)644。
計(jì)算機(jī)612可以用與一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī),比如遠(yuǎn)程計(jì)算機(jī)644,進(jìn)行邏輯連接而在聯(lián)網(wǎng)的環(huán)境下操作。遠(yuǎn)程計(jì)算機(jī)644可以是個(gè)人計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC機(jī)、工作站、基于微處理器的設(shè)備、對(duì)等設(shè)備或其他普通網(wǎng)路節(jié)點(diǎn)等等,典型的包括相對(duì)于計(jì)算機(jī)612所描述的大多數(shù)或所有元件。為了簡(jiǎn)潔起見(jiàn),僅僅依照遠(yuǎn)程計(jì)算機(jī)644舉例說(shuō)明了存儲(chǔ)設(shè)備646。遠(yuǎn)程計(jì)算機(jī)644通過(guò)網(wǎng)絡(luò)接口648和計(jì)算機(jī)612邏輯相連,然后經(jīng)由通信連接單元650和計(jì)算機(jī)612物理連接。網(wǎng)絡(luò)接口648包括通信網(wǎng)絡(luò),比如像局域網(wǎng)(LAN)和廣域網(wǎng)(WAN)。LAN技術(shù)包括光纖分布式數(shù)據(jù)接口(FDDI)、銅分布式數(shù)據(jù)接口(CDDI)、以太網(wǎng)/IEEE802.3、令牌環(huán)/IEEE802.5等等。WAN技術(shù)包括但不局限于點(diǎn)到點(diǎn)連接、環(huán)路交換網(wǎng)絡(luò)像綜合服務(wù)數(shù)字網(wǎng)(ISDN)和其變形,包交換網(wǎng)絡(luò)和數(shù)字用戶線路(DSL)。
通信連接單元650涉及采用硬件/軟件將網(wǎng)絡(luò)接口648連接到總線618。當(dāng)為了清楚解釋說(shuō)明而將通信連接單元650示于計(jì)算機(jī)612內(nèi)部時(shí),可以知道它也可以位于計(jì)算機(jī)612外部。為了連接到網(wǎng)絡(luò)接口648而必需的硬件/軟件包括,僅為示范性目的,內(nèi)部和外部技術(shù)例如調(diào)制解調(diào)器、ISDN適配器和以太網(wǎng)卡。其中調(diào)制解調(diào)器包括規(guī)則電話等級(jí)調(diào)制解調(diào)器、電纜調(diào)制解調(diào)器和DSL調(diào)制解調(diào)器,以上描述的內(nèi)容包含了本發(fā)明的實(shí)施例。當(dāng)然,不可能為了描述本發(fā)明而描述想得到的每一種組件和方法的結(jié)合,但是本領(lǐng)域普通技術(shù)人員可以認(rèn)識(shí)到本發(fā)明更進(jìn)一步的結(jié)合和改變。另外,本發(fā)明試圖包含所有的落入本發(fā)明所附權(quán)利要求的范圍和精神內(nèi)的各種變形,修改和變化。此外,在詳細(xì)描述和權(quán)利要求中使用了術(shù)語(yǔ)“Includes”,當(dāng)在權(quán)利要求中作為一個(gè)過(guò)渡詞語(yǔ)使用時(shí),這個(gè)術(shù)語(yǔ)在某種意義上與術(shù)語(yǔ)“comprising”類似。
權(quán)利要求
1.一種動(dòng)態(tài)注冊(cè)表分區(qū)系統(tǒng),包括動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元,用于存儲(chǔ)同至少一個(gè)應(yīng)用程序和系統(tǒng)注冊(cè)表相關(guān)聯(lián)的重定向信息;和攔截組件,用于接收訪問(wèn)系統(tǒng)注冊(cè)表的請(qǐng)求,并且基于或者至少部分基于存儲(chǔ)在動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元中的重定向信息、返回與系統(tǒng)注冊(cè)表相關(guān)聯(lián)的信息。
2.如權(quán)利要求1所述的系統(tǒng),其中從應(yīng)用程序中接收所述請(qǐng)求。
3.如權(quán)利要求1所述的系統(tǒng),還包括接口組件,以便于存儲(chǔ)在動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元中的重定向信息的運(yùn)行操縱。
4.如權(quán)利要求3所述的系統(tǒng),其中所述接口組件接收請(qǐng)求,以便對(duì)存儲(chǔ)在動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元中的至少一些重定向信息執(zhí)行添加、刪除和修改的至少一種。
5.如權(quán)利要求4所述的系統(tǒng),其中執(zhí)行的請(qǐng)求包括源節(jié)點(diǎn)、目標(biāo)節(jié)點(diǎn)和至少一個(gè)屬性。
6.如權(quán)利要求1所述的系統(tǒng),其中動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元包含重映射表。
7.如權(quán)利要求1所述的系統(tǒng),其中所述返回的信息取決于、或至少部分取決于版本、計(jì)算機(jī)配置和同請(qǐng)求的發(fā)起者相關(guān)聯(lián)的用戶。
8.如權(quán)利要求1所述的系統(tǒng),其中可以在運(yùn)行時(shí)操作存儲(chǔ)在動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元中的重定向信息。
9.如權(quán)利要求1所述的系統(tǒng),其中應(yīng)用程序可以操作存儲(chǔ)在動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元中的重定向信息。
10.如權(quán)利要求1所述的系統(tǒng),其中動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元包括定義如何執(zhí)行重定向信息的屬性和規(guī)則中的至少一組。
11.一種操作系統(tǒng),用于接收由如權(quán)利要求1所述的系統(tǒng)提供的返回信息。
12.一種便于動(dòng)態(tài)注冊(cè)表分區(qū)以支持多注冊(cè)表視圖的方法,包括攔截系統(tǒng)注冊(cè)表信息的請(qǐng)求;和基于或者至少部分基于存儲(chǔ)在動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元中的重定向信息來(lái)提供同請(qǐng)求相關(guān)聯(lián)的信息。
13.如權(quán)利要求12所述的方法,還包括接收用于修改存儲(chǔ)在動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元中信息的請(qǐng)求。
14.如權(quán)利要求12所述的方法,還包括確定同請(qǐng)求相關(guān)聯(lián)的重定向信息是否存儲(chǔ)在動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元中;和,如果重定向信息沒(méi)有存儲(chǔ)在動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元中,那么基于或者至少部分基于存儲(chǔ)在系統(tǒng)注冊(cè)表中的信息提供同請(qǐng)求相關(guān)聯(lián)的信息。
15.一種計(jì)算機(jī)可讀介質(zhì),其上存儲(chǔ)有實(shí)現(xiàn)權(quán)利要求12所述方法的計(jì)算機(jī)可執(zhí)行指令。
16.一種同動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元對(duì)接的方法,包括接收修改重定向信息的請(qǐng)求,所述重定向信息存儲(chǔ)在動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元中;確定是否授權(quán)請(qǐng)求的發(fā)起者開(kāi)始修改;和如果請(qǐng)求的發(fā)起者被授權(quán)開(kāi)始修改,那么修改與請(qǐng)求相關(guān)聯(lián)的重定向信息。
17.一種計(jì)算機(jī)可讀介質(zhì),其上存儲(chǔ)有實(shí)現(xiàn)權(quán)利要求16所述方法的計(jì)算機(jī)執(zhí)行指令。
18.一種同動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元對(duì)接的方法,包括接收添加重定向信息的請(qǐng)求,所述重定向信息存儲(chǔ)在動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元中;確定是否授權(quán)請(qǐng)求的發(fā)起者開(kāi)始添加;和如果請(qǐng)求的發(fā)起者被授權(quán)開(kāi)始添加,添加與請(qǐng)求相關(guān)聯(lián)的重定向信息。
19.一種計(jì)算機(jī)可讀介質(zhì),其上存儲(chǔ)有實(shí)現(xiàn)權(quán)利要求18所述方法的計(jì)算機(jī)執(zhí)行指令。
20.一種同動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元對(duì)接的方法,包括接收刪除重定向信息的請(qǐng)求,所述重定向信息存儲(chǔ)在動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元中;確定是否授權(quán)請(qǐng)求的發(fā)起者開(kāi)始刪除;和如果請(qǐng)求的發(fā)起者被授權(quán)開(kāi)始刪除,刪除與請(qǐng)求相關(guān)聯(lián)的重定向信息。
21.一種計(jì)算機(jī)可讀介質(zhì),其上存儲(chǔ)有實(shí)現(xiàn)權(quán)利要求20所述方法的計(jì)算機(jī)執(zhí)行指令。
22.一種在兩個(gè)或多個(gè)計(jì)算機(jī)組件之間進(jìn)行傳遞的數(shù)據(jù)包,所述計(jì)算機(jī)組件使動(dòng)態(tài)注冊(cè)表分區(qū)系統(tǒng)更為便利,所述數(shù)據(jù)包包括包括同系統(tǒng)注冊(cè)表相關(guān)聯(lián)信息的數(shù)據(jù)字段,該信息根據(jù)或者至少部分根據(jù)存儲(chǔ)在動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元中的重定向信息。
23.一種計(jì)算機(jī)可讀介質(zhì),其上存儲(chǔ)有動(dòng)態(tài)注冊(cè)表分區(qū)系統(tǒng)組件的計(jì)算機(jī)可執(zhí)行程序,包括攔截組件,用于接收訪問(wèn)注冊(cè)表請(qǐng)求和返回信息,該信息同系統(tǒng)注冊(cè)表相關(guān)根據(jù)或者至少部分根據(jù)存儲(chǔ)在動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元中的重定向信息。
24.一種動(dòng)態(tài)注冊(cè)表分區(qū)系統(tǒng),包括用于動(dòng)態(tài)存儲(chǔ)同至少一個(gè)應(yīng)用程序和系統(tǒng)注冊(cè)表相關(guān)聯(lián)的重定向信息的裝置;用于攔截訪問(wèn)系統(tǒng)注冊(cè)表請(qǐng)求的裝置;用于響應(yīng)請(qǐng)求提供返回信息的裝置,所述返回信息同注冊(cè)表相關(guān)聯(lián),并且根據(jù)或者至少部分根據(jù)在用于動(dòng)態(tài)存儲(chǔ)重定向信息的裝置中存儲(chǔ)的重定向信息。
全文摘要
提供一種訪問(wèn)存儲(chǔ)在系統(tǒng)注冊(cè)表中信息的系統(tǒng)及方法。所述系統(tǒng)和方法進(jìn)一步使系統(tǒng)注冊(cè)表的動(dòng)態(tài)分區(qū)的通用(應(yīng)用程序和/或獨(dú)立操作系統(tǒng))方法更為便利。本發(fā)明還使得為客戶端、組件和/或應(yīng)用程序提供用戶化視圖變得更為便利。用戶化可以基于版本、計(jì)算機(jī)配置、用戶和/或其它適當(dāng)?shù)男畔ⅰ4送?,可以在運(yùn)行時(shí)操作系統(tǒng)注冊(cè)表的用戶化視圖。另外和/或可替換的,也準(zhǔn)許低等級(jí)的組件(例如,客戶端和/或應(yīng)用程序)訪問(wèn)動(dòng)態(tài)分區(qū)數(shù)據(jù)存儲(chǔ)單元以操縱(例如,添加、刪除和/或修改)重定向信息(例如,經(jīng)由接口組件)。
文檔編號(hào)G06F9/445GK1601465SQ200410092180
公開(kāi)日2005年3月30日 申請(qǐng)日期2004年8月13日 優(yōu)先權(quán)日2003年8月29日
發(fā)明者Atm.S.卡利德 申請(qǐng)人:微軟公司