NDIS 6.0 Filter Driver 開發資料- 01

NDIS 6.0 Filter Driver(>下載地址<)是一個NDIS輕量級的過濾驅動(NDIS Lightweight filter driver),用來替換NDIS 5示例中間層驅動中的Passthru,適用的操做系統是Windows 8 和Windows Server 2012。 html

微軟新出的WDK 8包含了NDIS 6.0的開發包,與Microsoft Visual Studio Ultimate 2012徹底整合,你能夠使用Visual Studio開發環境編譯驅動,或者使用 Windows Build Utility(MSBuild) 。若是開發Windows 8, Windows 7或者 Windows Vista的驅動程序,你能夠使用Visual Studio或MSBuild進行編譯;若是開發Windows XP的驅動程序,你只能使用WDK 7配套的MSBuild進行編譯。 windows

關於編譯部分,之後再詳細寫。 併發

Ndislwf驅動分析: ide

1. DriverEntry中,ndislwf驅動註冊爲NDIS 6過濾驅動。 函數

2. 以後,NDIS爲每個底層的NDIS適配器配置鏈接,調用Ndislwf FilterAttach 句柄, ui

3. 在FilterAttach句柄的上下文環境中,Filter驅動調用NdisFAttribute來註冊Filter模塊,Filter驅動能夠使用NdisOpenConfigurationEx來讀取本身的設置,並調用NdisXXX函數。 spa

4. FilterAttach成功返回後,NDIS使用FilterRestart句柄重啓Filter,FilterRestart準備接受、發送數據的句柄。重啓成功後,filter驅動應該可以啓用發送、接收進程。 操作系統

5. 若是必要,Ndislwf過濾驅動發送或者接收的數據包都會從新打包併發送給NDIS,交付給底層的NDIS驅動。 code

6. 全部發給底層NDIS驅動的數據都轉發給Ndislwf過濾驅動。 htm

7. NDIS calls FilterPause handler when NDIS needs to detach the filter from the stack or there is some configuration changes in the stack. In processing the pause request from NDIS, the Ndislwf driver waits for all its own outstanding requests to be completed before it completes the pause request.
8. NDIS calls the Ndislwf driver’s FilterDetach entry point when NDIS needs to detach a filter module from NDIS stack. FilterDetach handler should free all the memory allocation done in FilterAttach, and undo the operations it did in FilterAttach Handler.


一些資料:

Passthru例程說明_licyh:http://wenku.baidu.com/view/cc3f57343968011ca3009111.html

NDIS 中間層驅動程序(IMD)開發人員指南ndis_devguide:http://wenku.baidu.com/view/55a10838376baf1ffc4fad6b.html

驅動開發資料彙總:

http://yexin218.iteye.com/category/73148

http://yexin218.iteye.com/blog/557454

相關文章
相關標籤/搜索