zoukankan      html  css  js  c++  java
  • 达人眼中的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

  • 相关阅读:
    JavaScript入门知识点整理
    正则表达式
    bootstrap css编码规范
    JavaScript高级编程(学习笔记)
    【 D3.js 选择集与数据详解 — 2 】 使用data()绑定数据
    bootstrap table:JQuery中each方法绑定blur事件监听input输入是否合法,进入死循环
    bootstrap-table中导出excel插件bootstrap-table-export使用
    托业考后感
    《Pride and Prejudice》英文版读后记忆
    迷茫的当下,我在做什么
  • 原文地址:https://www.cnblogs.com/liang123/p/6325313.html
Copyright © 2011-2022 走看看