青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

aurain
技術文摘
posts - 137,  comments - 268,  trackbacks - 0

一.綁定過程

1. DriverEntry

中間層驅動對上層來說,扮演一個Miniport Driver的角色,它在上邊沿向NDIS注冊一組Miniportxxx函數;對于下層Miniport Driver來說,中間層驅動扮演一個Protocol Driver的角色,因此它在下邊沿向NDIS注冊一組Protocolxxx函數。Miniport Driver通過調用NdisMRegisterMiniportNDIS注冊一組MiniportXxx函數;Protocol Driver 通過調用 NdisRegisterProtocolNDIS注冊一組ProtocolXxx函數。

首先通過調用NdisMInitializeWrapper(&NdisWrapperHandle, DriverObject, RegistryPath, NULL);來初始化NdisWrapperHandle,該句柄用來代表IM Driver的自身。

接著調用NdisIMRegisterLayeredMiniport來向NDIS注冊一組MiniportXxx函數,返回指向MiniportDriverHandle

隨后調用NdisRegisterProtocol來向NDIS注冊一組Protocolxxx函數,返回指向ProtocolProtHandle

然后調用NdisIMAssociateMiniport(DriverHandle, ProtHandle);將兩者綁定。

2. PtBindAdapter

       NDIS在完成第一步之后,將會調用PtBindAdapter來完成對適配器的綁定(注意:此函數的調用次數是根據用戶電腦上的適配器數目而定的,一般至少有兩塊,會有一塊叫NDISWANIP),PtBindAdapter中有用的參數主要是DeviceNameSystemSpecific1,其中DeviceName是下層NIC驅動的服務名,SystemSpecific1可以用來讀取注冊表中相關的值。(參考注冊表HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Linkage下的Bind子鍵值)

       首先調用NdisOpenProtocolConfiguration NdisReadConfiguration來讀取注冊表信息,然后初始化PADAPT pAdapt結構體。

       接著調用NdisOpenAdapter來將IM的下層協議驅動(ProtHandle)綁定適配器。

       調用NdisIMInitializeDeviceInstanceEx來觸發對MPInitialize的調用

3. MPInitialize

MpInitialize里面主要做三件事情:

1). 判斷介質類型

2). 調用NdisMSetAttributesEx設置一些特性

3). 調用PtRegisterDevice函數向NDIS注冊設備

4. PtRegisterDevice

       PtRegisterDevice里,主要是設置IM Driver自己要處理的一些派遣例程和注冊設備名和設備符號鏈接名。要注意的是,這個函數提供的功能是為整個設備服務而不是每個適配器都需要注冊,所以通過一個全局變量MiniportCount來控制。

在這里,定義了PDRIVER_DISPATCH       DispatchTable[IRP_MJ_MAXIMUM_FUNCTION+1];

然后如下的設置:DispatchTable[IRP_MJ_CREATE] = DevOpen;

       接著調用NdisMRegisterDevice注冊設備名和設備符號鏈接名。

 

二.卸載過程

1. PtUnbindAdapter

       針對每個綁定的適配器,首先查看對IMminiport是否有還在排隊的請求,如果有,則先調用PtRequestComplete完成它(返回NDIS_STATUS_FAILURE),然后查看狀態是否為pending,是的話則調用NdisIMCancelInitializeDeviceInstance。再調用NdisIMDeInitializeDeviceInstance來卸載設備,在此會觸發對MPHalt的調用。

2. MPHalt

       MPHalt里,首先調用PtDeregisterDevice來卸載設備,然后調用NdisCloseAdapter關閉綁定的適配器。

3. PtDeregisterDevice (MiniportCount == 0?)

       PtDeregisterDevice 里,調用NdisMDeregisterDevice來卸載設備。同PtRegisterDevice類似,要注意的是,這個函數提供的功能是為整個設備服務而不是每個適配器都需要注冊,所以通過一個全局變量MiniportCount來控制。只有最后一個綁定的適配器卸載時,才調用NdisMDeregisterDevice

4. PtUnloadProtocol

       CloseAdapterComplete完成后,NDIS會調用PtUnloadProtocol來完成下層綁定的協議驅動(ProtHandle)的卸載,調用NdisDeregisterProtocol函數。

5. PtUnload

       首先,要說明的是,在DriverEntry函數里,有注冊該函數(NdisMRegisterUnloadHandler(NdisWrapperHandle, PtUnload);)。該函數是整個卸載過程的最后一步,在這里,會繼續完成對綁定的上層miniport,下層的protocol的卸載(其實protocol的卸載在第4步已經完成),調用如下兩個函數PtUnloadProtocolNdisIMDeregisterLayeredMiniport

posted on 2009-01-12 15:35 閱讀(5453) 評論(3)  編輯 收藏 引用 所屬分類: windows驅動

FeedBack:
# re: NDIS 中間層驅動(IM Driver)的安裝與卸載過程[未登錄]
2009-11-27 09:59 | summon
請問你的中間層驅動的卸載程序是寫在原來的 NDIS驅動當中呢?還是在其他的驅動程序中來實現對該NDIS中間層驅動的卸載呢啊?
可不可以給段實例代碼,萬分感謝!  回復  更多評論
  
# re: NDIS 中間層驅動(IM Driver)的安裝與卸載過程[未登錄]
2009-11-27 10:01 | summon
忘了,說我的郵箱:lzy0001sl@163.com  回復  更多評論
  
# re: NDIS 中間層驅動(IM Driver)的安裝與卸載過程
2009-11-30 18:30 |
@summon
是寫在同一個NDIS驅動程序當中了,代碼片段已經發你信箱了  回復  更多評論
  

<2009年1月>
28293031123
45678910
11121314151617
18192021222324
25262728293031
1234567

常用鏈接

留言簿(17)

隨筆分類(138)

隨筆檔案(137)

網絡開發

最新隨筆

搜索

  •  

積分與排名

  • 積分 - 500849
  • 排名 - 37

最新隨筆

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲精品乱码久久久久久蜜桃91| 韩国一区电影| 在线午夜精品| 一本久久a久久精品亚洲| 亚洲人成网站精品片在线观看 | 国产伦一区二区三区色一情| 国产精品进线69影院| 国产精品一区二区三区四区五区| 国产精品美女一区二区在线观看| 国产九九精品| 黑人极品videos精品欧美裸| 1000部国产精品成人观看| 最近中文字幕日韩精品 | 久久久久国产一区二区三区四区| 亚洲欧美日韩一区在线观看| 午夜性色一区二区三区免费视频 | 香蕉久久夜色| 久久色在线播放| 亚洲人成网站在线观看播放| 亚洲在线网站| 蜜桃久久av| 国产精品入口日韩视频大尺度| 伊人久久综合| 亚洲在线一区二区| 欧美成人免费在线视频| 夜夜嗨av一区二区三区四季av | 亚洲高清视频在线观看| 一本色道久久综合亚洲精品高清| 欧美在线影院| 欧美午夜精品一区| 1204国产成人精品视频| 亚洲欧美在线看| 亚洲第一在线| 久久成人在线| 国产精品a久久久久| 亚洲高清精品中出| 久久精品视频在线看| 99国产麻豆精品| 麻豆成人在线观看| 激情综合自拍| 欧美一区永久视频免费观看| 亚洲三级视频在线观看| 久久尤物视频| 激情欧美一区二区三区| 香蕉乱码成人久久天堂爱免费| 欧美肥婆在线| 久久精品中文字幕一区| 国产伦精品一区二区三| 亚洲资源在线观看| 亚洲精品一二区| 麻豆av福利av久久av| 国产日韩在线看| 亚洲欧美色一区| 亚洲乱码视频| 欧美大片在线观看一区| 亚洲第一级黄色片| 久久综合狠狠综合久久激情| 新67194成人永久网站| 国产精品视频xxx| 性欧美video另类hd性玩具| 一区二区三区产品免费精品久久75 | 亚洲欧洲视频在线| 欧美成ee人免费视频| 亚洲激情在线观看| 在线中文字幕一区| 激情视频一区| 欧美18av| 欧美成人午夜| 99riav1国产精品视频| 亚洲日本va午夜在线电影| 欧美激情第五页| 99精品视频免费| 亚洲精品激情| 欧美激情亚洲国产| 一区二区三区毛片| 一区二区三区四区五区精品视频| 欧美日韩一区二区在线观看| 中文av一区二区| 正在播放欧美一区| 国产农村妇女精品| 麻豆精品精华液| 欧美精品一区二区三区蜜桃 | 国产免费观看久久| 欧美一区二区三区日韩| 欧美一区二区视频网站| 国精品一区二区三区| 亚洲国产高清一区二区三区| 欧美日韩精品久久久| 午夜亚洲视频| 久久蜜桃av一区精品变态类天堂| 91久久久久久国产精品| 亚洲视频二区| 在线看视频不卡| 一本色道久久88综合亚洲精品ⅰ| 国产日韩欧美三级| 欧美v国产在线一区二区三区| 欧美精品午夜| 久久亚洲风情| 欧美四级在线| 蜜桃av一区二区三区| 欧美日韩在线大尺度| 久久蜜臀精品av| 欧美欧美全黄| 老司机免费视频一区二区三区 | 亚洲黄色免费电影| 午夜精品婷婷| 亚洲男人第一网站| 欧美激情一区| 蜜臀va亚洲va欧美va天堂| 国产精品久久久久久影院8一贰佰| 美女国产精品| 国产老女人精品毛片久久| 亚洲丁香婷深爱综合| 一区二区在线视频播放| 亚洲欧美春色| 亚洲综合色在线| 欧美大尺度在线观看| 久久久97精品| 国产精品免费在线| 9色精品在线| 亚洲日本欧美日韩高观看| 欧美一级网站| 久久成人综合视频| 亚洲国产精品一区二区第一页| 欧美三级电影一区| 欧美在线视频观看免费网站| 免费h精品视频在线播放| 久久国产视频网| 国产精品欧美精品| 99re热这里只有精品视频| 亚洲国产日韩一级| 久久伊人亚洲| 免费成人在线视频网站| 国产欧美va欧美va香蕉在| 中日韩男男gay无套| 亚洲午夜一区二区| 欧美午夜女人视频在线| 99一区二区| 亚洲永久网站| 国产精品三级久久久久久电影| 亚洲一级影院| 欧美在线一区二区| 国产原创一区二区| 久久这里只有| 亚洲高清不卡| 亚洲午夜久久久久久久久电影网| 欧美日韩国产小视频| 99视频一区| 久久超碰97中文字幕| 狠狠色噜噜狠狠色综合久| 久久免费视频网| 亚洲激精日韩激精欧美精品| 99视频超级精品| 国产精品国产成人国产三级| 亚洲免费在线视频| 久久在线视频在线| av成人免费| 国产日本亚洲高清| 巨乳诱惑日韩免费av| 亚洲三级免费电影| 欧美在线视频在线播放完整版免费观看 | 久久精品国产精品亚洲| 精品1区2区| 欧美日本在线播放| 午夜精品一区二区三区四区| 欧美不卡激情三级在线观看| 欧美在线精品一区| 欧美视频在线看| 亚洲欧美国产精品桃花| 欧美综合激情网| 欧美在线国产| 亚洲精品中文字幕有码专区| 亚洲免费av观看| 欧美久久久久中文字幕| 99国产精品久久久久久久成人热| 欧美福利视频网站| 欧美精品在线极品| 亚洲午夜精品网| 国产精品免费看| 国产日产高清欧美一区二区三区| 亚洲国产日韩欧美在线图片| 亚洲国产高潮在线观看| 亚洲黑丝一区二区| 欧美精品一区二区三区视频| 伊人久久噜噜噜躁狠狠躁| 久久综合999| 亚洲国产mv| 欧美在线免费看| 亚洲精品国产精品国自产观看| 欧美在线免费| 一区二区久久久久久| 国内久久精品| 国产精品视频午夜| 欧美激情bt| 狼人社综合社区| 羞羞色国产精品| 亚洲与欧洲av电影| 亚洲人成在线观看| 欧美福利视频一区| 久久视频精品在线|