阅读:6134回复:23
终于做好了无线WLAN的搜索程序.
带个简单的数据包过滤.
个人感觉其实做事情只要去做,困难还是能克服的. 其实这个感觉很简单,自己处理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 ); ![]() |
|
沙发#
发布于:2009-07-08 11:54
这个功能Windows已经帮我们全部做好了,你完全不需要自己写任何Protocol driver。你要做的,就是写个好的GUI,然后呼叫Native Wifi Functions。
|
|
板凳#
发布于:2009-05-31 17:51
各位大虾: 我最近在学习usb wlan 开发, 可是在 调用 IoCallDriver 的时候返回 错误代码: 0xC0000010, 找了很久, 没有找出原因, 请大虾们指教啊, 代码如下:
NTSTATUS usbwifiSubmitUrbSynch( IN PUSBWIFI_ADAPTER Adapter, IN PURB Urb ) { NTSTATUS status; PIRP irp; IO_STATUS_BLOCK ioStatus; KEVENT event; PIO_STACK_LOCATION irpStack; usbwifiDebugPrint(DBG_IO, DBG_INFO, __FUNCTION__"++"); KeInitializeEvent(&event, NotificationEvent, FALSE); irp = IoBuildDeviceIoControlRequest( IOCTL_INTERNAL_USB_SUBMIT_URB, //IOCTL_INTERNAL_USB_SUBMIT_URB, Adapter->LowerDeviceObject, NULL, 0, NULL, 0, TRUE, &event, &ioStatus ); if (irp != NULL) { irpStack = IoGetNextIrpStackLocation(irp); irpStack->Parameters.Others.Argument1 = Urb; status = IoCallDriver(Adapter->LowerDeviceObject, irp); if (status == STATUS_PENDING) { KeWaitForSingleObject( &event, Executive, KernelMode, FALSE, NULL ); status = ioStatus.Status; } } else { status = STATUS_INSUFFICIENT_RESOURCES; } usbwifiDebugPrint(DBG_IO, DBG_INFO, __FUNCTION__"--. STATUS %x", status); return status; } |
|
|
地板#
发布于:2009-03-11 09:18
已经做好了,解决了问题。
|
|
地下室#
发布于:2009-03-02 20:42
我用ntddndis.h头文件的时候,出现错误,如下
我用这个头文件的时候,出现的错误是这样的d:\winddk\2600\inc\wxp\ntddndis.h(101) : error C2146: syntax error : missing ';' before identifier 'Offset' d:\winddk\2600\inc\wxp\ntddndis.h(101) : error C2501: 'ULONG_PTR' : missing storage-class or type specifiers d:\winddk\2600\inc\wxp\ntddndis.h(101) : error C2501: 'Offset' : missing storage-class or type specifiers 请问是什么原因啊?我用的是VC++6.0和DDK(XP版本的) |
|
5楼#
发布于: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,不提供源代码只是片言支角的. |
|
6楼#
发布于:2008-05-19 11:36
vista下的呢,有人做过没有啊?
|
|
7楼#
发布于:2008-05-16 22:49
原来也很简单嘛~
|
|
|
8楼#
发布于:2008-05-15 21:00
hwzhanghw
你的问题是要定义宏#define ndis5好象是记不清了 你仔细找头文件 |
|
9楼#
发布于:2008-05-14 22:00
|
|
10楼#
发布于:2008-04-18 20:49
楼主,你的源码能否邮一份给小弟,找了好久,都入不了门,太需要了,感谢(邮箱:baili12345@163.com),我会感激涕零的!!
|
|
11楼#
发布于:2008-03-30 15:30
正在学习中啊
|
|
12楼#
发布于:2008-03-30 09:43
楼主或是哪位大哥能把程序发一份给我嘛,我在引用NDIS.H的时候总是出错,万分感谢!
hwzhanghw@163.com |
|
13楼#
发布于:2008-03-29 18:58
哈哈,我也实现自动检测无线网络的功能了! 还真是挺简单--在你看明白以后!
|
|
14楼#
发布于:2008-03-28 15:08
请问楼主,是怎么引用NDIS.H的,我引用的时候总会报错,PCONTEXT未定义,是什么原因呢?
|
|
15楼#
发布于:2008-03-17 19:24
哈哈!笨蛋
|
|
16楼#
发布于:2008-03-14 16:35
回 楼主(liio) 的帖子
楼上,你的源码能否邮一份给小弟,找了好久,都入不了门,太需要了,感谢(邮箱:zzgzzzx@gmail.com) |
|
17楼#
发布于:2008-01-19 01:00
支持楼上,其实代码就在DDK中。
大家熟悉下协议。按照协议把OID下发下去。就能完成了 |
|
18楼#
发布于: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的例子和说明,应该没什么问题!这个问题我做了四天才做出来,不要放弃哦!
|
|
19楼#
发布于:2008-01-17 00:38
楼主牛人啊!本人也在学无线驱程,只是无从下手,楼主也给我发一份大作吧!
cymvpn1@126.com |
|
上一页
下一页