NDIS 中间层驱动程序(IMD)开发人员指南ndis_devguide

 
1    NDIS中间层驱动程序    2
1.1    NDIS中间层驱动程序(NDIS Intermediate Drivers)概述    2
量子力学的建立与科技创新的评价体系
1.2    NDIS中间层驱动程序的用途    4
1.3    NDIS中间层驱动程序的开发环境    4
2    NDIS中间层驱动程序的开发    4
2.1    可分页和可丢弃代码    4
2.2    共享资源的访问同步    5
2.3    中间层驱动程序的DriverEntry函数    5
2.3.1    注册NDIS中间层驱动程序    6
2.3.1.1    注册中间层驱动程序的Miniport    6
2.3.1.2    注册中间层驱动程序的协议    8
2.4    中间层驱动程序的动态绑定    11
2.4.1    打开中间层驱动程序下层的适配器    12
2.4.2    微端口(Miniport)初始化    12
2.4.3    中间层驱动程序查询和设置操作    13
2.4.3.1    发布设置和查询请求    14
2.4.3.2    响应设置和查询请求    15
2.4.4    作为面向连接客户程序注册中间层驱动程序    15
2.5    中间层驱动程序数据包管理    17
2.5.1.1    重用数据包    18
2.6    中间层驱动程序的限制    19
2.7    中间层驱动程序接收数据    19
2.7.1    下边界面向无连接的中间层驱动程序接收数据    19
2.7.1.1    在中间层驱动程序中实现ProtocolReceivePacket处理程序    20
2.7.1.2    在中间层驱动程序中实现ProtocolReceive处理程序    21
2.7.1.3    下边界面向无连接中间层驱动程序接收OOB数据信息    22
教育与职业>王学左派2.7.2    下边界面向连接的中间层驱动程序接收数据    22
2.7.2.1    在中间层驱动程序中实现ProtocolCoReceivePacket处理程序    23
2.7.2.2    在下边界面向连接的中间层驱动程序中接收OOB数据信息    23
2.7.3    向高层驱动程序指示接收数据包    23
2.8    通过中间层驱动程序传输数据包    23
2.8.1    传递介质相关信息    25
2.9    处理中间层驱动程序的PnP事件和PM事件    26
2.9.1    处理OID_PNP_XXX查询和设置    26
2.9.2    中间层驱动程序ProtocolPnPEvent处理程序的实现    27
2.9.3    处理规定的电源请求    28
2.9.3.1    睡眠状态的电源设置请求    28
2.9.3.2    工作状态的电源设置请求    29
2.10    中间层驱动程序复位操作    29
2.11    中间层驱动程序拆除绑定操作    30
2.12    中间层驱动程序状态指示    31
3    负载平衡和失效替换    31
3.1    关于LBFO    31
3.2    指定对LBFO的支持    32
3.3    在微端口驱动程序上实现LBFO    32
3.3.1    初始化微端口束    33
3.3.2    平衡微端口驱动程序的工作量    33
3.3.3    在主微端口失效后提升一个次微端口    34
4    安装网络组件    34
4.1    用于安装网络组件的组件和文件    34
4.2    创建网络INF文件    35
4.2.1    网络INFS文件名的约定    35
4.2.2    网络INF文件的版本节    35
4.2.3    网络INF文件的模型节    36
4.2.4    INF文件的DDInstall节    37
4.2.5    删除节    38
4.2.6    ControlFlags节    39
4.2.7    网络INF文件的add-registry-sections    39
表格 1   缩略语表
项目
英文描述
中文描述
NDIS
Network Driver Interface Specification
网络驱动程序接口标准
IMD
Intermediate Drivers
中间层驱动
TDI
Transport driver Interface
传输驱动程序接口
NIC
Network Interface Card
网络接口卡
SP
Service Pack
服务包
LAN
Local Area Network
局域网
LAN-E
LAN Emulation
局域网仿真
NAT
地球物理学报Network Address Translation
网络地址转换
LBFO
Load Balancing And Fail-Over
负载平衡和失效替换
DDK
Device Drivers Kit
设备驱动程序开发包
SMP
Symmetry Multiprocessing
对称多处理
OS
Operating System
操作系统
IDE
Integrated Development Environment
集成开发环境
红楼三人行1 NDIS中间层驱动程序
1.1 NDIS中间层驱动程序(NDIS Intermediate Drivers)概述
刘宋微软Windows网络驱动程序接口标准(NDIS 4.0)和Windows NT 4.0SP3)引入了一种新的NDIS驱动程序,它可以嵌在NDIS 传输驱动程序TDI(如,TCP/IP)和底层的NDIS网络接口驱动程序的中间。这种新类型的驱动程序被称为NDIS中间层驱动,如图表 1NDIS(网络驱动器接口标准)中间层驱动程序在其上边界导出MiniportXxx函数,在其下边界导出ProtocalXxx函数。该驱动程序在其上边界仅提供面向无连接通信支持,而在其下边界,则即可支持面向无连接通信,也可支持面向连接通信。
中间层驱动程序的微端口部分(上边界)必须是非串行的,系统将依赖这些非串行驱动程序,而不是NDISMiniportXxx函数的操作进行串行化处理和对内部生成的输出包进行排队操作提供良好界导出TDI驱动程序__________________________________________________________________________________________________________________,这样驱动程序只要保持很小的临界区(每次只能有一个线程执行该代码)就能提供性能良好的全双工操作。但是这些非串行Miniport要受到更多也更严格的设计要求的限制,往往要为此付出更多的调试和测试时间。
中间层驱动程序是一种典型的层次结构程序,它基于一个或多个NDIS NIC驱动程序,其上层是一个向上层提供TDI(传输驱动程序接口)支持的传输驱动程序(也可能是多层结构)。从理论上讲,一个中间层驱动程序也可以是基于其他中间层驱动程序或作为其他中间层驱动程序的低层出现的,尽管这种方案未必能展现更好的性能。
中间层驱动程序的一个示例是LAN仿真中间层驱动程序,其上层是一个早期传输驱动程序,下层是一个非LAN介质的微端口 NIC驱动程序。该驱动程序从上层接收LAN格式的数据包并将其转换为本地网卡的介质格式,然后将其发送到那个NIC的NDIS 微端口。接收数据时,该驱动程序将低层网卡驱动程序送来的数据包转换为LAN兼容格式,最后向上层传输驱动程序提交这些转换过的数据包。
例如,NDISWAN就具有一些上述特征。NDISWAN将数据包从上层的传输LAN格式转换为WAN数据包格式,或者将数据包从低层的网卡驱动WAN格式转换为LAN数据包格式。另外,如果低层NIC硬件不支持这些功能,那么NDISWAN也可提供诸如压缩、加密和端对端协议(PPP)等的数据格式化功能。NDISWAN为在NDIS API和网卡驱动程序之间进行通信提供了一个专用接口,同时,NDISWAN也将协议绑定映射为活动连接请求。

本文发布于:2024-09-22 01:04:40,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/233343.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议