⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 miscproc.c

📁 Windows CE 6.0 BSP for VOIP sample phone. Intel PXA270 platform.
💻 C
📖 第 1 页 / 共 5 页
字号:
			 	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 + -