Windows XP中wlanapi.dll的WlanSetProfile失败

时间:2011-12-01 16:38:04

标签: windows-xp-sp3 wlanapi

我正在创建一个能够自动连接到无线网络的程序。为此,我使用了一个名为ManagedWifi的库,它使用了库“wlanapi.dll”。当我尝试在Windows Vista上使用代码时,一切都很好,但是当我在Windows XP上使用它时,它会失败。我已检查它是否安装了Service Pack 3,并且“wlanapi.dll”位于Windows / system32中。问题是当ManagedWifi调用此方法时:

[DllImport("wlanapi.dll")]
        public static extern int WlanSetProfile(
            [In] IntPtr clientHandle,
            [In, MarshalAs(UnmanagedType.LPStruct)] Guid interfaceGuid,
            [In] WlanProfileFlags flags,
            [In, MarshalAs(UnmanagedType.LPWStr)] string profileXml,
            [In, Optional, MarshalAs(UnmanagedType.LPWStr)] string allUserProfileSecurity,
            [In] bool overwrite,
            [In] IntPtr pReserved,
            [Out] out WlanReasonCode reasonCode);

您可以查看此方法here的说明。我收到的错误如下:1206(ERROR_BAD_PROFILE)。正如您所看到的in this page这是一个已知错误,我唯一要做的就是下载并安装此修补程序。好吧,我已经做到了,错误仍然存​​在。配置文件是正确的,因为我通过调用WlanGetProfile

来获取它

我只想使用WlanConnect连接到网络,但正如您在功能页面中所看到的: 带有SP3的Windows XP和带有SP2的Windows XP的无线LAN API :您只能使用WlanConnect连接首选网络列表中的网络。要将网络添加到首选网络列表,请调用WlanSetProfile。

我非常绝望,有些日子我一直在为这个错误而战,我需要经历它...

而且,如果我尝试在不调用SetProfile的情况下调用WlanConnect方法,结果总是相同的:它没有连接。

我将非常感谢您提供的任何想法。

1 个答案:

答案 0 :(得分:0)

有一个WlanReasonCode输出参数,可以告诉您配置文件无效的原因。这有什么帮助吗?

你从哪台机器获得了个人资料? IIRC XP仅支持后续平台支持的配置文件子集。

哦,我不知道你是否可以在XP上将WlanConnect连接到IBSS(ad-hoc)网络。

相关问题