wlanSetProfileEapUserData 函数 (wlanapi.h)

WlanSetProfileEapUserData 函数 (EAP) 原始 EAP 数据指定的用户凭据设置可扩展身份验证协议。 用户凭据应用于接口上的配置文件。

语法

DWORD WlanSetProfileEapUserData(
  [in] HANDLE          hClientHandle,
  [in] const GUID      *pInterfaceGuid,
  [in] LPCWSTR         strProfileName,
  [in] EAP_METHOD_TYPE eapType,
  [in] DWORD           dwFlags,
  [in] DWORD           dwEapUserDataSize,
  [in] const LPBYTE    pbEapUserData,
       PVOID           pReserved
);

参数

[in] hClientHandle

客户端的会话句柄,由上一次对 WlanOpenHandle 函数的调用获取。

[in] pInterfaceGuid

接口的 GUID。

[in] strProfileName

与 EAP 用户数据关联的配置文件的名称。 配置文件名称区分大小写。 此字符串必须以 NULL 结尾。

[in] eapType

一个EAP_METHOD_TYPE结构,其中包含调用方为其提供 EAP 用户凭据的方法。

[in] dwFlags

一组标志,用于修改函数的行为。

在 Windows Vista 和 Windows Server 2008 上,此参数是保留的,应设置为零。

在 Windows 7、Windows Server 2008 R2 及更高版本上,此参数可以是以下值之一。

含义
WLAN_SET_EAPHOST_DATA_ALL_USERS
0x00000001
为此配置文件的所有用户设置 EAP 主机数据。

[in] dwEapUserDataSize

pbEapUserData 指向的数据的大小(以字节为单位)。

[in] pbEapUserData

指向用于设置用户凭据的原始 EAP 数据的指针。

在 Windows Vista 和 Windows Server 2008 上,此参数不得为 NULL

在 Windows 7、Windows Server 2008 R2 及更高版本上,如果 dwFlags 参数包含WLAN_SET_EAPHOST_DATA_ALL_USERSdwEapUserDataSize 参数为 0,则可以将此参数设置为 NULL 以删除此配置文件的存储凭据。

pReserved

保留供将来使用。 必须设置为 NULL

返回值

如果函数成功,则返回值为 ERROR_SUCCESS。

如果函数失败,则返回值可能是以下返回代码之一。

返回代码 说明
ERROR_ACCESS_DENIED
访问被拒绝。 如果调用方对配置文件没有写入权限,则返回此值。
ERROR_INVALID_PARAMETER
参数不正确。 如果出现以下任一情况,则返回此值:
  • hClientHandleNULL
  • pInterfaceGuidNULL
  • strProfileNameNULL
  • pvReserved 不为 NULL

在 Windows Vista 和 Windows Server 2008 上,如果 pbEapUserData 参数为 NULL,则返回此值。

在 Windows 7、Windows Server 2008 R2 及更高版本上,如果 pbEapUserData 参数为 NULL,但 dwEapUserDataSize 参数不为 0 或 dwFlags 参数不包含 WLAN_SET_EAPHOST_DATA_ALL_USERS,则返回此错误。

ERROR_INVALID_HANDLE
句柄无效。 如果在句柄表中找不到句柄 hClientHandle ,则返回此错误。
ERROR_NOT_ENOUGH_MEMORY
没有足够的存储空间可用于处理此命令。
ERROR_NOT_SUPPORTED
不支持该请求。

当配置文件设置不允许存储用户数据时,将返回此值。 如果启用了单一登录 (SSO) ,或者请求删除此配置文件的存储凭据 (pbEapUserData 参数为 NULL,dwFlags 参数包含WLAN_SET_EAPHOST_DATA_ALL_USERS,而 dwEapUserDataSize 参数为 0) ,则可能会出现这种情况。

在 Windows 10 Windows Server 2016 上,如果对使用 802.1X 以外的方法进行身份验证的配置文件调用 WlanSetProfileEapUserData 函数,则返回此值。

如果从具有 SP3 的 Windows XP 或具有 SP2 客户端的 Windows XP 无线 LAN API 调用此函数,则也会返回此值。

ERROR_SERVICE_NOT_ACTIVE
该服务尚未启动。 如果无线 LAN 服务未运行,则返回此值。
RPC_STATUS
各种错误代码。

注解

WlanSetProfileEapUserData 函数设置要用于配置文件的 EAP 用户凭据。 在 Windows Vista 和 Windows Server 2008 上,这些凭据只能由调用方使用。

eapType 参数是一个EAP_METHOD_TYPE结构,其中包含有关 EAP 方法的类型、标识和作者信息。 EAP_METHOD_TYPE 结构的 eapType 成员是包含 EAP 方法的类型和供应商标识信息的EAP_TYPE结构。

有关 EAP 方法类型的分配的详细信息,请参阅 IETF 发布的 RFC 3748 第 6.2 节。

在 Windows 7、Windows Server 2008 R2 及更高版本上, WlanSetProfileEapUserData 函数已增强。 如果 dwFlags 参数包含 WLAN_SET_EAPHOST_DATA_ALL_USERS,则可以为配置文件的所有用户设置 EAP 用户凭据。 也可以删除配置文件上的 EAP 用户凭据。 若要删除配置文件上的 EAP 用户凭据,pbEapUserData 参数必须为 NULL,dwFlags 参数必须等于 WLAN_SET_EAPHOST_DATA_ALL_USERS,dwEapUserDataSize 参数必须为 0。

执行配置文件操作时,所有无线 LAN 函数都需要无线接口的接口 GUID。 删除无线接口时,其状态将从无线 LAN 服务 (WLANSVC) 清除,并且无法执行配置文件操作。

如果 pInterfaceGuid 参数中指定的无线接口已从系统中删除, (已删除的 USB 无线适配器(例如 ) ),WlanSetProfileEapUserData 函数可能会失败并ERROR_INVALID_PARAMETER。

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 wlanapi.h (包括 Wlanapi.h)
Library Wlanapi.lib
DLL Wlanapi.dll

另请参阅

EAP_METHOD_TYPE

EAP_TYPE

WlanGetProfile

WlanGetProfileCustomUserData

WlanGetProfileList

WlanSetProfile

WlanSetProfileEapXmlUserData