允许具有管理员权限或 User-Mode 驱动程序框架(UMDF)驱动程序的用户模式客户端注册与其感兴趣的设备服务对应的未经请求的通知。
Syntax
DWORD WlanRegisterDeviceServiceNotification(
HANDLE hClientHandle,
const PWLAN_DEVICE_SERVICE_GUID_LIST pDevSvcGuidList
);
参数
hClientHandle
类型: HANDLE
客户端的会话句柄,由先前对 WlanOpenHandle 函数的调用获取。
pDevSvcGuidList
类型: CONST PWLAN_DEVICE_SERVICE_GUID_LIST
指向常量 WLAN_DEVICE_SERVICE_GUID_LIST 结构的可选指针,该结构表示你希望接收通知的设备服务 GUID。 结构的 dwIndex 成员必须具有小于其 dwNumberOfItems 成员的值;否则,可能会发生访问冲突。 每次调用此 API 时,以前的设备服务列表都会替换为新设备服务列表。
若要取消注册,请将 pDevSvcGuidList 设置为 nullptr,或将指针传递给具有成员设置为 0 的WLAN_DEVICE_SERVICE_GUID_LIST 结构 dwNumberOfItems 。
返回值
类型: HRESULT
如果函数成功,则返回值 ERROR_SUCCESS。 如果函数失败并 ERROR_ACCESS_DENIED,则调用方没有足够的权限来执行此作。 调用方需要具有管理员权限,或者需要是 UMDF 驱动程序。
注解
WlanRegisterDeviceServiceNotification 函数是适用于 WLAN 设备服务的现有本机 Wi-Fi API 的扩展。
客户端应用程序调用此函数来注册和注销它感兴趣的设备服务的通知。
如果调用应用程序关闭其调用句柄(使用 hClientHandle 参数调用 WlanCloseHandle),或者进程结束,则接收此函数导致的设备服务通知的任何注册将自动撤消。
为了接收这些通知,客户端需要使用有效的 pDevSvcGuidList 参数调用此函数,并且还必须使用WLAN_NOTIFICATION_SOURCE_DEVICE_SERVICE的 dwNotifSource 参数(在 中wlanapi.h定义)调用 WlanRegisterNotification 函数。 接收设备服务的通知的注册生效,直到应用程序关闭客户端句柄(通过使用 hClientHandle 参数调用 WlanCloseHandle),或者进程结束,或者使用 pDevSvcGuidList 参数nullptr调用 WlanRegisterDeviceServiceNotification,或者已将 dwNumberOfItems 设置为 0。
当作系统(OS)收到来自独立硬件供应商(IHV)驱动程序的设备服务通知,并且客户端已使用 WlanRegisterDeviceServiceNotification 注册这些通知时,客户端将通过通过调用 WlanRegisterNotification 注册的WLAN_NOTIFICATION_CALLBACK接收这些通知。 对于客户端已接收的每个通知(每个通知都有单独的缓冲区),将调用此回调。
回调函数(即数据成员)收到的WLAN_NOTIFICATION_DATA结构的 NotificationSource 成员将设置为WLAN_NOTIFICATION_SOURCE_DEVICE_SERVICE。 数据 blob、设备服务 GUID 和与此通知关联的作码将出现在WLAN_NOTIFICATION_DATA的 pData 成员中,该成员将指向WLAN_DEVICE_SERVICE_NOTIFICATION_DATA类型的结构。
注释
WLAN 服务或 OS 不会检查设备服务 GUID是否实际受 IHV 驱动程序支持。 客户端可以使用 WlanGetSupportedDeviceServices API 查询受支持的设备服务(如果需要)。
要求
| Requirement | 价值 |
|---|---|
| 最低支持的客户端 | Windows 10 内部版本 20348 |
| 支持的最低服务器 | Windows 10 内部版本 20348 |
| Header | wlanapi.h |
| Library | OneCoreUAP.Lib |