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.h ヘッダー ファイルと L2cmn.h ヘッダー ファイルで定義されています。
以下の表に、使用可能な値を示します。
値 | 意味 |
---|---|
|
通知の登録を解除します。 |
|
802.1X モジュールによって生成されたものを含め、オペレーティング システムのバージョンで使用可能なすべての通知を登録します。
SP3 を使用する Windows XP と SP2 を使用した Windows XP 用のワイヤレス LAN API の場合、 dwNotifSource を WLAN_NOTIFICATION_SOURCE_ALL に設定することは、 dwNotifSource を WLAN_NOTIFICATION_SOURCE_ACM に設定することと機能的に同じです。 |
|
自動構成モジュールによって生成された通知を登録します。
SP3 を使用した Windows XP と、SP2 を使用した Windows XP 用のワイヤレス LAN API: wlan_notification_acm_connection_complete通知とwlan_notification_acm_disconnected通知のみを使用できます。 |
|
ワイヤレス ホステッド ネットワークによって生成された通知に登録します。 この通知ソースは、ワイヤレス LAN サービスがインストールされている Windows 7 および Windows Server 2008 R2 で使用できます。 |
|
802.1X によって生成された通知の登録。 |
|
MSM によって生成された通知の登録。
dwNotifSource でWLAN_NOTIFICATION_SOURCE_MSM フラグが設定されている場合は、wiFiControl デバイス機能が必要です (「アプリ機能の宣言」を参照)。 その機能が付与されていない場合、関数は ERROR_ACCESS_DENIEDを返します。 wiFiControl デバイス機能を要求するには、場所へのアクセスに関するユーザーからの同意が必要です。 詳細については、「 Wi-Fi アクセスと場所の API 動作の変更」を参照してください。 SP3 を使用した Windows XP と、SP2 を使用した Windows XP 用のワイヤレス LAN API: この値はサポートされていません。 |
|
セキュリティ モジュールによって生成された通知に登録します。
現在、WLAN_NOTIFICATION_SOURCE_SECURITYに対する通知は定義されていません。 SP3 を使用した Windows XP と、SP2 を使用した Windows XP 用のワイヤレス LAN API: この値はサポートされていません。 |
|
独立系ハードウェア ベンダー (IHV) によって生成された通知の登録。
SP3 を使用した Windows XP と、SP2 を使用した Windows XP 用のワイヤレス LAN API: この値はサポートされていません。 |
|
デバイス サービスによって生成された通知の登録。 |
SP3 を使用した Windows XP と、SP2 を使用した Windows XP 用のワイヤレス LAN API: このパラメーターは、WLAN_NOTIFICATION_SOURCE_NONE、WLAN_NOTIFICATION_SOURCE_ALL、またはWLAN_NOTIFICATION_SOURCE_ACMに設定する必要があります。
[in] bIgnoreDuplicate
重複する通知を無視するかどうかを指定します。 TRUE に設定すると、前の通知と同じ場合、通知はクライアントに送信されません。
SP3 を使用した Windows XP と、SP2 を使用した Windows XP 用のワイヤレス LAN API: このパラメーターは無視されます。
[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 動作の変更」を参照してください。
リターン コード | 説明 |
---|---|
|
パラメーターが正しくありません。 このエラーは、 hClientHandle が NULL または 無効 な場合、または pReserved が NULL でない場合に返されます。 |
|
ハンドル テーブルにハンドル hClientHandle が見つかりませんでした。 |
|
クエリ結果にメモリを割り当てませんでした。 |
|
dwNotifSource でWLAN_NOTIFICATION_SOURCE_MSM フラグが設定されている場合は、wiFiControl デバイス機能が必要です (「アプリ機能の宣言」を参照してください)。 その機能が付与されていない場合、関数は ERROR_ACCESS_DENIEDを返します。 wiFiControl デバイス機能を要求するには、場所へのアクセスに関するユーザーからの同意が必要です。 詳細については、「 Wi-Fi アクセスと場所の API 動作の変更」を参照してください。 |
|
さまざまなエラー コード。 |
注釈
WlanRegisterNotification は、すべてのワイヤレス インターフェイスで通知を登録および登録解除するためにアプリケーションによって使用されます。 通知に登録する場合、アプリケーションは funcCallback パラメーターによって指されるコールバック関数を提供する必要があります。 このコールバック関数のプロトタイプは 、WLAN_NOTIFICATION_CALLBACKです。 このコールバック関数は、WlanRegisterNotification 関数に渡される dwNotifSource パラメーターに登録されている通知を受け取ります。 コールバック関数は、通知に関する詳細情報を含む最初のパラメーターとして 、WLAN_NOTIFICATION_DATA 構造体へのポインターを使用して呼び出されます。 コールバック関数は、 pCallbackContext パラメーターで WlanRegisterNotification 関数に渡されるクライアント コンテキストへのポインターを含む 2 番目のパラメーターも受け取ります。
dwNotifSource がWLAN_NOTIFICATION_SOURCE_NONE以外の値であり、クライアントがコールバック関数を提供できない場合、WlanRegisterNotification 関数はエラーを返します。
登録されると、クライアントがハンドルの登録を解除または閉じるまで、通知が使用可能になるとコールバック関数が呼び出されます。
呼び出し元のアプリケーションが呼び出しハンドルを閉じる (hClientHandle パラメーターを使用して WlanCloseHandle を呼び出す) 場合、またはプロセスが終了した場合、この関数によって発生した通知を受信するための登録は自動的に元に戻されます。
コールバック関数から WlanRegisterNotification を呼び出さないでください。 wlanRegisterNotification が dwNotifSource を WLAN_NOTIFICATION_SOURCE_NONE に設定して呼び出されたときにクライアントが通知コールバックの途中にある場合 (つまり、クライアントが通知から登録を解除している場合)、WlanRegisterNotification はコールバックが完了するまで待機してから値を返します。 コールバック関数内でこの関数を呼び出すと、呼び出しは完了しません。 コールバック関数と通知から登録を解除するスレッドの両方が同じロックを取得しようとすると、デッドロックが発生する可能性があります。 さらに、アプリケーション DLL の DllMain 関数から WlanRegisterNotification を呼び出さないでください。 これにより、デッドロックが発生する可能性もあります。
アプリケーションは、通知を待機する代わりに、タイムアウトして現在のインターフェイスの状態に対してクエリを実行できます。
SP3 を使用した Windows XP と、SP2 を使用した Windows XP 用のワイヤレス LAN API: 通知は Netman サービスによって処理されます。 Netman サービスが無効または使用できない場合、通知は受信されません。 通知が妥当な時間内に受信されない場合、アプリケーションはタイムアウトし、現在のインターフェイスの状態を照会する必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista、SP3 を使用した Windows XP [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | wlanapi.h (Wlanapi.h を含む) |
Library | Wlanapi.lib |
[DLL] | Wlanapi.dll |
再頒布可能パッケージ | Sp2 を使用した Windows XP 用ワイヤレス LAN API |