You misunderstand. This is a list, as the name implies, of all network interfaces. Bluetooth and Wi-Fi (and even RNDIS USB connections) are all network interfaces and therefore will be listed. Basically, under the hood, it just asks NDIS to tell us all the interfaces that he knows about.
While it is iterating, it has two functions. First, it asks for the WZC if it knows about the interface (i.e. if the interface driver is registered in the WZC). If so, then we know this wireless device that is compatible with WZC, and we will get more information for it and return the WirelessZeroConfig interface.
Then we ask that NDIS is a driver for a device that communicates itself as wireless. If so, then we get the NDIS information for wireless and return the wireless interface.
Everything else becomes a common NetworkInterface.
So how can a wireless device appear as a shared NetworkInterface? Simply. The driver for him did not register with the WZC, and also does not report that it is wireless via NDIS. Our code cannot determine that the driver is not reporting. This is actually quite common with older Cisco cards that use the Cico interface for a wireless network. They are physically a wireless device, but since the software does not tell us about it, and since we do not request any proprietary APIs, all we can do is return the general NDIS information for the adapter.
If you have such a device, the only way is to talk to the OEM adapter and see if they have an API for it that you can use.
source share