Windows設備管理.ppt_第1頁
Windows設備管理.ppt_第2頁
Windows設備管理.ppt_第3頁
Windows設備管理.ppt_第4頁
Windows設備管理.ppt_第5頁
已閱讀5頁,還剩37頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Windows 設備管理,Windows 2000/XP的I/O系統,1.Windows I/O系統結構和組件 2.Windows I/O系統的數據結構 3.Windows 設備驅動程序 4.Windows I/O處理,1.Windows I/O系統結構和組件,Windows 2000/XP I/O 系統是Windows 2000/XP 執(zhí)行體的組件,存在于 NTOSKRNL EXE 文件中。它接受來自用戶態(tài)和核心態(tài)的 I/O 請求,并且以不同的形 式把它們傳送到 I/O 設備。 Windows 2000/XP I/O 系統的設計目標如下: (1)高效快速進行 I/O 處理; (2)使用標準的安全機制保護共享的資源; (3)滿足Win32、OS/2 和 POSIX (Portable Operating System)子系統指定的 I/O服務的需要; (4)允許用高級語言編寫驅動程序;,(5)根據用戶的配置或者系統中 硬件設備的添加和刪除,能在系統中動態(tài)地添加或刪除相應的設備驅動程序; (6)為包括 FAT、CD-ROM 文件系統(CDFS)、UDF (Universal Disk Format)文件系統和 Windows 2000/XP 文件系統(NTFS) 的多種可安排的文件系統提供支持; (7)允許整個系統或者單個硬件設備進入和離開低功 耗狀態(tài),這樣可以節(jié)約能源。,Windows 2000/XP I/O 系統定義了Windows 2000/XP 上的 I/O 處理模型,并且執(zhí)行公用的或被多個驅動程序請求的功能。它主要負責創(chuàng)建代表I/O 請求的 IRP 和引導通過不同驅動程序的包,在完成 I/O 時向調用者返回結果。 I/O 管理器通過使用 I/O 系統對象來定位不同的驅動程序和設備,這些對象包括驅動程序對象和設備對象。內部的Windows 2000/XP I/O 系統以異步操作方式獲得高性能,并且向用戶態(tài)應用程序提供同步和異步I/O 功能。,設備驅動程序不僅包括傳統的硬件設備驅動程序,還包括文件系統、網絡和分層過濾器驅動程序。通過使用公用機制,所有驅動程序都具有相同的結構,并以相同的機制在彼此之間和 I/0 管理器通信。所以,它們可以被分層,即把一層放在另一層上來 達到模塊化,并可以減少在驅動程序之間的復制。,Windows 2000/XP I/O 系統的結構和組件,用戶態(tài)即插即用組件用于控制和配置設備的用戶態(tài) API 。 I/O 管理器把應用程序和系統組件連接到各種虛擬的、邏輯的和物理的設 備上,并且定義了一個支持設備驅動程序的基本構架。負責驅動 I/O 請求的處理,為設備驅動程序提供核心服務。它把用戶態(tài)的讀寫轉化為 I/O 請求包 IRP 。 設備驅動程序為某種類型的設備提供一個I/O 接口。設備驅動程序從 I/O 管 理器接受處理命令,當處理完畢后通知 I/O 管理器。設備驅動程序之間的協同工作也通過 I/O 管理器進行。,即插即用管理器PnP(plug and play)通過與 I/O 管理器和總線驅動程序的協同工作來檢測硬件資源的分配,并且檢測相應硬件設備的添加和刪除。 電源管理器通過與 I/O 管理器的協同工作來檢測整個系統和單個硬件設備,完成不同電源狀態(tài)的轉換。 WMI(Windows Management lnstrumentation)支持例程也叫做 Windows 驅動程序模型 WDM(Windows Driver Model)WMI 提供者,允許驅動程序使用這些支持例程作為媒介,與用戶態(tài)運行的 WMI 服務通信。,即插即用WDM 接口I/O 系統為驅動程序提供了分層結構,這一結構包括WDM 驅動程序、驅動程序層和設備對象。WDM 驅動程序可以分為三類:總線驅動程序、驅動程序和過濾器驅動程序。每一個設備都含有兩個以上的驅 動程序層,用于支持它所基于的 I/O 總線的總線驅動程序,用于支持設備的功能驅動程序,以及可選的對總線、設備或設備類的I/O 請求進行分類的過濾器驅動程序。 注冊表作為一個數據庫,存儲基本硬件設備的描述信息以及驅動程序的初始化和配置信息。,硬件抽象層(HAL Hardware Abstraction Layer ) I/O 訪問例程把設備驅動程序與多種多樣的硬件平臺隔離開來,使它們在給定的體系結構中是二進制可移植的,并在Windows 2000/XP支持的硬件體系結構中是源代碼可移植的。,在 Windows 2000/XP 中,所有的I/O 操作都通過虛擬文件執(zhí)行,隱藏了 I/O 操作目標的實現細節(jié),為應用程序提供了一個統一的到設備的接口。虛擬文件是指用于I/O的所有源或目標,它們都被當做文件來處理(例如文件、目錄、管道和郵箱) 。所有被讀 取或寫入的數據都可以看作是直接讀寫到這些虛擬文件的流。用戶態(tài)應用程序(不管它們是 Win32、 POSIX 或 OS/2)調用文檔化的函數(公開的調用接口),這些函數再依次 調用內部 I/O 子系統函數來從文件中讀取、對文件寫入和執(zhí)行其他的操作。I/O 管理器動態(tài)地把這些虛擬文件請求指向適當的設備驅動程序。一個典型的 I/O 請求流程的結構如下圖所示。,一個典型的I/O請求流程,I/O管理器,I/O 管理器(I/O manager)定義有序的工作框架,在該框架里,I/O 請求被提交給設備驅動程序。在 Windows2000 XP 中,整個I/O 系統是由“包”驅動的,大多數I/O 請求用“I/O 請求包 IRP”表示,它從一個I/O 系統組件移動到另一個I O 系統組件,快速 I/O 是一個特例,它不使用 IRP 。IRP 是在每個階段控制如何處理 I/O 操作的數據結構。,I/O 管理器創(chuàng)建代表每個 I/O 操作的 IRP,傳遞IRP 給正確的驅動程序,并且當此I/O 操作完成后,處理這個數據包。相反,驅動程序接受 IRP,執(zhí)行IRP 指定的操作,并且在完成操作后把IRP 送回I/O 管理器或為下一步的處理而通過I/O 管理器把它送到另一個驅動程序。,除了創(chuàng)建并處理IRP 以外,I/O 管理器還為不同的驅動程序提供了公共的代碼,驅動程序調用這些代碼來執(zhí)行它們的 I/O 處理。通過在 I/O 管理器中合并公共的任務,單個的驅動程序將變得更加簡潔和更加緊湊。例如,I/O 管理器提供一個允許某個驅動程序調用其他驅動程序的函數。它還管理用于 I/O 請求的緩沖區(qū),為驅動程序提供超時支持,并記錄操作系統中加載了哪些可安裝的文件系統。,驅動程序呈現的統一的、模塊化的接口允許 I/O 管理器調用任何驅動程序而不需要與它的結構和內部細節(jié)有關的任何特殊的知識。驅動程序也可以相互調用(通過 I/O 管理器)來完成 I/O 請求的分層的、獨立的處理。,PnP管理器,即插即用PnP (Plug and Play)是計算機系統 I/O 設備與部件配置的應用技術。顧名思義,PnP 是指插入就可用,不需要進行任何設置操作。由于一個系統可以配置多種外部設備,設備也經常變動和更換,它們都要占有一定的系統資源,彼此間在硬件和軟件上可能會產生沖突。因此,在系統中要正確地對它們進行配置和資源匹配;當設備撤除、添置和進行系統升級時,配置過程往往是一個困難的過程。為了改變這種狀況,出現了 PnP 技術。,PnP 技術主要有以下特點:PnP 技術支持 I/O 設備及部件的自動配置,使用戶能夠簡單方便地使用系統擴充設備;PnP 技術減少了由制造商造成的種種用戶限制,簡化了部件的硬件跳線設置,使I/O 附加卡和部件不再具有人工跳線設置電路;利用PnP技術可以在主機板和附加卡上保存系統資源的配置參數和分配狀態(tài),有利于系統對整個 I/O 資源的分配和控制;PnP 技術支持和兼容各種操作系統平臺,具有很強的擴展性和可移植性;PnP 技術在一定程度上具有“熱插入”、“熱拼接”功能。,Windows 2000/XP 的PnP 支持提供了以下能力: PnP 管理器自動識別所有已經安裝的硬件設備。在系統啟動的時候,一個進程會檢測系統中硬件設備的添加或刪除。 PnP 管理器通過一個名為資源仲裁(resource arbitrating)的進程收集硬件資源需求(中斷,I/O 地址等)來實現硬件資源的優(yōu)化分配;滿足系統中的每一個硬件設備的資源需求。PnP 管理器還可以在啟動后根據系統中硬件配置的變化對硬件資源重新進行分配。,PnP 管理器通過硬件標識選擇應該加載的設備驅動程序。如果找到相應的設備驅動程序,則通過 I/O 管理器加載,否則,啟動相應的用戶態(tài)進程請求用戶指定相應的設備驅動程序。 PnP 管理器也為檢測硬件配置變化提供了應用程序和驅動程序的接口。因此,在 Windows 2000/XP 中,在硬件配置發(fā)生變化的時候,相應的應用程序和驅動程序也會得到通知。,電源管理器,Windows 2000 XP 的電源管理策略由兩部分組成:電源管理器和設備驅動程序。電源管理器是系統電源策略的所有者,因此整個系統的能耗狀態(tài)轉換由電源管理器決定,并調用相應設備的驅動程序完成。電源管理器根據以下因素決定當前相同的能耗狀態(tài):系統活動狀況;系統電源狀況;應用程序的關機、休眠請求;用戶的操作,例如用戶按電源按鈕;控制面板的電源設置。,當電源管理器決定要轉換能耗狀態(tài)時,相應的電源管理命令會發(fā)給設備驅動程序的相應調度例程。一個設備可能需要多個設備驅動程序,但是負責電源管理的設備驅動程序只有一個,設備驅動程序根據當前系統狀態(tài)和設備的狀態(tài)決定如何進行下一步操作,例如,當設備狀態(tài)從 正常共作切換到睡眠時,設備的能耗狀態(tài)也從正常工作的能耗切換到比其低的能耗狀態(tài)。,除了響應電源管理器的電源管理命令外,設備驅動程序也可以獨立地控制設備的能耗狀態(tài)。在一些情況下,當設備長時間不用時,設備驅動程序就可以減小該設備的能耗。設備驅動程序可以自己檢測設備的閑置時間,也可以通過電源管理器檢測。,2.Windows I/O系統的數據結構,四種主要的數據結構代表了I/O 請求:文件對象、驅動程序對象、設備對象和 I/O 請求包(IRP)。,文件對象,文件對象提供了基于內存的共享物理資源的表示法(除了被命名的管道和郵箱以外,它們雖然是基于內存的,但不是物理資源) 。在Windows 2000/XP I/O 系統中,文件對象也代表這些資源。,下表列出了一些文件對象的屬性。,當調用者打開文件或單一的設備時,I/O 管理器將為文件對象返回一個句柄。像其他的執(zhí)行體對象一樣,文件對象由包含訪問控制表(ACL)的安全描述體保護。I/0 管理器查看安全子系統來決定文件的 ACL 是否允許進程去訪問它的線程正在請求的文件。如果允許對象管理器將準予訪問,并把它返回的文件句柄和給予的訪問權限聯系起來。如果這個線程或在進程中的另一個線程需要去執(zhí)行另外的操作,而不是最初請求指定的操作,那么線程就必須打開另一個句柄,它將提示做另外的安全檢查。,文件對象表示一個基于內存的共享資源,它有別于其他的執(zhí)行體對象。一個文件對象包括的唯一數據結構是對象句柄,但是文件本身包括將被共享的數據或文本。每次當一個線程打開一個文件句柄時,就創(chuàng)建了一個新的文件,其屬性由一組新的句柄指定。,當打開一個文件時,文件名包括文件駐留的設備對象的名稱。例如,名稱DeviceFloppy0 myfile.dat 引用軟盤驅動器A 上的文件 myfile.dat 。子字符串Device Floppy0 是Windows 2000 XP 內部設備對象的名稱,代表那個軟盤驅動器。當打開myfile.dat 文件時,I/O 管理器就創(chuàng)建一個文件對象,并在文件對象中存儲一個 Floppy0設備的指針,然后,給調用者返回一個文件句柄。此后,當調用者使用文件句柄時,I/O 管理器能夠直接找到 Floppy0 設備對象。,驅動程序對象和設備對象,當線程為文件對象打開一個句柄時,I/O 管理器必須根據文件對象名稱來決定它將調用哪個或哪些驅動程序來處理請求。而且,I/O 管理器必須在線程下一次使用同一個文件句柄時可以定位這個信息。 下面的系統對象滿足這些要求: 驅動程序對象代表系統中一個獨立的驅動程序,I/O 管理器從這些驅動程序對象中獲得并且為 I/O 記錄每個驅動程序的調度例程的地址(入口點) 。,設備對象在系統中代表一個物理的、邏輯的或虛擬的設備并描述了它的特征,例如,它所需要的緩沖區(qū)的對齊方式和它用來保存即將到來的 I/O 請求包的設 備隊列的位置。 當驅動程序被加載到系統中時,I/O 管理器將創(chuàng)建一個驅動程序對象,然后,它調用驅動程序的初始化例程,該例程把驅動程序的入口點填放到該驅動程序對象中。初始化例程還創(chuàng)建用于每個設備的設備對象,這樣使設備對象脫離了驅動程序對象。,I/O請求包,IRP(I/O Request Packet)是 I/O 系統用來存儲處理 I O 請求所需信息的數據結構。當線程調用I/O 服務時,I/O 管理器就構造一個 IRP 來表示在整個系統 I/O 進展中要進行的操作。I/O 管理器在 IRP 中保存一個指向調用者文件對象的指針。 IRP 由兩部分組成:固定部分(稱作標題)和一個或多個堆棧單元。固定部分信息包括:請求的類型和大小、是同步請求還是異步請求、用于緩沖 I/O 的指向緩沖區(qū)的指針和隨著請求的進展而變化的狀態(tài)信息。IRP 的堆棧單元包括一個功能碼、功能特定的參數和個指向調用者文件對象的指針。,3.Windows 設備驅動程序,Windows 2000/XP 支持多種類型的設備驅動程序和編程環(huán)境,在同一種驅動程序中也存在不同的編程環(huán)境,具體取決于硬件設備。這里主要討論核心模式的驅動程序,核心驅動程序的種類很多,主要分為以下幾種: 文件系統驅動程序:接受訪問文件的 I/O 請求,主要是針對大容量設備和網絡設備。 同Windows 2000/XP 的PnP 管理器和電源管理器有關的設備驅動程序:包括大容量存儲設備、協議棧和網絡適配器等。,為Windows NT 編寫的設備驅動程序:可以在 Windows 2000/XP 中工作,但 是一般不具備電源管理和 PnP 的支持,會影響整個系統的電源管理和PnP 管理的能力。 Win32 子系統顯示驅動程序和打印驅動程序:將把與設備無關的圖形(GD

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論