0

いくつか質問があります:

一般に、スマートデバイスフレームワークOpenNETCF.Netの名前空間と名前空間の一般的な違いは何ですか?OpenNETCF.Net.NetworkInformation2つの間に多くの機能の重複があるようです。NetworkInformation名前空間を優先して、OpenNETCF.Net名前空間は非推奨になりましたか?

具体的には、ワイヤレスアダプター付きのデバイスがあります。私の目標は、近くのアクセスポイントにクエリを実行し、自分のユーザーインターフェイスを介してそれらに接続できるようにすることです。

OpenNETCF.Net.Networking.GetAdapters()[1]ワイヤレスアダプタを表すアダプタオブジェクトを取得します。これはワイヤレスアダプタですが、IsWirelessとIsWirelessZeroConfigCompatibleはどちらもfalseを返します。ただし、NeighborhoodAccessPointsは、ワイヤレスアダプタが期待するように、近くのアクセスポイントのリストを返します。

検出されたアクセスポイントの1つをPreferredAccessPointsコレクションに追加する方法が必要です。OpenNETCF.Net名前空間内でこれを実現する方法が見つかりませんでした。AccessPointを追加する唯一のAddPreferredNetwork()方法は、 OpenNETCF.Net.NetworkInformation.WirelessZeroConfigNetworkInterfaceクラスのメソッドを使用することです。私が抱えている問題は、WirelessZeroConfigNetworkInterfaceオブジェクトを取得する方法を見つけることができなかったことです。メソッドによって返されるオブジェクトは、私が望んNetworkInterface.GetAllNetworkInterfaces()でいたオブジェクトではなく、単なる古いNetWorkInterfaceオブジェクトです。WirelessZeroConfigNetworkInterfaceこれはおそらく、IsWirelessがNetworkAdapterオブジェクトでfalseを返す問題に関連していると確信しています。

WirelessZeroConfigNetworkInterfaceフレームワークがワイヤレスではないと考えているように見えても、オブジェクトを構築する方法はありますか?オブジェクトのワイヤレス関連のメソッドによって示されるように、機能はそこにあるように見えNetworkAdapterます。

4

1 に答える 1

1

はい、歴史は少し混乱しています。基本的に、SDF 2.2 (またはそれ以前、もう思い出せません) では、OpenNETCF.Net 名前空間にすべてがありました。2.3 で機能を追加していたとき、完全なフレームワークと並行する OpenNETCF.Net.NetworkInformation 名前空間に大量のものを追加しました。その一部は、ワイヤレス関連で行ったことと機能的に重複していたため、すべてを OpenNETCF.Net.NetworkInformation 名前空間に移動することにしました。私は元のものを残して、既存の展開にやさしいように非推奨としてマークしました。使用する必要がある項目は、OpenNETCF.Net.NetworkInformation 名前空間にあるものです。

次に、機能がどのように機能するかについて説明します。まず、すべてのネットワーク インターフェイスに対して NDIS をクエリします。これにより、有線、RNDIS、無線など、基本的にネットワーク スタックが認識しているすべての情報が得られます。ただし、NDIS は「ワイヤレス」のことについてはあまり知りませんが、一部は知っています。

既知のアダプターのリストを取得したら、それがワイヤレス デバイスであるかどうかを NDIS に問い合わせます。ドライバーが登録時に NDIS に通知するため、少なくともワイヤレス デバイスであることがわかります。

ワイヤレス アダプターのリストを取得したら、それらを調べて、WZC サブシステムにアダプターを認識しているかどうかを尋ねます。WZC は、ワイヤレス デバイスに関するすべてを認識しているインターフェイスであり、公開されている共通のインターフェイスを介して対話できるようにします。WZC がそれを認識している場合 (ドライバーが WZC への初期化時に自分自身を報告したことを意味します)、そのための WirelessZeroConfigNetworkInterface を作成します。WZC で認識されていない場合は、ワイヤレスであることはわかっていますが (NDIS はワイヤレスであると教えてくれました)、それと対話するための NDIS メソッドしか持っていません。

NDIS は、関連付ける方法を提供しません。近くの SSID を尋ねる方法を提供します。次に、あなたが持っている Adapter インターフェースは、私たちが知っている機能を公開します。

場合によっては、ドライバーに WiFi 設定を操作するための独自の API があります (古い Cisco カードなど)。

これを実行している OS のバージョンは何ですか? 使用している WiFi チップセット/アダプターは何ですか?

于 2011-09-23T18:41:23.330 に答える