阅读:1375回复:0
如何设置OID_802_11_SSID?
DDK里写道:
Setting an SSID results in: 1.disassociating the NIC from any SSID with which it might be associated. 2.turning on the radio if the radio is OFF. 3.setting the SSID with the specified value or setting it to any SSID if the SSID is not specified. 4.attempting to associate the NIC with the new SSID. 我对这段话的理解是:对SSID进行Set操作,可以使其从当前相连的服务集中断开,再连到指定的服务集上。 于是在MiniportCheckForHang函数中添加以下代码: //WLAN是我声明的一个NDIS_802_11_SSID结构变量 //"WLAN"是服务集名字 WLAN.SsidLength = 4; NdisMoveMemory(WLAN.Ssid,"WLAN",4); 然后调用MPSetInformation: Status=MPSetInformation(MiniportAdapterContext,OID_802_11_SSID,(PVOID)&WLAN,sizeof(NDIS_802_11_SSID),pBytesRead,pBytesNeeded); 在这句后打印Status状态为NDIS_STATUS_PENDING, 在PtRequestComplete中截获这个设置,Status有时为NDIS_STATUS_SUCCESS,有时为NDIS_STATUS_INVALID_OID,两者比例为1:2,而且始终是按照:NDIS_STATUS_INVALID_OID,NDIS_STATUS_INVALID_OID,NDIS_STATUS_SUCCESS的顺序出现; 可是我用WinXP的无线网络连接看到结果是Wireless NIC始终连在另一个服务集上。 还请各位朋友多多指点,谢谢。 :) [编辑 - 3/22/04 by dweep] |
|
|