討論區快速選單
知識庫快速選單
政府補助!學嵌入式+物聯網 網路投保旅行平安險
[ 回上頁 ] [ 討論區發言規則 ]
問一下wdm觀念問題(DriverEntry)
更改我的閱讀文章字型大小
作者 : jien(jien)
[ 貼文 6 | 人氣 1547 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/6/11 下午 04:13:55
一般動態載入driver的方式都由下面的步驟一步一步來執行
CreateService
OpenService
StartService
CreateFile
1.DriverEntry是在那一步被執行 由IO MANAGER來呼叫的嗎
2.何時進入AddDevice
3.IRP_MJ_CREATE這個IRP何時由IO MANAGER送到DRIVER
4.IRP_MJ_PNP這個IRP何時由IO MANAGER送到DRIVER
5.IRP_MJ_PNP這個IRP何時由IO MANAGER送到DRIVER
6.IRP_MJ_POWER這個IRP何時由IO MANAGER送到DRIVER
7.AP RUN WriteFile 時IO MANAGER會將其轉為IRP_MJ_WRITE最後由指定的DRIVER處理 是嗎
8.AP RUN ReadFile  時IO MANAGER會將其轉為[IRP_MJ_READ最後由指定的DRIVER處理 是嗎
9.DeviceIoControl 時IO MANAGER會將其轉為IRP_MJ_DEVICE_CONTROL最後由指定的DRIVER處理 是嗎
作者 : maxmax(天空的顏色) 貼文超過200則
[ 貼文 436 | 人氣 385 | 評價 260 | 評價/貼文 0.6 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/6/11 下午 05:03:31

>一般動態載入driver的方式都由下面的步驟一步一步來執行
>CreateService
>OpenService
>StartService
>CreateFile
>1.DriverEntry是在那一步被執行 由IO MANAGER來呼叫的嗎
>2.何時進入AddDevice
>3.IRP_MJ_CREATE這個IRP何時由IO MANAGER送到DRIVER
>4.IRP_MJ_PNP這個IRP何時由IO MANAGER送到DRIVER
>5.IRP_MJ_PNP這個IRP何時由IO MANAGER送到DRIVER
>6.IRP_MJ_POWER這個IRP何時由IO MANAGER送到DRIVER
>7.AP RUN WriteFile 時IO MANAGER會將其轉為IRP_MJ_WRITE最後由指定的DRIVER處理 是嗎
>8.AP RUN ReadFile  時IO MANAGER會將其轉為[IRP_MJ_READ最後由指定的DRIVER處理 是嗎
>9.DeviceIoControl 時IO MANAGER會將其轉為IRP_MJ_DEVICE_CONTROL最後由指定的DRIVER處理 是嗎

其實你的問題答案是很容易得到的, 裝一下debug tool
(如softice之類)很容易就知道了.

如果我沒記錯的話(依我實務上的直覺),
1. DriverEntry應該是在StartService時被呼叫,
2. 看你的device何時被發現啊
3. IRP_MJ_CREATE應該是AP call CreateFile時被呼叫,
4. IRP_MJ_PNP就有好多可能了, 看Device Manager
高興何時call你就何時發.
5. IRP_MJ_POWER也是當系統有關於power的event時發的.
7.8.9如你所說的

作者 : maxmax(天空的顏色) 貼文超過200則
[ 貼文 436 | 人氣 385 | 評價 260 | 評價/貼文 0.6 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/6/11 下午 05:08:55
補充一下, 如果你要寫一個dynamic load的kernel mode driver
這個driver必然應該不是一個wdm driver. 因為wdm driver應該
都是pnp的, 所以driver load的時機應該是在device被發現的時
候由系統load進去而不是由你的AP來做這件事.

所以我想你是不是有些方向搞錯了.
作者 : gy(GY)
[ 貼文 30 | 人氣 35 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2002/6/12 下午 09:28:00

再添一筆,
driver start mode 也可以是手動的.
如此由AP 藉由一連串的 service call 將Driver loading.
不用時可以將 driver disable 減少 resource 得使用.


 板主 : 徵求中
 > 驅動程式 - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - 驅動程式 - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
驅動程式
1 新兵衛 1240 
2 eBoy 980 
3 牧童哥 780 
4 北極熊 580 
5 天行者 580 
6 燒酒仙 440 
7 weber 380 
8 KEN 350 
9 jonay 180 
10 掌握文武半邊天 180 
驅動程式
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2019 程式設計俱樂部 http://www.programmer-club.com.tw/
0.0625