#include "WLan.h"
TCHAR* g_szAuthenticationMode[] =
{
L"Ndis802_11AuthModeOpen",
L"Ndis802_11AuthModeShared",
L"Ndis802_11AuthModeAutoSwitch",
L"Ndis802_11AuthModeWPA",
L"Ndis802_11AuthModeWPAPSK",
L"Ndis802_11AuthModeWPANone",
L"Ndis802_11AuthModeWPA2",
L"Ndis802_11AuthModeWPA2PSK"
};
TCHAR* g_szcPrivacyMode[] =
{
TEXT("Ndis802_11WEPEnabled"),
TEXT("Ndis802_11WEPDisabled"),
TEXT("Ndis802_11WEPKeyAbsent"),
TEXT("Ndis802_11WEPNotSupported"),
TEXT("Ndis802_11Encryption2Enabled"),
TEXT("Ndis802_11Encryption2KeyAbsent"),
TEXT("Ndis802_11Encryption3Enabled"),
TEXT("Ndis802_11Encryption3KeyAbsent")
};
TCHAR g_szSupportedRate[32];// = { L"1", L"2", L"5.5", L"11", L"" }; // Mbit/s
BOOL CWLanConfig::InitZeroConfig()
{
HINSTANCE hWZCLib = NULL;
if (m_fWZCInit) {
return TRUE; // Already initialized
}
// See if zero config API present in system
if ((hWZCLib = LoadLibrary(L"wzcsapi.dll")) == NULL) {
RETAILMSG(1,(TEXT("!WZCUI: WZCAPI.DLL not present in system\r\n")));
return FALSE;
}
pfnWZCQueryInterfaceEx = (PFN_WZCQueryInterfaceEx)GetProcAddress(hWZCLib,L"WZCQueryInterfaceEx");
pfnWZCSetInterfaceEx = (PFN_WZCSetInterfaceEx)GetProcAddress(hWZCLib,L"WZCSetInterfaceEx");
pfnWZCRefreshInterfaceEx = (PFN_WZCRefreshInterfaceEx)GetProcAddress(hWZCLib,L"WZCRefreshInterfaceEx");
pfnWZCEnumEapExtensions = (PFN_WZCEnumEapExtensions)GetProcAddress(hWZCLib,L"WZCEnumEapExtensions");
pfnWZCDeleteIntfObjEx = (PFN_WZCDeleteIntfObjEx)GetProcAddress(hWZCLib,L"WZCDeleteIntfObjEx");
pfnWZCQueryContext = (PFN_WZCQueryContext)GetProcAddress(hWZCLib,L"WZCQueryContext");
pfnWZCSetContext = (PFN_WZCSetContext)GetProcAddress(hWZCLib,L"WZCSetContext");
pfnWZCPassword2Key = (PFN_WZCPassword2Key)GetProcAddress(hWZCLib,L"WZCPassword2Key");
if ((pfnWZCQueryInterfaceEx == NULL) ||
(pfnWZCSetInterfaceEx == NULL) ||
(pfnWZCRefreshInterfaceEx == NULL) ||
(pfnWZCEnumEapExtensions == NULL)||
(pfnWZCDeleteIntfObjEx == NULL) ||
(pfnWZCSetContext == NULL) ||
(pfnWZCQueryContext == NULL)) {
RETAILMSG(1,(TEXT("!WZCUI: WZC APis not present in system\r\n")));
FreeLibrary(hWZCLib);
return FALSE;
}
m_fWZCInit = TRUE;
return TRUE;
}
void CWLanConfig::EnumWirelessNetwordCard()
{
INTFS_KEY_TABLE IntfsTable;
IntfsTable.dwNumIntfs = 0;
IntfsTable.pIntfs = NULL;
_tcscpy(m_WirelessCard, TEXT(""));
DWORD dwStatus = WZCEnumInterfaces(NULL, &IntfsTable);
if (dwStatus != ERROR_SUCCESS)
{
RETAILMSG(DBG_MSG, (TEXT("WZCEnumInterfaces() error 0x%08X\n"),dwStatus));
return;
}
if (!IntfsTable.dwNumIntfs)
{
RETAILMSG(DBG_MSG, (TEXT("System has no wireless card.\n")));
return;
}
m_CardIndex = IntfsTable.dwNumIntfs;
RETAILMSG(DBG_MSG, (TEXT("Enum %d Wiless Net Card:\n"),m_CardIndex));
for (uint i = 0; i < IntfsTable.dwNumIntfs; i++)
{
RETAILMSG(DBG_MSG, (TEXT("WIFI Card [%d] = %s\n"), i, IntfsTable.pIntfs[i].wszGuid));
}
_tcscpy(m_WirelessCard, IntfsTable.pIntfs[0].wszGuid);
LocalFree(IntfsTable.pIntfs);
}
void CWLanConfig::PrintfMacAddress(IN PRAW_DATA prdMAC)
{
if (prdMAC == NULL || prdMAC->dwDataLen == 0)
{
RETAILMSG(DBG_MSG, (TEXT("<NULL>")));
}
else if (prdMAC->dwDataLen != 6)
{
RETAILMSG(DBG_MSG, (TEXT("<INVLID MAC>")));
}
else
{
RETAILMSG(DBG_MSG, (TEXT("%02X:%02X:%02X:%02X:%02X:%02X"),
prdMAC->pData[0],
prdMAC->pData[1],
prdMAC->pData[2],
prdMAC->pData[3],
prdMAC->pData[4],
prdMAC->pData[5]));
}
}
void CWLanConfig::PrintSSID(PRAW_DATA prdSSID)
{
if (prdSSID == NULL || prdSSID->dwDataLen == 0)
{
RETAILMSG(DBG_MSG, (TEXT("<null>")));
}
else
{
TCHAR szSsid[33];
uint i;
for (i = 0; i < prdSSID->dwDataLen; i++)
{
szSsid[i] = prdSSID->pData[i];
}
szSsid[i] = TEXT('\0');
RETAILMSG(DBG_MSG, (TEXT("%s"),szSsid));
}
}
PTCHAR CWLanConfig::SupportedRate(IN BYTE ucbRawValue)
{
double fRate = ((double)(ucbRawValue & 0x7F)) * 0.5;
swprintf(g_szSupportedRate, L"%.1f", fRate);
return g_szSupportedRate;
}
UINT CWLanConfig::ChannelNumber(IN ULONG ulFrequency_kHz)
{
ULONG ulFrequency_MHz = ulFrequency_kHz / 1000;
if((2412 <= ulFrequency_MHz) && (ulFrequency_MHz < 2484))
return ((ulFrequency_MHz - 2412) / 5) + 1;
else if(ulFrequency_MHz == 2484)
return 14;
return 0; // invalid channel number
}
void CWLanConfig::PrintConfigList(PRAW_DATA prdBSSIDList)
{
if (prdBSSIDList == NULL || prdBSSIDList->dwDataLen == 0)
{
RETAILMSG(DBG_MSG, (TEXT("<null> entry.")));
}
else
{
PWZC_802_11_CONFIG_LIST pConfigList = (PWZC_802_11_CONFIG_LIST)prdBSSIDList->pData;
RETAILMSG(DBG_MSG, (TEXT("[%d] entries.\n\n"), pConfigList->NumberOfItems));
uint i;
for (i = 0; i < pConfigList->NumberOfItems; i++)
{
PWZC_WLAN_CONFIG pConfig = &(pConfigList->Config[i]);
RETAILMSG(DBG_MSG, (TEXT("************ List Entry Number [%d] ************\n"),i));
RETAILMSG(DBG_MSG, (TEXT(" Length = %d bytes.\n"), pConfig->Length));
RETAILMSG(DBG_MSG, (TEXT(" dwCtlFlags = 0x%08X\n"), pConfig->dwCtlFlags));
RETAILMSG(DBG_MSG, (TEXT(" MacAddress = %02X:%02X:%02X:%02X:%02X:%02X\n"),
pConfig->MacAddress[0],
pConfig->MacAddress[1],
pConfig->MacAddress[2],
pConfig->MacAddress[3],
pConfig->MacAddress[4],
pConfig->MacAddress[5]));
RETAILMSG(DBG_MSG, (TEXT(" SSID = ")));
RAW_DATA rdBuffer;
rdBuffer.dwDataLen = pConfig->Ssid.SsidLength;
rdBuffer.pData = pConfig->Ssid.Ssid;
PrintSSID(&rdBuffer);
RETAILMSG(DBG_MSG, (TEXT("\n")));
RETAILMSG(DBG_MSG, (TEXT(" Privacy = %d "),pConfig->Privacy));
if (pConfig->Privacy == 1)
{
RETAILMSG(DBG_MSG, (TEXT("Privacy disabled (wireless data is not encrypted)\n")));
}
else
{
RETAILMSG(DBG_MSG, (TEXT("Privacy enabled (encryted with [%s])\n"), g_szcPrivacyMode[pConfig->Privacy]));
}
RETAILMSG(DBG_MSG, (TEXT(" RSSI = %d dBm (0=excellent, -100=weak signal)\n"), pConfig->Rssi));
RETAILMSG(DBG_MSG, (TEXT(" NetworkTypeInUse = %s\n"),
(pConfig->NetworkTypeInUse == Ndis802_11FH) ? TEXT("NDIS802_11FH") :
(pConfig->NetworkTypeInUse == Ndis802_11DS) ? TEXT("NDIS802_11DS") :
(pConfig->NetworkTypeInUse == Ndis802_11DS) ? TEXT("NDIS802_11DS") :
TEXT("<UNKONWN SHOULD NOT BE !!>")));
RETAILMSG(DBG_MSG, (TEXT(" Configuration:\n")));
RETAILMSG(DBG_MSG, (TEXT(" Struct Length = %d\n"),pConfig->Configuration.Length));
RETAILMSG(DBG_MSG, (TEXT(" BeaconPeriod = %d kusec\n"), pConfig->Configuration.BeaconPeriod));
RETAILMSG(DBG_MSG, (TEXT(" ATIMWindow = %d kusec\n"), pConfig->Configuration.ATIMWindow));
RETAILMSG(DBG_MSG, (TEXT(" DSConfig = %d kHz (ch - %d)\n"), pConfig->Configuration.DSConfig, ChannelNumber(pConfig->Configuration.DSConfig)));
RETAILMSG(DBG_MSG, (TEXT(" FHConfig:\n")));
RETAILMSG(DBG_MSG, (TEXT(" Struct Length = %d\n"),pConfig->Configuration.FHConfig.Length));
RETAILMSG(DBG_MSG, (TEXT(" HopPattern = %d\n"),pConfig->Configuration.FHConfig.HopPattern));
RETAILMSG(DBG_MSG, (TEXT(" HopSet = %d\n"),pConfig->Configuration.FHConfig.HopSet));
RETAILMSG(DBG_MSG, (TEXT(" DwellTime = %d\n"),pConfig->Configuration.FHConfig.DwellTime));
RETAILMSG(DBG_MSG, (TEXT(" Infrastructure = %s\n"),
(pConfig->InfrastructureMode == Ndis802_11IBSS) ? TEXT("NDIS802_11IBSS") :
(pConfig->InfrastructureMode == Ndis802_11Infrastructure) ? TEXT("Ndis802_11Infrastructure") :
(pConfig->InfrastructureMode == Ndis802_11AutoUnknown) ? TEXT("Ndis802_11AutoUnknown") :
TEXT("<UNKNOWN! SHOULD NOT BE!!>")));
RETAILMSG(DBG_MSG, (TEXT(" SupportedRates = ")));
for (int j = 0; j < 8; j++)
{
if (pConfig->SupportedRates[j])
{
RETAILMSG(DBG_MSG, (TEXT("%s,"), SupportedRate(pConfig->Supporte
Windwos CE 5.0 WIFI无线网卡 配置、连接程序
4星 · 超过85%的资源 需积分: 50 15 浏览量
2008-12-31
11:43:11
上传
评论 9
收藏 12KB RAR 举报
xajhuang
- 粉丝: 34
- 资源: 3
最新资源
- 前端开发-什么是前端开发-关于前端开发的一些相关介绍
- Sora AI-关于文生视频的使用场景说明
- suno AI文生视频的相关教程和介绍使用
- 什么是后端开发-关于后端开发的一些小介绍分享
- Jurassic Pack Vol. II Dinosaurs 侏罗纪包卷恐龙二号Unity游戏模型资源unitypackage
- Jurassic Pack Vol. III Dinosaurs 侏罗纪包卷恐龙三号Unity游戏模型资源unitypackag
- Ultimate Seating Controller 终极座椅控制器Unity游戏开发插件资源unitypackage
- 什么是人工智能-关于人工智能的相关介绍说明
- Figma Converter for Unity适用Unity的Figma转换器Unity游戏开发插件unitypackage
- Creepy Animatronic Anims 令人毛骨悚然的电子动画Unity游戏动画插件资源unitypackage
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
- 3
- 4
- 5
- 6
前往页