- 浏览: 970727 次
- 性别:
- 来自: 珠海
文章分类
最新评论
-
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 9310Filter驱动可以实现简单的防火墙功能。它可以过滤所有接收到 ... -
Ndis过滤驱动:拷贝NetBufferList数据
2010-04-19 22:40 9556今天我们来看看如何拷贝NBL中的数据。有时候需要更改数据包中的 ... -
在Filter驱动内核中获取IP地址
2010-04-18 01:48 3892项目开发中有时候需要在Filter驱动中获取有效地Unic ... -
如何在内核中获得当前系统时间
2010-04-16 15:08 2717在 Windows NT 内核中你是无法使用 tim ... -
Filter发送自定义数据详解
2010-04-16 10:30 5756... -
DebugPrint 格式说明符
2010-04-13 19:46 17631) 直接打印字符串。 DbgPrint(“Hello ... -
WDK+Visual Studio 2008配置编译驱动
2010-04-12 23:36 5561Introduction As it is known, ... -
疑问:关于内存释放
2010-04-12 21:33 1452今天碰到一个比较棘手的内存处理问题。 首先来看一个数据结构: ... -
Windows NT 驱动程序开发人员提示 -- 应注意避免的事项
2010-04-10 11:32 2321原讨论链接: http://community.cs ... -
关于DeviceIoControl实现异步的笔记【2】
2010-04-09 23:17 5101前面我们谈到了关于异步I/O的实现:关于DeviceIoCon ... -
关于DeviceIoControl实现异步的笔记【1】
2010-04-08 22:26 11742一直所做的都是同步实现的。当然很多情况这并不是很好的解决问题。 ... -
驱动和应用层的异步通信
2010-04-08 20:55 5405作 者: sislcb时 间: 2008-01-28,11:1 ... -
Windows系统编程之异步I/O和完成端口
2010-04-08 19:40 2316一、 同步I/O和异步I/O ... -
纵横捭阖C++之从异步谈起
2010-04-08 19:31 3216一般来说,简单的异步(Asynchronous)调用是这样一种 ... -
使用DeviceIoControl通信
2010-04-04 22:53 7903在很多时候,某些用户需要与底层驱动有一个交互式的操作,所 ... -
在驱动中使用链表
2010-04-03 14:06 3289文章作者:grayfox 作 ... -
疑问:数据包Length增大的原因
2010-04-01 14:35 1365现象: 自己定义一个仅含有Ethernet Header的数 ... -
InsertHeadList和CONTAINING_RECORD
2010-03-29 16:36 3753LIST_ENTRY定义一个双向链表的数据结构: typed ... -
如何区分不同的Filter Module Instance
2010-03-29 14:50 1537前文 说到如何区分不同Filter Module Inst ... -
大数据是否需要封装在多个MDL中发送
2010-03-27 21:40 2516前段时间,我们已经解决如何发送自定义的网络数据。那么接下来要做 ...
相关推荐
无线网卡配置 在 Linux 命令行界面中,手动配置无线网卡需要使用 iwconfig 和 ifconfig 等命令。下面详细介绍配置无线网卡的步骤和相关知识点: 1. 无线网卡驱动安装和识别:在开始配置无线网卡之前,需要确保无线...
无线网卡驱动32位无线网卡驱动32位无线网卡驱动32位无线网卡驱动32位无线网卡驱动32位无线网卡驱动32位无线网卡驱动32位无线网卡驱动32位无线网卡驱动32位无线网卡驱动32位无线网卡驱动32位无线网卡驱动32位无线网卡...
本文将深入探讨无线网卡的分类,特别聚焦于USB无线网卡的选择分析,旨在为用户提供全面的指导,帮助其在众多产品中做出明智决策。 ### 无线网卡的分类 无线网卡主要依据接口类型进行分类,常见的有PCI、USB、...
acer 4743G是一款由宏碁公司推出的笔记本电脑型号,其硬件配置包括了无线网卡,以便用户能够通过Wi-Fi连接到互联网。在使用过程中,有时可能需要更新或重新安装无线网卡驱动程序以解决网络连接问题或者提升设备性能...
在这种情况下,无线网卡共享就是无线共享的一种形式,通过无线信号传输网络连接,方便多设备间的数据传输和共享网络接入。 文件名WLAN_Intel_(Condor Peak)_12.5.0.57_XPx86x64暗示这可能是一款适用于Intel无线网卡...
无线网卡驱动开发是计算机硬件与软件交互的关键环节,它使得操作系统能够识别并控制无线网卡,进而实现网络连接。这个“无线网卡的驱动开发数据包”包含了开发者需要了解和掌握的重要信息,可能是源代码、文档、示例...
开博尔150Mbps无线网卡驱动程序是专为开博尔品牌的一款150兆比特每秒(Mbps)无线网卡设计的驱动软件。这个驱动包是确保该无线网卡能正常运行并实现最佳网络性能的关键。下面将详细阐述无线网卡、驱动程序以及如何...
无线网卡驱动程序则是专门针对无线网卡设备的驱动,它告诉操作系统如何与特定型号的无线网卡通信,实现数据的接收和发送。无线网卡驱动通常包含以下功能: 1. **初始化和配置**:驱动程序在设备启动时初始化硬件,...
标题“8822ce无线网卡驱动”指的是为8822CE型号的无线网卡提供的驱动程序。无线网卡是一种硬件设备,允许计算机在没有有线连接的情况下通过WiFi接入互联网。8822CE是一款常见的USB接口无线网卡,广泛应用于台式机和...
- 部分无线网卡,如TL-WN821N1.0/2.0、TL-WN822N1.0等,因暂时缺乏Win8系统驱动,可能无法在Win8环境下正常运行。 - 在手动安装驱动程序时,应确保从官方网站或可靠来源下载,避免潜在的安全风险。 - 驱动程序版本应...
无线网卡的工作原理涉及射频信号的发送与接收。当设备通过无线网卡连接到互联网时,数据包会被编码成射频信号并通过天线发射出去;同样地,接收到的射频信号会被解码为数据包并传递给设备处理。这一过程涉及到的关键...
1. **无线网卡驱动的作用**:无线网卡驱动程序是操作系统和硬件之间的桥梁,它解释来自操作系统的指令,并将其转化为硬件设备能理解的语言。在开博尔150M无线网卡的情况下,驱动程序负责处理网络连接相关的任务,如...
联想工程师专用小工具 无线网卡开关切换工具V3.10.1联想工程师专用小工具 无线网卡开关切换工具V3.10.1联想工程师专用小工具 无线网卡开关切换工具V3.10.1联想工程师专用小工具 无线网卡开关切换工具V3.10.1联想...
1. 等待 bPlus 条码秤开机 1 分钟后,再开始操作,提前操作将无法进入无线设置菜单,因为无线网卡启动时间大约 50 秒。 2. 秤上按【菜单 246813 确认 252 确认】进入无线网卡设置选项,秤上显示如下: 中文显示屏 ...
没有合适的驱动,无线网卡无法正常工作,可能表现为无法识别网络信号、连接不稳定或者完全无法连接。因此,拥有一个全面且易用的驱动集合显得至关重要。 "万能无线网卡驱动"的特点在于其“万能”二字,它涵盖了多种...
本文将深入探讨三种主要类型的网卡:有线网卡、无线网卡和虚拟网卡,以及它们各自的特点和应用场景。 有线网卡,也称为以太网卡,是最早被广泛使用的网卡类型。它通过物理的以太网电缆(如RJ-45接口)与局域网(LAN...
1. 设备驱动:这是核心部分,包含了与硬件交互的代码,使得操作系统可以管理无线网卡的发送和接收数据、设置无线网络参数等。 2. 用户界面:一些驱动可能包含图形用户界面,方便用户配置无线网络设置,如SSID选择、...
usb万能无线网卡驱动哦usb万能无线网卡驱动哦usb万能无线网卡驱动哦usb万能无线网卡驱动哦usb万能无线网卡驱动哦usb万能无线网卡驱动哦usb万能无线网卡驱动哦usb万能无线网卡驱动哦usb万能无线网卡驱动哦usb万能无线...
无线网卡驱动程序是操作系统与硬件设备(即无线网卡)之间的桥梁,它翻译了操作系统发送的指令,使得无线网卡能够理解并执行这些操作。同样,它也负责将无线网卡接收到的数据转换成操作系统可以处理的形式。没有合适...
在Linux环境下安装无线网卡驱动程序是一项常见的任务,尤其对于那些希望在开源操作系统上充分利用其硬件功能的用户而言。本文将深入探讨如何在Linux系统中安装无线网卡驱动,包括必要的准备工作、具体步骤以及可能...