📄 oidproc.c
字号:
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 + -