liio
驱动小牛
驱动小牛
  • 注册日期2005-12-24
  • 最后登录2022-06-16
  • 粉丝4
  • 关注1
  • 积分24分
  • 威望343点
  • 贡献值0点
  • 好评度171点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:5728回复:23

终于做好了无线WLAN的搜索程序.

楼主#
更多 发布于:2007-12-28 12:41
带个简单的数据包过滤.
个人感觉其实做事情只要去做,困难还是能克服的.

其实这个感觉很简单,自己处理MPQueryInformation和MPSetInformation就搞定了。

只是对802.11很陌生。平时本本的无线也很少开。

其中有个地方不是很明白。还请各位大牛指导下。(其实WDK有说。只是小弟英文不好,费力)

得到AP列表我是这样做的.先发送OID_802_11_BSSID_LIST_SCAN
再发送OID_802_11_BSSID_LIST。

为什么要这样做呢?

我看到很多朋友都是只发送OID_802_11_BSSID_LIST。
我测试的时候OID_802_11_BSSID_LIST_SCAN发送出去后会得到 GetLastError = 31的错误码。也就是连接到系统的设备未发挥作用。

测试环境:

Win XP SP2

T60 intel 3945ABG

nResult = PtQueryInformation(
        g_hDeviceHandle,
        OID_802_11_BSSID_LIST_SCAN,
        NULL,
        0,
        &ReturnedCount
        );

    Sleep(2000);

    ZeroMemory(pBssidList ,BufferLength);
    nResult = PtQueryInformation(
        g_hDeviceHandle,
        OID_802_11_BSSID_LIST,
        pBssidList,
        BufferLength,
        &ReturnedCount
        );

rangzh
驱动小牛
驱动小牛
  • 注册日期2005-04-24
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望150点
  • 贡献值0点
  • 好评度115点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-12-29 12:19
取决于下面的无线网卡驱动怎么做。如果下面的Miniport驱动会自己去做扫描,那么通常只需要发送OID_802_11_BSSID_LIST就可以了。

不过比较好的方式还是先发OID_802_11_BSSID_LIST_SCAN,让网卡驱动扫描一下,然后再发OID_802_11_BSSID_LIST。WZC也会发这两个,而且后一个一般是在前一个发后6s发

OID_802_11_BSSID_LIST_SCAN: 只支持Set, 不支持Query
OID_802_11_BSSID_LIST: 只支持Query, 不支持Set

因此第一个应该是PtSetInformation
liio
驱动小牛
驱动小牛
  • 注册日期2005-12-24
  • 最后登录2022-06-16
  • 粉丝4
  • 关注1
  • 积分24分
  • 威望343点
  • 贡献值0点
  • 好评度171点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2007-12-29 18:57
楼上好人啊!难得见到了。
您一说所有全部明白了。。
sylvia_jiang
驱动牛犊
驱动牛犊
  • 注册日期2008-01-12
  • 最后登录2008-03-26
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望4点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
地板#
发布于:2008-01-12 20:12
楼主 你是用WDK开发的吗?还是NDIS啊?或是其他开发包?
能发一分源码给我吗?jiangliu@routon.com
小女子万分感谢了!
xiaoxin86
驱动牛犊
驱动牛犊
  • 注册日期2007-11-12
  • 最后登录2011-04-19
  • 粉丝0
  • 关注0
  • 积分12分
  • 威望106点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2008-01-15 10:13
求教各位:如何打开无线网卡句柄呢?那个句柄我不知道如何设置!
cymvp
驱动牛犊
驱动牛犊
  • 注册日期2008-01-08
  • 最后登录2009-04-03
  • 粉丝0
  • 关注0
  • 积分200分
  • 威望21点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2008-01-17 00:38
楼主牛人啊!本人也在学无线驱程,只是无从下手,楼主也给我发一份大作吧!
cymvpn1@126.com
xiaoxin86
驱动牛犊
驱动牛犊
  • 注册日期2007-11-12
  • 最后登录2011-04-19
  • 粉丝0
  • 关注0
  • 积分12分
  • 威望106点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2008-01-18 23:18
我也做好了。windowsXP, DDK2003, 利用WINDDK\3790.1830\src\network\ndis\ndisprot的例子,ndisprot是一个网络协议驱动,打开ndisprot句柄,利用OpenNdisDevice把ndisprot句柄和你的无线网卡 devicename关联起来, 利用OID_802_11_BSSID_LIST_SCAN,OID_802_11_BSSID_LIST即可获得列表和相应的信号强度。仔细看ndisprot的例子和说明,应该没什么问题!这个问题我做了四天才做出来,不要放弃哦!
liio
驱动小牛
驱动小牛
  • 注册日期2005-12-24
  • 最后登录2022-06-16
  • 粉丝4
  • 关注1
  • 积分24分
  • 威望343点
  • 贡献值0点
  • 好评度171点
  • 原创分0分
  • 专家分0分
  • 社区居民
7楼#
发布于:2008-01-19 01:00
支持楼上,其实代码就在DDK中。
大家熟悉下协议。按照协议把OID下发下去。就能完成了
zzgzzzx
驱动牛犊
驱动牛犊
  • 注册日期2003-05-13
  • 最后登录2009-02-22
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望15点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2008-03-14 16:35
回 楼主(liio) 的帖子
楼上,你的源码能否邮一份给小弟,找了好久,都入不了门,太需要了,感谢(邮箱:zzgzzzx@gmail.com)
boywhp
驱动中牛
驱动中牛
  • 注册日期2007-08-09
  • 最后登录2015-04-24
  • 粉丝2
  • 关注0
  • 积分1105分
  • 威望515点
  • 贡献值0点
  • 好评度254点
  • 原创分1分
  • 专家分0分
9楼#
发布于:2008-03-17 19:24
哈哈!笨蛋
hwzhanghw
驱动牛犊
驱动牛犊
  • 注册日期2008-03-28
  • 最后登录2008-04-14
  • 粉丝0
  • 关注0
  • 积分90分
  • 威望10点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2008-03-28 15:08
请问楼主,是怎么引用NDIS.H的,我引用的时候总会报错,PCONTEXT未定义,是什么原因呢?
yma5423
驱动牛犊
驱动牛犊
  • 注册日期2008-03-16
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分60分
  • 威望7点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2008-03-29 18:58
哈哈,我也实现自动检测无线网络的功能了! 还真是挺简单--在你看明白以后!
hwzhanghw
驱动牛犊
驱动牛犊
  • 注册日期2008-03-28
  • 最后登录2008-04-14
  • 粉丝0
  • 关注0
  • 积分90分
  • 威望10点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2008-03-30 09:43
楼主或是哪位大哥能把程序发一份给我嘛,我在引用NDIS.H的时候总是出错,万分感谢!
hwzhanghw@163.com
yexin218
驱动牛犊
驱动牛犊
  • 注册日期2008-02-22
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分72分
  • 威望384点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2008-03-30 15:30
正在学习中啊
qq312873977
驱动牛犊
驱动牛犊
  • 注册日期2008-04-16
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望5点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2008-04-18 20:49
楼主,你的源码能否邮一份给小弟,找了好久,都入不了门,太需要了,感谢(邮箱:baili12345@163.com),我会感激涕零的!!
zlb628
驱动牛犊
驱动牛犊
  • 注册日期2008-05-10
  • 最后登录2008-10-20
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望4点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2008-05-14 22:00
请教楼主:
 你的WLAN搜索程序 能不能设置无线网络密码?我已经实现了WLAN无线网络列表,现在要编程实现设置无线网络密码,请问楼主能指点下吗?
我邮箱zlb628@126.com
谢谢
caicaileo
驱动牛犊
驱动牛犊
  • 注册日期2006-08-22
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望89点
  • 贡献值0点
  • 好评度43点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2008-05-15 21:00
hwzhanghw

你的问题是要定义宏#define ndis5好象是记不清了 你仔细找头文件
stonne
驱动牛犊
驱动牛犊
  • 注册日期2008-05-16
  • 最后登录2008-07-02
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望14点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2008-05-16 22:49
原来也很简单嘛~
一定要活着!
jw212
驱动牛犊
驱动牛犊
  • 注册日期2008-05-08
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望64点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2008-05-19 11:36
vista下的呢,有人做过没有啊?
capitel
驱动牛犊
驱动牛犊
  • 注册日期2004-09-07
  • 最后登录2008-11-15
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2008-07-20 22:32
http://www.codeproject.com/KB/IP/wlanscan_ndis.aspx?fid=476748&df=90&mpp=25&noise=3&sort=Position&view=Quick&select=2458800中有一个源代码的例子,可以下载,大家可以去看看.
BS,不提供源代码只是片言支角的.
上一页
游客

返回顶部