📄 miscproc.c
字号:
break;
}
if (ExitFlag == FALSE)
TmpPos += (TmpIeLen + 2);
}
*pBufLen = CurPos;
// HexDump(DBG_ALLEN, "IeBuf ", IeBuf, *pBufLen);
// DBGPRINT(DBG_ALLEN, ("RegularIeFilter-- *pBufLen = %d\n", *pBufLen));
return;
}
VOID
SetRegionCode(
IN PMRVDRV_ADAPTER Adapter
)
{
DBGPRINT(DBG_LOAD, ("Region code = 0x%x \n", Adapter->RegionCode));
switch (Adapter->RegionCode)
{
default:
case 0x10:
Adapter->region_channel[0].Valid = TRUE;
Adapter->region_channel[0].Band = MRVDRV_802_11_BAND_BG;
Adapter->region_channel[0].Region = 0x10;
Adapter->region_channel[0].CFP = channel_freq_power_US_BG;
Adapter->region_channel[0].NrCFP = 11;
#ifdef MRV_CHIP_8385H
Adapter->region_channel[1].Valid = TRUE;
Adapter->region_channel[1].Band = MRVDRV_802_11_BAND_A;
Adapter->region_channel[1].Region = 0x10;
Adapter->region_channel[1].CFP = channel_freq_power_A;
Adapter->region_channel[1].NrCFP = 13;
#endif
break;
case 0x20:
Adapter->region_channel[0].Valid = TRUE;
Adapter->region_channel[0].Band = MRVDRV_802_11_BAND_BG;
Adapter->region_channel[0].Region = 0x20;
Adapter->region_channel[0].CFP = channel_freq_power_US_BG;
Adapter->region_channel[0].NrCFP = 11;
#ifdef MRV_CHIP_8385H
Adapter->region_channel[1].Valid = TRUE;
Adapter->region_channel[1].Band = MRVDRV_802_11_BAND_A;
Adapter->region_channel[1].Region = 0x20;
Adapter->region_channel[1].CFP = channel_freq_power_A;
Adapter->region_channel[1].NrCFP = 13;
#endif
break;
case 0x30:
Adapter->region_channel[0].Valid = TRUE;
Adapter->region_channel[0].Band = MRVDRV_802_11_BAND_BG;
Adapter->region_channel[0].Region = 0x30;
Adapter->region_channel[0].CFP = channel_freq_power_EU_BG;
Adapter->region_channel[0].NrCFP = 13;
#ifdef MRV_CHIP_8385H
Adapter->region_channel[1].Valid = TRUE;
Adapter->region_channel[1].Band = MRVDRV_802_11_BAND_A;
Adapter->region_channel[1].Region = 0x30;
Adapter->region_channel[1].CFP = channel_freq_power_EU_A;
Adapter->region_channel[1].NrCFP = 19;
#endif
break;
case 0x31:
Adapter->region_channel[0].Valid = TRUE;
Adapter->region_channel[0].Band = MRVDRV_802_11_BAND_BG;
Adapter->region_channel[0].Region = 0x31;
Adapter->region_channel[0].CFP = channel_freq_power_SPN_BG;
Adapter->region_channel[0].NrCFP = 2;
#ifdef MRV_CHIP_8385H
Adapter->region_channel[1].Valid = TRUE;
Adapter->region_channel[1].Band = MRVDRV_802_11_BAND_A;
Adapter->region_channel[1].Region = 0x31;
Adapter->region_channel[1].CFP = channel_freq_power_A;
Adapter->region_channel[1].NrCFP = 13;
#endif
break;
case 0x32:
Adapter->region_channel[0].Valid = TRUE;
Adapter->region_channel[0].Band = MRVDRV_802_11_BAND_BG;
Adapter->region_channel[0].Region = 0x32;
Adapter->region_channel[0].CFP = channel_freq_power_FR_BG;
Adapter->region_channel[0].NrCFP = 4;
#ifdef MRV_CHIP_8385H
Adapter->region_channel[1].Valid = TRUE;
Adapter->region_channel[1].Band = MRVDRV_802_11_BAND_A;
Adapter->region_channel[1].Region = 0x32;
Adapter->region_channel[1].CFP = channel_freq_power_A;
Adapter->region_channel[1].NrCFP = 13;
#endif
break;
case 0x40:
Adapter->region_channel[0].Valid = TRUE;
Adapter->region_channel[0].Band = MRVDRV_802_11_BAND_BG;
Adapter->region_channel[0].Region = 0x40;
Adapter->region_channel[0].CFP = channel_freq_power_JPN_BG;
Adapter->region_channel[0].NrCFP = 14;
#ifdef MRV_CHIP_8385H
Adapter->region_channel[1].Valid = TRUE;
Adapter->region_channel[1].Band = MRVDRV_802_11_BAND_A;
Adapter->region_channel[1].Region = 0x40;
Adapter->region_channel[1].CFP = channel_freq_power_JPN_A;
Adapter->region_channel[1].NrCFP = 11;
#endif
break;
}
Adapter->cur_region_channel = &(Adapter->region_channel[0]);
Adapter->connected_band = MRVDRV_802_11_BAND_BG;
Adapter->connected_channel = 1;
}
VOID
InfraBssReconnectStart(
IN PMRVDRV_ADAPTER Adapter,
IN USHORT reason )
{
DBGPRINT(DBG_ALLEN, ("InfraBssReconnectStart() , reason = 0x%x \n", reason));
///AllenDBGPRINT(DBG_ALLEN, ("InfraBssReconnectStart() , reason = 0x%x \n", reason));
/*
// we just support open and wep reconnect
if ( (Adapter->EncryptionStatus != Ndis802_11WEPEnabled) &&
(Adapter->EncryptionStatus != Ndis802_11WEPDisabled) &&
(Adapter->EncryptionStatus != Ndis802_11WEPKeyAbsent) &&
(Adapter->EncryptionStatus != Ndis802_11WEPNotSupported) )
{
return;
}
*/
Adapter->ReInfrastructureMode = Adapter->InfrastructureMode;
Adapter->ReAuthenticationMode = Adapter->AuthenticationMode;
Adapter->ReEncryptionStatus = Adapter->EncryptionStatus;
NdisMoveMemory( &(Adapter->ReWEPKey),
&(Adapter->LastAddedWEPKey),
sizeof(MRVL_WEP_KEY));
NdisMoveMemory( &(Adapter->ReSSID),
&(Adapter->PreviousSSID),
sizeof(NDIS_802_11_SSID));
#ifdef ACTIVE_ROAMING
if (Adapter->bIsActiveRoaming ==TRUE)
{
NdisMoveMemory( &(Adapter->AttemptedSSIDBeforeScan),
&(Adapter->ReSSID),
sizeof(NDIS_802_11_SSID));
}
#endif
switch (reason)
{
case RECONNECT_ASSOCIATE_FAIL:
Adapter->bIsReconnectEnable = TRUE;
Adapter->usReconnectCounter = 1;
Adapter->ulReconnectPeriod = 0;
Adapter->ulStartTimeStamp = 0;
Adapter->ulRetryTimeInterval = RE_CONNECT_PERIOD_TIME;
Adapter->ReconnectType = RECONNECT_COUNTER_TYPE;
Adapter->bIsConnectToHideSsid = FALSE;
Adapter->bIsAcceptSystemConnect = FALSE;
Adapter->bIsIgnoreTheFirstOne = FALSE;
break;
case RECONNECT_LINK_LOST:
/*
Adapter->bIsReconnectEnable = TRUE;
Adapter->usReconnectCounter = 1;
Adapter->ulReconnectPeriod = 10000; // 100 sec
NdisGetSystemUpTime(&Adapter->ulStartTimeStamp);
Adapter->ReconnectType = RECONNECT_PEROID_TYPE;
Adapter->bIsConnectToHideSsid = FALSE;
Adapter->bIsAcceptSystemConnect = TRUE;
*/
Adapter->bIsReconnectEnable = TRUE;
Adapter->usReconnectCounter = 1;
Adapter->ulReconnectPeriod = 0;
Adapter->ulStartTimeStamp = 0;
Adapter->ulRetryTimeInterval = RE_CONNECT_PERIOD_TIME;
Adapter->ReconnectType = RECONNECT_COUNTER_TYPE;
Adapter->bIsConnectToHideSsid = FALSE;
Adapter->bIsAcceptSystemConnect = TRUE;
Adapter->bIsIgnoreTheFirstOne = FALSE;
break;
case RECONNECT_DEAUTHENTICATE:
/*
Adapter->bIsReconnectEnable = TRUE;
Adapter->usReconnectCounter = 0;
Adapter->ulReconnectPeriod = 100000; // 100 sec
NdisGetSystemUpTime(&Adapter->ulStartTimeStamp);
Adapter->ReconnectType = RECONNECT_PEROID_TYPE;
Adapter->bIsConnectToHideSsid = FALSE;
Adapter->bIsAcceptSystemConnect = FALSE;
*/
//RETAILMSG(1, (TEXT("InfraBssReconnectStart -> RECONNECT_DEAUTHENTICATE \r\n")));
Adapter->bIsReconnectEnable = TRUE;
Adapter->usReconnectCounter = 1;
Adapter->ulReconnectPeriod = 0;
Adapter->ulStartTimeStamp = 0;
Adapter->ulRetryTimeInterval = RE_CONNECT_PERIOD_TIME;
Adapter->ReconnectType = RECONNECT_COUNTER_TYPE;
Adapter->bIsConnectToHideSsid = FALSE;
Adapter->bIsAcceptSystemConnect = FALSE;
Adapter->bIsIgnoreTheFirstOne = FALSE;
break;
case RECONNECT_ROAMING:
Adapter->bIsReconnectEnable = TRUE;
Adapter->usReconnectCounter = 0;
Adapter->ulReconnectPeriod = 0;
Adapter->ulStartTimeStamp = 0;
Adapter->ulRetryTimeInterval = RE_CONNECT_PERIOD_TIME;
Adapter->ReconnectType = RECONNECT_RSSI_TYPE;
Adapter->bIsConnectToHideSsid = FALSE;
Adapter->bIsAcceptSystemConnect = FALSE;
Adapter->bIsIgnoreTheFirstOne = FALSE;
break;
case RECONNECT_D3_TO_D0:
Adapter->bIsReconnectEnable = TRUE;
Adapter->usReconnectCounter = 1;
Adapter->ulReconnectPeriod = 0;
Adapter->ulStartTimeStamp = 0;
Adapter->ulRetryTimeInterval = RE_CONNECT_PERIOD_TIME;
Adapter->ReconnectType = RECONNECT_COUNTER_TYPE;
Adapter->bIsConnectToHideSsid = FALSE;
Adapter->bIsAcceptSystemConnect = FALSE;
Adapter->bIsIgnoreTheFirstOne = FALSE;
/*
Adapter->bIsReconnectEnable = TRUE;
Adapter->usReconnectCounter = 0;
Adapter->ulReconnectPeriod = 100000; // 100 sec
NdisGetSystemUpTime(&Adapter->ulStartTimeStamp);
Adapter->ReconnectType = RECONNECT_PEROID_TYPE;
Adapter->bIsConnectToHideSsid = FALSE;
*/
break;
case RECONNECT_DEEP_SLEEP_AWAKE:
Adapter->bIsReconnectEnable = TRUE;
Adapter->usReconnectCounter = 1;
Adapter->ulReconnectPeriod = 0;
Adapter->ulStartTimeStamp = 0;
Adapter->ulRetryTimeInterval = RE_CONNECT_PERIOD_TIME;
Adapter->ReconnectType = RECONNECT_COUNTER_TYPE;
Adapter->bIsConnectToHideSsid = FALSE;
Adapter->bIsAcceptSystemConnect = FALSE;
Adapter->bIsIgnoreTheFirstOne = FALSE;
break;
case RECONNECT_HIDE_SSID:
Adapter->bIsReconnectEnable = TRUE;
Adapter->usReconnectCounter = 10;
Adapter->ulReconnectPeriod = 0;
Adapter->ulStartTimeStamp = 0;
Adapter->ulRetryTimeInterval = RE_CONNECT_PERIOD_TIME;
Adapter->ReconnectType = RECONNECT_COUNTER_TYPE;
Adapter->bIsConnectToHideSsid = TRUE;
Adapter->bIsAcceptSystemConnect = FALSE;
Adapter->bIsIgnoreTheFirstOne = FALSE;
break;
}
switch (Adapter->ReconnectType)
{
case RECONNECT_COUNTER_TYPE:
ReConnectHandler( Adapter);
// Start Reconnect timer
NdisMSetPeriodicTimer( &Adapter->MrvReConnectTimer, Adapter->ulRetryTimeInterval);
Adapter->ReConnectTimerIsSet = TRUE;
//RETAILMSG(1, (TEXT("Adapter->bIsReConnectNow = FALSE 6 \r\n")));
break;
case RECONNECT_PEROID_TYPE:
DBGPRINT(DBG_ALLEN, ("RECONNECT_PEROID_TYPE Set timer \n"));
// Start Reconnect timer
NdisMSetPeriodicTimer( &Adapter->MrvReConnectTimer, RE_CONNECT_PERIOD_TIME);
Adapter->ReConnectTimerIsSet = TRUE;
//RETAILMSG(1, (TEXT("Adapter->bIsReConnectNow = FALSE 7 \r\n")));
break;
default :
break;
}
return;
}
VOID
InfraBssReconnectStop(
PMRVDRV_ADAPTER Adapter)
{
BOOLEAN timerStatus;
// int i;
DBGPRINT(DBG_ALLEN, ("InfraBssReconnectStop() \n"));
///AllenDBGPRINT(DBG_ALLEN, ("InfraBssReconnectStop() \n"));
// RETAILMSG(1, (TEXT("InfraBssReconnectStop() \r\n")));
Adapter->bIsReconnectEnable = FALSE;
Adapter->bIsReConnectNow = FALSE;
//RETAILMSG(1, (TEXT("Adapter->bIsReConnectNow = FALSE 7 \r\n")));
if (Adapter->ReConnectTimerIsSet == TRUE)
{
NdisMCancelTimer(&Adapter->MrvReConnectTimer, &timerStatus);
Adapter->ReConnectTimerIsSet = FALSE;
}
if (Adapter->MediaConnectStatus == NdisMediaStateDisconnected)
{
//RETAILMSG(1, (TEXT("indicate NDIS_STATUS_MEDIA_DISCONNECT 5\r\n")));
NdisMIndicateStatus( Adapter->MrvDrvAdapterHdl,
NDIS_STATUS_MEDIA_DISCONNECT,
(PVOID)NULL,
0);
NdisMIndicateStatusComplete(Adapter->MrvDrvAdapterHdl);
}
Adapter->bIsBeaconLoseEvent = FALSE;
Adapter->bIsDeauthenticaticationEvent = FALSE;
Adapter->bIsD3ToD0reconnect = FALSE;
return;
}
VOID
DoReConnect(
PMRVDRV_ADAPTER Adapter)
{
NDIS_STATUS Status;
DBGPRINT(DBG_ALLEN, ("DoReConnect() \n"));
// RETAILMSG(1, (TEXT("DoReConnect() \r\n")));
// RETAILMSG(1, (TEXT("DoReConnect() \r\n")));
/*
if ((Adapter->ReEncryptionStatus != Ndis802_11WEPEnabled) &&
(Adapter->ReEncryptionStatus != Ndis802_11WEPDisabled) &&
(Adapter->ReEncryptionStatus != Ndis802_11WEPKeyAbsent) &&
(Adapter->ReEncryptionStatus != Ndis802_11WEPNotSupported))
{
DBGPRINT(DBG_ALLEN, ("Not reconnect security type \n"));
Adapter->bIsReConnectNow = FALSE;
// RETAILMSG(1, (TEXT("Adapter->bIsReConnectNow = FALSE 8 \r\n")));
return;
}
*/
if ( Adapter->bIsReConnectNow == TRUE)
{
DBGPRINT(DBG_ALLEN, ("Adapter->bIsReConnectNow = TRUE \n"));
// RETAILMSG(1, (TEXT("Adapter->bIsReConnectNow = TRUE \r\n")));
return;
}
else
Adapter->bIsReConnectNow = TRUE;
// set infrastructure mode
DBGPRINT(DBG_ALLEN, ("InfrastructureMode = 0x%x \n", Adapter->ReInfrastructureMode));
// RETAILMSG(1, (TEXT("InfrastructureMode = 0x%x \r\n"), Adapter->ReInfrastructureMode));
PrepareAndSendCommand(
Adapter,
HostCmd_CMD_802_11_SNMP_MIB,
(USHORT)Adapter->ReInfrastructureMode,
HostCmd_OPTION_USE_INT,
(NDIS_OID)OID_802_11_INFRASTRUCTURE_MODE,
HostCmd_PENDING_ON_NONE,
0,
FALSE,
NULL,
NULL,
NULL,
NULL);
// set authentication mode
DBGPRINT(DBG_ALLEN, ("AuthenticationMode = 0x%x \n", Adapter->ReAuthenticationMode));
//RETAILMSG(1, (TEXT("AuthenticationMode = 0x%x \r\n"), Adapter->ReAuthenticationMode));
Adapter->AuthenticationMode = Adapter->ReAuthenticationMode;
// set encryption mode
DBGPRINT(DBG_ALLEN, ("EncryptionStatus = 0x%x \n", Adapter->ReEncryptionStatus));
//RETAILMSG(1, (TEXT("EncryptionStatus = 0x%x \r\n"), Adapter->ReEncryptionStatus));
MrvDrvSetEncryptionStatus(
Adapter,
Adapter->ReEncryptionStatus,
(NDIS_OID) 0,
&(Adapter->ReEncryptionStatus),
NULL,
NULL);
// Add Key : now just support wep , no WPA
if ((Adapter->ReEncryptionStatus == Ndis802_11Encryption1Enabled) ||
(Adapter->ReEncryptionStatus == Ndis802_11Encryption1KeyAbsent))
{
PrepareAndSendCommand(
Adapter,
HostCmd_CMD_802_11_SET_WEP,
0,
HostCmd_OPTION_USE_INT,
OID_802_11_ADD_WEP,
HostCmd_PENDING_ON_NONE,
0,
FALSE,
NULL,
NULL,
NULL,
&(Adapter->ReWEPKey));
Adapter->EncryptionStatus = Ndis802_11Encryption1Enabled;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -