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

📄 oidproc.c

📁 此压缩包为杰得开发得z228的BSP的源代码,可以实现很多功能,尤其是视频解码有很好的效果.
💻 C
📖 第 1 页 / 共 5 页
字号:
        if((Adapter->MediaConnectStatus == NdisMediaStateConnected) &&( ulTimeDiff > Adapter->ulRSSIThresholdTimer) )
         {
                   //V5DbgMsg( (L"Query: OID_802_11_RSSI: GetTickCount()=%ld,Adapter->ulRSSITickCount=%ld, GetTickCount()-Adapter->ulRSSITickCount=%ld\n",GetTickCount(),Adapter->ulRxTickCount,(GetTickCount()-Adapter->ulRSSITickCount)) );   
                        TT_CMDPARSE_SYNC_STD_OID_QUERY_AND_RETURN( sizeof(NDIS_802_11_RSSI), HostCmd_CMD_802_11_RSSI, HostCmd_ACT_GET );
                
            return NDIS_STATUS_SUCCESS;  
           //Ling--, 011206
          }
         else
          {
      
                   if( InformationBufferLength < sizeof(NDIS_802_11_RSSI) )
                  {
                  *BytesNeeded = sizeof(NDIS_802_11_RSSI);
                  return NDIS_STATUS_INVALID_LENGTH;
                    }
              
                   GenericLONG = Adapter->LastRSSI;
                   MoveSource = (PVOID) (&GenericLONG);
                   MoveBytes = sizeof(GenericLONG);
                   //Ling++, 012006
                    //V5DbgMsg( (L"Query: OID_802_11_RSSI: =%d\n",Adapter->LastRSSI) );
                  //Ling--, 012006  
            }   
     #else
         {
      
                   if( InformationBufferLength < sizeof(NDIS_802_11_RSSI) )
                  {
                  *BytesNeeded = sizeof(NDIS_802_11_RSSI);
                  return NDIS_STATUS_INVALID_LENGTH;
                    }
              
                   GenericLONG = Adapter->LastRSSI;
                   MoveSource = (PVOID) (&GenericLONG);
                   MoveBytes = sizeof(GenericLONG);
     
          }
     #endif //NEW_RSSI   
    
    }
    break;

  case OID_802_11_RSSI_TRIGGER:

    //DBGPRINT(DBG_OID,("REQUEST - OID_802_11_RSSI_TRIGGER ****\n"));
    if( InformationBufferLength < sizeof(NDIS_802_11_RSSI) )
    {

      *BytesNeeded = sizeof(NDIS_802_11_RSSI);
      return NDIS_STATUS_INVALID_LENGTH;
    }   
    GenericLONG = Adapter->RSSITriggerValue;
    MoveSource = (PVOID) (&GenericLONG);
    MoveBytes = sizeof(GenericLONG);
    break;

#ifdef NEW_RSSI
 case OID_MRVL_RSSI_BCNAVG  :
  {
         GenericUSHORT =  Adapter->bcn_avg_factor;
            MoveSource = (PVOID)(&GenericUSHORT);
            MoveBytes = sizeof(GenericUSHORT);
            
            V5DbgMsg( (L"Query: OID_MRVL_RSSI_BCNAVG: Adapter->bcn_avg_factor=%d\n",GenericUSHORT) );           
    }
    break;

 case OID_MRVL_RSSI_THRESHOLDTIMER:
  {
         GenericULONG = Adapter->ulRSSIThresholdTimer;
            MoveSource = (PVOID) (&GenericULONG);
            MoveBytes = sizeof(GenericULONG);
            
            V5DbgMsg( (L"Query: OID_MRVL_RSSI_THRESHOLDTIMER: Adapter->ulRSSIThresholdTimer=%d\n",GenericULONG) );          
    }
    break;  
#endif //NEW_RSSI
  case OID_802_11_INFRASTRUCTURE_MODE:
    //DBGPRINT(DBG_OID,("REQUEST - OID_802_11_INFRASTRUCTURE_MODE ****\n"));

    if( InformationBufferLength < sizeof(NDIS_802_11_NETWORK_INFRASTRUCTURE) )
    {
      
      *BytesNeeded = sizeof(NDIS_802_11_NETWORK_INFRASTRUCTURE);
      return NDIS_STATUS_INVALID_LENGTH;
    }

    if (Adapter->ulCurrentBSSIDIndex < MRVDRV_MAX_BSSID_LIST){
      GenericULONG = (Adapter->BSSIDList[Adapter->ulCurrentBSSIDIndex].InfrastructureMode);
    }
    break;

  case OID_802_11_FRAGMENTATION_THRESHOLD:
  {
    DBGPRINT(DBG_OID,("REQUEST - OID_802_11_FRAGMENTATION_THRESHOLD ****\n"));

    TT_CMDPARSE_SYNC_STD_OID_QUERY_AND_RETURN( 
      sizeof(NDIS_802_11_FRAGMENTATION_THRESHOLD), 
      HostCmd_CMD_802_11_SNMP_MIB, 
      HostCmd_ACT_GET );
  }
/* tt
    if( InformationBufferLength < sizeof(NDIS_802_11_FRAGMENTATION_THRESHOLD) )
    {
      *BytesNeeded = sizeof(NDIS_802_11_FRAGMENTATION_THRESHOLD);
      return NDIS_STATUS_INVALID_LENGTH;
    }    
    Status=PrepareAndSendCommand(
          Adapter,
          HostCmd_CMD_802_11_SNMP_MIB,
          0,
          HostCmd_OPTION_USE_INT,
          Oid,
          HostCmd_PENDING_ON_GET_OID,
          0,
          FALSE,
          BytesWritten,
          NULL,
          BytesNeeded,
          InformationBuffer); 
    if (Status == NDIS_STATUS_FAILURE || Status == NDIS_STATUS_RESOURCES)
      return Status;
    else
      Status = NDIS_STATUS_PENDING; 
    break;
*/

  case OID_802_11_RTS_THRESHOLD:
  {
    DBGPRINT(DBG_OID,("REQUEST - OID_802_11_RTS_THRESHOLD ****\n"));

    TT_CMDPARSE_SYNC_STD_OID_QUERY_AND_RETURN( 
      sizeof(NDIS_802_11_RTS_THRESHOLD), 
      HostCmd_CMD_802_11_SNMP_MIB, 
      HostCmd_ACT_GET );
  }

/* tt
    if( InformationBufferLength < sizeof(NDIS_802_11_RTS_THRESHOLD) )
    {
      *BytesNeeded = sizeof(NDIS_802_11_RTS_THRESHOLD);
      return NDIS_STATUS_INVALID_LENGTH;
    } 
    Status=PrepareAndSendCommand(
          Adapter,
          HostCmd_CMD_802_11_SNMP_MIB,
          0,
          HostCmd_OPTION_USE_INT,
          Oid,
          HostCmd_PENDING_ON_GET_OID,
          0,
          FALSE,
          BytesWritten,
          NULL,
          BytesNeeded,
          InformationBuffer); 
    if (Status == NDIS_STATUS_FAILURE || Status == NDIS_STATUS_RESOURCES)
      return Status;
    else
      Status = NDIS_STATUS_PENDING;   
  
    break;              
*/
  
  case OID_802_11_CONFIGURATION:

  DBGPRINT(DBG_OID,("REQUEST - OID_802_11_CONFIGURATION ****\n"));
  
    if( InformationBufferLength < sizeof(NDIS_802_11_CONFIGURATION) )
    {
      
      *BytesNeeded = sizeof(NDIS_802_11_CONFIGURATION);
      return NDIS_STATUS_INVALID_LENGTH;
    }   
    
    MoveSource = (PVOID)&(Adapter->CurrentConfiguration);
    MoveBytes = sizeof(NDIS_802_11_CONFIGURATION);
    break;

  case OID_802_11_SUPPORTED_RATES:

    DBGPRINT(DBG_OID,("REQUEST - OID_802_11_SUPPORTED_RATES ****\n"));
    
        if( InformationBufferLength < MRVDRV_NUM_SUPPORTED_RATES )
        {
      *BytesNeeded = MRVDRV_NUM_SUPPORTED_RATES;
      return NDIS_STATUS_INVALID_LENGTH;
    }   

        MoveSource = (PVOID)MrvDrvSupportedRates;
        MoveBytes = MRVDRV_NUM_SUPPORTED_RATES;
    
    break;

  case OID_802_11_DESIRED_RATES:
    {
    DBGPRINT(DBG_OID,("REQUEST - OID_802_11_DESIRED_RATES ****\n"));
    
    TT_CMDPARSE_SYNC_STD_OID_QUERY_AND_RETURN( 8, HostCmd_CMD_802_11_DATA_RATE, HostCmd_ACT_GET );
/* tt
    DWORD   dwWaitStatus;
    
    DBGPRINT(DBG_OID,("REQUEST - OID_802_11_DESIRED_RATES ****\n"));
    NKDbgPrintfW( L"-v5- OID query - OID_802_11_DESIRED_RATES\n" );

    if( InformationBufferLength < 8 )
    {
      *BytesNeeded = 8;
      return NDIS_STATUS_INVALID_LENGTH;
    }   

    Status=PrepareAndSendCommand(
          Adapter,
          HostCmd_CMD_802_11_DATA_RATE,
          HostCmd_ACT_GET,
          HostCmd_OPTION_USE_INT,
          Oid,
          HostCmd_PENDING_ON_GET_OID,
          0,
          FALSE,
          BytesWritten,
          NULL,
          BytesNeeded,
          InformationBuffer); 

    if (Status == NDIS_STATUS_FAILURE || Status == NDIS_STATUS_RESOURCES)
      return Status;

    dwWaitStatus = WaitForSingleObject( Adapter->hOidQueryEvent, ASYNC_OID_QUERY_TIMEOUT );
    if ( dwWaitStatus == WAIT_OBJECT_0 )
    {
      if ( Adapter->nOidCmdResult != HostCmd_RESULT_OK )
      {
        NKDbgPrintfW( L"-v5- >> Fail... [CommandResult is not OK]\n" );
        return NDIS_STATUS_NOT_ACCEPTED;
      }

      if ( Adapter->nSizeOfOidCmdResp > 8 )
      {
        NKDbgPrintfW( L"-v5- Wrong length [oid: 0x%x, size: %d]\n", Oid, Adapter->nSizeOfOidCmdResp );
        return NDIS_STATUS_NOT_ACCEPTED;
      }

      NdisMoveMemory(
        (PUCHAR) InformationBuffer,
        (PUCHAR) (Adapter->OidCmdRespBuf),
        Adapter->nSizeOfOidCmdResp );

      *BytesWritten = Adapter->nSizeOfOidCmdResp;

      return NDIS_STATUS_SUCCESS;
    }
    else
    {
      *BytesWritten = 0;
      NKDbgPrintfW( L"-v5- >> Fail... [0x%x]\n", dwWaitStatus );
      return NDIS_STATUS_NOT_ACCEPTED;
    }
*/
    }
    return NDIS_STATUS_NOT_ACCEPTED;
/* tt
      {
        #ifdef IF_SDIO
      #ifdef MRVL_WINCE50
        DBGPRINT(DBG_OID,("REQUEST - OID_802_11_DESIRED_RATES ****\n"));

      if( InformationBufferLength < 8 )
      {
      *BytesNeeded = 8;
      return NDIS_STATUS_INVALID_LENGTH;
      }   
      Status=PrepareAndSendCommand(
      Adapter,
      HostCmd_CMD_802_11_DATA_RATE,
      HostCmd_ACT_GET,
      HostCmd_OPTION_USE_INT,
      Oid,
      HostCmd_PENDING_ON_GET_OID,
      0,
      FALSE,
      BytesWritten,
      NULL,
      BytesNeeded,
      InformationBuffer); 
      if (Status == NDIS_STATUS_FAILURE || Status == NDIS_STATUS_RESOURCES)
      return Status;
      else
      Status = NDIS_STATUS_PENDING; 
      *BytesWritten=8;  
       #else  //MRVL_WINCE50    
    if( InformationBufferLength < NDIS_SUPPORTED_RATES ){
      *BytesNeeded = NDIS_SUPPORTED_RATES;
      return NDIS_STATUS_INVALID_LENGTH;
    }
       #ifdef MRVL_DATARATE

        if (Adapter->MrvlDataRateFlag==0)
        {
        Adapter->MrvlDataRateFlag =1;
      Status=PrepareAndSendCommand(
      Adapter,
      HostCmd_CMD_802_11_DATA_RATE,
      0,
      HostCmd_OPTION_USE_INT,
      Oid,
      HostCmd_PENDING_ON_GET_OID,
      0,
      FALSE,
      BytesWritten,
      NULL,
      BytesNeeded,
      InformationBuffer);         
          }else{
            if (Adapter->MrvlDataRateFlag==2)
            {
                
                USHORT      i;
        DBGPRINT(DBG_OID,("21REQUEST - OID_802_11_DESIRED_RATES\n"));
                
        
        for(i = 0; i<5; i++)
                {
                    //pDot11DataRate[i] =Adapter->MrvlDataRate[i];
                    //*(pn11Rates+i)=Adapter->MrvlDataRate[i];
          DBGPRINT(DBG_OID,("REQUEST - OID_802_11_SUPPORTED_RATES  Adapter->MrvlDataRate[%d]=0x%x\n",i,Adapter->MrvlDataRate[i]));
                }
        
                Adapter->MrvlDataRate[1]=0;
        Adapter->MrvlDataRate[2]=0;
        Adapter->MrvlDataRate[3]=0;
        Adapter->MrvlDataRate[4]=0;
        Adapter->MrvlDataRate[5]=0;

        
                 MoveSource = (PVOID)&Adapter->MrvlDataRate;

             MoveBytes = sizeof(NDIS_802_11_RATES); 

                 NdisMoveMemory( InformationBuffer,Adapter->MrvlDataRate, sizeof(NDIS_802_11_RATES));
                Adapter->MrvlDataRateFlag =0;
        DBGPRINT(DBG_OID,("22REQUEST - OID_802_11_DESIRED_RATES\n"));
            } //if (Adapter->MrvlDataRateFlag==2)
        
      Status = NDIS_STATUS_SUCCESS; 
      *BytesWritten=8;  
          return Status;
      }//else
      #else //MRVL_DATARATE
    Status=PrepareAndSendCommand(
      Adapter,
      HostCmd_CMD_802_11_DATA_RATE,
      0,
      HostCmd_OPTION_USE_INT,
      Oid,
      HostCmd_PENDING_ON_GET_OID,
      0,
      FALSE,
      BytesWritten,
      NULL,
      BytesNeeded,
      InformationBuffer); 
    if (Status == NDIS_STATUS_FAILURE || Status == NDIS_STATUS_RESOURCES)
      return Status;
    else
      Status = NDIS_STATUS_PENDING; 
      *BytesWritten=8;  
        #endif//#ifdef MRVL_DATARATE
      #endif  //MRVL_WINCE50    
    #else //IF_SDIO  
        DBGPRINT(DBG_OID,("REQUEST - OID_802_11_DESIRED_RATES ****\n"));

    if( InformationBufferLength < 8 )
        {
      *BytesNeeded = 8;
      return NDIS_STATUS_INVALID_LENGTH;
    }   
    Status=PrepareAndSendCommand(
          Adapter,
          HostCmd_CMD_802_11_DATA_RATE,
          HostCmd_ACT_GET,
          HostCmd_OPTION_USE_INT,
          Oid,
          HostCmd_PENDING_ON_GET_OID,
          0,
          FALSE,
          BytesWritten,
          NULL,
          BytesNeeded,
          InformationBuffer); 
    if (Status == NDIS_STATUS_FAILURE || Status == NDIS_STATUS_RESOURCES)
      return Status;
    else
      Status = NDIS_STATUS_PENDING; 
      *BytesWritten=8;  
        #endif //IF_SDIO
      } 
*/
    break;

  case OID_802_11_STATISTICS:

    //DBGPRINT(DBG_OID,("REQUEST - OID_802_11_S

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -