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()
本文详细介绍了在Windows CE系统中如何获取无线网卡名称并查询无线AP的相关信息,包括使用WZCEnumInterfaces和WZCQueryInterfaceEx函数进行操作,并展示了打印配置列表的代码示例。
1790

被折叠的 条评论
为什么被折叠?



