WlanGetProfileList不返回设备重启后创建的配置文件

时间:2018-05-11 06:05:31

标签: c++ wifi windows-ce wlanapi nt-native-api

WlanGetProfileList native api正在按预期工作,直到设备重新启动。设备重启后,相同api的结果为空。但我仍然可以在Windows Compact OS的注册表值下看到创建的配置文件。

为了在WINCE7中启用wifi功能,我使用了WLANTOOL。下面是wlantool的代码,用于获取创建的配置文件列表。

BOOL WlanInterfaces::ListProfileList(LPCWSTR strAdapter)
{
BOOL bResult = FALSE;
DWORD dwError = ERROR_SUCCESS;
PWLAN_PROFILE_INFO_LIST pProfileList = NULL;    
do
{
    if(FALSE == Init())
        break;

    WLAN_INTERFACE_INFO* pInterface = NULL;
    if(!GetInterface(strAdapter,&pInterface))
        break;

    dwError = WlanGetProfileList(*phClientHandle,
                                 &pInterface->InterfaceGuid,
                                 NULL,
                                 &pProfileList);

    if(ERROR_SUCCESS != dwError)
    {
        PrintMsg(L"WlanGetProfileList() Failed Error : %d",dwError);
        break;
    }

    if(NULL == pProfileList)
    {
        PrintMsg(L"WlanGetProfileList() returned NULL ProfileList");
        break;
    }

    for(DWORD i =0;i<pProfileList->dwNumberOfItems;i++)
    {
        PrintMsg(L"");
        PrintMsg(L"Index           : %lu",i);
        PrintMsg(L"Flags           : %lu",pProfileList->ProfileInfo[i].dwFlags);
        PrintMsg(L"ProfileName     : %s",pProfileList->ProfileInfo[i].strProfileName);
        ListProfile(strAdapter,pProfileList->ProfileInfo[i].strProfileName);
    }

    bResult = TRUE;
    }while(FALSE);

if(pProfileList)
    WlanFreeMemory(pProfileList);    

return bResult;
}

任何帮助将不胜感激。提前谢谢。

1 个答案:

答案 0 :(得分:0)

在Win CE上,一些设备文件夹和IIRC,注册表项在重启时重置。

您需要查看设备和Windows版本的文档,以查看哪些存储位置是持久的,并使用它们或保存和还原到它们。