达人眼中的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网络驱动相关推荐

  1. WinCE的网络驱动实现原理

    1.WinCE的网络通信架构 WinCE的网络通信架构如图1所示,WinCE的网络通信架构中一个重要的角色是网络结构规范(NetworkDriver Interface Specification,N ...

  2. wince串口驱动分析(转)

    wince串口驱动分析 串行通讯接口主要是指UART(通用串行)和IRDA两种.通常的串行连接电气连接上有3wire和9wire两种.3wire的接线方式下定义了发送.接收和地三根连接.其用途就如名称 ...

  3. WinCE WebCamera驱动开发白皮书

    Windows CE USB摄像头驱动编写 作者: Douglas Boling 译: WinCE下被询问次数最多的驱动是USB摄像头驱动,其原由并不难理解.首先,每个人都喜欢看视频.插上摄像头并用它 ...

  4. Linux 网卡驱动学习(一)(分析一个虚拟硬件的网络驱动样例)

    在Linux,网络分为两个层,各自是网络堆栈协议支持层,以及接收和发送网络协议的设备驱动程序层. 网络堆栈是硬件中独立出来的部分.主要用来支持TCP/IP等多种协议,网络设备驱动层是连接网络堆栈协议层 ...

  5. 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 ...

  6. 210板wince键盘驱动分析和移植

    主要是bsp包里面的3个cpp文件的分析. 首先是pddlist.cpp文件 这个文件介绍了3种键盘的wince的api入口函数名前面加winapi),本文只关心第二种矩阵键盘. 然后在kbd.cpp ...

  7. Linux 网卡驱动学习(二)(网络驱动接口小结)

    [摘要]前文我们分析了一个虚拟硬件的网络驱动样例.从中我们看到了网络设备的一些接口.事实上网络设备驱动和块设备驱动的功能比較相似,都是发送和接收数据包(数据请求). 当然它们实际是有非常多不同的. 1 ...

  8. linux 源码 网络驱动,Linux网络驱动源码分析(一)

    功能:注册PCI驱动,参数为要注册的pci驱动的结构体. 下面来详细的分析以下这个函数,如此,才能更清楚的了解驱动和设备的匹配过程. pci_register_driver->driver_re ...

  9. 嵌入式linux下网卡设备驱动与网络协议栈的设计实现.pdf,嵌入式系统的通用网络驱动模型设计与实现.pdf...

    维普资讯 第3O卷第4期 长春理工大学学报 (自然科学版 ) VO1.3O N0.4 2007年 12月 JournalofChangchunUniversityofScienceandTechnol ...

最新文章

  1. excel导入数据时报错,显示Extracted SQL state class ‘22‘ from value ‘22001‘
  2. 数据结构最短路径例题_编程小白暑期进阶笔记45-C语言数据结构与算法最短路径和dijkstra算法...
  3. 中国半挂车行业投资前景预测与十四五投资战略规划分析报告2021年版
  4. 最容易理解的计算机网络的基础知识概论(上)
  5. vue.js官方文档 PDF
  6. 如何判断一个程序是 32bit 还是 64bit ?
  7. 选择排序、冒泡排序、异或运算
  8. python数据获取及预处理_python数据预处理(入门)
  9. ios获取新数据要不要关_iPhone用户注意!不要再滑动关后台,否则……
  10. “我很迷茫很焦虑,需要你的建议”|她在百度内网发了个求助帖
  11. matlab:randn函数产生图像高斯噪声
  12. 运行java比较好的浏览器_国内好的pc浏览器评测
  13. 提高计算机CPU运行速度,提高cpu运行速度的方法
  14. R语言检验独立性:卡方检验(Chi-square test)和费舍尔Fisher精确检验分析案例报告
  15. java中intern_Java中的intern()方法是什么?
  16. MATLAB指纹识别文献综述
  17. 计算机学院毕业典礼口号,大学毕业典礼横幅标语大全
  18. 类似京东商城客户端应用iOS源码
  19. pythonurllib爬虫教学_Python学习教程:这里是Python爬虫的起点,抢占资源啦
  20. hdu 1983 Kaitou Kid - The Phantom Thief (2)

热门文章

  1. 斯坦福大学科学家研发微型植入式神经刺激器
  2. 7个方面读懂6月的5G标准
  3. 2018 年最值得期待的学术进展——致人工智能研究者们的年终总结
  4. 人类首张脑电波连接全图问世
  5. 人工智能名人堂第54期 | 深度学习鼻祖:Geoffrey Hinton
  6. 太慢不能忍!CPU又拿硬盘和网卡开刀了!
  7. 这张程序员情绪波动图,未免太真实了! | 每日趣闻
  8. 特定构造方法 如何让子类重写某些方法时提醒调用super
  9. 第一讲 IDLE使用
  10. URL/URI/URN的认识