设为首页  
联系我们  
加入收藏  
网页制作 冲浪宝典 图形图像 操作系统 软件教学 编程开发 认证考试 安全技术 站长专区 文学驿站 娱乐天地 游戏天地 办公软件
文章搜索
您的位置: 首页 >> 文章首页 >> 编程开发 >> 其他开发语言 >> Rawether Does NOT Allow Multiple Applications To Receive The Same Packet
精品推荐
其他开发语言点击TOP10
·数字小键盘指法练习
·用C语言编通讯录程序(初学者级别的)
·Modem 常用AT指令集
·单片机模拟I2C总线及24C02(I2C EEPROM)读写实例(源代码)
·C++经典电子书下载
·Thinking in C++ 简体中文第二版
·debug和release的区别
·error LNK2001: unresolved external symbol __ftol2 错误解决
·C库函数手册
·一个简单的C语言编译器
编程开发点击TOP10
·数字小键盘指法练习
·ASP.NET 程序中常用的三十三种代码
·用C语言编通讯录程序(初学者级别的)
·我写的Java学生成绩管理系统源代码
·CHK文件恢复工具
·Modem 常用AT指令集
·java笔试题
·异常java.sql.SQLException: Io exception:The Network Adapter could not establish connection
·单片机模拟I2C总线及24C02(I2C EEPROM)读写实例(源代码)
·C++经典电子书下载
精选专题

Rawether Does NOT Allow Multiple Applications To Receive The Same Packet

作者: 来源:网络文章 时间:2005-12-17 19:15:38

Rawether Does NOT Allow
Multiple Applications
To Receive
The Same Packet

 

Knowledge Base ID

KB09230001
CategoryLIMITATION

Effected ProdUCt

Rawether/WINDIS32  - Win32 NDIS Framework

Effected Versions

All
Effected PlatformsAll

 

Symptoms

If multiple WinDis 32 applications Access the same adapter concurrently using the same Berkeley Packet Filter (BPF) settings, only one of the applications will receive the packets.

More generally, if multiple adapter handles are opened concurrently (using the W32N_OpenAdapter function) to the same adapter using the same Berkeley Packet Filter (BPF) settings, packets will be received on only ONE of the adapter handles.

 

Cause

In the current Rawether design all Win32 applications access the lower level NDIS MAC driver via a common NDIS protocol driver (PCANDIS3.VXD, PCANDIS4.SYS or PCANDIS5.SYS). The design of this NDIS protocol driver is such that it only opens the lower level NDIS MAC driver once - regardless of how many Win32 applications are using the Rawether API to access the adapter.

The supporting NDIS protocol driver uses a per-open context structure in kernel mode to maintain separate information for each user mode handle returned by the Rawether W32N_OpenAdapter function. This means that a different BPF can be specified on each user mode adapter handle. The NDIS protocol driver keeps per-open information in a list.

When a packet is received the driver's behavior is simple:

The NDIS protocol driver walks the per-open context list and indicates the received packet on the first user mode handle whose BPF accepts the packet.

The driver does NOT attempt to look further into the per-open context list once the first BPF match is found and satisfied.

 

Discussion

The memory and processor resources required to "lift" received packets from the kernel mode NDIS protocol driver to the user mode Win32 application are substantial.

In PCAUSA's opinion, a design that would support "lifting" the same packet to more than one application would almost certainly degrade the performance of all applications using the Rawether API and probably degrade the overall performance of the host workstation.

You can eXPlore this behavior using NDIScope and the HookPeek application:

  1. Use NDIScope to start two instances of the HookPeek application with both set to capture All Protocols. You will see that the first HookPeek instance that was started will display all packets and the second will not display any packets.
  2. Use NDIScope to start two instances of HookPeek. Start the first instance to capture IP Protocols only and the second to capture NetBEUI protocol (for example). In this the first instance of HookPeek will display IP packets and the second instance of HookPeek will display NetBEUI packets.

 

Suggestions

Consider designs that employ a single principal application or service which is the only application that actually exercises the Rawether API to access NDIS MAC drivers. If other companion applications require packets, consider a design where the principle application provides these packets to the other applications.

 

Status

September 25, 2000There are no current plans to remove this limitation.

 

KeyWordsRAWETHER,WINDIS32, LIMITATION
CreatedSeptember 25, 2000
Last ReviewedSeptember 25, 2000

 


Rawether Does NOT Allow Multiple Applications To Receive The Same Packet 相关文章:
Rawether Does NOT Allow Multiple Applications To Receive The Same Packet 相关软件:
特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
转载请注明来源:http://www.xgdown.com