![完整版驅動程序原理_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/18/8747d3ef-9958-48a1-909c-647cde16af6d/8747d3ef-9958-48a1-909c-647cde16af6d1.gif)
![完整版驅動程序原理_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/18/8747d3ef-9958-48a1-909c-647cde16af6d/8747d3ef-9958-48a1-909c-647cde16af6d2.gif)
![完整版驅動程序原理_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/18/8747d3ef-9958-48a1-909c-647cde16af6d/8747d3ef-9958-48a1-909c-647cde16af6d3.gif)
![完整版驅動程序原理_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/18/8747d3ef-9958-48a1-909c-647cde16af6d/8747d3ef-9958-48a1-909c-647cde16af6d4.gif)
![完整版驅動程序原理_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/18/8747d3ef-9958-48a1-909c-647cde16af6d/8747d3ef-9958-48a1-909c-647cde16af6d5.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、知識體系結構應用程序:是一段可以執(zhí)行的代碼,由操作系統(tǒng)治理.編譯原理,鏈接器,裝載器:是對操作系統(tǒng)依賴的一個工具,將用戶的代碼變成可執(zhí) 行的機器碼,編譯器僅僅檢查和譯用戶的語言邏輯,但并不裝配成符合操作系統(tǒng)要求的可執(zhí)行文件格式,如 windows要求的EXE文件為PE格式EXE文件并不僅僅是一個可執(zhí)行 的代碼段,而且包含了很多其他的內容,如數(shù)據段.操作系統(tǒng)接口 API :是一個可以被用戶程序調用的系統(tǒng)功能接口,可以說,我們編寫 程序,除了計算和流程限制這些只需要用到CPU指令和CPU存放器的代碼外,其余要訪問其他硬件資源包括內存,外設的代碼,均是通過調用 OS的API來操作除CPU外 的資源的
2、,如向屏幕寫一個字母, 對于程序來說簡單得很,print A;但是其編譯后執(zhí)行的 過程是復雜的,編譯后的程序會調用操作系統(tǒng)的API,將當前應用程序的狀態(tài)上下文,如光標的位置以及字母傳遞給顯示器的驅動程序去顯示.操作系統(tǒng)治理與調度:操作系統(tǒng)要實現(xiàn)一般通用的資源治理,也要實現(xiàn)資源使用的協(xié) 調,包含CPU,內存,磁盤,外設.首先要確定為什么需要操作系統(tǒng),操作系統(tǒng)設計的目標是什么1. 我們總是不能等做完一件事情才去做另外一件,由于有些事情做的過程需要 等待,有時候也需要暫停一下當前的任務,先去處理更急的事情,等我回來 時又需要以前的任務保持當時的狀態(tài),所以需要計算機也要具備這樣的能 力,那怎么實現(xiàn)呢2
3、. CPU和內存是計算機的最需要的資源,就如我們的人腦一樣,一般很難在同一時間做兩件事情.需要處理好一件事情再處理另一件,如果處理得越快就 越好,但是不能前一件事情要等待,你就休息了,后面一件也做不了,計算 機的方法就是你不用 CPU 了,那好你等待下,我先處理下一個事情.3. 我們寫程序,不可能對每個應用,我們重新去寫那些驅動程序,也不可能按 照自己的想法去處理這些通常的資源治理.否那么很多人各自寫的應用軟件就 沒法在一個電腦上運行.操作系統(tǒng)目標:1.實現(xiàn)代碼重用,對于硬件的訪問,對于 CPU和內存的充分利用,使不同的應用 不需要重新去寫這些代碼.2 .實現(xiàn)各個任務不同應用程序的協(xié)調使用,使
4、用戶可以實現(xiàn)暫停、重新啟用 某個任務.3. 實現(xiàn)數(shù)據的平安治理,實現(xiàn)良好的人機界面的治理.4. 實現(xiàn)一個開放的體系結構,提供系統(tǒng)調用使用戶可以快速編寫自己的應用,并 提供編譯器、鏈接器、裝載器來讓用戶編寫的程序變成可以與操作系統(tǒng)接口的 可執(zhí)行軟件.操作系統(tǒng)的功能分層:CPU治理是操作系統(tǒng)的核心:操作系統(tǒng)與用戶程序其實可以看成是一個程序, 與以前的單任務系統(tǒng)和單片機程序沒有本質的區(qū)別.我們來看整個PC機運行過程:1. 系統(tǒng)上電.2. 主板上 CPU的CS值設置為 0Fx000, IP值設置為0xFFF0,這樣 CS:IP就指向0XFFFF0位置,這個是程序的開始地址,而硬件上在總線上掛接在0XF
5、FFF0地址的是主板的 BIOS芯片,BIOS開始運行,BIOS是Basic Input Output System 簡寫, 意思即根本的輸入輸出系統(tǒng),如果學過單片機就很好理解,其實就是一個程序,由主 板設計的公司的程序員編寫的,通過一定的方法如編程器寫入到芯片內,這段程 序會一上電就開始運行.3. BIOS會檢查所有的主板資源,并初始化主板的硬件資源,如總線限制器、顯示卡、 內存等,并將主板的固有資源和接插件的信息放入固定的內存區(qū)域,以便操作系統(tǒng)可以從中獲取得到當前的主板上有些什么設備資源.4. BIOS會在內存地址的最低位 0x000000構建起中斷向量表, 共1K內存一個向量 CS:IP
6、各兩個字節(jié),共 256個向量,接著是1/4K 256byte的內存放 BIOS數(shù) 據,接下來在 0X0E2CE 56K處加載了 8K左右的與中斷向量表相應的假設干中 斷效勞程序.5. 當BIOS程序檢測到主板上的設備符合啟動系統(tǒng)的條件,就讀取硬磁盤的引導扇區(qū)第一扇區(qū),這里也是一個程序,從哪個磁盤加載由CMOS設置確定,BIOS系統(tǒng)將這段程序bootloader讀入內存,并將限制權交給引導程序.6. BIOS具有驅動硬盤等硬件的驅動程序,并且,具有根本的硬件驅動效勞程序.這些都由主板硬件廠商提供.Bootloader會調用BIOS的驅動程序和已有的中斷效勞來從硬盤讀取操作系統(tǒng)的核心到內存,并將C
7、PU限制交給操作系統(tǒng).操作系統(tǒng)就如一段數(shù)據被映射到內存,然后程序通過修改CS:IP跳轉到操作系統(tǒng)的入口.7. 操作系統(tǒng)會通過IGDT重新構建中斷向量表.每個硬件產生的中斷,其編號在硬 件設計之初就已經設計好,外部硬件中斷/CPU內部異常中斷/程序調用中斷,其中斷號和程序是預先設置好的,當有外部中斷時,中斷存放器IPR會暫時存儲,并與中斷屏蔽存放器IMR進行AND位運算,然后就可以確定是否處理當前中斷, 這個是硬件電路實現(xiàn)的,運算后的結果經過中斷處理中斷譯碼進入 CPU的中 斷存放器IDTR , CPU執(zhí)行完當前指令,會自動處理檢查中斷,并將 CS:IP指 向中斷地址,這個地址是什么呢在實模式下
8、16位模式,中斷譯碼根據中斷號N x 4每個中斷4個字節(jié)直接設置IP,也就是中斷的程序地址沒法更改的,然后 在中斷向量的位置就是一個跳轉指令,跳轉到效勞程序處.在保護模式下呢,中 斷向量的原理與組織與實模式根本一樣,也是256個中斷處理程序,但是其中斷效勞程序不在固定的位置,中斷向量表也不在固定的位置,CPU的IDTR存放器由操作系統(tǒng)在系統(tǒng)初始化之初就裝入了中斷向量表中斷門表在內存中的尋址 位置信息,保護模式下,硬件將 IDTR和中斷號N譯碼找到中斷表的該中斷描述 項,而描述項說這個效勞程序在GDT或LDT表中的第X項描述的段中,以及偏移多少可以找到程序,然后找到這個段的基址+32位的地址偏移
9、量.8. 操作系統(tǒng)從實模式轉保護模式時,最重要的一個是構建內存映射表和各種描述符 表.CPU訪問內存時,是通過 MMU進行了譯碼的,MMU的作用就是把 CPU指 令中的虛擬地址是程序員編寫的地址,一般高級語言編寫的程序不直接寫地址, 但是程序裝載到內存后,所有訪問地址的指令都發(fā)生了地址修改,這是由裝載器 設置的.變成實際的物理地址.9. 操作系統(tǒng)為什么需要 MMU,計算機從主板啟動后,是在 ROM中運行的,速度相 對于RAM來說是非常慢,我們就想到把程序復制到 RAM中運行,但是計算機體 系的執(zhí)行是有固定的地址的,如CPU上電首先從0xFFFF0地址加載第一條指令,發(fā)生錯誤那么會自動將 IP指
10、向0x0000開始的中斷向量表,如果我們將程序COPY到RAM運行,但是硬件一中斷,還是會跑到硬件地址的0x0000處的向量表去運行,還是在 ROM中,一樣緩慢,為了解決這個問題,我們想到了地址轉換,當 將程序COPY到RAM中后,構建 MMU的頁表,然后啟動 MMU的地址轉換功 能,然后程序開始從我們設定的地址開始運行如 0XFFFA0 ,而CPU也為了與 操作系統(tǒng)配合,也定義了保護模式,其運行規(guī)那么也相應發(fā)生了變化,其IGTR中的值由實模式時的 0x000變成了由操作系統(tǒng)定義的中斷門表的地址.保護模式時的中斷程序的尋址比實模式復雜,因其中斷處理器硬件也復雜.而對于BIOS的ROM訪問地址,
11、也被映射到了新的虛擬地址空間,不再是 0xFFFF0,所以對于 ROM中的中斷程序的訪問, 是通過IGTR+中斷描述項定位到該內存地址.所有的外設的內存映射地址均被操作系統(tǒng)重新映射和治理. 系統(tǒng)上電時,處理器的程序指針從0x0 或者是由0Xffff_0000處高端啟動處啟動,順序執(zhí)行程序,在程序指針 PC啟動地址,屬于非易失性存儲器空間范 圍,如 ROM、FLASH等.然而與上百兆的嵌入式處理器相比,FLASH、 ROM等存儲器響應速度慢,已成為提升系統(tǒng)性能的一個瓶頸.而SDRAM具有很高的響應速度,為何不使用SDRAM來執(zhí)行程序呢為了提升系統(tǒng)整體速度,可以這樣設想,利用FLASH、ROM對系
12、統(tǒng)進行配置, 把真正的應用程序下載到 SDRAM 中運行,這樣就可以提升系統(tǒng)的性能.然而這種想法又遇到了另外一個問題,當ARM處理器響應異常事件時,程序指針將要跳轉到一個確定的位置,假設發(fā)生了IRQ中斷,PC將指向0x18如果為高端啟動,那么相應指向0vxffff_0018處,而此時0x18處仍為非易失性存儲器所占據的位置,那么程序的執(zhí)行還是有一局部要在 FLASH或者ROM中來執(zhí)行的.那么我們可不可以使程序完全都SDRAM中運行那答案是肯定的,這就引入了MMU,利用MMU,可把SDRAM的地址完全映射到0x0起始的一片連續(xù)地址空間,而把原來占據這片空間的FLASH或者ROM映射到其它不相沖突
13、的存儲空間位置.例如,FLASH的地址從0x0000_0000 0x00ff_ffff,而 SDRAM 的地址范圍是 0x3000_0000 0x31ff_ffff , 那么可把 SDRAM 地址映射為0x0000_0000 0x1fff_ffff而FLASH的地址可以映射到 0x9000_0000 0x90ff_ffff 此處地址空間為空閑,未被占用 .映射完成后,如果處理器發(fā)生 異常,假設依然為IRQ中斷,PC指針指 向0x18處的地址,而這個時候 PC實際 上是從位于物理地址的 0x3000_0018處讀取指令.通過 MMU的映射,那么可實現(xiàn) 程序完全運行在 SDRAM之中10. 內存映
14、射表:是為MMU構建的一塊內存區(qū)域,其內容為一個表,或者叫一個數(shù)組,每個元素標記了 虛擬地址:物理地址,頁表一般分兩極,第一級為 1M 一 個項,第二級那么是 1M內的索引.那會有多少呢,4G=4K項,然后每個1M=256項,所以頁表大小為1M,如果每個項為32bit,那么至少需要256K個指令周期才能把 內存的頁表裝入 MMU ,也就是0.4ms, windows的CPU分時片為20ms.那么進程 切換的時間不少于 1ms.11. CPU中有是否啟用 MMU勺存放器設置,如果不啟用,貝U CPU發(fā)出讀寫地址線信號,同時MMU不會做出反響,使能信號直接被MMU輸出,RAM檢測到指令,直接將數(shù)據
15、放到總線上,并通知CPU數(shù)據準備好.如果啟用 MMU , CPU發(fā)出讀寫指令,MMU同時從總線獲取地址數(shù)據經過硬件運算,僅僅一個硬件周期, 然后修改總線的地址,并通知內存或北橋芯片地址準備好.12. 對于操作系統(tǒng)來說,只要構建每個進程的內存映射表,并在進程切換時將內存映射表復制到MMU的緩沖中.13. 而對于應用程序來說, 是不能操作 MMU的,所以,當企圖訪問沒有映射的虛 擬內存時,MMU會向CPU會產生缺頁中斷,然后在中斷效勞程序中,操作系統(tǒng)會根據是否是被換出內存還是沒有初始化,來決定是從硬盤裝載內存,或拋出異 常錯誤.14. 操作系統(tǒng)的內存治理, 是分段式治理,并在內存中構建了一個段描述
16、符表,這個表是用來告訴大家CPU,所有程序每個段內放了什么東西,是可執(zhí)行代碼, 或是數(shù)據,或者是一個只讀存儲器,或者這個局部是不能訪問的.為什么要這樣,由于系統(tǒng)的4G內存空間,其實是不連續(xù)的, 所有的硬件都是掛接在總線的,CPU只有通過32位總線來訪問所有的非 CPU的外設,包括 MMU , RAM ,北橋,硬 件上CPU就僅與上面的器件通過 32位總線連接,對于鍵盤、鼠標、顯示器、PCI卡、USB、電池芯片、聲卡、網卡等等的訪問,都是通過寫地址總線,然后讀數(shù) 據總線其實就是地址線, 馮.諾伊曼結構的總線復用,來獲取或寫入一個數(shù)據. 而硬件的掛接地址是不連續(xù)的,我們訪問內存地址時,就要清楚每個
17、實際地址的 用途,為了平安,在不清楚的情況下,即使發(fā)出錯誤指令,系統(tǒng)也會自動根據段 的屬性來檢查是否處于保護中的地址,以免系統(tǒng)馬上崩潰.不是說過Win32環(huán)境下不用“段 了嗎是的,這些“段實際上并不是DOS匯編中那種意義的段,而是內存的“分段.上一個段的結束就是下一個段的開始,所有的“分段合起 來,包括系統(tǒng)使用的地址空間,就組成了整個可以尋址的4 GB空間.由于 Win32環(huán)境的內存治理使用了 80386處理器的分頁機制,每個頁4 KB大小可以自由 指定屬性,所以上一個 4 KB可能是代碼,屬性是可執(zhí)行但不可寫,下一個 4 KB 就有可能是既可讀也可寫但不可執(zhí)行的數(shù)據,再下面呢有可能是可讀不可
18、寫也 不可執(zhí)行的數(shù)據. Win32匯編源程序中“分段的概念實際上是把不同類型的數(shù) 據或代碼歸類,再放到不同屬性的內存頁也就是不同的“分段中,這中間不涉及使用不同的段選擇器.雖然使用和DOS匯編同樣的.code和.data語句來定義,意思可是完全不同了!為了簡單起見,在本書中還是簡稱“段,讀者應該注意到其中不同的含義.在程序中如果不小心用了對.const段中的數(shù)據做寫操作的指令,會引起保護錯誤.在程序中不必定義堆棧段,系統(tǒng)會自動分配堆棧空間. 惟一值得一提的是,堆棧段的內存屬性是可讀寫并且是可執(zhí)行的,這樣靠動態(tài)修 改代碼的反跟蹤模塊可以拷貝到堆棧中去邊修改邊執(zhí)行.一些病毒或者黑客工具 用到的緩沖
19、區(qū)溢出技術也用到了這個特征,有興趣了解的讀者可以查閱相關的資 料.15. 4K,是windows治理內存的最小單位,每個 4K的虛擬地址對應整塊的 4K實際地址,而每個實際的4K地址為一個段,每個段又有自己的存儲屬性.當程序訪問某個虛擬地址時,MMU先獲得虛擬地址與實地址的對應的頁表描述項,描述項說地址我不知道,但是我知道他在操作系統(tǒng)的段表中,要么在GDT要么在LDT中的第N項,然后在GDT中的N項說這個段是不能被訪問的, MMU就報告出錯了,如果可以訪問,那么就根據這個段的起始地址+ 虛擬地址/ 4K的余數(shù)就是段內偏移地址.16. Windows的內存分配機制,當應用程序調用操作系統(tǒng)的內核程
20、序申請一個內存 區(qū)域,內核程序會根據當前的應用程序的內存使用鏈表來來決定是否需要申請新 的頁段,如果在當前已經申請的 4K內存頁還有符合申請的大小塊就直接重建 鏈表,分配一個地址給當前進程,可見當前的進程的內存的分配也是操作系統(tǒng)管 理的.17. DMA限制器,用于治理兩個外設之間的數(shù)據流傳輸,如限制從磁盤讀取數(shù)據進入內存,DMA限制器是一個連續(xù) 地址信號 發(fā)生器,同時也有讀寫的方向時序控 制,數(shù)據不經過 CPU,由DMA限制直接在總線上傳輸.設備驅動程序:操作系統(tǒng)的驅動程序結構,首先明白計算機硬件與 CPU及操作系統(tǒng)的關系,操作系統(tǒng)的代碼僅僅在CPU中運行,所以只要CPU支持該操作系統(tǒng)的指令代
21、碼,就可以啟動操作系 統(tǒng),而至于訪問硬件的過程,就是讀取內存地址的過程MOV eax, &0xFFF330 ,對于i386其IO地址是獨立的地址空間 0x0000-0xFFFF共64K所以CPU的地址空間對于i386有兩個, 訪問的指令也有兩種, 而對于ARM這些來說IO地址是被編址到 32位內存地址空間的,所有外設也被掛接到內存總線上的.這些硬件的物理地址在主板制造好時就已經定了,無法更改,而BIOS的功能之一也就是收集這些設備與IO的地址對應信息,并交給操作系統(tǒng).然后操作系統(tǒng)根據BIOS提供的設備信息安裝相應的設備驅動程序給操作系統(tǒng)內核使用.如果BIOS不提供這些設備的IO信息,那
22、么操作系統(tǒng)怎么辦呢,那操作系統(tǒng)不可能搜索整個IO地址空間來確定有哪些設備,所以也就沒法知道有哪些外設IO.外設的IO分配是主板設計者決定的,每個設備均有連續(xù)的三局部存放器IO地址,1.限制存放器,2.數(shù)據存放器,3.狀態(tài)存放器.通過對存放器的讀寫,也就是執(zhí)行指令IN/OUT 0xFFFF ,來讀寫存放器實現(xiàn)對于外設的操作,可以看至L這個與單片機對于單個引腳的限制方法不同.PC機的目標是數(shù)據交換和處理,而單片機的目標主要是限制每個引腳的電平實現(xiàn)硬件的限制.操作系統(tǒng)會自帶一些驅動程序,那么這些自帶的驅動程序怎么與實際的硬件關聯(lián)起來 呢.下面我們來看USB鼠標的驅動,在 windows的設備治理器中
23、我們可以發(fā)現(xiàn),鼠標項, 其中可以找到HID鼠標,這個是一個符合 USB設備類HID類的串行設備,我們發(fā)現(xiàn)這個設 備沒有硬件資源,也就是說沒有對應的IO地址和中斷號.所以這個不是一個真實的獨立的設備,它是一個 windows的高層設備,也可以叫這個設備是一個虛擬的接口設備,我們可 以采用windows的一般鼠標驅動程序來操作這個設備.而實際上對于它的操作,會被該設 備關聯(lián)的驅動程序所接管,而其關聯(lián)的驅動程序是什么能,是windows自帶的USB HID類驅動程序,對于 USB的HID類設備,其操作協(xié)議有固定的標準,所以可以直接驅動.那么 USB HID驅動程序又怎么驅動實際的硬件呢,我們可以在w
24、indows的設備治理器中找到該鼠標對應的USB限制器,而該限制器有IO地址1840-185F共32個字節(jié)空間以及中斷號 18, 那么這個地址和中斷號怎么來的呢,這個就是BIOS告訴操作系統(tǒng)的,地址和中斷號是主板設計時就已經定了的.所以在不同的PC上裝的windows,其IO地址和中斷也不同.|V|DW中工商;米牌.n re 建藉窩 0 F E EE 13*1旅蛙叫鋼 回 | PCMCIA # 回*泗喟 W A皿新通 - <_電也 理L州!tV迥H ffi V itSSl 周營ifta fh j se同 « *#、0 , ws.tnt-siK+fi HID caVfidm七 r
25、MT'id UtrrfJn- PMhOwK略:.禎早行e岷辰*HS 回仲泊皿 .弒鯨 m辭"W<J«k一 EE質 | 眼灣R1同哇曾i蚌迎riiW不拽推途些設誼的信息,曜會推作手嗣暢5I 5理IHwl(n!)fi?fifli|G(rCH? FHmily ilUbirvFirilHil I inH 瞄柄捆1*1塞咐田"購IT潮由 4 L+U閉彳拓用圖8健擔團 為 人體學1".沒普!3 «'二音.視辨H財耕3 > M標EElim避荀 a <*遇用*行啟攜isn端兮 Irrte網 CQELGU靠規(guī) 砌|略4痕祥油W用
26、應面 盛博J頃FE L的q lnl<itu tefltlKL Stiff frtLr) TgD Vtunt id Ifaxt 氣廣 CwlrtllK- - ETC1安森其盟SVJ簫出范匿LBW - LB5F嚀tefil 史L6要 lrW)82WL0 fnijSiUPTSSBOtS (I 咬IN"郵府|§ Q$RxctHL±. A LranxotHJ?唾 IJ39 Root Hd> W iraBRootHii?所舔配囹Fbios啟動,可以訪問 VGA,也可以設定從磁盤或 USB設備啟動,說明 BIOS已經可 以驅動所有設備,其實上 BIOS已經構建起中斷
27、向量表,對于掛接到中斷總線的所有設備產 生的硬件中斷已經具有響應水平,BIOS啟動后,從 CDROM或硬盤或USB設備裝載引導程序,最開始沒有安裝操作系統(tǒng)時,引導程序是一個引導安裝系統(tǒng)的程序,安裝程序啟動運行會根據BIOS的設置來配置操作系統(tǒng), 在windows中明顯的就是改變注冊表,注冊表是系統(tǒng)能用的所有硬軟件資源的描述.安裝完成后,系統(tǒng)就進入正式的系統(tǒng).在沒有安裝更多主板驅動程序之前,所有的底層硬件驅動就是通過中斷效勞程序提供的,如USB的限制驅動程序,也可以說是總線驅動程序,響應硬件中斷和軟件中斷,提供硬件訪問效勞, 怎么在中斷效勞USB總線驅動和操作系統(tǒng)的通用驅動程序接口之間建立對應的
28、關系呢,對于即 插即用硬件來說,這個映射過程是動態(tài)的,當沒有鼠標接入USB端口時,內存中就存在對于中斷18響應的USB限制器驅動程序,但是什么也不做.當有鼠標插入 USB端口,首先 鼠標的USB芯片得電運行,同時 USB的數(shù)據線會拉底主機的 USB限制器接口的數(shù)據線接 口的電平,硬件就會知道有設備接入,直接發(fā)送USB限制數(shù)據包,讀取設備的配置信息,知道了設備的描述信息后進一步配置設備信息,同時通過掛接在中斷總線上的引腳產生中斷信號18,中斷效勞程序進一步與鼠標芯片交流,確定為一HID設備后,中斷效勞程序會搜索 其成員對象中能處理HID類別的驅動程序來與這個設備通信.而這個HID驅動程序在哪呢, 什么時候又與中斷效勞關聯(lián)了呢,這個就是BIOS與操作系統(tǒng)的交互過程,操作系統(tǒng)啟動后, 會將自己的三類 USB驅動程序掛接到中斷效勞中,怎么掛接操作系統(tǒng)直接調用BIOS的函 數(shù)表中的函數(shù)將驅動程序的指針加到效勞程序的驅動程序列表,然后所有的來自鼠標的中斷 均被轉發(fā)到HID驅動來處理,而H做了什么,HD會檢查設備的類型和設備供應商及 相- 并從本驅動的附屬驅動中找到最適宜的驅動并交給它處理,如果沒有找到驅動,那么調用操作 系統(tǒng)的硬件驅動程序的安裝流程,驅動程
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度建筑工程質量與安全綜合監(jiān)測服務合同
- 個人聘用合同范本模板
- 農村建房建設合同范例
- 喪葬用品轉讓合同范例
- 企劃合同范本
- 食堂服務外包合同范本
- 燃氣施工風險以及管控措施
- 2025年度婚慶婚禮現(xiàn)場娛樂活動策劃合同
- 工廠內部承包合同范本
- 黑龍江申論真題2021年(鄉(xiāng)鎮(zhèn))
- 山體排險合同模板
- 醫(yī)保專(兼)職管理人員的勞動合同(2篇)
- 特殊感染手術的配合與術后處理課件
- 檢驗科生物安全工作總結
- 《ESPEN重癥病人營養(yǎng)指南(2023版)》解讀課件
- 《金屬與石材幕墻工程技術規(guī)范》jgj1332001-2021112401384
- 即時通訊系統(tǒng)建設方案
- 2024年山東省聊城市東昌府區(qū)小升初英語試卷
- 《堅毅:釋放激情與堅持的力量》隨筆
- 區(qū)塊鏈應用操作員技能大賽考試題庫大全-下(多選、判斷題)
評論
0/150
提交評論