文章編號: 115486 - 上次校閱: 2005年3月1日 - 版次: 3.3 如何控制裝置的驅動程式載入順序
在此頁中結論Windows NT 的設計目的是周圍第一個驅動程式,以佔領一個裝置會取得該裝置的擁有權的概念。可以共用這個擁有權或它可以是獨佔 ; 這是最多到 claiming 的裝置驅動程式。如果裝置以獨佔方式宣告由裝置驅動程式,由後續載入的裝置驅動程式所聲稱裝置任何進一步嘗試失敗。因此,它是命令式裝置驅動程式載入的順序可以修改由裝置驅動程式作者。本文將告訴您兩種方法您可以用來控制裝置的驅動程式載入的順序。 其他相關資訊有兩種方法,您可以用來控制裝置的驅動程式載入的順序。這兩種方式利用項目在 \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control 可以找到的登錄中。在第一種方法是修改 [ServiceGroupOrder。第二種方法是指派 Tag 值判斷驅動程式載入到 [GroupOrderList 根據順序。標記值啟動型別,而群組名稱則 HKLM\SYSTEM\CurrentControlSet\Services\ <drivername>必須先值可以列出群組順序] 清單中加入的索引鍵。 這兩種方法僅適用於起始值為 0 (SERVICE_BOOT_START) 或 1 (SERVICE_SYSTEM_START) 的裝置驅動程式。在所有情況開始值為 0 之前任何的裝置驅動程式的負載起始值為 1 嘗試載入裝置驅動程式。 方法 1: ServiceGroupOrder[ServiceGroupOrder 含有它們將會載入順序的群組名稱清單。以下是 ServiceGroupOrder 未經修改的內容:SCSI 迷你連接埠 根據 [ServiceGroupOrder 群組 「 SCSI 類別 」 負載中的裝置驅動程式畢竟主要的磁碟"群組中以及群組 「 SCSI CDROM 類別 」 負載中的裝置驅動程式之前的裝置驅動程式。越高裝置驅動程式群組是在清單中,準),它會載入。ServiceGroupOrder 清單掃描兩次。第一個起始值為 1 的負載開始值為 0 的負載 ; 然後所有裝置驅動程式的所有裝置驅動程式。因此,裝置驅動程式以開始值,無論 ServiceGroupOrder 清單上的什麼位置的 1 的開始值為 0 載入任何裝置驅動程式之前。 連接埠 主磁碟 SCSI 類別 SCSI CDROM 類別 篩選器 開機檔案系統 基底 指標連接埠 鍵盤連接埠 指標類別 鍵盤類別 視訊初始化 視訊 視訊檔案 檔案系統 事件記錄檔 資料流驅動程式 NDIS TDI NetBIOSGroup SpoolerGroup 很可能要編輯 [ServiceGroupOrder 裝置驅動程式作者。 藉由執行這項操作,可以在清單中的任何地方建立新的群組。好的例子可能是稱為 「 SAMPLDRV 」 需要載入之前 SCSIDISK",因為 SCSIDISK 所宣告的一種裝置,SAMPLDRV 需要聲稱一個 SCSI 類別的裝置驅動程式。以下是 SCSIDISK 的登錄項目:
\registry\machine\system\currentcontrolset\services\scsidisk
Type = REG_DWORD 0x00000001
Start = REG_DWORD 0x00000000
Group = SCSI class
ErrorControl = REG_DWORD 0x00000000
DependOnGroup = REG_MULTI_SZ "SCSI miniport"
新的群組可以加入至 ServiceGroupOrder 稱為 「 負載 Me 名字"和 SAMPLDRV 可有它設定為負載 Me 名字的群組。以下是修改過的 ServiceGroupOrder: SCSI 迷你連接埠 以下是 SAMPLDRV 的登錄項目: 連接埠 主磁碟 第一次載入 Me SCSI 類別 SCSI CDROM 類別 篩選器 開機檔案系統 . . .
\registry\machine\system\currentcontrolset\services\sampldrv
Type = REG_DWORD 0x00000001
Start = REG_DWORD 0x00000000
Group = Load Me First
ErrorControl = REG_DWORD 0x00000000
DependOnGroup = REG_MULTI_SZ "SCSI miniport"
以這個設定 SAMPLDRV 載入 SCSIDISK 之前。 方法 # 2: GroupOrderList 和 [標記值裝置驅動程式登錄中可以包含稱為標籤的選擇性索引鍵。 [標記值有助於判斷裝置驅動程式群組內的載入順序。載入順序一定不以數字的順序 ; 而,是由 [GroupOrderList 所定義的順序。每個群組中之 GroupOrderList 第一個項目是 Tag 值數目。後面的標記值就是要載入的數字序列。根據其 Tag 值到第一次載入裝置驅動程式群組中的,所定義之 GroupOrderList。如果裝置驅動程式不具有 Tag 值或標記值不是 [GroupOrderList,這些裝置驅動程式會載入之後載入裝置驅動程式,以有效的標籤值。 這些裝置驅動程式的載入順序並不保證,以外其他群組中的所有裝置驅動程式會都載入之前載入下一個群組。以下是 [GroupOrderList 的部分輸出:
\registry\machine\system\currentcontrolset\control\grouporderlist
Base = REG_BINARY 0d 00 00 00 01 00...
Extended base = REG_BINARY 04 00 00 00 01 00...
Filter = REG_BINARY 05 00 00 00 01 00...
Keyboard Class = REG_BINARY 01 00 00 00 01 00...
Keyboard Port = REG_BINARY 01 00 00 00 01 00...
Ndis = REG_BINARY 09 00 00 00 01 00...
Pointer Class = REG_BINARY 01 00 00 00 01 00...
Pointer Port = REG_BINARY 03 00 00 00 01 00...
.
.
.
注意: SCSI 類別沒有值。在 [GroupOrderList 中表示不是每個群組。當群組不處於 [GroupOrderList 時,無法保證的裝置驅動程式載入群組內的順序。 如同 [ServiceGroupOrder [GroupOrderList 可以進行修改。使用相同的範例當成上述,可加入 SCSI 類別的標記項目:
\registry\machine\system\currentcontrolset\control\grouporderlist
SCSI class = REG_BINARY 02 00 00 00 02 00 00 00 01 00 00 00
Base = REG_BINARY 0d 00 00 00 01 00...
Extended base = REG_BINARY 04 00 00 00 01 00...
.
.
.
在這個範例群組 SCSI 類別可辨識兩個的標籤值 00000001 和 00000002。標籤值載入的順序是 00000002 先,其後 00000001。如果 SAMPLDRV 是 SCSIDISK 一樣,SCSI 類別群組中任一 Tag 值可保證因為 SCSIDISK 有沒有標籤值,而且未標記的驅動程式上次載入群組 SAMPLDRV 載入 SCSIDISK 之前。 如果因 SCSIDISK 被指派 Tag 值 0x00000001 的某些原因而 SAMPLDRV 載入之前 SCSIDISK SAMPLDRV 指派 Tag 值為 00000002 時:
\registry\machine\system\currentcontrolset\services\sampldrv
Type = REG_DWORD 0x00000001
Start = REG_DWORD 0x00000000
Group = SCSI class
ErrorControl = REG_DWORD 0x00000000
DependOnGroup = REG_MULTI_SZ "SCSI miniport"
Tag = REG_DWORD 0x00000002
這篇文章中的資訊適用於:
機器翻譯重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。 按一下這裡查看此文章的英文版本:115486?
(http://support.microsoft.com/kb/115486/en-us/
)
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。 | 其他資源 其他支援網站社群文章翻譯
|






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email


回此頁最上方