wlanapi.h) (WlanSetSecuritySettings 函数

WlanGetProfileList 函数为可配置对象设置安全设置。

语法

DWORD WlanSetSecuritySettings(
  [in] HANDLE                hClientHandle,
  [in] WLAN_SECURABLE_OBJECT SecurableObject,
  [in] LPCWSTR               strModifiedSDDL
);

参数

[in] hClientHandle

客户端的会话句柄,由先前对 WlanOpenHandle 函数的调用获取。

[in] SecurableObject

一个 WLAN_SECURABLE_OBJECT 值,该值指定将应用安全设置的对象。

[in] strModifiedSDDL

一个安全描述符字符串,指定对象的新安全设置。 此字符串必须以 NULL 结尾。 有关详细信息,请参见“备注”部分。

返回值

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

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

返回代码 说明
ERROR_INVALID_PARAMETER
参数不正确。 如果出现以下任一情况,则返回此错误:
  • hClientHandleNULL
  • strModifiedSDDLNULL
  • SecurableObject 设置为大于或等于 WLAN_SECURABLE_OBJECT_COUNT (12) 的值。
ERROR_INVALID_HANDLE
句柄无效。 如果在句柄表中找不到 hClientHandle 参数中指定的句柄,则返回此错误。
ERROR_ACCESS_DENIED
调用方没有足够的权限。
ERROR_NOT_SUPPORTED
此函数是从不受支持的平台调用的。 如果从具有 SP3 的 Windows XP 或具有 SP2 客户端的 Windows XP 无线 LAN API 调用此函数,则将返回此值。

注解

成功调用 WlanSetSecuritySettings 函数会替代与对象关联的默认权限。 有关默认权限的详细信息,请参阅 Native Wifi API 权限

下面介绍了创建安全描述符对象并将其分析为字符串的过程。

  1. 调用 InitializeSecurityDescriptor 以在内存中创建安全描述符。
  2. 调用 SetSecurityDescriptorOwner 以设置安全描述符的所有者信息。
  3. 调用 InitializeAcl 以在内存中创建自由访问控制列表 (DACL) 。
  4. 调用 AddAccessAllowedAceAddAccessDeniedAce (ACE) 添加到 DACL。 根据需要将 AccessMask 参数设置为以下按位 OR 组合之一:
    • WLAN_READ_ACCESS
    • WLAN_READ_ACCESS |WLAN_EXECUTE_ACCESS
    • WLAN_READ_ACCESS |WLAN_EXECUTE_ACCESS |WLAN_WRITE_ACCESS
  5. 调用 SetSecurityDescriptorDacl 将 DACL 添加到安全描述符。
  6. 调用 ConvertSecurityDescriptorToStringSecurityDescriptor 将描述符转换为字符串。
然后,在调用 WlanSetSecuritySettings 时,ConvertSecurityDescriptorToStringSecurityDescriptor 返回的字符串可用作 strModifiedSDDL 参数值。

要求

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

另请参阅

本机 Wifi API 权限

WlanGetSecuritySettings