91精品一区二区三区久久久久久_欧美一级特黄大片色_欧美一区二区人人喊爽_精品一区二区三区av

位置:51電子網 » 技術資料 » 其它綜合

Windows 9X內核模式驅動程序的設計與策略

發布時間:2007/8/29 0:00:00 訪問次數:419

       摘 要: 在Windows  98或Windows  95下如何高效編寫硬件設備驅勸程序是微機應用開發中迫切需要解決的問題。介紹了虛擬設備驅動程序(VxD)在Windows  9X下運行的機理和通信策略,以及如何設計內核模式驅動程序。

    關鍵詞: 保護模式 VMM  VxD  DPMI

    1995年Microsoft公司推出了其新一代的桌面操作系統Windows  95,從技術層面來看它是為發揮32位處理優越性能而設計的一個32位操作系統。而它出色的穩定性,強大的尋址能力,無不歸功于對32位處理保護模式的充分應用。具體來講,它利用了80386的保護機制,從操作系統到一般應用程序分別分到4個特權層上,操作系統享有最高的優先級,被安排在ring-0上運行,而優先級最低的普通應用程序被安排在ring-3上運行。這樣做的好處是如果一般的應用程序在ring-3上崩潰將不會影響到ring-0的操作系統,另一方面也是對在ring-3上的應用程序所能訪問到的資源做了一定的限制,從而大大降低了因應用程序直接操作而產生的意外錯誤。換句話說,在Windows  98或Windows  95下,應用程序不能像在實模式下可以隨意操作硬件資源,而需要通過編寫運行在內核模式(ring-0)的虛擬設備驅動程序(virtual  device  driver)才能達到目的。因此,在Windows  9X下如何高效編寫硬件設備驅動程序是微機應用開發中迫切需要解決的問題。

    1 Windows 9X系統結構

    確切的說Windows 9X不是一個操作系統,而是一個操作系統的集合。當計算機運行在保護模式下時,有“兩個”操作系統同時存在,即Windows 本身和一個更低的操作系統,我們把它稱為VMM/DPMI(virtual machine manager/Dos protect mode interface)。VMM的主要目的是管理同時運行的32位保護模式Windows應用程序(Win32 applications以及運行在虛擬86模式下的MS-DOS程序,前者稱為“線程”(threads),后者稱為VM(virtual machine)。VMM使每一條線程擁有自己的獨立地址空間,使每一個VM都“單獨”占有CPU,并為它們提供各種服務。從圖1中我們可以看出,threads和VMs所能訪問到的資源已不是直接的物理資源,而是被VMM虛擬化virtualized后的虛擬資源了。

    另外,VMM是一個可擴充的“操作系統”,它的核心部件以及標準部件(比如,DMA控制器管理VDMAD,中斷管理VPICD等)是由Microsoft提供的。但我們可以編寫一些擴充模塊,也就是用VxD來增強VMM對硬件的虛擬能力,使整個操作系統獲得對新硬件的訪問能力。不僅如此,這種擴充操作系統的辦法,還能為Win32程序與MS-DOS程序之間的通訊提供一種新的途徑以代替傳統的MS-DOS設備驅動程序以及內存駐留程序TSRs。從某種意義上說,沒有VxD不能完成的事情,而且由于VxD是運行的保護模式下,所以它并不占有寶貴的常規內存。此外,運行實模式MS-DOS驅動程序所導致的模式切換也不復存在。因此一般來講,VxD的運行速度要高出MS-DOS驅動程序一倍以上。更重要的是VxD在Windows 9X下可以動態裝入與卸載而不需要重新啟動計算機,這就大大提高了系統的靈活性,同時也為即插即用(Plug and Play)提供了可能。與實模式的驅動程序相比,可動態裝、卸載可謂是一場革命。

    2 VxD的結構及通訊策略

    普通的Win32應用程序都是PE格式(Portable Exectable Format)的,而VxD則不同,它沒有一般程序的進出口而是輸出一種稱作設備描述塊DDB(Device Descriptor Block)的數據結構。它包括VxD設備ID、初始化順序、Win32DeviceIOControl回調函數句柄、V86API句柄、PM API句柄等VMM在調用VxD時所需要的重要信息。此外,同其他應用程序一樣,VxD由五個段構成,它們分別是:

    (1)VxD_CODE段:保護模式代碼段。該段包含VxD系統控制過程、回調過程、服務和API過程。

    (2)VxD_DATA段:保護模式數據段。該段包括設備描述表、服務表和部分VxD全局數據。

    (3)VxD_ICODE段:保護模式初始化代碼段(可選)。該段一般包括只在VxD初始化過程中使用的過程和服務,VMM在Init_Complete消息發生后丟棄此段。

  (4)VxD_IDATA段:保護模式初始化數據段(可選

       摘 要: 在Windows  98或Windows  95下如何高效編寫硬件設備驅勸程序是微機應用開發中迫切需要解決的問題。介紹了虛擬設備驅動程序(VxD)在Windows  9X下運行的機理和通信策略,以及如何設計內核模式驅動程序。

    關鍵詞: 保護模式 VMM  VxD  DPMI

    1995年Microsoft公司推出了其新一代的桌面操作系統Windows  95,從技術層面來看它是為發揮32位處理優越性能而設計的一個32位操作系統。而它出色的穩定性,強大的尋址能力,無不歸功于對32位處理保護模式的充分應用。具體來講,它利用了80386的保護機制,從操作系統到一般應用程序分別分到4個特權層上,操作系統享有最高的優先級,被安排在ring-0上運行,而優先級最低的普通應用程序被安排在ring-3上運行。這樣做的好處是如果一般的應用程序在ring-3上崩潰將不會影響到ring-0的操作系統,另一方面也是對在ring-3上的應用程序所能訪問到的資源做了一定的限制,從而大大降低了因應用程序直接操作而產生的意外錯誤。換句話說,在Windows  98或Windows  95下,應用程序不能像在實模式下可以隨意操作硬件資源,而需要通過編寫運行在內核模式(ring-0)的虛擬設備驅動程序(virtual  device  driver)才能達到目的。因此,在Windows  9X下如何高效編寫硬件設備驅動程序是微機應用開發中迫切需要解決的問題。

    1 Windows 9X系統結構

    確切的說Windows 9X不是一個操作系統,而是一個操作系統的集合。當計算機運行在保護模式下時,有“兩個”操作系統同時存在,即Windows 本身和一個更低的操作系統,我們把它稱為VMM/DPMI(virtual machine manager/Dos protect mode interface)。VMM的主要目的是管理同時運行的32位保護模式Windows應用程序(Win32 applications以及運行在虛擬86模式下的MS-DOS程序,前者稱為“線程”(threads),后者稱為VM(virtual machine)。VMM使每一條線程擁有自己的獨立地址空間,使每一個VM都“單獨”占有CPU,并為它們提供各種服務。從圖1中我們可以看出,threads和VMs所能訪問到的資源已不是直接的物理資源,而是被VMM虛擬化virtualized后的虛擬資源了。

    另外,VMM是一個可擴充的“操作系統”,它的核心部件以及標準部件(比如,DMA控制器管理VDMAD,中斷管理VPICD等)是由Microsoft提供的。但我們可以編寫一些擴充模塊,也就是用VxD來增強VMM對硬件的虛擬能力,使整個操作系統獲得對新硬件的訪問能力。不僅如此,這種擴充操作系統的辦法,還能為Win32程序與MS-DOS程序之間的通訊提供一種新的途徑以代替傳統的MS-DOS設備驅動程序以及內存駐留程序TSRs。從某種意義上說,沒有VxD不能完成的事情,而且由于VxD是運行的保護模式下,所以它并不占有寶貴的常規內存。此外,運行實模式MS-DOS驅動程序所導致的模式切換也不復存在。因此一般來講,VxD的運行速度要高出MS-DOS驅動程序一倍以上。更重要的是VxD在Windows 9X下可以動態裝入與卸載而不需要重新啟動計算機,這就大大提高了系統的靈活性,同時也為即插即用(Plug and Play)提供了可能。與實模式的驅動程序相比,可動態裝、卸載可謂是一場革命。

    2 VxD的結構及通訊策略

    普通的Win32應用程序都是PE格式(Portable Exectable Format)的,而VxD則不同,它沒有一般程序的進出口而是輸出一種稱作設備描述塊DDB(Device Descriptor Block)的數據結構。它包括VxD設備ID、初始化順序、Win32DeviceIOControl回調函數句柄、V86API句柄、PM API句柄等VMM在調用VxD時所需要的重要信息。此外,同其他應用程序一樣,VxD由五個段構成,它們分別是:

    (1)VxD_CODE段:保護模式代碼段。該段包含VxD系統控制過程、回調過程、服務和API過程。

    (2)VxD_DATA段:保護模式數據段。該段包括設備描述表、服務表和部分VxD全局數據。

    (3)VxD_ICODE段:保護模式初始化代碼段(可選)。該段一般包括只在VxD初始化過程中使用的過程和服務,VMM在Init_Complete消息發生后丟棄此段。

  (4)VxD_IDATA段:保護模式初始化數據段(可選

相關IC型號

熱門點擊

 

推薦技術資料

羅盤誤差及補償
    造成羅盤誤差的主要因素有傳感器誤差、其他磁材料干擾等。... [詳細]
版權所有:51dzw.COM
深圳服務熱線:13692101218  13751165337
粵ICP備09112631號-6(miitbeian.gov.cn)
公網安備44030402000607
深圳市碧威特網絡技術有限公司
付款方式


 復制成功!
北流市| 安新县| 宁波市| 平和县| 满城县| 河源市| 牙克石市| 泰安市| 蕉岭县| 黔西县| 屯昌县| 温泉县| 岐山县| 嘉禾县| 姜堰市| 桃江县| 涿鹿县| 莱芜市| 边坝县| 大庆市| 汨罗市| 朝阳县| 普格县| 梅河口市| 潢川县| 汽车| 禹城市| 新乡市| 玛沁县| 华宁县| 阿勒泰市| 辽阳县| 五河县| 天台县| 高平市| 济阳县| 林州市| 高邮市| 大理市| 团风县| 泰宁县|