wlanHostedNetworkQuerySecondaryKey 函数 (wlanapi.h)

WlanHostedNetworkQuerySecondaryKey 函数查询配置为由无线托管网络使用的辅助安全密钥。

语法

DWORD WlanHostedNetworkQuerySecondaryKey(
  [in]            HANDLE                      hClientHandle,
  [out]           PDWORD                      pdwKeyLength,
  [out]           PUCHAR                      *ppucKeyData,
  [out]           PBOOL                       pbIsPassPhrase,
  [out]           PBOOL                       pbPersistent,
  [out, optional] PWLAN_HOSTED_NETWORK_REASON pFailReason,
                  PVOID                       pvReserved
);

参数

[in] hClientHandle

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

[out] pdwKeyLength

指向一个值的指针,该值指定 由 ppucKeyData 参数指向的键数据数组中的有效数据字节数(如果对 WlanHostedNetworkQuerySecondaryKey 函数的调用成功)。

如果密钥是通行短语,则此密钥长度包括终止“\0”。

[out] ppucKeyData

一个指针,该值接收指向使用辅助安全密钥数据返回的缓冲区的指针(如果对 WlanHostedNetworkQuerySecondaryKey 函数的调用成功)。

[out] pbIsPassPhrase

指向布尔值的指针,该值指示 ppucKeyData 参数指向的键数据数组是否采用通行短语格式。

如果此参数为 TRUE,则键数据数组采用通行短语格式。 如果此参数为 FALSE,则键数据数组不采用通行短语格式。

[out] pbPersistent

指向布尔值的指针,该值指示是稍后存储并重复使用 ppucKeyData 参数指向的键数据数组,还是仅供一次性使用。

如果此参数为 TRUE,则稍后将存储并重复使用密钥数据数组。 如果此参数为 FALSE,则键数据数组仅供一次性使用。

[out, optional] pFailReason

如果对 WlanHostedNetworkSetSecondaryKey 函数的调用失败,则为指向接收失败原因的值的可选指针。 失败原因的可能值来自 wlanapi.h 头文件中定义的 WLAN_HOSTED_NETWORK_REASON 枚举类型。

pvReserved

保留供将来使用。 此参数必须为 NULL

返回值

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

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

返回代码 说明
ERROR_INVALID_HANDLE
句柄无效。 如果在句柄表中找不到 hClientHandle 参数中指定的句柄,则返回此错误。
ERROR_INVALID_PARAMETER
参数不正确。 如果出现以下任一情况,将返回此错误:
  • hClientHandleNULL
  • pdwKeyLengthNULL
  • ppucKeyDataNULL 或无效。
  • pbIsPassPhraseNULL 或无效。
  • pbPersistentNULL
  • pvReserved 不为 NULL
ERROR_INVALID_STATE
资源未处于执行所请求操作的正确状态。 如果无线托管网络正在关闭,则可能会发生这种情况。
ERROR_OUTOFMEMORY
没有足够的存储空间来完成此操作。
ERROR_SERVICE_NOT_ACTIVE
该服务尚未启动。 如果 WLAN 自动配置服务未运行,则返回此错误。
其他
各种 RPC 和其他错误代码。 使用 FormatMessage 获取返回错误的消息字符串。

注解

WlanHostedNetworkQuerySecondaryKey 函数是本机无线 API 的扩展,添加了支持 Windows 7 和 Windows Server 2008 R2 上安装了无线 LAN 服务的无线托管网络。

客户端应用程序调用 WlanHostedNetworkQuerySecondaryKey 函数来查询无线托管网络将使用的辅助安全密钥。 此函数将返回密钥信息,包括密钥数据、密钥长度、是否为通行短语,以及它是永久性的还是一次性使用的。 此函数不会更改无线托管网络的状态或属性。

如果 pbIsPassPhrase 参数指向的值为 TRUE,则辅助安全密钥为通行短语。 如果 pbIsPassPhrase 参数指向的值为 FALSE,则辅助安全密钥为二进制密钥。

ppucKeyData 参数指向的缓冲区中返回的辅助安全密钥用于 WPA2-Personal 身份验证,采用以下格式之一:

  • 由 8 到 63 个字符的 ASCII 字符数组组成的密钥通行短语。 pdwKeyLength 参数指向的值在通行短语中包含终止“\0”。 pdwKeyLength 参数指向的值应在 9 到 64 的范围内。
  • 由 32 个字节的二进制键数据组成的二进制键。 对于二进制键, pdwKeyLength 参数指向的值应为 32。

如果 pbPersistent 参数指向的值为 TRUE,则辅助安全密钥是永久性的。 如果已启动托管网络,则当已启动托管网络时,将立即使用辅助安全密钥,并在将来每次启动托管网络时重复使用辅助安全密钥。

如果未将辅助安全密钥指定为永久性密钥,则当托管网络已启动时,将立即使用该密钥,或仅在下次启动托管网络时使用。 停止托管网络后,此辅助安全密钥将永远不会再次使用,并且将从系统中删除。

如果当前没有配置辅助安全密钥, 则 pdwKeyLength 参数指向的返回值将为零, ppucKeyData 参数中返回的值将为 NULL。 在这种情况下, pbIsPassPhrasepbPersistent 参数中返回的值将毫无意义。

如果 WlanHostedNetworkQuerySecondaryKey 函数成功,则返回的 ppucKeyData 参数中用于缓冲区的内存应在使用后通过调用 WlanFreeMemory 函数释放。

任何用户都可以调用 WlanHostedNetworkQuerySecondaryKey 函数来查询托管网络中使用的辅助安全密钥。 但是,启用无线托管网络的能力可能会受到域中的组策略的限制。

在 Windows 7 及更高版本上,如果计算机上存在支持托管网络的无线适配器,则操作系统将安装虚拟设备。 如果计算机具有单个无线网络适配器,此虚拟设备通常会在“网络连接文件夹”中显示为“无线网络连接 2”,设备名称为“Microsoft 虚拟 WiFi 微型端口适配器”。 此虚拟设备专门用于执行软接入点 (SoftAP) 连接,并且不存在于 WlanEnumInterfaces 函数返回的列表中。 此虚拟设备的生存期与物理无线适配器相关联。 如果物理无线适配器处于禁用状态,此虚拟设备也将被删除。 此功能在安装了无线 LAN 服务的 Windows Server 2008 R2 上也可用。

要求

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

另请参阅

关于无线托管网络

使用无线托管网络和 Internet 连接共享

WLAN_HOSTED_NETWORK_REASON

WlanCloseHandle

WlanEnumInterfaces

WlanFreeMemory

WlanHostedNetworkInitSettings

WlanHostedNetworkQueryProperty

WlanHostedNetworkQueryStatus

WlanHostedNetworkRefreshSecuritySettings

WlanHostedNetworkSetProperty

WlanHostedNetworkSetSecondaryKey

WlanOpenHandle