wince中wifi的实现 只需几步即可

本文详细介绍了在Windows CE系统中如何获取无线网卡名称并查询无线AP的相关信息,包括使用WZCEnumInterfaces和WZCQueryInterfaceEx函数进行操作,并展示了打印配置列表的代码示例。
部署运行你感兴趣的模型镜像

1、获取wince设备中的无线网卡名称

因为一般设备只有一个无线网卡,因此我们只需要获取第一个无线网卡的名称即可

TCHAR g_WirelessCard1[MAX_PATH];

void GetFirstWirelessNetworkCard()

{

g_WirelessCard1[0] = L'\0';
INTFS_KEY_TABLE IntfsTable;
IntfsTable.dwNumIntfs = 0;
IntfsTable.pIntfs = NULL;


DWORD dwStatus = WZCEnumInterfaces(NULL, &IntfsTable);


if(dwStatus != ERROR_SUCCESS)
{
return;        
}

if(!IntfsTable.dwNumIntfs)
{
return;
}
wcsncpy(g_WirelessCard1, IntfsTable.pIntfs[0].wszGuid, MAX_PATH-1);
// need to free memory allocated by WZC for us.
LocalFree(IntfsTable.pIntfs);

}   // GetFirstWirelessNetworkCard

2、根据我们所得到的无线网卡的名称通过无线网卡来获取无线ap的名称及相关信息

void DoQuery()
{
GetFirstWirelessNetworkCard();
if(!*g_WirelessCard1)    // wifi card not found
return;
szWiFiCard = g_WirelessCard1;


INTF_ENTRY_EX Intf;
DWORD dwOutFlags;
memset(&Intf, 0x00, sizeof(INTF_ENTRY_EX));
Intf.wszGuid = szWiFiCard;


DWORD dwStatus = WZCQueryInterfaceEx(
NULL,
INTF_ALL,
&Intf,
&dwOutFlags);


if (dwStatus != ERROR_SUCCESS)
{
return;
}

if (dwOutFlags & INTF_BSSID)
{


PRAW_DATA prdMAC = &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]     )
)
{


}
else
{
}
}
PrintConfigList(&Intf.rdBSSIDList);
WZCDeleteIntfObjEx(&Intf);

WZC_CONTEXT WzcContext;
dwStatus = WZCQueryContext(NULL, 0x00, &WzcContext, NULL);

 

void PrintConfigList(PRAW_DATA prdBSSIDList)

{
WCHAR temp[33];
if (prdBSSIDList == NULL || prdBSSIDList->dwDataLen == 0)
{
return;
}
else
{
PWZC_802_11_CONFIG_LIST pConfigList = (PWZC_802_11_CONFIG_LIST)prdBSSIDList->pData;


apnumber = (int) pConfigList->NumberOfItems;
for (UINT i = 0; i < pConfigList->NumberOfItems; i++)
{
PWZC_WLAN_CONFIG pConfig = &(pConfigList->Config[i]);
RAW_DATA rdBuffer;
rdBuffer.dwDataLen = pConfig->Ssid.SsidLength;
rdBuffer.pData     = pConfig->Ssid.Ssid;
 pConfig->AuthenticationMode;
pConfig->InfrastructureMode;
(int)pConfig->Rssi;
pConfig->Privacy;
 pConfig->KeyIndex;
pConfig->EapolParams.dwEapType;
}
}
}   // PrintConfigList()

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值