- 浏览: 958131 次
- 性别:
- 来自: 珠海
文章分类
最新评论
-
Yunjey:
Yunjey 写道这样子的话、grid中的editable如何 ...
Flex创建可编辑以及分页的DataGrid -
Yunjey:
这样子的话、grid中的editable如何设置啊?!
Flex创建可编辑以及分页的DataGrid -
di1984HIT:
写的很好~~
JCalendar组件 -
sanny81:
此文真棒!感谢一路风尘的奉献!
但我有一疑 ...
Filter发送自定义数据详解 -
umgsai:
求完整demo umgsai@126.com
Flex和Jsp创建用户登入系统
所有的测试流程表明,程序已经成功的创建新的数据包,然后调用NdisFSendNetBufferLists发送数据。更令人不甚明白的是,在本地的有线网卡上可以成功的发送出去到目的地,就是单纯无线网卡没有按照约定发送数据,所以一个可以怀疑的理由就是我们的约定出错了。调试显示所有的步骤都跟有线的一样,没有什么出路。一直觉得不可思议。
VOID NdisFSendNetBufferLists( IN NDIS_HANDLE NdisFilterHandle, IN PNET_BUFFER_LIST NetBufferLists, IN NDIS_PORT_NUMBER PortNumber, IN ULONG SendFlags );
但是回到家里仔细看看了函数的其中一个参数 portNumber.这里的默认值是0.然后问题可能出在这里:
1. 如果你只有一张网卡激活使用,通常情况下,这种网卡的port number 就是0.这也就是解释为什么如果只有一张有线网卡,可以正常发送数据,或者是在两张网卡的情况下,本来两种都要发送数据的,结果却捕捉到一个数据。
2. 曾记得上次在创建一个新的Mac Entity的时候,申请的端口已经是1了。所以我怀疑如果一台机器如果有两张网卡同时使用,那么是不是每一张使用的Ndis prot number 不是一样的,其中一张自然是0,那么另外一张就可能是1了。
如果不小心设置了第二张网卡来发送数据,可是prot number填充的是0,估计就有问题了。我现在对Ndis Port不是很明白里面的架构:是每张网卡对应一个miniprot driver?然后各自激活port,还是每台机器就一个整体miniprot driver,共同分配port number,如果是第二种情况,那么我担忧的就不是多余的了。
改天抽空验证:方法应该是调用OID_GEN_ENUMERATE_PORTS
As a query, NDIS and overlying drivers use the OID_GEN_ENUMERATE_PORTS OID to determine the characteristics of the active NDIS ports that are associated with an underlying miniport adapter.
返回的结果保存在一个NDIS_PORT_ARRAY结构中
typedef struct _NDIS_PORT_ARRAY { NDIS_OBJECT_HEADER Header; ULONG NumberOfPorts; ULONG OffsetFirstPort; ULONG ElementSize; NDIS_PORT_CHARACTERISTICS Ports[1]; } NDIS_PORT_ARRAY, *PNDIS_PORT_ARRAY;
NumberOfPorts记录的是port 的个数。
typedef struct _NDIS_PORT_CHARACTERISTICS { NDIS_OBJECT_HEADER Header; NDIS_PORT_NUMBER PortNumber; ... }
这个数据结构中的ProtNumber表示的就是Port的数值了,默认是0,最大为0xFFFFFF.
================================================================================
刚才测试了,发现应该不是端口的问题,反而有可能是数据包的格式有问题。老师说Native Wifi的数据包格式会与802.3不一样。所以估计要重新设计那个Ethernet Header的格式??
===============================================================================
我问了有些人,他们说值一样的。所以我继续做了测试,那么接下来的怀疑就落在了内容得填充上了。是否无线网卡的mac地址如果不是对应本张网卡就发送不了呢? 有线的以太网卡是可以冒填的。所以我重新认真填写了一遍mac源地址。这下子就OK了。
具体的信息为:
Frame: Number = 1475, Captured Frame Length = 130,
MediaType = WiFi
- WiFi: [Unencrypted Data] .T...., (I)
- MetaData:
Version: 2 (0x2)
Length: 32 (0x20)
- OpMode: Extensible Station Mode
StationMode: (...............................0) Not Station Mode
APMode: (..............................0.) Not AP Mode
ExtensibleStationMode: (.............................1..) Extensible Station Mode
Unused: (.0000000000000000000000000000...)
MonitorMode: (0...............................) Monitor Mode
Flags: 4294967295 (0xFFFFFFFF)
RemData: Outbound
TimeStamp: 03/31/2010, 09:47:58 AM
- FrameControl: .T.... (0x0801)
Version: (..............00) 0
Type: (............10..) Data
SubType: (........0000....) Data
DS: (......01........) STA to DS via AP
MoreFrag: (.....0..........) No
Retransmission: (....0...........) No
PowerMgt: (...0............) Active Mode
MoreData: (..0.............) No
Encrypted: (.0..............) No
Order: (0...............) Unordered
- Data:
Duration: 32768 (0x8000)
- ClientToAP:
BSSID: Cisco Systems, Inc. 549143
Source: 002586 EB7B0C
Destination: USI 5B1430
- SequenceControl: Sequence Number = 0
FragmentNumber: (............0000) 0
SequenceNumber: (000000000000....) 0
- LLC: Unnumbered(U) Frame, Command Frame, SSAP = SNAP(Sub-Network Access Protocol), DSAP = SNAP(Sub-Network Access Protocol)
- DSAP: SNAP(Sub-Network Access Protocol), Individual DSAP
Address: (1010101.) SNAP(Sub-Network Access Protocol)
IG: (.......0) Individual Address
- SSAP: SNAP(Sub-Network Access Protocol), Command
Address: (1010101.) SNAP(Sub-Network Access Protocol)
CR: (.......0) Command Frame
- Unnumbered: UI - Unnumbered Information
MMM: (000.....) 0
PF: (...0....) Poll Bit - No Response Solicited
MM: (....00..)
Type: (......11) Unnumbered(U) Frame
- Snap: EtherType = EAPOL/802.1x,
OrgCode = XEROX CORPORATION
OrganizationCode: XEROX CORPORATION, 0(0x0000)
EtherType: EAPOL/802.1x, 34958(0x888E)
- Eapol: EAPOL-Start , Length = 515
Version: 0 (0x0)
Type: EAPOL-Start, 1(0x01)
BodyLength: 515 bytes
EAPOLTypeError: EAPOL Type Error
- remainder: Length = 62
Data: Binary Large Object (62 Bytes)
---------注意
[USI
5B1430]很奇怪,本來一連串的mac地址前面變成了USI字母,我以為那裡出錯了。一查才知道這種網卡芯片應該是USI公司的產品,即每個生成廠商都會以某個地址段為標誌。具体那些MAC地址分配给哪些厂商,可在 IEEE Standards Association的查询网址内查询得知。
http://standards.ieee.org/regauth/oui/index.shtml
发表评论
-
Filter驱动:过滤(修改)接受数据包
2010-04-20 16:18 9215Filter驱动可以实现简单的防火墙功能。它可以过滤所有接收到 ... -
Ndis过滤驱动:拷贝NetBufferList数据
2010-04-19 22:40 9449今天我们来看看如何拷贝NBL中的数据。有时候需要更改数据包中的 ... -
在Filter驱动内核中获取IP地址
2010-04-18 01:48 3845项目开发中有时候需要在Filter驱动中获取有效地Unic ... -
如何在内核中获得当前系统时间
2010-04-16 15:08 2659在 Windows NT 内核中你是无法使用 tim ... -
Filter发送自定义数据详解
2010-04-16 10:30 5682... -
DebugPrint 格式说明符
2010-04-13 19:46 17241) 直接打印字符串。 DbgPrint(“Hello ... -
WDK+Visual Studio 2008配置编译驱动
2010-04-12 23:36 5519Introduction As it is known, ... -
疑问:关于内存释放
2010-04-12 21:33 1408今天碰到一个比较棘手的内存处理问题。 首先来看一个数据结构: ... -
Windows NT 驱动程序开发人员提示 -- 应注意避免的事项
2010-04-10 11:32 2284原讨论链接: http://community.cs ... -
关于DeviceIoControl实现异步的笔记【2】
2010-04-09 23:17 5040前面我们谈到了关于异步I/O的实现:关于DeviceIoCon ... -
关于DeviceIoControl实现异步的笔记【1】
2010-04-08 22:26 11634一直所做的都是同步实现的。当然很多情况这并不是很好的解决问题。 ... -
驱动和应用层的异步通信
2010-04-08 20:55 5337作 者: sislcb时 间: 2008-01-28,11:1 ... -
Windows系统编程之异步I/O和完成端口
2010-04-08 19:40 2222一、 同步I/O和异步I/O ... -
纵横捭阖C++之从异步谈起
2010-04-08 19:31 3138一般来说,简单的异步(Asynchronous)调用是这样一种 ... -
使用DeviceIoControl通信
2010-04-04 22:53 7844在很多时候,某些用户需要与底层驱动有一个交互式的操作,所 ... -
在驱动中使用链表
2010-04-03 14:06 3238文章作者:grayfox 作 ... -
疑问:数据包Length增大的原因
2010-04-01 14:35 1326现象: 自己定义一个仅含有Ethernet Header的数 ... -
InsertHeadList和CONTAINING_RECORD
2010-03-29 16:36 3718LIST_ENTRY定义一个双向链表的数据结构: typed ... -
如何区分不同的Filter Module Instance
2010-03-29 14:50 1504前文 说到如何区分不同Filter Module Inst ... -
大数据是否需要封装在多个MDL中发送
2010-03-27 21:40 2462前段时间,我们已经解决如何发送自定义的网络数据。那么接下来要做 ...
相关推荐
无线网卡驱动32位无线网卡驱动32位无线网卡驱动32位无线网卡驱动32位无线网卡驱动32位无线网卡驱动32位无线网卡驱动32位无线网卡驱动32位无线网卡驱动32位无线网卡驱动32位无线网卡驱动32位无线网卡驱动32位无线网卡...
无线宽带客户端是中国电信为您提供的网络接入客户端,您可以使用本客户端通过中国电信无线宽带(WLAN)、无线宽带(3G)、无线宽带(1X)网络接入中国电信无线宽带互联网。 注:您需要使用配置有符合802.11b/g标准...
usb万能无线网卡驱动哦usb万能无线网卡驱动哦usb万能无线网卡驱动哦usb万能无线网卡驱动哦usb万能无线网卡驱动哦usb万能无线网卡驱动哦usb万能无线网卡驱动哦usb万能无线网卡驱动哦usb万能无线网卡驱动哦usb万能无线...
无线网卡配置无线网卡配置无线网卡配置无线网卡配置
联想工程师专用小工具 无线网卡开关切换工具V3.10.1联想工程师专用小工具 无线网卡开关切换工具V3.10.1联想工程师专用小工具 无线网卡开关切换工具V3.10.1联想工程师专用小工具 无线网卡开关切换工具V3.10.1联想...
无线网卡
3Com(3CRPAG175B)无线笔记本网卡驱动1.1.0.21 3Com(3CRDAG675B)无线PCI网卡驱动包1.1.0.21 3Com(3CRGPC10075)无线笔记本网卡驱动包1.0.0.0 Agere无线网卡驱动7.82 Airgo系列无线网卡驱动 Aopen建基系列无线网卡驱动 ...
Intel无线网卡驱动是一款适用于多型号网卡的驱动程序,用户可以安装此款驱动使用网卡,多型号随意挑选你需要的驱动程序安装,使用,需要的用户就下载吧!Intel网卡驱动简介:intel服务器无线网卡驱动是用于intel网卡...
万能无线网卡驱动,装机必备,集成市面上几乎所有的无线网卡驱动,无需联网,一键搞定
本程序实现了向固定ip发送数据的程序,通过创建socket,连接,发送实现数据传输。编译通过,有助于初学者理解socket通信的简单原理
黑苹果安装中 INTEL无线网卡的驱动!有两种驱动,请选择相应的版本加以应用!黑苹果系统 macOS 驱动英特尔无线网卡,需要准备和下载的内容,AirportItlwm,HeliPort 和 itlwm,点下面的github下载。 AirportItlwm ...
前段时间硬盘安装了CentOS5.5 但台式机用的是无线网卡,其驱动程序没有Linux版的,在此提供 madwifi驱动程序包给需要的朋友
国内品牌:无线网卡,无线固话 解锁脚本 中兴,华为,敏讯等无线产品.
无线网卡分类以及USB无线网卡的选择分析
无线网卡驱动安装
万能无线网卡驱动万能无线网卡驱动万能无线网卡驱动
Windows8系统Win8系统下无线网卡
LINUX下安装无线网卡驱动程序
虚拟机BT5无线网卡安装说明: 1、查看你的无线网卡是否支持; 2、虚拟机的设置(很重要); 3、USB无线网卡插入顺序(重要); 4、启动Wicd。
无线网卡怎么设置?.docx