XP下区分有线网卡和无线网卡解决办法

XP下区分有线网卡和无线网卡目前需要区分网卡是有线还是无线。用GetAdaptersAddresses()获得的_IP_ADAPTER_

XP下区分有线网卡和无线网卡
目前需要区分网卡是有线还是无线。

用GetAdaptersAddresses()获得的_IP_ADAPTER_ADDRESSES::IfType,IF_TYPE_IEEE80211表示无线,IF_TYPE_ETHERNET_CSMACD为有线。但是在Vista之前的系统,这个属性均为IF_TYPE_ETHERNET_CSMACD,即无法通过此方法区分,如下是MSDN链接:
http://msdn.microsoft.com/en-us85)/library/aa366058(v=VS..aspx

MSDN建议用WlanEnumInterfaces,但也只是从XP的SP3开始支持。SP2无此API。

也尝试过用DeviceIoControl,传IOCTL_NDIS_QUERY_GLOBAL_STATS,OID_802_11_BSSID_LIST_SCAN。让设备去找可用的无线网络,有线网卡返回的 error code 期待的是 ERROR_INVALID_PARAMETER 或 ERROR_NOT_SUPPORTED。但有些无线网卡也返回同样的error code。

请问还有什么其它方法可以区分网卡有线和无线呢?

[解决办法]
机上没无线网卡,无法测试
试试WMI?