共用方式為


WlanScan 函數 (wlanapi.h)

備註

尚未發布產品的部分資訊在正式上市前可能會進行重大更改。 Microsoft 對於此處提供的資訊,不做任何明確或隱含的保證。

這很重要

此 API 將受到即將於 2024 年秋季進行的作業系統行為變更的影響。 如需詳細資訊,請參閱 Wi-Fi 存取和位置的 API 行為變更

WlanScan功能請求掃描指示介面上的可用網路。

語法

DWORD WlanScan(
  [in]           HANDLE               hClientHandle,
  [in]           const GUID           *pInterfaceGuid,
  [in, optional] const PDOT11_SSID    pDot11Ssid,
  [in, optional] const PWLAN_RAW_DATA pIeData,
                 PVOID                pReserved
);

參數

[in] hClientHandle

用戶端的會話控制碼,由先前呼叫 WlanOpenHandle 函式所取得。

[in] pInterfaceGuid

要查詢之介面的 GUID。

本機電腦上啟用的每個無線 LAN 介面的 GUID 可以使用 WlanEnumInterfaces 函式來判斷。

[in, optional] pDot11Ssid

指向 DOT11_SSID 結構的指標,指定要掃描的網路的 SSID。 此參數可能是 NULL。 Windows XP SP3 和適用於 Windows XP SP2 的無線 LAN API: 此參數必須是 NULL。

[in, optional] pIeData

要併入探測要求中之資訊元素的指標。 此參數指向一個WLAN_RAW_DATA結構,其中可能包括客戶端布建可用性資訊和 802.1X 身份驗證要求。Windows XP SP3 和適用於 Windows XP SP2 的無線 LAN API: 此參數必須是 NULL。

pReserved

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

返回值

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

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

回傳碼 Description
ERROR_INVALID_PARAMETER
hClientHandleNull 或無效、 pInterfaceGuidNull,或 pReserved 不是 Null
ERROR_INVALID_HANDLE
在句柄資料表中找不到句柄 hClientHandle
RPC_STATUS
各種錯誤代碼。
ERROR_NOT_ENOUGH_MEMORY
無法為查詢結果配置記憶體。

備註

WlanScan 函式會要求原生 802.11 無線 LAN 驅動程式掃描可用的無線網路。 驅動程式可能會或可能不會傳送探查要求 (作用中掃描) ,視其實作以及 pDot11SsidpIeData 參數中傳遞的值而定。

如果 pIeData 參數不是 Null,驅動程式會在掃描期間傳送探查要求。 探查要求包含 pIeData 參數所指向的資訊元素 (IE)。 例如,Wi-Fi 保護設定(WPS)IE可以包含在探測請求中,以發現支援WPS的存取點。 pIeData 參數所指向的緩衝區必須包含從元素標識碼開始的完整 IE。

傳遞至 WlanScan 函式的 pIeData 參數可以包含選擇性WLAN_RAW_DATA結構的指標,其中包含鄰近服務探索 (PSD) IE 資料專案。

用來儲存 PSD IE 時,Wlanapi.h 標頭檔中定義的DOT11_PSD_IE_MAX_DATA_SIZE常數是 dwDataSize 成員的最大值。

常數 價值觀 Description
DOT11_PSD_IE_MAX_DATA_SIZE 240 PSD IE 資料項目的資料大小上限 (以位元組為單位)。
 

如需 PSD IE 的詳細資訊,包括 PSD IE 格式的討論,請參閱 WlanSetPsdIEDataList 函式。

呼叫 WlanScan 函式時,原生 802.11 無線 LAN 驅動程式可能會在啟動掃描之前排清目前可用無線網路清單。 應用程式不應該假設呼叫 WlanScan 函式會新增至先前掃描的 WlanGetNetworkBssListWlanGetAvailableNetworkList 函式所傳回的現有可用無線網路清單。

WlanScan 函式會立即傳回。 若要在網路掃描完成時收到通知,Windows Vista 和更新版本上的用戶端必須呼叫 WlanRegisterNotification 來註冊通知。 傳遞至 WlanRegisterNotification 函式的 dwNotifSource 參數必須設定 WLAN_NOTIFICATION_SOURCE_ACM 位,以註冊自動組態模組所產生的通知。 需要符合 Windows 標誌需求的無線網路驅動程式,才能在 4 秒內完成 WlanScan 函式要求。

無線 LAN 服務不會在可用的無線網路變更時傳送通知。 無線 LAN 服務不會追蹤多次掃描中可用網路清單的變更。 目前的預設行為是無線 LAN 服務只會要求無線介面驅動程式每 60 秒掃描一次無線網路,在某些情況下 (當已連線到無線網路時) 無線 LAN 服務根本不會要求掃描。 應用程式可以使用 WlanScan 功能來追蹤無線網路變更。 應用程式應先註冊WLAN_NOTIFICATION_SOURCE_ACM通知。 然後可以呼叫 WlanScan 函數來起始掃描。 然後,應用程式應該等待 4 秒後收到wlan_notification_acm_scan_complete通知或逾時。 然後,應用程式可以呼叫 WlanGetNetworkBssListWlanGetAvailableNetworkList 函式來擷取可用無線網路的清單。 此過程可以定期重複,應用程式會追蹤可用無線網路的變更。

WlanScan 函式會立即傳回,而且不會在 Windows XP SP3 或 Windows XP SP2 的無線 LAN API 上掃描完成時提供通知。

由於無線介面在掃描過程中發送和接收資料包變得更加困難,因此 WlanScan 功能可能會增加延遲,直到網路掃描完成。

需求

Requirement 價值觀
最低支援的用戶端 Windows Vista、Windows XP 與 SP3 [僅限傳統型應用程式]
支援的最低伺服器 Windows Server 2008 [僅限傳統型應用程式]
目標平臺 窗戶
Header wlanapi.h(包括 Wlanapi.h)
Library 瓦拉納皮.lib
DLL Wlanapi.dll
可再發行 Windows XP 與 SP2 的無線 LAN API

另請參閱

DOT11_SSID

WLAN_RAW_DATA

WlanEnum介面

WlanGet可用網路清單

WlanGetNetworkBss清單

Wlan註冊通知

WlanSetPsdIE數據清單