?? oidproc.c
字號:
break;
case OID_PNP_CAPABILITIES:
#ifdef DEBUG_PARA_ROAMING_PRINT
RETAILMSG(1,(TEXT("william REQUEST - OID_PNP_CAPABILITIES ****\n")));
#endif
DBGPRINT(DBG_POWER,("OID_PNP_CAPABILITIES\n"));
// return NDIS_STATUS_NOT_SUPPORTED;
/*
#ifdef UNDER_CE
*/
PMCap.WakeUpCapabilities.MinMagicPacketWakeUp = NdisDeviceStateUnspecified;
PMCap.WakeUpCapabilities.MinPatternWakeUp = NdisDeviceStateUnspecified;
PMCap.WakeUpCapabilities.MinLinkChangeWakeUp = NdisDeviceStateUnspecified;
/*
#else
// PNP support for XP is broken, return NDIS_STATUS_NOT_SUPPORTED for now
return NDIS_STATUS_NOT_SUPPORTED;
#endif
*/
MoveSource = (PVOID) &PMCap;
MoveBytes = sizeof(NDIS_PNP_CAPABILITIES);
break;
case OID_PNP_QUERY_POWER:
#ifdef DEBUG_PARA_ROAMING_PRINT
RETAILMSG(1,(TEXT("william REQUEST - OID_PNP_QUERY_POWER ****\n")));
#endif
DBGPRINT(DBG_POWER,("OID_PNP_QUERY_POWER\n"));
//return NDIS_STATUS_NOT_SUPPORTED;
NewPowerState = (NDIS_DEVICE_POWER_STATE)*(PNDIS_DEVICE_POWER_STATE)InformationBuffer;
if ( NewPowerState == NdisDeviceStateUnspecified )
{
DBGPRINT(DBG_POWER,("Requested power state: NdisDeviceStateUnspecified\n"));
}
else if ( NewPowerState == NdisDeviceStateD0 )
{
DBGPRINT(DBG_POWER,("Requested power state: NdisDeviceStateD0\n"));
}
else if ( NewPowerState == NdisDeviceStateD1 )
{
DBGPRINT(DBG_POWER,("Requested power state: NdisDeviceStateD1\n"));
}
else if ( NewPowerState == NdisDeviceStateD2 )
{
DBGPRINT(DBG_POWER,("Requested power state: NdisDeviceStateD2\n"));
}
else if ( NewPowerState == NdisDeviceStateD3 )
{
DBGPRINT(DBG_POWER,("Requested power state: NdisDeviceStateD3\n"));
}
else
{
DBGPRINT(DBG_POWER,("UNKNOWN POWER STATE REQUESTED %x\n", NewPowerState));
}
// Determine if Station can suuport this state
if( ( NewPowerState == NdisDeviceStateD0 ) || ( NewPowerState == NdisDeviceStateD3 ) )
{
DBGPRINT(DBG_POWER,("REQUESTED POWER STATE SUPPORTED!\n"));
return NDIS_STATUS_SUCCESS;
}
else // We don't know hot to handle NdisDeviceStateD2 yet
{
DBGPRINT(DBG_POWER,("REQUESTED POWER STATE NOT SUPPORTED %x\n",NewPowerState ));
return NDIS_STATUS_NOT_SUPPORTED;
}
break;
#ifndef WHQL_FIX
case OID_PNP_WAKE_UP_PATTERN_LIST:
#ifdef DEBUG_PARA_ROAMING_PRINT
RETAILMSG(1,(TEXT("william REQUEST - OID_PNP_WAKE_UP_PATTERN_LIST ****\n")));
#endif
DBGPRINT(DBG_POWER | DBG_ALLEN,("REQUESTED POWER STATE NOT SUPPORTED %x\n",NewPowerState ));
return NDIS_STATUS_NOT_SUPPORTED;
break;
#endif
case OID_GEN_PHYSICAL_MEDIUM:
#ifdef DEBUG_PARA_ROAMING_PRINT
RETAILMSG(1,(TEXT("william REQUEST - OID_GEN_PHYSICAL_MEDIUM ****\n")));
#endif
GenericULONG = (ULONG)NdisPhysicalMediumWirelessLan;
break;
case OID_802_11_NETWORK_TYPES_SUPPORTED:
{
NDIS_802_11_NETWORK_TYPE_LIST *pNetworkTypeList;
#ifdef DEBUG_PARA_ROAMING_PRINT
RETAILMSG(1,(TEXT("william REQUEST - OID_802_11_NETWORK_TYPES_SUPPORTED ****\n")));
#endif
DBGPRINT(DBG_OID, ("Requst - OID_802_11_NETWORK_TYPES_SUPPORTED ****\n"));
if( InformationBufferLength < sizeof(NDIS_802_11_NETWORK_TYPE_LIST) )
{
*BytesNeeded = sizeof(NDIS_802_11_NETWORK_TYPE_LIST);
return NDIS_STATUS_INVALID_LENGTH;
}
// only 1 item
pNetworkTypeList = (NDIS_802_11_NETWORK_TYPE_LIST *)InformationBuffer;
pNetworkTypeList->NumberOfItems = 1;
pNetworkTypeList->NetworkType[0] = Ndis802_11DS;
*BytesWritten = sizeof(NDIS_802_11_NETWORK_TYPE_LIST);
return NDIS_STATUS_SUCCESS;
/* tt
MoveBytes = sizeof(NDIS_802_11_NETWORK_TYPE_LIST);
*/
}
break;
case OID_802_11_NETWORK_TYPE_IN_USE:
#ifdef DEBUG_PARA_ROAMING_PRINT
RETAILMSG(1,(TEXT("william REQUEST - OID_802_11_NETWORK_TYPE_IN_USE ****\n")));
#endif
//DBGPRINT(DBG_OID,("REQUEST - OID_802_11_NETWORK_TYPE_IN_USE ****\n"));
if( InformationBufferLength < sizeof(NDIS_802_11_NETWORK_TYPE) ){
*BytesNeeded = sizeof(NDIS_802_11_NETWORK_TYPE);
return NDIS_STATUS_INVALID_LENGTH;
}
GenericULONG = (ULONG)Ndis802_11DS;
break;
case OID_802_11_BSSID:
//DBGPRINT(DBG_OID,("REQUEST - OID_802_11_BSSID ****\n"));
#ifdef DEBUG_PARA_ROAMING_PRINT
RETAILMSG(1,(TEXT("william REQUEST - OID_802_11_BSSID ****\n")));
#endif
// if the CurrentBSSID is a NULL string
if ( NdisEqualMemory(Adapter->CurrentBSSID,
Adapter->NullBSSID,
MRVDRV_ETH_ADDR_LEN) )
{
#ifdef DEBUG_PARA_ROAMING_PRINT
RETAILMSG(1,(TEXT("william REQUEST - CurrentBSSID = NULL ****\n")));
#endif
Status = NDIS_STATUS_ADAPTER_NOT_READY;
}
else if( InformationBufferLength < MRVDRV_ETH_ADDR_LEN )
{
*BytesNeeded = MRVDRV_ETH_ADDR_LEN;
return NDIS_STATUS_INVALID_LENGTH;
}
else if(Adapter->MediaConnectStatus == NdisMediaStateDisconnected)
{
#ifdef DEBUG_PARA_ROAMING_PRINT
RETAILMSG(1,(TEXT("william REQUEST - CurrentBSSID = NULL ****\n")));
#endif
Status = NDIS_STATUS_ADAPTER_NOT_READY;
}
else{
#ifdef DEBUG_PARA_ROAMING_PRINT
RETAILMSG(1,(TEXT("william REQUEST - CurrentBSSID = %2x:%2x:%2x:%2x:%2x:%2x ****\n"),
Adapter->CurrentBSSID[0],
Adapter->CurrentBSSID[1],
Adapter->CurrentBSSID[2],
Adapter->CurrentBSSID[3],
Adapter->CurrentBSSID[4],
Adapter->CurrentBSSID[5]));
#endif
MoveSource = (PVOID)Adapter->CurrentBSSID;
MoveBytes = MRVDRV_ETH_ADDR_LEN;
}
break;
case OID_802_11_SSID:
DBGPRINT(DBG_OID,("REQUEST - OID_802_11_SSID ****\n"));
#ifdef DEBUG_PARA_ROAMING_PRINT
RETAILMSG(1,(TEXT("william REQUEST - OID_802_11_SSID ****\n")));
#endif
if( InformationBufferLength < sizeof(NDIS_802_11_SSID))
{
*BytesNeeded = sizeof(NDIS_802_11_SSID);
return NDIS_STATUS_INVALID_LENGTH;
}
if(Adapter->MediaConnectStatus == NdisMediaStateDisconnected)
{
MoveBytes = 0;
DBGPRINT(DBG_OID,("Current SSID is null!\n"));
}
else if ( NdisEqualMemory(&(Adapter->CurrentSSID),
&(Adapter->NullSSID),
sizeof(NDIS_802_11_SSID)))
{
MoveBytes = 0;
DBGPRINT(DBG_OID,("Current SSID is null!\n"));
}
else
{
DBGPRINT(DBG_OID,("Current SSID is %s,length = %d\n", Adapter->CurrentSSID.Ssid,Adapter->CurrentSSID.SsidLength));
MoveSource = (PVOID)&Adapter->CurrentSSID;
MoveBytes = sizeof(NDIS_802_11_SSID);
// HexDump(DBG_OID, "CurrentSSID: ", (PUCHAR)&Adapter->CurrentSSID,
// sizeof(NDIS_802_11_SSID));
}
break;
case OID_802_11_POWER_MODE:
#ifdef DEBUG_PARA_ROAMING_PRINT
RETAILMSG(1,(TEXT("william REQUEST - OID_802_11_POWER_MODE ****\n")));
#endif
DBGPRINT(DBG_OID,("REQUEST - OID_802_11_POWER_MODE ****\n"));
if( InformationBufferLength < sizeof(NDIS_802_11_POWER_MODE) )
{
*BytesNeeded = sizeof(NDIS_802_11_POWER_MODE);
return NDIS_STATUS_INVALID_LENGTH;
}
MoveSource = (PVOID)&Adapter->PSMode;
MoveBytes = sizeof(NDIS_802_11_POWER_MODE);
break;
case OID_802_11_RSSI:
#ifdef DEBUG_PARA_ROAMING_PRINT
RETAILMSG(1,(TEXT("william REQUEST - OID_802_11_RSSI ****\n")));
#endif
DBGPRINT(DBG_OID,("REQUEST - OID_802_11_RSSI (%d)****\n",
Adapter->LastRSSI));
if( InformationBufferLength < sizeof(NDIS_802_11_RSSI) )
{
*BytesNeeded = sizeof(NDIS_802_11_RSSI);
return NDIS_STATUS_INVALID_LENGTH;
}
GenericLONG = Adapter->LastRSSI;
if(Adapter->MediaConnectStatus == NdisMediaStateDisconnected)
{
GenericLONG = MRVL_DEFAULT_INITIAL_RSSI;
}
RETAILMSG(1,(TEXT("REQUEST - OID_802_11_RSSI (%d)****\n"),GenericLONG));
MoveSource = (PVOID) (&GenericLONG);
MoveBytes = sizeof(GenericLONG);
//NKDbgPrintfW(L"[Marvell]Query+OID_802_11_RSSI= %d", (LONG)GenericLONG);
break;
case OID_PARA_GET_RSSI:
#ifdef DEBUG_PARA_ROAMING_PRINT
RETAILMSG(1,(TEXT("william REQUEST - OID_PARA_GET_RSSI ****\n")));
#endif
DBGPRINT(DBG_OID,("REQUEST - OID_PARA_GET_RSSI (%d)****\n",
Adapter->LastRSSI));
if( InformationBufferLength < sizeof(NDIS_802_11_RSSI) )
{
*BytesNeeded = sizeof(NDIS_802_11_RSSI);
return NDIS_STATUS_INVALID_LENGTH;
}
if(Adapter->MediaConnectStatus == NdisMediaStateDisconnected)
{
Adapter->LastRSSI = MRVL_DEFAULT_INITIAL_RSSI;
}
else
{
// update RSSI value
PrepareAndSendCommand(
Adapter,
HostCmd_CMD_802_11_RSSI,
0,
HostCmd_OPTION_USE_INT,
(NDIS_OID)0,
HostCmd_PENDING_ON_NONE,
0,
FALSE,
NULL,
NULL,
NULL,
NULL);
Sleep(1000);//wait for refresh Adapter->LastRSSI
}
GenericLONG = Adapter->LastRSSI;
RETAILMSG(1,(TEXT("REQUEST - OID_802_11_RSSI (%d)****\n"),GenericLONG));
MoveSource = (PVOID) (&GenericLONG);
MoveBytes = sizeof(GenericLONG);
//NKDbgPrintfW(L"[Marvell]Query+OID_802_11_RSSI= %d", (LONG)GenericLONG);
break;
case OID_802_11_RSSI_TRIGGER:
#ifdef DEBUG_PARA_ROAMING_PRINT
RETAILMSG(1,(TEXT("william REQUEST - OID_802_11_RSSI_TRIGGER ****\n")));
#endif
//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;
case OID_802_11_INFRASTRUCTURE_MODE:
//DBGPRINT(DBG_OID,("REQUEST - OID_802_11_INFRASTRUCTURE_MODE ****\n"));
#ifdef DEBUG_PARA_ROAMING_PRINT
RETAILMSG(1,(TEXT("william REQUEST - OID_802_11_INFRASTRUCTURE_MODE ****\n")));
#endif
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:
{
#ifdef DEBUG_PARA_ROAMING_PRINT
RETAILMSG(1,(TEXT("william REQUEST - OID_802_11_FRAGMENTATION_THRESHOLD ****\n")));
#endif
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:
{
#ifdef DEBUG_PARA_ROAMING_PRINT
RETAILMSG(1,(TEXT("william REQUEST - OID_802_11_RTS_THRESHOLD ****\n")));
#endif
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:
#ifdef DEBUG_PARA_ROAMING_PRINT
RETAILMSG(1,(TEXT("william REQUEST - OID_802_11_CONFIGURATION ****\n")));
#endif
DBGPRINT(DBG_OID,("REQUEST - OID_802_11_CONFIGURATION ****\n"));
if( InformationBufferLength < sizeof(NDIS_802_11_CONFIGURATION) )
{
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -