范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

windowsnt环境下fddi网卡驱动程序设计2

  windows nt环境下fddi网卡驱动程序设计 2          windows nt环境下fddi网卡驱动程序设计 2			     windows nt环境下fddi网卡驱动程序设计 2总体结构介绍
  第一节windows  nt网络结构
  §1.1.1  windows  nt网络体系结构
  windows  nt的网络体系结构是基于国际标准化(iso)制定的标准模型 开放式系统互连(open  system  interconnection:osi)参考模型分层建立的,这种方式有利于随时扩展其它功能和服务。
  windows  nt网络模型开始于mac子层,网卡驱动程序就驻留在其中。它通过相关的网卡把windows  nt与网络连接起来,图中的多个网卡表明在一台运行windows  nt的计算机上能使用多种网卡。
  这一网络体系结构包括两个重要接口 ndis接口与传输驱动
  程序接口(tdi)。这两个接口把两个层隔离开来,办法是相邻的部件只允许按单一的标准来写,不允许多重标准。例如一个网卡驱动程序(在ndis接口的下面)就不需要特地按每个传输协议来写它的代码块,恰恰相反,该驱动程序是写给ndis接口的,它通过符合ndis的相应传输协议来请求服务。这些接口包含在windows  nt的网络体系结构中,以容纳可移植、可互换的模块。
  在两个接口之间,是传输协议。它在网络中起着组织者的作用。一个传输协议规定了数据以何种方式呈递给下一个接收层,以及如何对数据相应地进行打包。它通过ndis把数据传给网卡驱动程序,并通过tdi把数据传给转发程序(redirector)
  tdi之上是转发程序,它把本地的网络资源申请转送给网络。
  为了能和其他厂商的网络互连,windows  nt允许有多个转发程序。对于每一个转发程序windows  nt计算机必须也有一个相应的供应者(provider)(由网络厂商提供)。多供应者路由选择程序决定适当的供应者,然后借助于供应者,对应用请求到相应的转发程序做出选择。windows  nt支持两种类型的网络驱动程序
  传输驱动程序
  实现数据链路层中的逻辑链路控制子层协议和传输层协议。向  下与ndis接口,向上与tdi接口。
  网卡驱动程序
  实现对物理层的管理和数据链路层中介质访问控制子层协议,通过ndis向下管理物理网卡,向上与传输驱动程序通信。
  §1.1.3  windows  nt网卡驱动程序
  windows  nt环境下的网卡驱动程序也分为两种:
  miniport网卡驱动程序:miniport驱动程序只须实现与网络硬件相关的操作(包括发送和接收)。而所有底层网卡驱动程序的通用操作(如同步),一般由ndis接口程序来实现。
  full网卡驱动程序:full网卡驱动程序必须实现所有硬件相关和同步、排队等操作。例如full网卡驱动程序为了响应数据接收,需要保持本身的捆绑信息,而miniport就可以由ndis接口库来实现。
  在windows  nt的早期版本中,full网卡驱动程序要求开发者实现许多底层操作,来处理多处理器的核心问题以及处理器、线程的同步,这样不同的开发者在大量重复着许多相同的工作。
  而miniport网卡驱动程序允许开发者仅仅写一些与网络硬件相关的代码即可,而那些通用的函数由ndis接口库来实现,这样开发出来的驱动程序减少了不必要的工作。
  第二节miniport驱动程序的结构
  ndis接口规范了网卡驱动程序的实现,同时也对tdi驱动程序的实现提出了一定的要求,在nt中,ndis约束下的网卡驱动程序、tdi驱动程序和系统的关系如下图所示:
  图2.0  ndis约束下的网卡驱动程序、tdi驱动程序和系统的关系
  miniport驱动程序包括驱动程序对象、驱动程序源代码和ndis接口库代码。windows  nt  ddk提供ndis.h作为miniport驱动程序的主要头文件,定义了miniport驱动程序的入口点、ndis接口库函数和通用数据结构。
  上边缘函数的作用是网卡驱动与ndis接口库进行通信,而下边缘函数是tdi协议驱动程序与ndis通信的手段。ndis用一个叫做逻辑网卡的软件对象来描述系统中的每块网卡,而逻辑网卡与windows  nt设备对象的通信由i/o子系统来管理,描述网卡的设备对象包括相关的网络信息如名字、网络地址和网卡内存基地址等,它还包含与硬件相关的驱动程序状态数据(捆绑数目,捆绑句柄,包过滤数据库等)。ndis分配一个句柄到miniportinitialize这个上边缘函数的一个结构中,然后miniport网卡驱动程序将在以后提供这个句柄来给ndis调用,这个结构一直被ndis保持,并且对miniport驱动程序不透明。
  当miniport网卡驱动程序初始化一块网卡时,它创立自己的内部数据结构来描述网卡,记录需要它管理的与设备相关的状态信息。当miniport网卡驱动程序调用ndismsetatttibutes或ndismsetattributesex两ndis库函数时,它传递一个句柄给这数据结构。这样,当调用miniport驱动程序入口点时,它就传递这个句柄来验证驱动程序所对应的网卡的正确性。这个数据结构为miniport网卡驱动程序所拥有并维护。miniport  nic驱动程序还需要维护一组对象,这些对象是系统定义的对象标识符(object  idetifier:oid)来标识,以描述驱动程序的性能和当前状态信息。为查询这些信息,上层驱动程序调用ndisrequest向ndis接口库指示oid。oid表示了调用所需的信息类型,如miniport驱动程序所支持的lookahead缓冲区大小等。ndis接到上层驱动程序的查询请求,将oid传递给上边缘函数miniportqueryinformation实现对oid的查询,如果上层驱动程序请求改变状态信息则调用miniportsetinformation实现对oid的设置。典型的miniport  nic驱动程序必须有一些函数来通过ndis接口实现上层驱动程序与硬件的通信。这些函数称为上边缘服务函数。
  这些上边缘服务函数由驱动程序的开发者根据驱动程序面向的特定低层网络类型和硬件以及相应环境,可以有选择地实现,但必须保证驱动程序最基本的功能,这些基本功能包括初始化、发送、中断处理、重置、参数查询与设置和报文接收。
  miniportinitialize:操作系统根据系统配置信息,检测出网卡已安装时,由ndis接口在初始化时调用,主要完成低层网络类型确定,对应于物理网卡的逻辑网卡初始化,中断信息注册,网卡与主机通讯方式的确认。i/o端口的申请与注册,内存映像,mib的初始化,物理网卡的验证与初始化等。
  miniportreconfigure:支持网卡参数动态变化,和miniportinitilize一样由ndis接口以初始化级别调度执行(不能屏蔽中断,必须由驱动程序承认并清除在此期间产生的中断),支持即插即用和软配置的网卡在动态改变参数时,必须提供此函数。
  miniportqueryinformation:查询网卡的状态以及网卡驱动程序的操作或统计参数,如是否支持组通讯、网卡的物理速率是否支持回环、是否支持直接拷贝等,这些参数以oid方式统一管理。
  miniportsetinformation:ndis接口或协议驱动程序通过调用此接口改变驱动程序维护的oid库,一些操作参数的改变也将同时改变驱动程序状态,例如组地址的设置。
  miniportreset:包括网卡硬件重置和驱动程序软件重置,软件重置包括驱动程序状态重置,以及一些相关的参数重置,还需考虑有些参数的恢复,重置时不必完成所有正在活跃的外部请求,但必须释放已占用的外部资源。
  miniporthalt:挂起网卡并释放该网卡驱动程序占用的所有资源,在此期间不屏蔽中断。
  miniportisr:高优先级的中断处理程序,进行的工作包括初始中断处理类型,决定是否进行中断转交,对卡上中断进行处理  等,该服务类型只在以下情况被调用:
  ndis接口调用miniportinitialize和miniporthalt两函数时。
  .中断处理类型设为每此中断处理过程都调用时。
  为使系统能及时响应所有硬件中断,高优先级的硬件中断处理程序应尽可能的减少运行时间,防止长时间的屏蔽低优先级中断,避免造程中断丢失。
  miniporthandleinterrupt:由中断延时处理程序在中断延时处理时进行调用。ndis排队所有的延时处理,该服务主要处理发送完成、报文接收、描述符用尽、溢出、网卡异常等中断。
  miniportsend:ndis收到上层发送请求时经过若干协议处理再向下调用此服务过程,发送的packet已含有llc和mac头,该服务过程进行边界对齐、packet约束重整、描述符映射和报文发送、以及发送资源和packet缓冲队列管理。
  miniporttransferdata:多个已和网卡捆绑的协议驱动程序在接收到报文到达指示后,向网卡驱动程序发出传送请求以拷贝各自所需的报文数据部分,网卡驱动程序根据各协议驱动程序对单个packet是否进行多次拷贝,以决定是否暂存只允许单次拷贝的packet等。
  miniportcheckhandle:ndis每秒调用此服务函数一次,驱动程序发现网卡异常时报告给ndis由ndis调用miniportreset进行硬件重恢复。
  miniportenableintrrupt:中断使能。
  miniportdisableinterrupt:中断屏蔽。
  另外,每个网卡驱动程序必须有一个初始化入口点,由driver  entry函数实现,它和系统相关,由操作系统在装入驱动程序时调用,主要完成初始化ndis  wrapper,再由wrapper初始生成驱动程序管理块并完成相应各种初始化工作,登录网卡驱动程序所有上边缘服务入口点,同时写入ndis版本信息。ndis接口库包括在ndis.sys中,它是一个核态函数库,有一套抽象的函数,无论协议驱动程序还是nic驱动程序都连接到这个库中,以实现上下层之间的操作。
  第二章fddi网卡驱动程序的加载和运行
  第一节  网卡驱动程序的安装
  windows  nt网卡驱动程序安装的目的是实现网卡相应硬件信息和驱动程序在windows  nt注册库中的注册,使windows  nt能够正确识别网卡,了解所必需的软硬件信息并能在windows  nt启动时加载相应驱动程序。
  网卡驱动程序安装时,首先在主群组的控制面板中选择"网络",然后添加网卡,指定相应信息文件 oemsetup.inf的路径,以完成以下两个必要的操作:
  复制驱动程序到相应的系统目录(windows  nt根目录system32drivers)中;
  在windows  nt注册库中存入相应软硬件信息。
  下面主要以fddi网卡为例介绍安装驱动程序所必需的工作:
  §2.1.1网卡一般硬件参数
  对于fddi网卡,必须在编写其oemsetup.inf文件时确定以下硬件参数:
  总线类型:pci
  (5)……括号中的数字5表示pci总线在ndis中的总线类型代码;
  厂商代号:0x5588……系统加载时确定网卡的标记,也是编程时确定pci槽号的标识;
  cfid:  0x01;
  介质类型:光纤
  (3)  ……括号中的数字表示光纤在ndis中的介质类型代码;
  是否支持全双工:支持。
  对于其它的硬件信息在此inf配置信息文件中可有可无,如若配置,则可在驱动程序的编写时利用这些信息,方便编程,同时有利于其它应用对其参数的确定和使用。网卡驱动程序的安装通常将创建登录表中的四个不同子键:
  software  registrion键,对应于驱动程序,存在于hkey_local_machinesoftwarecompany  productnameversion中。我们的fddi网卡驱动程序所对应的是hkey_local_machinesoftwarenet612yhfddiyhfddi1.0;
  网卡的软件登录键,存在于hkey_local_machinesoftwaremicrosoft  windows  ntnt3.51networkcardsyhfddi1;
  驱动程序的服务登录键,存在于hkey_local_machinesystemcurrentcontrolsetservices
  网卡的服务登录键,存在于hkey_local_machinesystemcurrentcontrolsetservices
  对于每一个网络部件,一个名为netrules的特殊子键在邻近的驱动程序或网卡登录子键里创建,netrules标识网络部件为网络整体的一部分。
  fddi网卡驱动程序对应的标准软件登录表项将出现在以下路径:
  hkey_local_machinesoftwarenet612yhfddiyhfddi1.0;
  驱动程序对应的标准项的值为:
  description  =yhfddi/pci  adapter  controller
  install  date  =……
  ……
  refcount  =0x01
  servicename  =yhfddi
  softwaretype  =driver
  title  =yhfddi/pci  adapter  controller
  而且在yhfddi驱动程序相关的netrules子键下,这些值项为:
  bindable  =yhfddi  driver  yhfddi  adapter  non  exclusiver
  bindform  ="yhfddisys"yes  no  container
  class  =  reg_multi_sz  "yhfddi  driver  basic"
  infname  =oemnad1.inf
  type  =yhfddisys  ndisdriver  yhfddidriver
  use  =driver
  yhfddi网卡在如下路径的networkcards子键里介绍:
  hkey_local_machinesoftwaremicrosoft
  windows  ntnt3.51networkcardsyhfddi1;
  网卡的标准项包括以下这些值:
  description  =yhfddi/pci  adapter  controller
  install  date  =……
  manufacturer  =net612
  productname  =yhfddi
  servicename  =yhfddi01
  title  =[01]yhfddi/pci  adapter  controller
  §2.1.3编写inf信息配置文件
  gui  inf描述语言被windows  nt用以书写系统所有部件的配置文件,当然也可以用以书写网络系统各部件的配置文件,该配置文件描述了网络部件安装、配置、删除的执行过程。当网络部件进行初始安装或二次安装(通常通过ncpa进行)时,安装程序读取部件对应的配置文件,进行解释执行。gui  inf描述语言由节、命令、逻辑操作、变量规范、流程控制以及一套调用dll或外部程序的机制组成,其中,节是配置文件的主体,节可分为install节(类似于函数),shell节(也类似于函数,但可调用insall和shell节),detect节(不包含命令),一个配置文件一般由若干不同类型的节组成。驱动程序的开发者根据需要可以在配置文件中编写相应代码,使得用户和系统之间能进行交互,并且由用户决定一些配置参数。
  nt网卡配置文件有其一套规范,驱动程序开发者必须按规范编写配置文件,一般来说,一个配置文件至少应该提供下面三个节:
  安装入口点:[identify]shell节。该节主要功能是给出安装部件的类型名,系统通过它识别该部件属于哪一大类(display,mouse,scsi,network等)中的哪一类(网络adapter,driver,transport,service,network和netprovidor),同时,还需要给出映像文件和配置文件所在的源介质及标识。
  [returnoption]shell节。系统执行安装identify节后,执行该节。它主要功能是检查所需安装的部件是否支持的硬件平台和语言,并给出网卡名(有些配置文件支持多类网卡,此时必须让用户进行选择,并获得选择结果)。
  [installoption]shell节。该节是配置文件得主体,也是上次安装完后再次进行配置、删除、更新的入口点。主要功能是拷贝映像文件和配置文件,生成配置的各种选项,创建该部件在注册库中对应的各种登录子树并更新重写。
  第二节  驱动程序的加载过程
  §2.2.1  windows  nt的启动过程
  第一阶段:调入装入程序。和硬件平台相关,x86机器首先由rom装入根扇区,再由根扇区装入ntldr;
  第二阶段:硬件检测。x86机器调ntdetect程序最大限度地获取各种硬件设备

辩证唯物主义与相对主义的异同及其现实思考论文摘要马克思在批判地吸收了黑格尔辩证法的合理内核和费尔巴哈唯物主义的基本内核的基础上创立了辨证唯物主义。而相对主义观点则由于概念的模糊性和立场的不确定性被大多数人归入诡辩论的范畴。这石材幕墙施工工艺研究论文1基本工艺流程干挂石材幕墙工程基本工艺流程材料及施工准备安装预埋板安装铝合金骨架防火施工石材面板安装石板板缝注胶清洗幕墙幕墙验收幕墙的维修保养。2施工质量控制措施2。1材料的质量控农村学校体育教学现状的分析论文论文关键词农村体育教学体育教师对策论文摘要体育教学作为学校教育的一个重要组成部分,担负着增进学生健康的重任。农村学校体育教学是我国整个体育教学工作中的重点。农村学校体育教学的提高对当代学校生源现状和诉求论文自2008年开始,出生于1990年及以后的新一代青年学子开始批量进入高校接受高等教育。90后大学生的一些特性给高校育人提出了新的要求。作为一所办学历史相对较长办学条件完备师资队伍优学校教学管理现状研究论文1。当先学校教学管理的普遍现状当下众多学校都严抓管理,各个学校对其教学方法课堂纪律教学安排都有严格的要求,甚至不断更新填充校园制度以加强管理,并希望借助管理方式的严肃细致来达成教育高中音乐教学现状分析的论文摘要随着素质教育的普及,思想观念的转变,越来越多的学生参与到音乐知识学习中。文章主要是对高中音乐教学的现状进行了思考,从教师专业能力不够教学方式单一学校重视程度不够及课程过少四个方关于广西六堡茶产业现状分析的论文摘要广西六堡茶有着悠久的历史,六堡茶产业也攸关数万茶农的切身利益,基于迈克尔波特的钻石模型,分别从生产要素需求条件相关与支持产业企业的战略结构和同业竞争机会和政府角色几个方面对广西浅谈学校心理素质教育现状及对策论文心理素质教育是素质教育的重要组成部分,本文从学校心理素质现状着手,发现当今心理素质教育存在的主要问题,并提出科学地完善心理素质教育环节建立全面的心理学教育评价体系等建议。心理素质是小学高年级语文教学中语文素养的培养探讨论文摘要小学语文教学历来在小学教学体系中占有重要的地位。通过实施科学合理的教学,将使小学生具备一定的阅读与写作能力。从教学目标的定位来看,阅读与写作方面的能力似乎涵盖了小学语文的全部职高中语文新课标的实施论文高中语文新课程实施以来,改革理念对一线教师的思想观念带来强烈的冲击,许多教师已经认识到改革的重要性和必然性,但是在实际教学过程中,如何科学正确全面地贯彻落实新课程标准,还存在不少的农村学前教育现状论文导语学前教育是一个非常重要的时期,但是农村学前教育还存在着很多问题。下面是小编为你准备的农村学前教育现状论文,希望对你有帮助!学前教育作为九年制义务教育的开端,是学龄儿童身心等各方
居住空间设计课程的教学设计与教学方式摘要居住空间设计课程是近年来国内实践设计课程中十分重要的一个分支部分,作为学生来说必须要掌握十分扎实的专业知识,才能保证后期应用效率。从当前居住空间设计课程实践性以及应用性方面的特巴陵戏远在江湖演出之妙摘要近年来,堪称中国戏剧艺术ldquo活化石rdquo的巴陵戏在博采众长中形成了自己的艺术特色,受到越来越多的观众喜爱。戏剧远在江湖的成功演出,无疑为巴陵戏的发扬光大更添魔力。笔者浅析空间设计之花鼓灯嘉年华摘要本文分析了安徽蚌埠花鼓灯嘉年华建筑设计背景,分别从场所精神公共领域建筑之间三方面剖析花鼓灯嘉年华的空间设计,从而做到对民间传统文化更好的继承和保护。关键词花鼓灯空间设计嘉年华保第一章生存还是死亡互联网时代的文学生态论数字化的生活,将把人类带入一个后信息时代。现行社会的种种模式正在迅速转变,形成一个以比特为思考基础的新格局。比特,作为信息DNA,正迅速取代原子而成为人类社会的基本要素。尼葛洛庞帝社会主体个人化的历史根据摘要原始社会的社会主体氏族部落奴隶社会的社会主体部落国家封建社会的社会主体民族国家(领主庄园)家庭资本主义社会的社会主体单个的人。关键词社会形态社会主体国家个人社会主体是指特定社会老照片一种大众化的历史叙述在90年代后半期的中国,山东画报出版社的老照片的出版是一个非常引人瞩目的文化现象。它不仅带动了一批老照片出版物(如老城市老漫画北大老照片等)的出笼与热销,而且引发了包括中央电视台在后工业化与性别的重组90年代的父权体制资本主义和个人主义与平等的神话正相反,近代与性别无关说法,还不曾有过。即使是在合理的资本主义下,性别都是经济外的不合理变量,而资本则是非常合理地利用性别这项变量。像伊力奇那样说资本主义将女性的溯源与解密性是世界的驱动力性是什么?阿基米德说给我一个立足点,我可以转动整个宇宙。这话讲得含蓄老道,充满力量和哲理,让后来不少莘莘学子写文章时反复引用。可是,倘若去掉那一层含蓄,阿基米德的话中国传统文化在青少年德育中的作用随着市场经济的快速发展,现代社会人的价值观道德观也在发生巨大的变化,尤其是受到西方资本主义思想的影响,我国传统的文化理念受到不同程度的冲击。中国传统文化是民族文化的灵魂,同时也是道第七章艺术与技术网络文学创作嬗变一般来说,旧的观念已经取得了悦人的文字外衣,而新的观念看上去依然表述笨拙。因而喜好优美的文字形式的审美偏好多半是与保守性联系在一起的。由于这种情况,那些固执优雅文字形式的人就不能不互文性与习语翻译互文性与习语翻译互文性与习语翻译互文性与习语翻译论文关键词习语翻译互文性论文摘要互文性是20世纪由德国翻译家JuliaKristeva提出的。这一理论在翻译中的并不太多,文章从互文