討論區快速選單
知識庫快速選單
討論區最近新進100則主題 程式設計俱樂部Facebook粉絲團 軟體開發過程中有哪些資安漏洞?
[ 回上頁 ] [ 討論區發言規則 ]
filter dirver
更改我的閱讀文章字型大小
作者 : minda48(Minda48) 人氣指數超過10000點
[ 貼文 46 | 人氣 10196 | 評價 0 | 評價/貼文 0 | 送出評價 3 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2004/7/26 下午 02:29:32
各位好...

     我想請問一個問題...我在WDM書中看到一句話 " 驅動程式在設備堆疊中的順序取決於AddDevice這個routine的使用順序" 我們能控制自己driver的AddDevice被call的順序嗎?

     再者想請問一下, 在書中看到有關filter driver。想請問, 我們要如果能把自己的driver
插在一個function driver的上面成為upper filter driver或一個function driver的下面成為lower filter driver呢? 小弟菜...想請各位高手可以指教一下。
作者 : minda48(Minda48) 人氣指數超過10000點
[ 貼文 46 | 人氣 10196 | 評價 0 | 評價/貼文 0 | 送出評價 3 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2004/7/27 下午 03:57:08
好冷清喔...都沒人可以解答
作者 : eboytw2002(eBoy) 驅動程式優秀好手貼文超過200則人氣指數超過70000點
[ 貼文 338 | 人氣 70186 | 評價 2000 | 評價/貼文 5.92 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2004/7/30 上午 05:06:21
>> "驅動程式在設備堆疊中的順序取決於AddDevice這個routine的使用順序"

中文好怪, 有點模擬兩可.............
能否說原文呢 ???

>> 我們要如果能把自己的driver
>> 插在一個function driver的上面成為upper filter driver或一個function driver的
>> 下面成為lower filter driver呢?

你樣怎麼處理 Filter 都可以, driver stack 是依 Driver Object 連下來的 Device object
為主幹, filter 只要能收的到 IRP, 你想怎麼作都行...............

[eBoy]
疊羅漢........ driver stack, 原來出自 少林, 難怪 ............
作者 : minda48(Minda48) 人氣指數超過10000點
[ 貼文 46 | 人氣 10196 | 評價 0 | 評價/貼文 0 | 送出評價 3 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2004/7/30 上午 08:24:59
我的問題是想請問,,, 我們如何能控制我們的FILTER DRIVER要掛在某支Driver的上面或下面呢? 是由Driver的source code有參數去控制還是要由Inf去控制呢?
作者 : lukewu(天行者)
[ 貼文 105 | 人氣 4009 | 評價 570 | 評價/貼文 5.43 | 送出評價 2 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2004/8/9 上午 10:46:14

>各位好...
>
> 我想請問一個問題...我在WDM書中看到一句話 ' 驅動程式在設備堆疊中的順序取決於AddDevice這個routine的使用順序' 我們能控制自己driver的AddDevice被call的順序嗎?
>
> 再者想請問一下, 在書中看到有關filter driver。想請問, 我們要如果能把自己的driver
>插在一個function driver的上面成為upper filter driver或一個function driver的下面成為lower filter driver呢? 小弟菜...想請各位高手可以指教一下。

據我所知, 如果你自己寫的 driver 有一堆 *.sys要 run 的話, 是有可能控制各個driver 被
load 的順序的 秘訣就在 INF 內 , 如下 會以 A,B,C driver 的順序 load driver.

[LowerFilterAddReg]
HKR,,"LowerFilters",0x00010000, C_driver,B_driver,A_driver
作者 : lukewu(天行者)
[ 貼文 105 | 人氣 4009 | 評價 570 | 評價/貼文 5.43 | 送出評價 2 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2004/8/9 上午 11:12:23

>我的問題是想請問,,, 我們如何能控制我們的FILTER DRIVER要掛在某支Driver的上面或下面呢? 是由Driver的source code有參數去控制還是要由Inf去控制呢?

若 function driver 不是你寫的話 你要掛 filter driver 應該是用 IoAttachDeviceToDeviceStack , 照 MSDN的說法你只能 attach 到 highest device object currently layered in the chain 而沒辦法決定 driver 被 layered 的順序


作者 : minda48(Minda48) 人氣指數超過10000點
[ 貼文 46 | 人氣 10196 | 評價 0 | 評價/貼文 0 | 送出評價 3 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2004/8/9 上午 11:51:08
謝謝...

所以沒法掛在某個DRIVER的下層囉 ~~~
作者 : powenko(powen) 人氣指數超過10000點
[ 貼文 194 | 人氣 13779 | 評價 160 | 評價/貼文 0.82 | 送出評價 23 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人minda48註記此篇回應為很有道理 2004/8/11 上午 05:18:33
> 謝謝...
>所以沒法掛在某個DRIVER的下層囉 ~~~

很好奇為何你會這樣問?
因為在上面的 filter 是可以改面下一個Driver 所傳過去的值和參數,
而且在上面的filter 也是可以拿到,下面一個Driver 所要傳給OS 的回傳結果和資料。

OS <->IO Manager <-> Filter <-> Device Driver <->(Hardward Device)


如果你想要改變Next Driver 讀取後的資料的話, 上面的Filter 都可以做到。
所以重點是『為何需要掛在某個DRIVER的下層』?
你要它做什麼工作?

作者 : minda48(Minda48) 人氣指數超過10000點
[ 貼文 46 | 人氣 10196 | 評價 0 | 評價/貼文 0 | 送出評價 3 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2004/8/11 下午 01:26:25
嗯...感謝大大的說明, 我只是在看書中看到filter這個項目, 有些疑問所以想
了解一下, 很謝謝您。

希望可以和e-Boy, Powen, 還有天行者大大做朋友, 可以請教各位寫driver
的心得
作者 : square690410(Leon)
[ 貼文 1 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/5/2 下午 02:18:09
你說的問題就是要把Filter掛在某個FDO之上或之下......

用inf file裡面的AddReg指令就可以了
HKLM,%USB_CLASS_REG%,"UpperFilters",0x00010000,"usb_filter" ;

你也可以直接用regedit去改(但前提是你的Service已經在了)
上面的例子是安裝class filter,他會掛在usbohci/usbuhci及usbhub的上層

我目前只有class filter有安裝成功,並可正常執行,但是若要裝在指定的FDO
沒成功過.....><.......,書上的範例也從沒成功過,試到快爛了,阿陸仔的網站
也沒人鳥我......

我是想做到根據USB Device Class Code來決定要不要讓這個設備enable,而且
要阻止他的enum行為(讓裝置管理員看不到有設備出來),會想用filter driver是想
主要阻止enum行為,目前卡在filter掛的位置,送URB只能抓到usb hub,抓不到
插入的device,而用class filter裝的話,因為會裝在兩個地方,所以也不知道要如何
判斷他是在哪個位置被呼叫(是在usbohci?還是usbhub,因為driver name是不能
讀的)
作者 : tdtsai(新兵衛) 驅動程式優秀好手貼文超過200則
[ 貼文 362 | 人氣 779 | 評價 1290 | 評價/貼文 3.56 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/5/3 下午 12:16:16

>你說的問題就是要把Filter掛在某個FDO之上或之下......
>
>用inf file裡面的AddReg指令就可以了
>HKLM,%USB_CLASS_REG%,'UpperFilters',0x00010000,'usb_filter' ;
>
>你也可以直接用regedit去改(但前提是你的Service已經在了)
>上面的例子是安裝class filter,他會掛在usbohci/usbuhci及usbhub的上層
>
>我目前只有class filter有安裝成功,並可正常執行,但是若要裝在指定的FDO
>沒成功過.....><.......,書上的範例也從沒成功過,試到快爛了,阿陸仔的網站
>也沒人鳥我......
>
>我是想做到根據USB Device Class Code來決定要不要讓這個設備enable,而且
>要阻止他的enum行為(讓裝置管理員看不到有設備出來),會想用filter driver是想
>主要阻止enum行為,目前卡在filter掛的位置,送URB只能抓到usb hub,抓不到
>插入的device,而用class filter裝的話,因為會裝在兩個地方,所以也不知道要如何
>判斷他是在哪個位置被呼叫(是在usbohci?還是usbhub,因為driver name是不能
>讀的)
嗯 如果你的目前只是要在裝置管理看不到有設備出來 我想你需要寫的是一個Bus Filter Driver 掛在USB HUB上 就可以做到了 應該不難 只是你為什麼要做這個 如果你要阻止enum行為就比較難了 你要寫一個Bus Filter Driver 掛在USBOHCI, USBEHCI and USBUHCI 上去做一些手腳 可是為什麼你需要阻止enum行為咧?? 是有什麼特別的需求嗎??
 板主 : 徵求中
 > 驅動程式 - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - 驅動程式 - 知識庫
  ■ 全站最新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