共用方式為


WlanRegisterNotification 函式 (wlanapi.h)

重要

有些資訊與發行前版本產品有關,在正式發行前可能會大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。

WlanRegisterNotification 函式可用來在所有無線介面上註冊和取消註冊通知。

語法

DWORD WlanRegisterNotification(
  [in]            HANDLE                     hClientHandle,
  [in]            DWORD                      dwNotifSource,
  [in]            BOOL                       bIgnoreDuplicate,
  [in, optional]  WLAN_NOTIFICATION_CALLBACK funcCallback,
  [in, optional]  PVOID                      pCallbackContext,
  [in]            PVOID                      pReserved,
  [out, optional] PDWORD                     pdwPrevNotifSource
);

參數

[in] hClientHandle

用戶端的會話句柄,由先前呼叫 WlanOpenHandle 函式取得。

[in] dwNotifSource

要註冊的通知來源。 這些旗標可以合併。 當此參數設定為 WLAN_NOTIFICATION_SOURCE_NONE 時, WlanRegisterNotification 會在所有無線介面上取消註冊通知。

此參數的可能值定義在 Wlanapi.hL2cmn.h 頭檔中。

下表顯示可能的值。

意義
WLAN_NOTIFICATION_SOURCE_NONE
取消註冊通知。
WLAN_NOTIFICATION_SOURCE_ALL
註冊操作系統版本上所有可用的通知,包括802.1X模組所產生的通知。

對於 Windows XP SP3 和 Windows XP SP2 的無線 LAN API,將 dwNotifSource 設定為 WLAN_NOTIFICATION_SOURCE_ALL 的功能相當於將 dwNotifSource 設定為 WLAN_NOTIFICATION_SOURCE_ACM

WLAN_NOTIFICATION_SOURCE_ACM
註冊自動設定模組所產生的通知。

Windows XP with SP3 和 Wireless LAN API for Windows XP with SP2: 只有wlan_notification_acm_connection_complete和wlan_notification_acm_disconnected通知可用。

WLAN_NOTIFICATION_SOURCE_HNWK
註冊無線託管網路所產生的通知。 此通知來源可在 Windows 7 和已安裝無線 LAN 服務的 Windows Server 2008 R2 上使用。
WLAN_NOTIFICATION_SOURCE_ONEX
註冊 802.1X 所產生的通知。
WLAN_NOTIFICATION_SOURCE_MSM
註冊 MSM 所產生的通知。

如果在 dwNotifSource 中設定WLAN_NOTIFICATION_SOURCE_MSM旗標,則需要wiFiControl裝置功能 (請參閱應用程式功能宣告) 。 如果未授與該功能,則函式會 傳回ERROR_ACCESS_DENIED。 要求 wiFiControl 裝置功能需要使用者同意,以取得位置的存取權。 如需詳細資訊,請參閱 Wi-Fi 存取和位置的 API 行為變更

Windows XP with SP3 和 Wireless LAN API for Windows XP with SP2: 不支援這個值。

WLAN_NOTIFICATION_SOURCE_SECURITY
註冊安全性模組所產生的通知。

目前未針對 WLAN_NOTIFICATION_SOURCE_SECURITY定義任何通知。

Windows XP with SP3 和 Wireless LAN API for Windows XP with SP2: 不支援這個值。

WLAN_NOTIFICATION_SOURCE_IHV
註冊獨立硬體廠商所產生的通知, (IHV) 。

Windows XP with SP3 和 Wireless LAN API for Windows XP with SP2: 不支援這個值。

WLAN_NOTIFICATION_SOURCE_DEVICE_SERVICE
註冊裝置服務所產生的通知。

Windows XP with SP3 和 Wireless LAN API for Windows XP with SP2: 此參數必須設定為 WLAN_NOTIFICATION_SOURCE_NONE、WLAN_NOTIFICATION_SOURCE_ALL 或 WLAN_NOTIFICATION_SOURCE_ACM。

[in] bIgnoreDuplicate

指定是否要忽略重複的通知。 如果設定為 TRUE,如果通知與前一個通知相同,則不會將通知傳送給用戶端。

Windows XP with SP3 和 Wireless LAN API for Windows XP with SP2: 忽略此參數。

[in, optional] funcCallback

定義通知回呼函式類型的 WLAN_NOTIFICATION_CALLBACK 型別。

如果 dwNotifSource 參數設定為WLAN_NOTIFICATION_SOURCE_NONE在所有無線介面上取消註冊通知,這個參數可以是 NULL

[in, optional] pCallbackContext

將傳遞至回呼函式且具有通知之用戶端內容的指標。

[in] pReserved

保留供未來使用。 必須設定為 NULL

[out, optional] pdwPrevNotifSource

先前註冊之通知來源的指標。

傳回值

如果函式成功,傳回值會ERROR_SUCCESS。

如果函式失敗,傳回值可能是下列其中一個傳回碼。

如果在 dwNotifSource 中設定WLAN_NOTIFICATION_SOURCE_MSM旗標,則需要wiFiControl裝置功能 (請參閱應用程式功能宣告) 。 如果未授與該功能,則函式會 傳回ERROR_ACCESS_DENIED。 要求 wiFiControl 裝置功能需要使用者同意,以取得位置的存取權。 如需詳細資訊,請參閱 Wi-Fi 存取和位置的 API 行為變更

傳回碼 Description
ERROR_INVALID_PARAMETER
參數不正確。 如果 hClientHandleNULL 或無效,或 pReserved 不是 NULL,則會傳回此錯誤。
ERROR_INVALID_HANDLE
句柄數據表中找不到句柄 hClientHandle
ERROR_NOT_ENOUGH_MEMORY
無法為查詢結果配置記憶體。
ERROR_ACCESS_DENIED
如果在 dwNotifSource 中設定WLAN_NOTIFICATION_SOURCE_MSM旗標,則需要wiFiControl裝置功能 (請參閱應用程式功能宣告。 如果未授與該功能,則函式會 傳回ERROR_ACCESS_DENIED。 要求 wiFiControl 裝置功能需要使用者同意,以取得位置的存取權。 如需詳細資訊,請參閱 Wi-Fi 存取和位置的 API 行為變更
RPC_STATUS
各種錯誤碼。

備註

WlanRegisterNotification 是由應用程式用來在所有無線介面上註冊和取消註冊通知。 註冊通知時,應用程式必須提供 funcCallback 參數指向的回呼函式。 此回呼函式的原型是 WLAN_NOTIFICATION_CALLBACK。 此回呼函式會收到已在傳遞至 WlanRegisterNotification 函式的 dwNotifSource 參數中註冊的通知。 呼叫回呼函式時,會以 WLAN_NOTIFICATION_DATA 結構的指標作為包含通知詳細資訊的第一個參數。 回呼函式也會接收第二個參數,其中包含傳遞至 WlanRegisterNotification 函式之 pCallbackContext 參數中用戶端內容的指標。

如果 dwNotifSourceWLAN_NOTIFICATION_SOURCE_NONE以外的值,而且客戶端無法提供回呼函式,WlanRegisterNotification 函式會傳回錯誤。

註冊之後,每當有通知可用時,就會呼叫回呼函式,直到用戶端取消註冊或關閉句柄為止。

如果呼叫應用程式使用 hClientHandle 參數呼叫 WlanCloseHandle,) 或行程結束,呼叫 WlanCloseHandle 來關閉其呼叫句柄 (,則會自動復原此函式所造成的任何通知。

請勿從回調函式呼叫 WlanRegisterNotification 。 如果在 呼叫 WlanRegisterNotificationdwNotifSource 設為 WLAN_NOTIFICATION_SOURCE_NONE ( 時,用戶端在通知回呼中間) , 則 WlanRegisterNotification 會在傳回值之前等候回呼完成。 在回呼函式內呼叫此函式會導致呼叫永遠不會完成。 如果回呼函式和從通知取消註冊的線程嘗試取得相同的鎖定,可能會發生死結。 此外,請勿從應用程式 DLL 中的 DllMain 函式呼叫 WlanRegisterNotification。 這也可能導致死結。

應用程式可能會逾時並查詢目前的介面狀態,而不是等候通知。

Windows XP with SP3 和 Wireless LAN API for Windows XP with SP2: Netman 服務會處理通知。 如果 Netman 服務已停用或無法使用,將不會收到通知。 如果未在合理的時間內收到通知,應用程式應該逾時並查詢目前的介面狀態。

規格需求

需求
最低支援的用戶端 Windows Vista、Windows XP 與 SP3 [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 [僅限傳統型應用程式]
目標平台 Windows
標頭 wlanapi.h (包含 Wlanapi.h)
程式庫 Wlanapi.lib
Dll Wlanapi.dll
可轉散發套件 適用於 Windows XP 與 SP2 的無線 LAN API

另請參閱

ONEX_NOTIFICATION_TYPE

WLAN_HOSTED_NETWORK_NOTIFICATION_CODE

WLAN_NOTIFICATION_ACM

WLAN_NOTIFICATION_CALLBACK

WLAN_NOTIFICATION_DATA

WLAN_NOTIFICATION_MSM

WlanCloseHandle

WlanRegisterVirtualStationNotification