📄 utility.h
字号:
{
ULONG ulCamScanInterval;
ULONG ulPsScanInterval;
} NDIS_COMMASIC_BACKGROUND_SCAN_CONFIG, *PNDIS_COMMASIC_BACKGROUND_SCAN_CONFIG;
// Data type for OID_COMMASIC_UTIL_STATUS.
typedef struct _COMMASIC_UTIL_STATUS
{
ULONG boConnected; // TRUE: connected; FALSE: disconnected.
NDIS_802_11_SSID sSsid; // SSID.
NDIS_802_11_MAC_ADDRESS ucBssid; // AP MAC address or IBSS MAC address.
ULONG ulInfraMode; // Ndis802_11Infrastructure or Ndis802_11IBSS.
ULONG ulChannel; // Channel (0-14).
ULONG ulTxRate; // Tx rate (0, 2, 4, 11, 22, .., 108).
} COMMASIC_UTIL_STATUS, *PCOMMASIC_UTIL_STATUS;
// Data type for OID_COMMASIC_UTIL_SIGNAL.
typedef struct _COMMASIC_UTIL_SIGNAL
{
LONG lRssi; // RSSI, Received Signal Strength Indication.
LONG lSnr; // SNR, Signal-to-Noise Ratio.
} COMMASIC_UTIL_SIGNAL, *PCOMMASIC_UTIL_SIGNAL;
// Data type for OID_COMMASIC_UTIL_STAT.
typedef struct _COMMASIC_UTIL_STAT
{
ULONG ulTxFrames; // Total Data and Mgmt frames Tx'ed.
ULONG ulTxErrors; // Total Tx failed frames.
ULONG ulRxFrames; // Total Data and Mgmt frames Rx'ed.
ULONG ulRxErrors; // Total Rx FCS error frames.
ULONGLONG ullTxDataBytes; // Txed data bytes.
ULONGLONG ullRxDataBytes; // Rxed data bytes.
} COMMASIC_UTIL_STAT, *PCOMMASIC_UTIL_STAT;
// Statistics structure.
typedef struct
{
ULONG ulTotalPktsTxedOk;
ULONG ulTotalPktsTxedError;
ULONGLONG ullDirectedBytesTxed;
ULONG ulDirectedPktsTxed;
ULONGLONG ullMulticastBytesTxed;
ULONG ulMulticastPktsTxed;
ULONGLONG ullBroadcastBytesTxed;
ULONG ulBroadcastPktsTxed;
ULONG ulTotalPktsRxedOk;
ULONG ulTotalPktsRxedError;
ULONGLONG ullDirectedBytesRxed;
ULONG ulDirectedPktsRxed;
ULONGLONG ullMulticastBytesRxed;
ULONG ulMulticastPktsRxed;
ULONGLONG ullBroadcastBytesRxed;
ULONG ulBroadcastPktsRxed;
ULONG ulRxResourceError;
ULONG ulRcvCrcErrors;
ULONG ulTxOneCollision;
ULONG ulTxMoreCollision;
ULONG ulRxAlignmentError;
} DAT_STATISTICS, * PDAT_STATISTICS;
// Change network request.
typedef struct
{
NDIS_OID ulOid; // Set BBSID or set SSID.
NDIS_802_11_MAC_ADDRESS ucBSSID; // AP MAC address or IBSS MAC address.
NDIS_802_11_SSID sSSID; // SSID.
BOOLEAN boNeedDisconnect; // TRUE if need to disconnect first.
BOOLEAN boAuthModeChanged; // TRUE if need to set authentication mode.
BOOLEAN boEncryptStatusChanged; // TRUE if need to set encryption status.
BOOLEAN boWEPKeysChanged; // TRUE if need to set WEP keys.
BOOLEAN boIbssChannelChanged; // TRUE if need to set adhoc channel.
BOOLEAN boRecoverLostAPConnection; // TRUE if previously
} CHANGE_NETWORK, * PCHANGE_NETWORK;
typedef struct
{
int8 i8CurrentMaxTxPower; // Max Tx Power in effect
bool boCountryIeValid;
int8 i8MaxSubbandTxPower; // From 802.11d,j Country IE
bool boLocalPowerConstraintValid;
uint8 u8LocalPowerConstraint; // From 802.11h Power Constraint IE
bool boMeasPilotParamsValid;
int8 i8MaxRegulatoryPower; // From 802.11k Meas Pilot
int8 i8MaxTxPower; // From 802.11k Meas Pilot
int8 i8TransceiverNoiseFloor; // From 802.11k Meas Pilot
bool boRegulatoryClassKnown;
uint8 u8RegulatoryClass; // From 802.11k AP Channel Report IE
} WLAN_TPC_ENTRY, *PWLAN_TPC_ENTRY;
typedef struct
{
LONGLONG llTimeStamp;
PNDIS_WLAN_BSSID_EX psBssid;
LONG lSnr;
CHAR acBssCountryCode[MIB_COUNTRY_LENGTH];
WLAN_TPC_ENTRY sTpc;
} WLAN_BSSID_ENTRY, *PWLAN_BSSID_ENTRY;
// 802.11 WLAN block.
typedef struct
{
NDIS_802_11_MAC_ADDRESS ucBSSID; // AP MAC address or IBSS MAC address.
NDIS_802_11_SSID sSSID; // SSID.
NDIS_802_11_SSID sDesiredSSID; // Desired SSID.
ULONG ulNumOfNetworkType; // Number of network type supported.
ULONG ulNetworkType[Ndis802_11NetworkTypeMax];
ULONG ulNetworkTypeInUse; // Network type in use.
NDIS_802_11_RSSI lRssi; // Receive signal strength indication.
NDIS_802_11_RSSI lRssiTrigger; // RSSI trigger value.
ULONG ulInfraMode; // Infrastructure mode.
ULONG ulFragmentThreshold; // Fragmentation threshold.
ULONG ulRTSThreshold; // RTS threshold.
ULONG ulNumOfRxAntennas; // Number of Rx antennas.
ULONG ulNumOfTxAntennas; // Number of Tx antennas.
ULONG ulRxAntennaSelected; // Current Rx antenna selected.
ULONG ulTxAntennaSelected; // Current Tx antenna selected.
NDIS_802_11_RATES_EX ucSupportedRates; // Supported rates.
NDIS_802_11_RATES_EX ucDesiredRates; // Desired rates.
NDIS_802_11_CONFIGURATION sRadioConfig; // Radio configuration.
NDIS_802_11_STATISTICS sStatistics; // 802.11 Statistics.
NDIS_802_11_MEDIA_STREAM_MODE ulMediaStreamModeInUse;
NDIS_COMMASIC_GEN_STATS sGenStatistics; // Generic Stats
ULONG ulPowerMode; // Power mode.
BOOLEAN boScanInProgress; // Scan flag.
ULONG ulNumOfBssidBuf; // Number of BSSID buffer allocated.
ULONG ulNumOfBssid; // Number of items in BSSID list.
WLAN_BSSID_ENTRY sBssidList[END_MAX_BSSID_NUM];
UINT auth_params[11];
BOOLEAN encoding_enabled;
ULONG ulGroupTransmitKey; // Index (1-n) of group transmit key.
BOOLEAN boTransmitKeyAvail; // TRUE if transmit key available.
ULONG ulDefaultWEPKeyId; // Default WEP key Id.
MIB_WEP_DEF_KEYS sWEPKeys; // WEP key length and martial.
MICERR_STATE eMicErrorState; // MIC error handling state.
ULONG ulMicErrorTimer; // MIC error handling timer.
BOOLEAN boNonEAPOLPktFilter; // TRUE if need to filter non-802.1X EAPOL packets.
NDIS_802_11_CAPABILITY sDriverCapability; // Driver's authentication/encryption capabilities
NDIS_802_11_AUTHENTICATION_ENCRYPTION ucAuthEncSupported[END_MAX_AUTH_ENC_NUM]; // Space for extra data from above
NDIS_802_11_ASSOCIATION_INFORMATION sAssocInfo; // Association information.
UCHAR ucAssocIEs[END_MAX_IES_SIZE];
CHANGE_NETWORK sChangeNetwork; // Structure for changing network.
ULONG ulTxThruputPSThreshold; // Threshold of Tx packets under Fast PSP mode.
ULONG ulRxThruputPSThreshold; // Threshold of Rx packets under Fast PSP mode.
ULONG ulTxCountPS; // Tx packet count under PS mode.
ULONG ulRxCountPS; // Rx packet count under PS mode.
BOOLEAN boShortPreamble; // Controls Short preamble usage. When FALSE, STA will TX
// 2 Mbps, 5 Mbps and 11 Mbps frames using long preambles
// When TRUE, STA will TX 2 Mbps, 5 Mbps and 11 Mbps frames
// using either long or short preambles based on the
// setting of the 802.11 'Short Preamble' bit in the
// Capability Information Field of the BSS/IBSS Beacon frame
ULONG ulRxOverflows; // Rx buffer overflows.
BOOLEAN boUwaSensLockout; // Enable / Disable UWA Sensitivity lockout function
LONG lSnr; // SNR for quality measurement
ULONG ulUwaRxStats[MIB_UWA_RX_STATS_LENGTH]; // UWA rx stats
ULONG ulForcedRate; // Rate to be forced to for testing
ULONG ulListenInterval; // Listen Interval for Power saving
ULONG ulRestrChannel; // Restricted channel
ULONG ulIbssChannel; // Channel to use when creating an IBSS (0 = any channel)
ULONG ulRegDomain; // Regulatory Domain
NDIS_802_11_MAC_ADDRESS ucMacAddr; // STA's MAC address
BOOLEAN boDesiredRadio; // Desired radio state.
BOOLEAN boRadioOn; // TRUE: radio on; FALSE: radio off.
NDIS_COMMASIC_BACKGROUND_SCAN_CONFIG sBckGrndScanConfig; // Background scan params.
ULONG ulCardCapabilities; // Adapter capabilities.
BOOLEAN boSetProtocolType; // Set protocol type flag.
BOOLEAN boSetRegDomain; // Set reg domain flag.
ULONG ulARestrChannel; // A mode restricted channel.
ULONG ulAIbssChannel; // A mode IBSS channel.
ULONG ulARegDomain; // A mode regulatory domain.
ULONG ulBGRestrChannel; // B/G mode restricted channel.
BOOLEAN boBGIbss54g; // Indicates whether 802.11g OFDM rates are used in 802.11 b/g adhoc mode
ULONG ulBGIbssChannel; // B/G mode IBSS channel.
ULONG ulBGRegDomain; // B/G mode regulatory domain.
LONG lRssiThreshold;
ULONG ulRssiHysteresis;
BOOLEAN boMultiDomainCapabilityEnabled; // TRUE if 802.11d Multi Domain Capability is enabled.
BOOLEAN boRadioMeasurementCapabilityEnabled; // TRUE if 802.11k Radio Measurement Capability is enabled.
BOOLEAN boCcxCapabilityEnabled; // TRUE if CCX1 and CCX2 Capability is enabled.
BOOLEAN boBluetoothCoexCapabilityEnabled; // TRUE if Bluetooth Coexistance Capability is enabled.
} WLAN_CONTEXT, * PWLAN_CONTEXT;
typedef struct _END_CONTEXT
{
NDIS_HANDLE hMiniportAdapterHandle;
NDIS_HANDLE hConfigurationHandle;
NDIS_MINIPORT_INTERRUPT sInterrupt; // NDIS interrupt structure.
NDIS_MINIPORT_TIMER sResetTimer; // Timer object for reset.
NDIS_MINIPORT_TIMER sMicFailTimer; // Timer object for MIC failure.
NDIS_MINIPORT_TIMER sCFInterfacePSTimer; // Timer object for CF interface to sleep
// polling
NDIS_HANDLE hRxPacketPool; // NDIS packet pool handle for Rx.
NDIS_HANDLE hRxBufferPool; // NDIS buffer pool handle for Rx.
PENDING_OID sPendingOID; // Pending OID request.
SD_DEVICE_HANDLE hSDDeviceHandle; // Handle to SDIO device.
WCHAR wActivePath[END_MAX_ACTIVE_REG_PATH];
NDIS_MINIPORT_TIMER sSDIOTimer; // Timer object for SDIO interrupt DPC.
BOOLEAN boSDIOTimerIssued; // Timer issued flag.
PUCHAR pucMemoryBase; // Virtual address of memory base.
ULONG ulMemoryLength; // Memory length.
ULONG ulIRQNumber; // IRQ number.
NET_STATE eNetState; // Network state.
NDIS_MEDIA_STATE eMediaState; // Media connect status.
ULONG ulPacketFilter; // Receive packet filter.
ULONG ulCurrentLookahead; // Current look ahead size.
UCHAR ucPermanentAddress[ETH_LENGTH_OF_ADDRESS];
UCHAR ucCurrentAddress[ETH_LENGTH_OF_ADDRESS];
BOOLEAN boGetPermanentAddress; // Get MAC address flag.
BOOLEAN boMACAddressOverride; // MAC address override flag.
BOOLEAN boResetInProgress; // Reset flag.
BOOLEAN boNeedReset; // Force to reset flag.
BOOLEAN boSendNoResourcesFlag; // Tx no resources flag.
ULONG ulRxIndicatedPending; // Pending Rx indicated packets count.
/* Configuration block */
CFG_CONTEXT sCFG;
/* 802.11 WLAN block */
WLAN_CONTEXT sWlan;
/* Hardware Abstract Layer block */
HAL_CONTEXT sHAL;
/* Statistics structure */
DAT_STATISTICS sStats;
#ifdef CA_CE_GROUND
BOOLEAN resReady;
uint16 resMsgLen;
uint16 resMsgCurrentLen;
unsigned char resMsg[4096];
caMsg message;
#endif
} END_CONTEXT, * PEND_CONTEXT;
#pragma pack(pop)
/*************************************************************************/
/*************************************************************************/
/*** Public Variable Declarations */
/*************************************************************************/
/*************************************************************************/
/*** Public Function Prototypes */
/*************************************************************************/
VOID vENDInitializeWLAN( OUT PWLAN_CONTEXT psWlan, IN PCFG_CONTEXT psCFG );
VOID vENDgetRatesBitmapArray( IN ULONG ulNetworkType,
IN OUT PULONG pulBasicRates,
IN OUT PULONG pulComRates,
IN OUT PUCHAR pucRates );
VOID vENDcheckDomainChannel( IN ULONG ulProtocolType,
IN OUT PULONG pulDomain,
IN OUT PULONG pulChannel,
IN OUT PULONG pulIbssChannel );
VOID vENDgetChannelFrequency( IN ULONG ulChannelFreq, OUT PULONG pulFreqChannel );
VOID vENDsetDefaultRateSet( IN ULONG ulProtocolType,
OUT PUCHAR pucSupportedRates,
OUT PUCHAR pucDesiredRates );
VOID vENDindicateConnectionStatus( IN PEND_CONTEXT psAdapter,
IN NDIS_MEDIA_STATE eMediaState );
VOID vENDconnectBSSID( IN PEND_CONTEXT psAdapter,
IN NDIS_802_11_MAC_ADDRESS ucBssid,
IN bool bUseHostProvidedSecurityIEs );
VOID vENDconnectSSID( IN PEND_CONTEXT psAdapter,
IN PNDIS_802_11_SSID psSsid,
IN bool bUseHostProvidedSecurityIEs );
VOID vENDconnectNetwork( IN PEND_CONTEXT psAdapter ,
IN bool bUseSSID,
IN bool bUseHostProvidedSecurityIEs);
BOOLEAN boCFGgetFirstMibItem( IN PCFG_CONTEXT psCFG,
IN PWLAN_CONTEXT psWlan,
OUT PUSHORT pusObjectID,
OUT MIB_VALUE *puValue );
BOOLEAN boCFGgetNextMibItem( IN PCFG_CONTEXT psCFG,
IN PWLAN_CONTEXT psWlan,
OUT PUSHORT pusObjectID,
OUT MIB_VALUE *puValue );
NDIS_STATUS iMiniportReset(OUT PBOOLEAN AddressingReset,IN NDIS_HANDLE MiniportAdapterContext);
BOOLEAN boENDcheckFilterPacket( IN PNDIS_PACKET psPktDesc );
VOID vENDresetTimer( IN PVOID pvSystemSpecific1,
IN NDIS_HANDLE psFuncContext,
IN PVOID pvSystemSpecific2,
IN PVOID pvSystemSpecific3 );
VOID vENDmicFailTimer( IN PVOID pvSystemSpecific1,
IN NDIS_HANDLE psFuncContext,
IN PVOID pvSystemSpecific2,
IN PVOID pvSystemSpecific3 );
#endif /* CFSD_NDUTILITY_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -