7769|10

68

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

WinCe Wifi配置 [复制链接]

大家好, 关于wifi的配置, 下面黑体部分: g_dwOutput & INTF_BSSID == 0????为什么啊?望高人指教!


部分打印信息:
In flags used       = [0x7fffffff]
dwOutput 打印信息   =  [0x000fffff]


代码如下:
    BOOL GetFirstWirelessCard(  )
{
        g_WirelessCard1[0] = L'\0';
        /*
        if( NULL == pCard ){
                RETAILMSG(_DEBUG_WIFI_, (TEXT(" pCard == NULL, return ! \r\n ")));
                return FALSE;
        }
        */
        INTFS_KEY_TABLE IntfsTable;
    IntfsTable.dwNumIntfs = 0;
    IntfsTable.pIntfs = NULL;

    // 枚举系统中可用的无线网卡
    DWORD dwStatus = WZCEnumInterfaces(NULL, &IntfsTable);
       
        RETAILMSG(_DEBUG_WIFI_, (TEXT(" wifi.cpp, GetFirstWirelessCard(), dwStatus = %d \r\n "), dwStatus));

    if (dwStatus != ERROR_SUCCESS)
    {
        RETAILMSG(_DEBUG_WIFI_, (TEXT("WZCEnumInterfaces() error 0x%08X\n"),dwStatus));
        return FALSE;
    }

    // 判断无线网卡的数量,可以根据无线网卡数量来枚举出所有可用的无线网卡
        RETAILMSG(_DEBUG_WIFI_, (TEXT(" wifi.cpp, GetFirstWirelessCard(), IntfsTable.dwNumIntfs = %d \r\n "), IntfsTable.dwNumIntfs));
    if (!IntfsTable.dwNumIntfs)
    {
        RETAILMSG(_DEBUG_WIFI_, (TEXT("System has no wireless card.\n")));
        return FALSE;
    }
        wcsncpy(g_WirelessCard1, IntfsTable.pIntfs[0].wszGuid, MAX_PATH-1);
   // _tcscpy(pCard, IntfsTable.pIntfs[0].wszGuid);
        wprintf(L"wireless card found: %s\n", g_WirelessCard1);
    LocalFree(IntfsTable.pIntfs);

    return TRUE;
}

void
PrintMacAddress
// some RAW_DATA is a MAC ADDRESS, this function is for printing MAC ADDRESS
(
    IN PRAW_DATA prdMAC
)
{
    if (prdMAC == NULL || prdMAC->dwDataLen == 0)
        _tprintf(L"");
    else if(prdMAC->dwDataLen != 6)
        _tprintf(L"");
    else
    {
        _tprintf(L"%02X:%02X:%02X:%02X:%02X:%02X",
            prdMAC->pData[0],
            prdMAC->pData[1],
            prdMAC->pData[2],
            prdMAC->pData[3],
            prdMAC->pData[4],
            prdMAC->pData[5]);
    }
}   // PrintMacAddress()



BOOL GetWirelessCardInfo( )
{
    //TCHAR *szWiFiCard = NULL;

    // 初始化无线网卡信息
        RETAILMSG(1, (TEXT(" wifi.cpp,  GetWirelessCardInfo() ...... \r\n")));
    WCHAR *szWiFiCard = g_WirelessCard1;
        memset(&g_Intf, 0, sizeof( INTF_ENTRY_EX ));
    g_Intf.wszGuid = szWiFiCard;
        g_dwOutput           = 0;
        _tprintf(L" wifi.cpp,  g_Intf->wszGuid: = %s , g_WirelessCard1 = %s .....\r\n",
                                        g_Intf.wszGuid,
                                        g_WirelessCard1 );
    // 查询无线网卡信息
   
        DWORD dwStatus = WZCQueryInterfaceEx(
                                                        NULL,
                                                        INTF_ALL,
                                                        &g_Intf,
                                                        &g_dwOutput );

    if (dwStatus != ERROR_SUCCESS)
    {
        RETAILMSG(_DEBUG_WIFI_, (TEXT("WZCQueryInterfaceEx, GetWirelessCardInfo(), GetLastError( %d ) \n"), GetLastError()));
        return FALSE;
    }

    _tprintf(L"WZCQueryInterfaceEx() for %s\n",   szWiFiCard);
    _tprintf(L"In flags used       = [0x%08x]\n", INTF_ALL);
    _tprintf(L"Returned out flags  = [0x%08x]\n", g_dwOutput);
       

        _tprintf(L"wzcGuid             = [%s]\n", g_Intf.wszGuid);
    //        Description
    _tprintf(L"wzcDescr            = [%s]\n", g_Intf.wszDescr);



        if ( g_dwOutput & INTF_BSSID)
    {
        _tprintf(L"BSSID = %s \r\n", INTF_BSSID );
        PrintMacAddress(&g_Intf.rdBSSID);

        PRAW_DATA prdMAC = &g_Intf.rdBSSID;
        if (
            prdMAC == NULL ||
            (prdMAC->dwDataLen == 0) ||
            (prdMAC->dwDataLen != 6) ||
            (   !prdMAC->pData[0] &&
                !prdMAC->pData[1] &&
                !prdMAC->pData[2] &&
                !prdMAC->pData[3] &&
                !prdMAC->pData[4] &&
                !prdMAC->pData[5]     )
                                )
                {
            _tprintf(L" (this wifi card is not associated to any) \r\n");
                        return FALSE;
                }
        else
                {
            _tprintf(L" (this wifi card is associated state) \r\n");
                        return FALSE;
                }
    }
    else
        {
        _tprintf(L"BSSID = (not connected) \r\n");
                return FALSE;

        }


    return TRUE;
}
int _tmain()
{
    if ( GetFirstWirelessCard( ) ){
          return 0;
    }
    if ( !GetWirelessCardInfo( )){
        return 0;
    }
}
}
此帖出自WindowsCE论坛

最新回复

喜欢楼主这种贴代码的精神,但是我没看到出现的问题呀,呵呵…  详情 回复 发表于 2010-2-9 16:10
点赞 关注
 

回复
举报

73

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
喜欢楼主这种贴代码的精神,但是我没看到出现的问题呀,呵呵…
此帖出自WindowsCE论坛
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
帮顶下。

MARK,学习下。
此帖出自WindowsCE论坛
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

4
 
关注一下,过段时间我可能也要搞WIFI
此帖出自WindowsCE论坛
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

5
 
正在学习过程中
此帖出自WindowsCE论坛
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

6
 
现在已经可以扫描到很多AP了, 但是在连接的时候:WZCSetInterfaceEx() ,

GetLastError() 返回 13??

奇怪 了, 昨天晚上 这个是成功的, 怎么一下又不行了??? 求助!!! 返回 13 会是什么原因呢?
此帖出自WindowsCE论坛
 
 
 

回复

95

帖子

0

TA的资源

一粒金砂(中级)

7
 
结果为13表示数据无效
此帖出自WindowsCE论坛
 
 
 

回复

58

帖子

0

TA的资源

一粒金砂(初级)

8
 
帮顶
此帖出自WindowsCE论坛
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

9
 
来学习的!帮顶!
此帖出自WindowsCE论坛
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

10
 
弄过wifi但没成功
关注。。。
此帖出自WindowsCE论坛
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

11
 
喜欢楼主这种贴代码的精神,但是我没看到出现的问题呀,呵呵…
此帖出自WindowsCE论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表