📄 ndis开发.htm
字号:
target=_blank>flashsky</A>
<LI class=listitem><A href="http://www.opencjk.org/~scz/"
target=_blank>scz</A></LI></UL>
<H3 class=listtitle>存档</H3>
<UL class=list>
<LI><A
href="http://blog.donews.com/zwell/archive/2007/03.aspx">2007年03月(1)</A>
<LI><A
href="http://blog.donews.com/zwell/archive/2006/12.aspx">2006年12月(1)</A>
<LI><A
href="http://blog.donews.com/zwell/archive/2006/11.aspx">2006年11月(1)</A>
<LI><A
href="http://blog.donews.com/zwell/archive/2006/10.aspx">2006年10月(1)</A>
<LI><A
href="http://blog.donews.com/zwell/archive/2006/09.aspx">2006年09月(2)</A>
<LI><A
href="http://blog.donews.com/zwell/archive/2006/08.aspx">2006年08月(1)</A>
<LI><A
href="http://blog.donews.com/zwell/archive/2006/07.aspx">2006年07月(2)</A>
<LI><A
href="http://blog.donews.com/zwell/archive/2006/06.aspx">2006年06月(3)</A>
<LI><A
href="http://blog.donews.com/zwell/archive/2006/02.aspx">2006年02月(3)</A>
<LI><A
href="http://blog.donews.com/zwell/archive/2006/01.aspx">2006年01月(3)</A>
<LI><A
href="http://blog.donews.com/zwell/archive/2005/12.aspx">2005年12月(2)</A>
<LI><A
href="http://blog.donews.com/zwell/archive/2005/10.aspx">2005年10月(7)</A>
<LI><A
href="http://blog.donews.com/zwell/archive/2005/09.aspx">2005年09月(5)</A>
<LI><A
href="http://blog.donews.com/zwell/archive/2005/08.aspx">2005年08月(8)</A>
<LI><A
href="http://blog.donews.com/zwell/archive/2005/07.aspx">2005年07月(6)</A>
<LI><A
href="http://blog.donews.com/zwell/archive/2005/06.aspx">2005年06月(1)</A>
<LI><A
href="http://blog.donews.com/zwell/archive/2005/05.aspx">2005年05月(6)</A>
<LI><A
href="http://blog.donews.com/zwell/archive/2005/04.aspx">2005年04月(8)</A>
<LI><A
href="http://blog.donews.com/zwell/archive/2005/03.aspx">2005年03月(11)</A>
<LI><A
href="http://blog.donews.com/zwell/archive/2005/02.aspx">2005年02月(5)</A>
<LI><A
href="http://blog.donews.com/zwell/archive/2005/01.aspx">2005年01月(7)</A>
<LI><A
href="http://blog.donews.com/zwell/archive/2004/12.aspx">2004年12月(14)</A>
<LI><A
href="http://blog.donews.com/zwell/archive/2004/11.aspx">2004年11月(8)</A>
<LI><A
href="http://blog.donews.com/zwell/archive/2004/10.aspx">2004年10月(24)</A>
<LI><A
href="http://blog.donews.com/zwell/archive/2004/09.aspx">2004年09月(18)</A>
<LI><A
href="http://blog.donews.com/zwell/archive/2004/08.aspx">2004年08月(46)</A>
<LI><A
href="http://blog.donews.com/zwell/archive/2004/07.aspx">2004年07月(42)</A>
<LI><A
href="http://blog.donews.com/zwell/archive/2004/06.aspx">2004年06月(21)</A></LI></UL><BR>
<DIV id=comRecText>正在读取评论……</DIV>
<SCRIPT type=text/javascript>
<!--
var urlRec=window.location.href;
var fileRec=getRecFileName(urlRec);
ajaxRead(fileRec,0);
//-->
</SCRIPT>
</DIV></TD>
<TD class=MainCell>
<DIV id=main>
<SCRIPT>function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</SCRIPT>
<DIV class=post>
<DIV class=postTitle><A
href="http://blog.donews.com/zwell/articles/27326.aspx">NDIS开发</A></DIV>
<DIV class=postText>
<P><BR><FONT face=Verdana size=2>目 录</FONT></P>
<P><BR><FONT face=Verdana
size=2>1 NDIS中间层驱动程序 2<BR>1.1 NDIS中间层驱动程序(NDIS Intermediate
Drivers)概述 2<BR>1.2 NDIS中间层驱动程序的用途 4<BR>1.3 NDIS中间层驱动程序的开发环境 4<BR>2 NDIS中间层驱动程序的开发 4<BR>2.1 可分页和可丢弃代码 4<BR>2.2 共享资源的访问同步 5<BR>2.3 中间层驱动程序的DriverEntry函数 5<BR>2.3.1 注册NDIS中间层驱动程序 6<BR>2.3.1.1 注册中间层驱动程序的Miniport 6<BR>2.3.1.2 注册中间层驱动程序的协议 8<BR>2.4 中间层驱动程序的动态绑定 11<BR>2.4.1 打开中间层驱动程序下层的适配器 12<BR>2.4.2 微端口(Miniport)初始化 12<BR>2.4.3 中间层驱动程序查询和设置操作 13<BR>2.4.3.1 发布设置和查询请求 14<BR>2.4.3.2 响应设置和查询请求 15<BR>2.4.4 作为面向连接客户程序注册中间层驱动程序 15<BR>2.5 中间层驱动程序数据包管理 17<BR>2.5.1.1 重用数据包 18<BR>2.6 中间层驱动程序的限制 19<BR>2.7 中间层驱动程序接收数据 19<BR>2.7.1 下边界面向无连接的中间层驱动程序接收数据 19<BR>2.7.1.1 在中间层驱动程序中实现ProtocolReceivePacket处理程序 20<BR>2.7.1.2 在中间层驱动程序中实现ProtocolReceive处理程序 21<BR>2.7.1.3 下边界面向无连接中间层驱动程序接收OOB数据信息 22<BR>2.7.2 下边界面向连接的中间层驱动程序接收数据 22<BR>2.7.2.1 在中间层驱动程序中实现ProtocolCoReceivePacket处理程序 23<BR>2.7.2.2 在下边界面向连接的中间层驱动程序中接收OOB数据信息 23<BR>2.7.3 向高层驱动程序指示接收数据包 23<BR>2.8 通过中间层驱动程序传输数据包 23<BR>2.8.1 传递介质相关信息 25<BR>2.9 处理中间层驱动程序的PnP事件和PM事件 26<BR>2.9.1 处理OID_PNP_XXX查询和设置 26<BR>2.9.2 中间层驱动程序ProtocolPnPEvent处理程序的实现 27<BR>2.9.3 处理规定的电源请求 28<BR>2.9.3.1 睡眠状态的电源设置请求 28<BR>2.9.3.2 工作状态的电源设置请求 29<BR>2.10 中间层驱动程序复位操作 29<BR>2.11 中间层驱动程序拆除绑定操作 30<BR>2.12 中间层驱动程序状态指示 31<BR>3 负载平衡和失效替换 31<BR>3.1 关于LBFO 31<BR>3.2 指定对LBFO的支持 32<BR>3.3 在微端口驱动程序上实现LBFO 32<BR>3.3.1 初始化微端口束 33<BR>3.3.2 平衡微端口驱动程序的工作量 33<BR>3.3.3 在主微端口失效后提升一个次微端口 34<BR>4 安装网络组件 34<BR>4.1 用于安装网络组件的组件和文件 34<BR>4.2 创建网络INF文件 35<BR>4.2.1 网络INFS文件名的约定 35<BR>4.2.2 网络INF文件的版本节 35<BR>4.2.3 网络INF文件的模型节 36<BR>4.2.4 INF文件的DDInstall节 37<BR>4.2.5 删除节 38<BR>4.2.6 ControlFlags节 39<BR>4.2.7 网络INF文件的add-registry-sections 39</FONT></P>
<P><FONT face=Verdana size=2></FONT> </P>
<P><FONT face=Verdana size=2>表格 1 缩略语表</FONT></P>
<P><FONT face=Verdana size=2><BR>项目 英文描述 中文描述
<BR>NDIS Network Driver Interface
Specification 网络驱动程序接口标准 <BR>IMD Intermediate
Drivers 中间层驱动 <BR>TDI Transport driver
Interface 传输驱动程序接口 <BR>NIC Network Interface
Card 网络接口卡 <BR>SP Service
Pack 服务包 <BR>LAN Local Area
Network 局域网 <BR>LAN-E LAN
Emulation 局域网仿真 <BR>NAT Network Address
Translation 网络地址转换 <BR>LBFO Load Balancing And
Fail-Over 负载平衡和失效替换 <BR>DDK Device Drivers
Kit 设备驱动程序开发包 <BR>SMP Symmetry
Multiprocessing 对称多处理 <BR>OS Operating
System 操作系统 <BR>IDE Integrated Development
Environment 集成开发环境 </FONT></P>
<P><FONT face=Verdana
size=2>1 NDIS中间层驱动程序<BR>1.1 NDIS中间层驱动程序(NDIS Intermediate
Drivers)概述</FONT></P>
<P><FONT face=Verdana size=2>微软Windows网络驱动程序接口标准(NDIS 4.0)和Windows NT
4.0(SP3)引入了一种新的NDIS驱动程序,它可以嵌在NDIS
传输驱动程序TDI(如,TCP/IP)和底层的NDIS网络接口驱动程序的中间。这种新类型的驱动程序被称为NDIS中间层驱动,如图表
1。NDIS(网络驱动器接口标准)中间层驱动程序在其上边界导出MiniportXxx函数,在其下边界导出ProtocalXxx函数。该驱动程序在其上边界仅提供面向无连接通信支持,而在其下边界,则即可支持面向无连接通信,也可支持面向连接通信。<BR>中间层驱动程序的微端口部分(上边界)必须是非串行的,系统将依赖这些非串行驱动程序,而不是NDIS对MiniportXxx函数的操作进行串行化处理和对内部生成的输出包进行排队操作,这样驱动程序只要保持很小的临界区(每次只能有一个线程执行该代码)就能提供性能良好的全双工操作。但是这些非串行Miniport要受到更多也更严格的设计要求的限制,往往要为此付出更多的调试和测试时间。<BR>中间层驱动程序是一种典型的层次结构程序,它基于一个或多个NDIS
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -