會員 ![]() | 【轉貼】98的USB 通用驅動 98的USB 通用驅動程序 第三版 原始文件 http://bbs.wuyou.com/cgi-bin/topic.c...c=14428&show=0 前一段時間我發布了USB 通用驅動程序第二版,它是一個 從winme抽取出來的WDM版本的USB Mass Storage 驅動程序和我重寫的USBMPHLP.PDR連接埠驅動程序的混合體。 這個終結篇的USB 通用驅動程序完全採用來自winme 的 USB Mass Storage 驅動程序,僅僅需要修改USBMPHLP.PDR中的兩個位元組, 完全不需要重寫USBMPHLP.PDR,因為這個驅動和第二版的功能上 沒有任何區別,僅僅是它和winme 中的驅動程序幾乎完全一樣, 所以我才稱它為終結篇, 方法: 在用一個16進制編輯器(如winhex或者UltraEdit)在USBMPHLP.PDR 文件中 搜索兩個連續位元組0x5a,0x04,把它替換為0x0a,0x04,一共可以 找到兩處,所以共需要修改兩個位元組。 其余的文件和我在USB 通用驅動程序第二版中發布的沒有區別。 原理: 我一直在考慮為什麼原來WINEME的USBMPHLP.PDR連接埠驅動程序在WIN98 下面不能加載,而我寫的功能完全一樣的代碼沒有問題,那麼多半是編譯時 的原因。 我把我寫的USBMPHLP.PDR連接埠驅動程序分別在9DK 和 WIN2kME 的DDK 下編譯,發現產生的代碼有兩個位元組不同(就是0x5a,0x04和0x0a,0x04的不同), 而在WIN2kME 的DDK下編譯的USBMPHLP.PDR連接埠驅動程序也不能在WIN98下加載。 那麼原因是什麼,仔細看了一下WIN2KME DDK的頭文件,發現如下語句 ifndef DDK_VERSION ifdef WIN31COMPAT DDK_VERSION EQU 30AH else ifdef WIN40COMPAT DDK_VERSION EQU 400H else ifdef WIN41COMPAT DDK_VERSION EQU 40AH else DDK_VERSION EQU 45AH endif endif endif endif VxD_Desc_Block STRUC DDB_Next DD ? DDB_SDK_Version DW DDK_VERSION . . . VxD_Desc_Block ENDS 看出來了,0x5a,0x04 就是45AH 而0x0a,0x04就是40AH, 於是我在WIN2KME 的DDK 下編譯時,定義WIN41COMPAT常量, 就可以讓win98加載這個vxd。 最後,我檢查winme 的原來的USBMPHLP.pdr連接埠驅動程序文件, 修改裡面的45aH 為40AH,在WIN98下面測試一切正常。 原來win98 不能加載winme 的USBMPHLP.pdr 是因為版本檢查的原因, 而USBMPHLP.pdr 的功能非常簡單,所以這個版本檢查的限制是沒有 必要的。 ps: 如果修改45AH為400H 是不是就可以在win95C 下加載了呢? 誰有win95C,可以試一下。 其余內容參見我的帖子 \"USB 通用驅動程序第二版\"。 其中 Usbmphlp.pdr.me 是winme 的 原版的Usbmphlp.pdr Usbmphlp.pdr 是我直接 修改winme 的Usbmphlp.pdr 之後的結果 直接安裝版(簡体中文) http://www.gxxhcpa.com/htdocs/UPFILE/20031251558110.exe 獨立版 http://bbs.wuyou.com/non-cgi/usr/2/2_14428.rar ================================================== 以下為相關文章與其它版本 可用,但不知那來的版本 http://bbs.wuyou.com/non-cgi/usr/2/2_14428_8.rar 從WIN2000分離出來的版本(內含DOS版) http://bbs.wuyou.com/non-cgi/usr/2/2_14428_23.rar Windows NT4.0 使用 USB 裝置的方法(DOS下掛USB的驅動程式的方法) http://www.pczone.com.tw/vbb3/showthread.php?t=97951 松下研發出DOS下的USB驅動 http://www.pczone.com.tw/vbb3/showthread.php?t=105921 |
回覆 |
會員 ![]() | 請問98的USB是不是只有支援兩個USB孔啊, 我原本是安裝XP,可以使用到4個USB, 可是昨天我重新灌98時,發現到USB只有兩個孔可以用, 所以請問大家,是不是98只有支援兩個USB孔而已。 |
回覆 |
會員 ![]() | 引用:
| |
回覆 |
會員 ![]() | 引用:
因為我的印表機和滑鼠也是USB的, 所以我進BIOS設定,把Parallel Port關閉, 這樣一來在98下所有USB都通了。 | |
回覆 |
|
XML | RSS 2.0 | RSS |
本論壇所有文章僅代表留言者個人意見,並不代表本站之立場,討論區以「即時留言」方式運作,故無法完全監察所有即時留言,若您發現文章可能有異議,請 email :[email protected] 處理。