802.11 WLAN アダプターの取り外し

 

ワイヤレス LAN (WLAN) アダプターが削除または無効になると、オペレーティング システムは Dot11ExtIhvDeinitAdapter を呼び出して、アダプターの削除を IHV 拡張機能 DLL に通知します。 また、オペレーティング システムは、オペレーティング システムが DLL をアンロードする 前に、IHV 拡張機能 DLL によって管理されるすべてのアダプターに対して Dot11ExtIhvDeinitAdapter 関数も呼び出します。

IHV 拡張機能 DLL は、Dot11ExtIhvInitAdapter が呼び出されたときに、次のガイドラインに従う必要があります。

  • IHV 拡張機能 DLL は、WLAN アダプターに割り当てられているリソースを解放する必要があります。 特に、Dot11ExtAllocateBuffer の呼び出しによって割り当てられたすべてのメモリは、Dot11ExtFreeBuffer を呼び出して解放する必要があります。

  • オペレーティング システムが WLAN アダプターを参照するために使用するハンドルは、Dot11ExtIhvDeinitAdapter が呼び出されたときに無効になります。 オペレーティング システムは、Dot11ExtIhvInitAdapter が呼び出されたときに hDot11SvcHandle パラメーターを介して IHV 拡張機能 DLL にそのハンドルを渡します。

    Dot11ExtIhvDeinitAdapter 関数の呼び出し内で、呼び出しから戻った後、DLL は、Dot11ExtSendPacket などの hDot11SvcHandle パラメーターを宣言する IHV 拡張機能を呼び出すときにハンドル値を使用できません。

  • IHV 拡張機能 DLL に保留中の関連付け前の操作があり、Dot11ExtIhvPerformPreAssociate IHV ハンドラー関数の呼び出しによって開始された場合、オペレーティング システムは、Dot11ExtIhvDeinitAdapter 関数の呼び出しによって操作が取り消されたと見なします。 呼び出し内で、DLL は内部的に関連付け前の操作を取り消す必要がありますが、関連付け前の操作を完了するために Dot11ExtPreAssociateCompletion を呼び出すことはできません。

    関連付け前の操作の詳細については、「関連付け前の操作」を参照してください。

  • IHV 拡張機能 DLL に保留中の関連付け後の操作があり、Dot11ExtIhvPerformPostAssociate IHV ハンドラー関数の呼び出しによって開始された場合、オペレーティング システムは Dot11ExtIhvStopPostAssociate 関数を呼び出して操作を取り消してから Dot11ExtIhvDeinitAdapter を呼び出します。

    関連付け後の操作の詳細については、「関連付け後の操作」を参照してください。

  • また、オペレーティング システムは、オペレーティング システムが DLL をアンロードする 前に、IHV 拡張機能 DLL によって管理されるすべてのアダプターに対して Dot11ExtIhvDeinitAdapter 関数も呼び出します。 このような状況では、オペレーティング システムは、Dot11ExtIhvDeinitAdapter の呼び出しによって最後の WLAN アダプターが停止した後、Dot11ExtIhvDeinitService IHV ハンドラー関数を呼び出します。

    この操作の詳細については、「DLL の停止操作」を参照してください。