- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
网卡驱动程序系统设计-Read
项 目 号: 10
文 档 号: 0.3
工程编号: 10
版 本 号: 1.0
保密级别:
小端口网卡驱动程序(Version1.0)
系统设计书
项目号 10 文档号 0.3 工程编号 10
2004年11月20日
小端口网卡驱动程序(Version 1.0)
系统设计书
编制:黄君炜 卢坚
审核:卢坚
批准:
2004年11月20日
目 录
1 引言 1
2 Windows XP中的驱动程序的种类及特色 1
3 驱动程序的模型和相关的例程和主要的函数 2
4 网卡驱动的相关的基本结构(包涵类及其函数和声明变量) 3
4.1 Kdriver类 3
4.2 KpnpDevice类 3
4.3 KpnpLowerDevice类 4
5 IRP操作 4
5.1 IRP数据结构 4
5.2 Kirp类 5
5.3 IRP基本操作 6
6 程序相关的编程技术 7
6.1 关于网卡驱动程序中的字符串操作 7
6.2 关于网卡驱动程序中的数据操作 7
7 关于网卡驱动USB相关设备的开发 7
8 对详细设计的一些建议 8
引言
首先,希望你已经看过我们开发组的系统需求报告总书。
网络接口卡(NIC -Network Interface Card),又称网络适配器 (NIA-Network Interface Adapter),简称网卡。用于实现联网计算机和网络电缆之间的物理连接,为计算机之间相互通信提供一条物理通道,并通过这条通道进行高速数据传输。
设备驱动程序是一个包含了许多操作系统可调用例程的容器,这些例程可以使硬件设备执行相应的动作。在不同的操作系统下,其都可以以各自不同的模板构架开发,以下我将说明的是基于Microsoft的一种新的在WindowXP下的基于驱动程序开发的模型WDM关于构建相关网卡的驱动。(注:所有的关于系统需求说明,系统资源说明,开发平台,人员组成,硬件要求,以及程序的可行性分析还有关于小端口网卡的类型和芯片的资源的具体介绍请详见系统分析的的总介绍,在此不一一列举了)
Windows XP中的驱动程序的种类及特色
特点:
驱动程序的设计目标:
平台间的可移植性
硬件和软件的可配置性
永远抢占优先和永远中断
多处理器的平台上的处理器的安全
基于对象
带可重用的IO请求包(IRP)的包驱动IO
支持异步IO
驱动程序的模型和相关的例程和主要的函数
基于网卡的驱动程序,用WindowsXp下的WDM模型的概念,网卡这一硬件设备至少需要有两个驱动程序。其中一个驱动程序称为功能(Function)驱动程序,即为通常认为的硬件驱动程序,其了解硬件的工作所有细节,负责初始化索有的IO操作,包括IO完成时的中断操作,其为用户提供一种设备适合的控制方式。
另一个为总线(Bus)驱动程序,负责网卡硬件和计算机的相连。
此外,简单说明一下一个完整的驱动程序所要包含的相关的例程:当操作系统遇到一个IRP时,其就调用驱动程序中的例程来执行IRP中的各项操作,这里列出一些相关与此次网卡驱动程序必须的例程,比如DriverEntry和AddDevice还有DispatchPnP,DispatchPower和DispatchWMI派遣的函数。此外需要对IRP派遣的函数需要对IRP排队的驱动程序一般都有一个StartIo例程,具体描述如下表:
基本的驱动程序例程:DriverEntry,AddDevice
IO控制例程:StartIo,OnInterrupt,DpcForIst,AdapterControl等
派遣函数:DispatchPnP,DispatchPower,DispatchWMI,DispatchRead,DispatchWrite等
前面提到的IO中断,在WindowsXP内核中,中断的优先级分为32个等级,如下表:
顺序 IROL 描述 软件中断 0 PASSIVE_LEVEL 常规线程 1 APC_LEVEL 异步过程调用 2 DISPATCH_LEVEL 线程调用,延世过程调用 硬件中断 3-26 DIRQL 硬件中断 27 PRORILE_LEVEL 配置文件定时器 28 CLOCK2_LEVEL 时钟
原创力文档


文档评论(0)