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

スキャンするネットワークの SSID を指定する DOT11_SSID 構造体へのポインター。 このパラメーターは省略可能です。 NULL に設定すると、返されるリストには使用可能なすべてのネットワークが含まれます。 WINDOWS XP SP3 とワイヤレス LAN API for Windows XP SP2: このパラメーターは NULL である必要があります。

[in, optional] pIeData

プローブ要求に含める情報要素へのポインター。 このパラメーター は、クライアント プロビジョニングの可用性情報と 802.1X 認証要件を含む可能性があるWLAN_RAW_DATA構造を指します。WINDOWS XP SP3 とワイヤレス LAN API for Windows XP SP2: このパラメーターは NULL である必要があります。

pReserved

将来利用するために予約されています。 NULL に設定する必要があります。

戻り値

関数が成功した場合、戻り値は ERROR_SUCCESS です。

関数が失敗した場合、戻り値は次のいずれかの戻りコードになる可能性があります。

リターン コード 説明
ERROR_INVALID_PARAMETER
hClientHandleNULL または無効、 pInterfaceGuidNULL、または pReservedNULL ではありません。
ERROR_INVALID_HANDLE
ハンドル テーブルにハンドル hClientHandle が見つかりませんでした。
RPC_STATUS
さまざまなエラー コード。
ERROR_NOT_ENOUGH_MEMORY
クエリ結果にメモリを割り当てませんでした。

注釈

WlanScan 関数は、ネイティブ 802.11 ワイヤレス LAN ドライバーが使用可能なワイヤレス ネットワークをスキャンすることを要求します。 ドライバーは、その実装と pDot11Ssid パラメーターと pIeData パラメーターで渡された値に応じて、プローブ要求 (アクティブなスキャン) を送信する場合と送信しない場合があります。

pIeData パラメーターが NULL でない場合、ドライバーはスキャン中にプローブ要求を送信します。 プローブ要求には、 pIeData パラメーターによって指される情報要素 (IE) が含まれます。 たとえば、WPS 対応アクセス ポイントを検出するためのプローブ要求には、Wi-Fi Protected Setup (WPS) IE を含めることができます。 pIeData パラメーターが指すバッファーには、要素 ID から始まる完全な IE が含まれている必要があります。

WlanScan 関数に渡される pIeData パラメーターには、近接サービス探索 (PSD) IE データ エントリを含む省略可能なWLAN_RAW_DATA構造体へのポインターを含めることができます。

PSD IE を格納するために使用する場合、Wlanapi.h ヘッダー ファイルで定義されているDOT11_PSD_IE_MAX_DATA_SIZE定数は dwDataSize メンバーの最大値です。

定数 説明
DOT11_PSD_IE_MAX_DATA_SIZE 240 PSD IE データ エントリの最大データ サイズ (バイト単位)。
 

PSD IE の形式の説明など、PSD IEs の詳細については、 WlanSetPsdIEDataList 関数を参照してください。

WlanScan 関数が呼び出されると、ネイティブの 802.11 ワイヤレス LAN ドライバーは、スキャンが開始される前に、使用可能なワイヤレス ネットワークの現在の一覧をフラッシュする可能性があります。 アプリケーションでは、 WlanScan 関数を呼び出すと、以前のスキャンから WlanGetNetworkBssList 関数または WlanGetAvailableNetworkList 関数によって返される使用可能なワイヤレス ネットワークの既存の一覧に追加されることを想定しないでください。

WlanScan 関数は直ちにを返します。 ネットワーク スキャンが完了したときに通知を受け取るために、Windows Vista 以降のクライアントは WlanRegisterNotification を呼び出して通知を登録する必要があります。 WlanRegisterNotification 関数に渡される dwNotifSource パラメーターには、自動構成モジュールによって生成された通知に登録するWLAN_NOTIFICATION_SOURCE_ACM ビットが設定されている必要があります。 WlanScan 関数要求を 4 秒で完了するには、Windows ロゴの要件を満たすワイヤレス ネットワーク ドライバーが必要です。

ワイヤレス LAN サービスは、使用可能なワイヤレス ネットワークが変更されたときに通知を送信しません。 ワイヤレス LAN サービスは、複数のスキャンで使用可能なネットワークの一覧の変更を追跡しません。 現在の既定の動作では、ワイヤレス LAN サービスはワイヤレス インターフェイス ドライバーに 60 秒ごとにワイヤレス ネットワークのスキャンのみを要求し、場合によっては (既にワイヤレス ネットワークに接続されている場合)、ワイヤレス LAN サービスはスキャンをまったく要求しません。 WlanScan 関数は、ワイヤレス ネットワークの変更を追跡するためにアプリケーションで使用できます。 アプリケーションは、最初にWLAN_NOTIFICATION_SOURCE_ACM通知に登録する必要があります。 その後、WlanScan 関数を呼び出してスキャンを開始できます。 アプリケーションは、4 秒後にwlan_notification_acm_scan_complete通知またはタイムアウトを受信するまで待機する必要があります。 その後、アプリケーションは WlanGetNetworkBssList または WlanGetAvailableNetworkList 関数を呼び出して、使用可能なワイヤレス ネットワークの一覧を取得できます。 このプロセスは、使用可能なワイヤレス ネットワークに対する変更の追跡をアプリケーションで定期的に繰り返すことができます。

WlanScan 関数は直ちにを返し、スキャンが完了したときに通知を提供しません Windows XP SP3 または Windows XP 用ワイヤレス LAN API SP2 します。

スキャンの実行中にワイヤレス インターフェイスでデータ パケットの送受信が難しくなるため、 WlanScan 関数はネットワーク スキャンが完了するまでの待機時間が長くなる可能性があります。

要件

要件
サポートされている最小のクライアント Windows Vista、SP3 を使用した Windows XP [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー wlanapi.h (Wlanapi.h を含む)
Library Wlanapi.lib
[DLL] Wlanapi.dll
再頒布可能パッケージ Sp2 を使用した Windows XP 用ワイヤレス LAN API

こちらもご覧ください

DOT11_SSID

WLAN_RAW_DATA

WlanEnumInterfaces

WlanGetAvailableNetworkList

WlanGetNetworkBssList

WlanRegisterNotification

WlanSetPsdIEDataList