HeapFree(GetProcessHeap(), 0, SetOid);
SetOidSize = sizeof(NDISUIO_SET_OID) + FIELD_OFFSET(NDIS_802_11_WEP, KeyMaterial) +
- (strlen(sWepKey) >> 2);
+ (strlen(sWepKey) >> 1);
SetOid = HeapAlloc(GetProcessHeap(), 0, SetOidSize);
if (!SetOid)
return FALSE;
WepData = (PNDIS_802_11_WEP)SetOid->Data;
WepData->KeyIndex = 0x80000000;
- WepData->KeyLength = strlen(sWepKey) >> 2;
+ WepData->KeyLength = strlen(sWepKey) >> 1;
WepData->Length = FIELD_OFFSET(NDIS_802_11_WEP, KeyMaterial) + WepData->KeyLength;
/* Assemble the hex key */
i = 0;
- while (sWepKey[i << 2] != '\0')
+ while (sWepKey[i << 1] != '\0')
{
- WepData->KeyMaterial[i] = CharToHex(sWepKey[i << 2]) << 4;
- WepData->KeyMaterial[i] |= CharToHex(sWepKey[(i << 2) + 1]);
+ WepData->KeyMaterial[i] = CharToHex(sWepKey[i << 1]) << 4;
+ WepData->KeyMaterial[i] |= CharToHex(sWepKey[(i << 1) + 1]);
i++;
}
NDIS_802_11_RSSI Rssi = BssidInfo->Rssi;
NDIS_802_11_NETWORK_INFRASTRUCTURE NetworkType = BssidInfo->InfrastructureMode;
CHAR SsidBuffer[NDIS_802_11_LENGTH_SSID + 1];
+ UINT Rate;
/* SSID member is a non-null terminated ASCII string */
RtlCopyMemory(SsidBuffer, Ssid->Ssid, Ssid->SsidLength);
SsidBuffer[Ssid->SsidLength] = 0;
_tprintf(_T("\nSSID: %s\n"
- "Encrypted: %s"
+ "Encrypted: %s\n"
"Network Type: %s\n"
"RSSI: %i dBm\n"
"Supported Rates (Mbps): "),
for (j = 0; j < NDIS_802_11_LENGTH_RATES; j++)
{
- if (BssidInfo->SupportedRates[j] != 0)
+ Rate = BssidInfo->SupportedRates[j];
+ if (Rate != 0)
{
+ /* Bit 7 is the basic rates bit */
+ Rate = Rate & 0x7F;
+
/* SupportedRates are in units of .5 */
- _tprintf(_T("%d "), (BssidInfo->SupportedRates[j] << 2));
+ Rate = Rate << 1;
+
+ _tprintf(_T("%u "), Rate);
}
}
_tprintf(_T("\n"));