亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網管 > 局域網 > 正文

無線局域網NDIS小端口驅動實現

2019-11-05 02:30:27
字體:
來源:轉載
供稿:網友

  1 引言
  無線局域網經過幾年的發展,在技術上已經日漸成熟。尤其是IEEE推出802.11-1999和802.11b以來,應用也日漸廣泛。無線局域網硬件實現的兩大主要部分是基帶處理器和MAC控制器,軟件部分包括驅動網卡本身工作的嵌入式軟件和網絡設備驅動程序。在本文中,首先介紹了小端口驅動程序的基本要點,然后給出了基于Driver Studio開發PCMCIA接口編程I/O(PRogrammed IO)方式工作的無線局域網網卡NDIS(網絡驅動程序接口標準),并討論了小端口驅動程序實現過程中的若干要害技術的細節。
  
  2 小端口驅動程序
  在典型的網絡中,如以太網LLC子層及其上層協議均由軟件實現,MAC及其以下層協議由硬件實現。微軟Windows操作系統下的網絡設備驅動程序遵守NDIS規范,它在分層的網絡驅動程序框架中規定了一個標準接口,從而使抽象低層次的硬件提供了高層次網絡上的網絡治理。因此,該規范極大簡化了設備特定網絡驅動程序的開發。
  
  NDIS還用于網絡驅動器的狀態信息和參數的維護,包括函數的指針、句柄、鏈接的參數塊和其他的一些系統變量。NDIS規范下的網絡驅動程序分為三類:小端口驅動程序、中間驅動程序和協議驅動程序。普通網卡的驅動程序都是小端口驅動程序,它有兩種基本功能:治理一個網絡接口卡(NIC),包括通過NIC收、發數據;與高級驅動程序接口(如中間驅動程序和傳輸協議驅動程序)。一個小端口NIC驅動程序通過NDIS庫和它的NIC與高層驅動程序相互通訊。NDIS庫 導出一個完全的函數集合(NdisXXX函數),來裝入小端口需要調用的操作系統函數。然后,小端口必須導出一套MiniportX xx函數的實體指針,可供NDIS自己使用或代替高層驅動程序訪問小端口。
  
  關于網絡設備驅動程序和Windows驅動程序模型,感愛好的讀者可以參考文獻[3]。
  
  3 無線網卡驅動程序框架
  標準的驅動程序都是C語言寫的,Nu Mega公司卻通過引入C++和封裝基本的函數庫簡化了驅動程序的設計。
  
  使用DriverStudio編寫網絡驅動程序,首先需要使用NetworkDriver Wizard生成驅動程序的框架。該框架生成兩個驅動程序的基本類:一個是 wlan_drvDriver,它是KndisMiniDriver的繼續類;另一個驅動程序必須且只有一個KndisMiniDriver的繼續類。wlan_drvDriver的定義如下
  
  class wlan_drvDriver : protected
  
  KNdisMiniDriver
  
  {
  
  protected:
  
  // must implement the entry point
  
  NTSTATUS DriverEntry(IN PVOID RegistryPath);
  
  };
  
  NTSTATUS wlan_drvDriver::DriverEntry(IN PVOID)
  
  {
  
  TRACE("wlan_drvDriver::DriverEntry Com piled at " __TIME__ " on " __DATE__ "/n");
  
  KNDIS_MINIPORT_CHARACTERISTICS Chars;
  
  return Chars.Register(*this);
  
  }
  
  wlan_drvDriver的唯一工作是定義DriverEntry。操作系統通過該函數得知驅動程序的入口。DriverEntry例化NetworkDriver Wizard生成的另外一個類wlan_drvAdapter,并將本驅動程序注冊。
  
  wlan_drvDriver類不用開發者干預。開發者需要關心的是另外一個類wlan_drvAdapter,它是KndisMiniAdapter的子類。
  
  4 驅動程序的初始化
  wlan_drvAdapter類的實現是整個驅動程序的主體部分,包括初始化驅動程序、發送數據、接收數據、中斷處理、網卡復位等。
  
  驅動程序在被裝入操作系統后的第一步工作是進行初始化。該工作由wlan_drv Adapter::Initialize函數完成。該函數完成的工作如下:
  
 ?。?)選擇媒體類型。對于無線局域網為 NdisMedium802_3,而不是NdisMedium-WirelessWan。聲明為 NdisMediumWirelessWan將支持各種無線媒體類型,NdisMedium802_3原本為以太網設計,這里無線局域網似乎應該聲明為NdisMediumWirelessWan媒體類型,但事實并不是這樣。通過查詢OID_GEN_PHYSICAL_MEDIUM,協議驅動程序可以得知物理媒體為NdisPhysical-MediumWirelessLan類型。
  
 ?。?)從注冊表讀取網卡地址。
  
 ?。?)注冊適配器的類型,如指定設備為 NdisInterfacePcMcia,代表網卡為PCMCIA標準的PC Card。這里需要強調的是PCMCIA接口的配置存儲器和功能寄存器都是由主機自行維護的,雖然驅動程序也可以讀寫配置存儲器和功能寄存器,但這樣做會導致系統工作的不一致,除非非凡需要,驅動程序無需讀寫配置存儲器和功能寄存器。
  
 ?。?)選擇并注冊IO端口。
  
 ?。?)選擇并注冊中斷。
  
 ?。?)設定網卡所支持的包種類,如廣播中的多播等。
  
 ?。?)設定網卡的MAC屬性,如網卡是否支持環回等。
  
 ?。?)初始化網卡硬件使其進入工作狀態。該工作由wlan_drvAdapter::CardInit()完成。主要是設置相應的寄存器,讀取永久網卡地址等。
  
 ?。?)初始化自定義變量。
  
  5 發送數據
  當需要發送數據包時,NDIS調用MiniportSend 函數,對應本設計中wlan_drvAdapter::Send函數。假如當前沒有數據包正在被發送,則調用 CopyDataDown(Packet)將數據發送給NIC,否則將數據插入發送隊列。當中斷產生后,發現代表網卡預備好接收下一個包,此時將數據包出列。
  
  CopyDataDown(Packet)函數與具體的網卡實現有關。
  
  6 接收數據
  由于本設計中的網卡是程控I/O的網卡,速度較慢。每次產生中斷時,假如發現NIC上緩存了一個數據包需要接收,則通過NdisMEthIndicateReceive 通知給NDIS,對應于m_Lookahead.In di cate函數。假如是DMA設備,可以一次將整個數據包通知給上層,對于PIO方式的NIC,DDK建議只通知部分數據,然后讓NDIS調用MiniportTransferData來讀取余下的數據。當然NDIS也許對該數據不感愛好,就不會讀剩下的數據。
  
  7 中斷處理
  與中斷處理有關的函數包括中斷服務程序 wlan_drvAdapter::Isr和延遲過程調用函數wlan_drvAdapter::HandleInterrupt。
  
  中斷服務程序Isr工作在DIRL,會搶斷工作在更低中斷優先級的線程,所以應該盡快退出。該程序的主要任務是判定中斷當前是否是本網卡產生的,假如沒有應該將*InterruptRecognized 設定為FALSE,并退出程序。假如是,則將中斷處理程序HandleInterrupt插入DPC列隊,以在Passive Level上進一步處理中斷。
  
  中斷處理程序是真正處理中斷的函數,它完成所有數據處理工作,它需要處理包括與統計信息有關的接收數據、發送數據等所有中斷。
  
  8 結論
  網絡設備驅動程序是無線局域網網絡接口卡實現的要害部分,它與傳統的以太網卡稍有不同,但網卡與主機之間數據通信的基本格式與以太線網卡是相同的。本文首先介紹了小端口驅動程序的特點,然后給出了基于DriverStudio開發PCMCIA接口程控I/O方式工作的無線局域網網卡的NDIS小端口驅動程序,其主體部分中包括驅動程序框架、驅動程序的初始化、發送和接收數據和中斷處理在內的要害技術細節。本文所設計的網卡已經在原型網卡中運行,基本滿足了設計要求。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国内精品免费午夜毛片| 欧美丝袜一区二区三区| 欧美性猛交xxx| 91精品久久久久久久久久久久久| 国产成人精品电影| 91久久精品视频| 欧美精品久久久久| 国产精品欧美日韩| 91国产美女视频| 欧美黑人一区二区三区| 久久久噜噜噜久噜久久| 欧美成人免费一级人片100| 日韩一区二区av| 久久国产一区二区三区| 久久成人在线视频| 日韩中文字幕国产精品| 国内精品视频在线| 欧美激情视频给我| 久久久之久亚州精品露出| 国产精品丝袜高跟| 欧美亚洲国产日韩2020| 91亚洲精品久久久久久久久久久久| 色悠悠国产精品| 久色乳综合思思在线视频| 国模精品一区二区三区色天香| 日韩欧美精品在线观看| 日韩精品中文字幕有码专区| 国产精品一区二区三区成人| 欧美视频在线视频| 国产一区二区三区视频免费| 日韩成人小视频| 久久精品视频在线播放| 日本19禁啪啪免费观看www| 欧美午夜女人视频在线| 国内精品美女av在线播放| 97久久国产精品| 久久久精品一区| 亚洲精品一区二三区不卡| 欧美一级片免费在线| 羞羞色国产精品| 亚洲精品久久久一区二区三区| 久久亚洲精品毛片| 在线视频亚洲欧美| 中文字幕精品www乱入免费视频| 中文字幕亚洲综合久久筱田步美| 在线观看日韩专区| 97人人做人人爱| 亚洲国产精品va在线观看黑人| 国产91在线播放九色快色| 一区二区av在线| 亚洲人成在线观看网站高清| 日韩欧美成人区| 高清欧美性猛交xxxx黑人猛交| 国产精品久久久久7777婷婷| 不卡伊人av在线播放| 91免费观看网站| 精品国产一区二区三区在线观看| 欧美黑人极品猛少妇色xxxxx| 在线播放日韩av| 亚洲欧洲中文天堂| 久久99国产精品自在自在app| 日韩精品高清在线观看| 日韩电影大片中文字幕| 亚洲一区二区久久| 狠狠色狠狠色综合日日小说| 视频一区视频二区国产精品| 国产精品尤物福利片在线观看| 亚洲性视频网站| 国产亚洲精品美女久久久久| 黑人极品videos精品欧美裸| 欧美激情欧美激情| 欧美亚洲一级片| 亚洲第一中文字幕在线观看| 欧美日韩在线看| 最近中文字幕2019免费| 欧美激情精品久久久久久变态| 亚洲激情在线观看| 久久久久久久久亚洲| 丁香五六月婷婷久久激情| 91av在线精品| 超薄丝袜一区二区| 欧美一级视频免费在线观看| 久久99久久亚洲国产| 亚洲免费福利视频| 国产aⅴ夜夜欢一区二区三区| 日韩在线免费av| 久久人91精品久久久久久不卡| 欧美日韩国产区| 亚洲第一视频在线观看| 久久久91精品国产一区不卡| 国产精品欧美久久久| 精品一区电影国产| 国产亚洲精品久久久久动| 97国产在线观看| 这里只有精品在线观看| 欧美激情国产日韩精品一区18| 亚洲a级在线观看| 亚洲国产精品人人爽夜夜爽| 久久伊人精品视频| 成人性生交大片免费看视频直播| 在线视频日本亚洲性| 欧美成人午夜激情视频| 欧美孕妇与黑人孕交| 91美女片黄在线观看游戏| 国产伦精品一区二区三区精品视频| 91欧美精品成人综合在线观看| 精品久久久久久久久久ntr影视| 国产亚洲精品va在线观看| 亚洲一区二区中文字幕| 日韩毛片中文字幕| 亚洲精品www久久久| 亚洲娇小xxxx欧美娇小| 亚洲黄色片网站| 欧美午夜宅男影院在线观看| 91在线视频精品| 国产日韩欧美电影在线观看| 91精品久久久久| 欧美理论在线观看| 久久国产精品首页| 欧美成人国产va精品日本一级| 精品久久久91| 91精品国产自产在线观看永久| 日韩一区二区精品视频| 欧美性理论片在线观看片免费| 91精品视频在线| 亚洲а∨天堂久久精品喷水| 亚洲国产91色在线| 国产欧美日韩亚洲精品| 最近中文字幕2019免费| 亚洲三级 欧美三级| 成人黄色生活片| 色偷偷88888欧美精品久久久| 亚洲午夜精品视频| 久久精品成人欧美大片| 日韩国产欧美区| 中文字幕一区二区精品| 精品一区二区三区电影| 日韩精品免费在线观看| 一区二区三区回区在观看免费视频| 亚洲欧美日韩国产中文| 亚洲福利视频久久| 国产精品久久久久久久久借妻| 日本精品va在线观看| 精品女厕一区二区三区| 亚洲色图17p| 亚洲性视频网址| 久久久久久久国产精品| 亚洲人成网站在线播| 91超碰中文字幕久久精品| 欧美二区乱c黑人| 黑人与娇小精品av专区| 亚洲精品福利资源站| 九色成人免费视频| 亚洲欧美国产一区二区三区| 国产亚洲精品久久久久久777| 久久琪琪电影院| 欧美老女人性生活| 亚洲精品成人久久电影| 国产精品偷伦一区二区| 欧美成人精品在线播放| 成人免费在线视频网址| 欧美精品中文字幕一区| 国产精品久久久久久久久久新婚| 欧美久久精品午夜青青大伊人|