[問題] Windows miniport driver 撰寫問題

看板C_and_CPP作者 (猩爺)時間11年前 (2013/12/10 13:13), 編輯推噓0(0010)
留言10則, 4人參與, 最新討論串1/1
各位大大好, 小弟上個月自學 miniport driver 的撰寫 有一些觀念如果不對敬請見諒 我是想撰寫一個 RAID Card 的 Driver 先是從 MSDN 上面有一個 LSI53c1010 的 scsi 卡 driver 的範例 因此我先從這個範例研究起 由於我的開發環境是 Windows server 2012 LSI53c1010 的 SCSI 卡似乎沒有支援 因此我拿 LSI53c1030 的卡裝在我的 PC 上 並且把 LSI53c1010 範例程式裡面 除了 DriverEntry 之外 其他像 LsiU3HWInitialize; LsiU3StartIo; LsiU3ISR; LsiU3FindAdapter; 等等裡面的程式碼都註解掉 並且在裡面印出一些訊息 我只是單純想知道做當一個 Driver 裝上去之後 他會呼叫哪些函式 然後用 WinDbg 來看訊息這樣 INF 我也是使用 LSI53c1010 的來裝 他的 vendor id 和 device id 分別是 PCI\VEN_1000&DEV_0020 和 PCI\VEN_1000&DEV_0021 雖然 LSI53c1030 的 vendor id 和 device id 是 PCI\VEN_1000&DEV_0030 但如果我用這樣的 INF 裝上去 他執行到 FindAdapter 後會馬上呼叫 RemoveDevice 網路上查到的資訊好像是說因為這個 vendor id 和 device id 跟其他 driver 衝突了 因此才使用 PCI\VEN_1000&DEV_0020 和 PCI\VEN_1000&DEV_0021 雖然裝上去的時候他會提示我 Driver 的 vendor ID 和 device ID 無法辨識 但還是可以成功讓我裝 也成功呼叫了 DriverEntry -> Findadapter -> LsiU3HWInitialize -> BuildIo -> StartIo Q1: 請問我這樣的安裝方式是不是會有問題 是不是我 FindAdapter 那邊不能註解掉太多 要對 Configure 內的一些變數做設定 否則就會出現就算 Findadapter 回傳 Find adapter 系統還是會 remove 掉 device 因為網路上也有查到說因為系統不喜歡 Findadapter 函式內的 configure 設定 因此才會把它移除掉 Q2: 我是利用 WDK 提供內建的編譯環境來 build 範例的 makefile 我選用的是 windows 7 x64 Checked build environment 這樣編譯出來的 driver 放到 Windows server 2012上面跑會有問題嗎 還是只有能裝的起來就不會有問題? 接著我想對我的 driver 下 IOCTL 我利用 DDK 內建提供的工具 spti 來直接對我的 driver 下 scsi command 我原本預測當我 scsi command 下下去之後 Driver 會先呼叫 BuildIO 然後再呼叫 StartIO 可是結果卻不是我想的這樣 WinDbg 什麼東西都沒印出來 Q3 請問是否我的 scsi 卡 要接上硬碟 這樣下 IOCTL 給我的 driver 才會呼叫到 BuildIo 因為希望能夠下 IOCTL 給 driver 然後在 WinDbg 那邊看 CDB 的資訊 Q4 公司要我寫一個 miniport driver 可是我完全沒經驗 公司也沒人會 QQ 目前我只能鑽研 MSDN 提供的這個 LSI53c1010 的 driver 請問是否還有其他資源或網站或範例可以提供參考學習 萬分感謝 感激不盡 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.104.122.2

12/10 21:24, , 1F
可以改用visualddk來開發 http://visualddk.sysprogs.org/
12/10 21:24, 1F

12/10 22:22, , 2F
你的卡 subsys id 可能有值,有的話inf也要加上去
12/10 22:22, 2F

12/10 22:24, , 3F
喔...你要不要先去裝置管理員看卡的 id, inf 一定要相同呀
12/10 22:24, 3F

12/10 22:27, , 4F
另外在64bit下 driver 沒有憑證應該裝不起來吧
12/10 22:27, 4F

12/10 22:27, , 5F
改 32bit OS 試試看
12/10 22:27, 5F

12/10 22:46, , 6F
P大 感謝喔~明天來研究看看
12/10 22:46, 6F

12/10 22:47, , 7F
g 大 64bit 下可以把憑證要求解除,解除後就可以裝了
12/10 22:47, 7F

12/10 22:47, , 8F
至於你說的 ID 值問題,我會在確認的,感謝您~
12/10 22:47, 8F

12/11 01:55, , 9F
這是kernel-mode driver,WinDbg要裝在另一台機器上
12/11 01:55, 9F

12/11 08:18, , 10F
是喔~我有兩台電腦,一台裝driver,一台是裝WinDbg
12/11 08:18, 10F
文章代碼(AID): #1IfnE1su (C_and_CPP)