NDISUIO代码初探
来源:互联网 发布:网络胜利组网盘 编辑:程序博客网 时间:2024/05/20 09:27
NDISUIO是windows CE上提供的一种机制(我不知道windows上有没有),目的是允许应用程序能够设置miniport driver、读取或者发送数据链路层的数据。
NDISUIO的代码在PUBLIC/COMMON/OAK/DRIVERS/NDISUIO路径下。
NDISUIO实质上是通过将自身注册成一个NDIS protocol driver来与miniport driver通信,然后再将自身注册成一个stream device,允许应用程序通过文件系统接口来与其通信。
这次阅读NDISUIO的代码主要是想搞清楚几个问题:
1. 是否支持多个应用程序同时建立连接。
支持。NDISUIO为每一个连接都分配有OPEN_CONTEXT结构体作为实例。最多可以分配MAX_HASH_ENTRIES个,默认定义为8。
2. 当应用程序调用ReadFile来从NDISUIO读取数据包时,如果没有数据,是否会被阻塞。
会。NDISUIO使用一个event来阻塞读线程。
3. NDISUIO的notification机制是使用message queue实现的,message queue支持进程间通信。
但我同时也发现,NDISUIO内部实际只有一个队列用来保存从miniport driver接收到的数据包,也就是说,其实只能有一个线程进行读取。
- NDISUIO代码初探
- NDISUIO代码初探
- NDISUIO Operations
- 代码展示工具初探
- VLC代码初探
- udt代码初探
- VLC代码初探
- 代码覆盖率工具初探
- wpa_supplicant代码初探收藏
- 代码初探->能耗
- nodejs代码初探
- RxJava代码初探(一)
- nodejs代码初探
- MapReduce WordCount 代码初探
- PeerSim 代码初探和使用
- gstreamer初探--代码分析之一
- delphi中formatFloat代码初探
- C#编写不安全代码初探
- The method of getChildHtml
- Access的DBHelper.cs
- GetSystemInfo 与 GlobalMemoryStatus
- 单元测试中的Mock对象
- PeekMessage
- NDISUIO代码初探
- 绑定GridView
- windows驱动 安装 WDK dsfksvcs.sys 损坏
- 以快照复制为例 SQL SERVER 2005 同步复制技术
- GridView实例
- 使用InternetGetConnectedState这个API判断网络是否连通
- WRAPI Documentation
- S3C DMA使用方法,2410-2440 dma介绍
- Eclipse 快捷键