达人眼中的WINCE网络驱动
达人眼中的WINCE网络驱动
介绍
实际上在WinCE上开发网络驱动,比如设计一个NIC驱动, 大多数情况,是从XP移植NDIS Miniport驱动(小端口驱动)到WinCE。什么是ndis?Ndis做什么用的? 什么是miniport驱动?
什么是NDIS? 也许你很早就听说过NDIS:Network Driver Interface Specificatiion网络设备接口规范。我总结了如下:
1. NDIS是一个协议,标准,规范。 从win95的3.0版本,到winxp的5.1版本,到vista的6.0版本, wince5是5.1版本。
2. NDIS也是一组API,也是一个库ndis.dll。 他为网络驱动定义了一组标准API。并且提供了运行时调用支持。编译驱动时候,常见的是驱动需要静态的链接一个ndis.lib。(关于dll的lib和直接使用dll性质一样,差别我就不多说了。)
3. NDIS也是一个框架结构。一个architecture。它描述了各个驱动的接口。驱动都是在ndis这个框架里面实现。
4. NDIS一般也是一个有实体存在并且在系统运行的模块。称为wrapper。比如在xp下面是ndis.sys,在ce下面是ndis.dll.甚至linux下面也有NDISWrapper, NDISulator。
因为上面特点,ndis驱动可以是平台无关的,可以是源码兼容的。用c编码后重新编译可以在任何ndis环境运行。比如 Xp下面的ndis驱动重新编译后可以在ce下面使用。Linux也有一个开源的NDISWrapper,在这个基础上也可以使用win的ndis驱动。
连linux都用ndis,Wince有什么理由不用?是的,wince遵循的ndis规范是NT里面使用的ndis的一个子集。 实现形式是ndis.dll, 被设计成一个流驱动的形式, 在boot时候由device.exe加载,前缀是NDS。另外wince也实现了ndisuio组件, ndisuio被设计成一个ndis的协议层驱动, export出流接口给应用。此外还提供了一个netlog功能, 他提供netlog.exe和netlogctl.ext工具,可以监视网络流量等等信息。上面说的3个组件在pb里面对应的名称是Network Driver Architecture(NDIS), NDUS User-mode I/O Driver, NDIS Packet Capturing DLL。在catalog窗口里面容易找到他们。
转自:http://chenyq2008.spaces.live.com/blog/cns!F73164AC8D0D8D50!290.entry
转载于:https://www.cnblogs.com/xilentz/archive/2010/05/25/1743803.html
达人眼中的WINCE网络驱动相关推荐
- WinCE的网络驱动实现原理
1.WinCE的网络通信架构 WinCE的网络通信架构如图1所示,WinCE的网络通信架构中一个重要的角色是网络结构规范(NetworkDriver Interface Specification,N ...
- wince串口驱动分析(转)
wince串口驱动分析 串行通讯接口主要是指UART(通用串行)和IRDA两种.通常的串行连接电气连接上有3wire和9wire两种.3wire的接线方式下定义了发送.接收和地三根连接.其用途就如名称 ...
- WinCE WebCamera驱动开发白皮书
Windows CE USB摄像头驱动编写 作者: Douglas Boling 译: WinCE下被询问次数最多的驱动是USB摄像头驱动,其原由并不难理解.首先,每个人都喜欢看视频.插上摄像头并用它 ...
- Linux 网卡驱动学习(一)(分析一个虚拟硬件的网络驱动样例)
在Linux,网络分为两个层,各自是网络堆栈协议支持层,以及接收和发送网络协议的设备驱动程序层. 网络堆栈是硬件中独立出来的部分.主要用来支持TCP/IP等多种协议,网络设备驱动层是连接网络堆栈协议层 ...
- Windows网络驱动、NDIS驱动(微端口驱动、中间层驱动、协议驱动)、TDI驱动(网络传输层过滤)、WFP(Windows Filtering Platfrom))
catalog 0.引言 1.Windows 2000网络结构和OSI模型 2.NDIS驱动 3.NDIS微端口驱动编程实例 4.NDIS中间层驱动编程实例 5.TDI驱动 6.TDI驱动 7.TDI ...
- 210板wince键盘驱动分析和移植
主要是bsp包里面的3个cpp文件的分析. 首先是pddlist.cpp文件 这个文件介绍了3种键盘的wince的api入口函数名前面加winapi),本文只关心第二种矩阵键盘. 然后在kbd.cpp ...
- Linux 网卡驱动学习(二)(网络驱动接口小结)
[摘要]前文我们分析了一个虚拟硬件的网络驱动样例.从中我们看到了网络设备的一些接口.事实上网络设备驱动和块设备驱动的功能比較相似,都是发送和接收数据包(数据请求). 当然它们实际是有非常多不同的. 1 ...
- linux 源码 网络驱动,Linux网络驱动源码分析(一)
功能:注册PCI驱动,参数为要注册的pci驱动的结构体. 下面来详细的分析以下这个函数,如此,才能更清楚的了解驱动和设备的匹配过程. pci_register_driver->driver_re ...
- 嵌入式linux下网卡设备驱动与网络协议栈的设计实现.pdf,嵌入式系统的通用网络驱动模型设计与实现.pdf...
维普资讯 第3O卷第4期 长春理工大学学报 (自然科学版 ) VO1.3O N0.4 2007年 12月 JournalofChangchunUniversityofScienceandTechnol ...
最新文章
- excel导入数据时报错,显示Extracted SQL state class ‘22‘ from value ‘22001‘
- 数据结构最短路径例题_编程小白暑期进阶笔记45-C语言数据结构与算法最短路径和dijkstra算法...
- 中国半挂车行业投资前景预测与十四五投资战略规划分析报告2021年版
- 最容易理解的计算机网络的基础知识概论(上)
- vue.js官方文档 PDF
- 如何判断一个程序是 32bit 还是 64bit ?
- 选择排序、冒泡排序、异或运算
- python数据获取及预处理_python数据预处理(入门)
- ios获取新数据要不要关_iPhone用户注意!不要再滑动关后台,否则……
- “我很迷茫很焦虑,需要你的建议”|她在百度内网发了个求助帖
- matlab:randn函数产生图像高斯噪声
- 运行java比较好的浏览器_国内好的pc浏览器评测
- 提高计算机CPU运行速度,提高cpu运行速度的方法
- R语言检验独立性:卡方检验(Chi-square test)和费舍尔Fisher精确检验分析案例报告
- java中intern_Java中的intern()方法是什么?
- MATLAB指纹识别文献综述
- 计算机学院毕业典礼口号,大学毕业典礼横幅标语大全
- 类似京东商城客户端应用iOS源码
- pythonurllib爬虫教学_Python学习教程:这里是Python爬虫的起点,抢占资源啦
- hdu 1983 Kaitou Kid - The Phantom Thief (2)