Author: cgutman
Date: Mon Jan 9 03:17:23 2012
New Revision: 54888
URL:
http://svn.reactos.org/svn/reactos?rev=54888&view=rev
Log:
[WLANCONF]
- Use a different method for determining if an adapter supports 802.11 networks so it
works on drivers that don't implement OID_GEN_PHYSICAL_MEDIUM
Modified:
branches/wlan-bringup/base/applications/network/wlanconf/wlanconf.c
Modified: branches/wlan-bringup/base/applications/network/wlanconf/wlanconf.c
URL:
http://svn.reactos.org/svn/reactos/branches/wlan-bringup/base/applications/…
==============================================================================
--- branches/wlan-bringup/base/applications/network/wlanconf/wlanconf.c [iso-8859-1]
(original)
+++ branches/wlan-bringup/base/applications/network/wlanconf/wlanconf.c [iso-8859-1] Mon
Jan 9 03:17:23 2012
@@ -91,23 +91,30 @@
{
BOOL bSuccess;
DWORD dwBytesReturned;
- NDISUIO_QUERY_OID QueryOid;
-
- /* NDIS 5.1 WLAN drivers must support this OID */
- QueryOid.Oid = OID_GEN_PHYSICAL_MEDIUM;
+ PNDISUIO_QUERY_OID QueryOid;
+ DWORD QueryOidSize;
+
+ QueryOidSize = sizeof(NDISUIO_QUERY_OID) + sizeof(NDIS_802_11_SSID);
+ QueryOid = HeapAlloc(GetProcessHeap(), 0, QueryOidSize);
+ if (!QueryOid)
+ return FALSE;
+
+ /* We're just going to do a OID_802_11_SSID query. WLAN drivers should
+ * always succeed this query (returning SsidLength = 0 if not associated) */
+ QueryOid->Oid = OID_802_11_SSID;
bSuccess = DeviceIoControl(hAdapter,
IOCTL_NDISUIO_QUERY_OID_VALUE,
- &QueryOid,
- sizeof(QueryOid),
- &QueryOid,
- sizeof(QueryOid),
- &dwBytesReturned,
- NULL);
- if (!bSuccess || *(PULONG)QueryOid.Data != NdisPhysicalMediumWirelessLan)
- return FALSE;
-
- return TRUE;
+ QueryOid,
+ QueryOidSize,
+ QueryOid,
+ QueryOidSize,
+ &dwBytesReturned,
+ NULL);
+
+ HeapFree(GetProcessHeap(), 0, QueryOid);
+
+ return bSuccess;
}
HANDLE