允許具有系統管理員許可權的使用者模式用戶端,或 User-Mode 驅動程式架構 (UMDF) 驅動程式,註冊對應至他們感興趣的裝置服務的未經請求的通知。
語法
DWORD WlanRegisterDeviceServiceNotification(
HANDLE hClientHandle,
const PWLAN_DEVICE_SERVICE_GUID_LIST pDevSvcGuidList
);
參數
hClientHandle
類型: 手柄
用戶端的會話控制碼,由先前呼叫 WlanOpenHandle 函式所取得。
pDevSvcGuidList
類型: CONST PWLAN_DEVICE_SERVICE_GUID_LIST
常數 WLAN_DEVICE_SERVICE_GUID_LIST 結構的選擇性指標,代表您有興趣接收通知的裝置服務 GUID。 結構的 dwIndex 成員的值必須小於其 dwNumberOfItems 成員的值;否則,可能會發生存取違規。 每次呼叫此 API 時,先前的裝置服務清單都會由新的裝置服務清單取代。
若要取消註冊,請將 pDevSvcGuidList 設定為 nullptr,或將指標傳遞至成員設定為 0 的dwNumberOfItemsWLAN_DEVICE_SERVICE_GUID_LIST結構。
返回值
類型: HRESULT
如果函式成功,則傳回值為 ERROR_SUCCESS。 如果函式失敗並 ERROR_ACCESS_DENIED,則呼叫端沒有足夠的許可權來執行此作業。 呼叫端必須具有系統管理員許可權,或必須是 UMDF 驅動程式。
備註
WlanRegisterDeviceServiceNotification 函式是 WLAN 裝置服務現有原生 Wi-Fi API 的延伸模組。
用戶端應用程式會呼叫此函式,以註冊和取消註冊其感興趣之裝置服務的通知。
如果呼叫應用程式關閉其呼叫句柄 (使用 hClientHandle 參數呼叫 WlanCloseHandle) ,或進程結束,則會自動復原由此函式所造成的任何接收裝置服務通知的註冊。
若要接收這些通知,用戶端必須使用有效的 pDevSvcGuidList 參數呼叫此函式,而且也必須呼叫 WlanRegisterNotification 函式,並將 dwNotifSource 引數 WLAN_NOTIFICATION_SOURCE_DEVICE_SERVICE (定義於 ) 中 wlanapi.h。 接收裝置服務通知的註冊會生效,直到應用程式關閉用戶端句柄 (使用 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 |