📄 rtmp.h
字号:
LARGE_INTEGER PHYErrorCount; LARGE_INTEGER FalseCCACount; LARGE_INTEGER U2MDataCount; LARGE_INTEGER OtherDataCount; LARGE_INTEGER BeaconCount; LARGE_INTEGER othersCount;} COUNTER_QA, *PCOUNTER_QA;//// Arcfour Structure Added by PaulWu//typedef struct _ARCFOUR{ UINT X; UINT Y; UCHAR STATE[256];} ARCFOURCONTEXT, *PARCFOURCONTEXT;typedef struct _IV_CONTROL_{ union { struct { UCHAR rc0; UCHAR rc1; UCHAR rc2; union { struct {#ifdef BIG_ENDIAN UCHAR KeyID:2; UCHAR ExtIV:1; UCHAR Rsvd:5;#else UCHAR Rsvd:5; UCHAR ExtIV:1; UCHAR KeyID:2;#endif } field; UCHAR Byte; } CONTROL; } field; ULONG word; } IV16; ULONG IV32;} TKIP_IV, *PTKIP_IV;// Shared key data structuretypedef struct _WEP_KEY { UCHAR KeyLen; // Key length for each key, 0: entry is invalid UCHAR Key[MAX_LEN_OF_KEY]; // right now we implement 4 keys, 128 bits max} WEP_KEY, *PWEP_KEY;typedef struct _CIPHER_KEY { UCHAR BssId[6]; UCHAR CipherAlg; // 0-none, 1:WEP64, 2:WEP128, 3:TKIP, 4:AES, 5:CKIP64, 6:CKIP128 UCHAR KeyLen; // Key length for each key, 0: entry is invalid UCHAR Key[16]; // right now we implement 4 keys, 128 bits max UCHAR RxMic[8]; UCHAR TxMic[8]; UCHAR TxTsc[6]; // 48bit TSC value UCHAR RxTsc[6]; // 48bit TSC value UCHAR Type; // Indicate Pairwise/Group when reporting MIC error} CIPHER_KEY, *PCIPHER_KEY;typedef struct _BBP_TUNING_STRUCT { BOOLEAN Enable; UCHAR FalseCcaCountUpperBound; // 100 per sec UCHAR FalseCcaCountLowerBound; // 10 per sec UCHAR R17LowerBound; // specified in E2PROM UCHAR R17UpperBound; // 0x68 according to David Tung UCHAR CurrentR17Value;} BBP_TUNING, *PBBP_TUNING;typedef struct _SOFT_RX_ANT_DIVERSITY_STRUCT { UCHAR EvaluatePeriod; // 0:not evalute status, 1: evaluate status, 2: switching status UCHAR Pair1PrimaryRxAnt; // 0:Ant-E1, 1:Ant-E2 UCHAR Pair1SecondaryRxAnt; // 0:Ant-E1, 1:Ant-E2 UCHAR Pair2PrimaryRxAnt; // 0:Ant-E3, 1:Ant-E4 UCHAR Pair2SecondaryRxAnt; // 0:Ant-E3, 1:Ant-E4 SHORT Pair1AvgRssi[2]; // AvgRssi[0]:E1, AvgRssi[1]:E2 SHORT Pair2AvgRssi[2]; // AvgRssi[0]:E3, AvgRssi[1]:E4 SHORT Pair1LastAvgRssi; // SHORT Pair2LastAvgRssi; // ULONG RcvPktNumWhenEvaluate; BOOLEAN FirstPktArrivedWhenEvaluate; RALINK_TIMER_STRUCT RxAntDiversityTimer;} SOFT_RX_ANT_DIVERSITY, *PSOFT_RX_ANT_DIVERSITY;typedef struct { BOOLEAN Enable; UCHAR Delta; BOOLEAN PlusSign;} CCK_TX_POWER_CALIBRATE, *PCCK_TX_POWER_CALIBRATE;//// Receive Tuple Cache Format//typedef struct _TUPLE_CACHE { BOOLEAN Valid; UCHAR MacAddress[MAC_ADDR_LEN]; USHORT Sequence; USHORT Frag;} TUPLE_CACHE, *PTUPLE_CACHE;//// Fragment Frame structure//typedef struct _FRAGMENT_FRAME { UCHAR Header802_3[LENGTH_802_3]; UCHAR Header_LLC[LENGTH_802_1_H]; UCHAR Buffer[LENGTH_802_3 + MAX_FRAME_SIZE]; // Add header to prevent NETBUEI continuous buffer isssue ULONG RxSize; USHORT Sequence; USHORT LastFrag; ULONG Flags; // Some extra frame information. bit 0: LLC presented} FRAGMENT_FRAME, *PFRAGMENT_FRAME;//// Tkip Key structure which RC4 key & MIC calculation//typedef struct _TKIP_KEY_INFO { UINT nBytesInM; // # bytes in M for MICKEY ULONG IV16; ULONG IV32; ULONG K0; // for MICKEY Low ULONG K1; // for MICKEY Hig ULONG L; // Current state for MICKEY ULONG R; // Current state for MICKEY ULONG M; // Message accumulator for MICKEY UCHAR RC4KEY[16]; UCHAR MIC[8];} TKIP_KEY_INFO, *PTKIP_KEY_INFO;//// Private / Misc data, counters for driver internal use//typedef struct __PRIVATE_STRUC { ULONG SystemResetCnt; // System reset counter ULONG TxRingFullCnt; // Tx ring full occurrance number ULONG PhyRxErrCnt; // PHY Rx error count, for debug purpose, might move to global counter // Variables for WEP encryption / decryption in rtmp_wep.c ULONG FCSCRC32; ARCFOURCONTEXT WEPCONTEXT; // Tkip stuff TKIP_KEY_INFO Tx; TKIP_KEY_INFO Rx;} PRIVATE_STRUC, *PPRIVATE_STRUC;// structure to store Simple Config Attributes Infotypedef struct _WSC_LV_INFO { USHORT ValueLen; UCHAR Value[512];} WSC_LV_INFO;// structure to tune BBP R17 "RX AGC VGC init"typedef struct _BBP_R17_TUNING { BOOLEAN bEnable; UCHAR R17LowerBoundG; UCHAR R17LowerBoundA; UCHAR R17UpperBoundG; UCHAR R17UpperBoundA;// UCHAR LastR17Value;// SHORT R17Dec; // R17Dec = 0x79 - RssiToDbm, for old version R17Dec = 0.// // This is signed value USHORT FalseCcaLowerThreshold; // default 100 USHORT FalseCcaUpperThreshold; // default 512 UCHAR R17Delta; // R17 +- R17Delta whenever false CCA over UpperThreshold or lower than LowerThreshold UCHAR R17CurrentValue; BOOLEAN R17LowerUpperSelect; //Before LinkUp, Used LowerBound or UpperBound as R17 value.} BBP_R17_TUNING, *PBBP_R17_TUNING;// structure to store channel TX powertypedef struct _CHANNEL_TX_POWER { UCHAR Channel; CHAR Power;} CHANNEL_TX_POWER, *PCHANNEL_TX_POWER;typedef enum _ABGBAND_STATE_ { UNKNOWN_BAND, BG_BAND, A_BAND,} ABGBAND_STATE;typedef struct _MLME_MEMORY_STRUCT { PVOID AllocVa; //Pointer to the base virtual address of the allocated memory struct _MLME_MEMORY_STRUCT *Next; //Pointer to the next virtual address of the allocated memory} MLME_MEMORY_STRUCT, *PMLME_MEMORY_STRUCT;typedef struct _MLME_MEMORY_HANDLER { BOOLEAN MemRunning; //The flag of the Mlme memory handler's status UINT MemoryCount; //Total nonpaged system-space memory not size UINT InUseCount; //Nonpaged system-space memory in used counts UINT UnUseCount; //Nonpaged system-space memory available counts UINT PendingCount; //Nonpaged system-space memory for free counts PMLME_MEMORY_STRUCT pInUseHead; //Pointer to the first nonpaed memory not used PMLME_MEMORY_STRUCT pInUseTail; //Pointer to the last nonpaged memory not used PMLME_MEMORY_STRUCT pUnUseHead; //Pointer to the first nonpaged memory in used PMLME_MEMORY_STRUCT pUnUseTail; //Pointer to the last nonpaged memory in used PULONG MemFreePending[MAX_MLME_HANDLER_MEMORY]; //an array to keep pending free-memory's pointer (32bits)} MLME_MEMORY_HANDLER, *PMLME_MEMORY_HANDLER;typedef struct _MLME_STRUCT { STATE_MACHINE CntlMachine; STATE_MACHINE AssocMachine; STATE_MACHINE AuthMachine; STATE_MACHINE AuthRspMachine; STATE_MACHINE SyncMachine; STATE_MACHINE WpaPskMachine; STATE_MACHINE_FUNC AssocFunc[ASSOC_FUNC_SIZE]; STATE_MACHINE_FUNC AuthFunc[AUTH_FUNC_SIZE]; STATE_MACHINE_FUNC AuthRspFunc[AUTH_RSP_FUNC_SIZE]; STATE_MACHINE_FUNC SyncFunc[SYNC_FUNC_SIZE]; STATE_MACHINE_FUNC WpaPskFunc[WPA_PSK_FUNC_SIZE]; ULONG ChannelQuality; // 0..100, Channel Quality Indication for Roaming unsigned long Now; // latch the value of NdisGetSystemUpTime() BOOLEAN Running; MLME_QUEUE Queue; UINT ShiftReg; RALINK_TIMER_STRUCT PeriodicTimer; RALINK_TIMER_STRUCT LinkDownTimer; ULONG PeriodicRound; MLME_MEMORY_HANDLER MemHandler; //The handler of the nonpaged memory inside MLME} MLME_STRUCT, *PMLME_STRUCT;//// Management ring buffer format//typedef struct _MGMT_STRUC { BOOLEAN Valid; PUCHAR pBuffer; ULONG Length;} MGMT_STRUC, *PMGMT_STRUC;// structure for radar detection and channel switchtypedef struct _RADAR_DETECT_STRUCT { UCHAR CSCount; //Channel switch counter UCHAR CSPeriod; //Channel switch period (beacon count) UCHAR RDCount; //Radar detection counter UCHAR RDMode; //Radar Detection mode UCHAR BBPR16; UCHAR BBPR17; UCHAR BBPR18; UCHAR BBPR21; UCHAR BBPR22; UCHAR BBPR64; ULONG InServiceMonitorCount; // unit: sec} RADAR_DETECT_STRUCT, *PRADAR_DETECT_STRUCT;//// configuration and status//typedef struct _PORT_CONFIG { // MIB:ieee802dot11.dot11smt(1).dot11StationConfigTable(1) USHORT Psm; // power management mode (PWR_ACTIVE|PWR_SAVE) USHORT DisassocReason; UCHAR DisassocSta[MAC_ADDR_LEN]; USHORT DeauthReason; UCHAR DeauthSta[MAC_ADDR_LEN]; USHORT AuthFailReason; UCHAR AuthFailSta[MAC_ADDR_LEN]; NDIS_802_11_AUTHENTICATION_MODE AuthMode; // This should match to whatever microsoft defined NDIS_802_11_WEP_STATUS WepStatus; NDIS_802_11_WEP_STATUS OrigWepStatus; // Original wep status set from OID // Add to support different cipher suite for WPA2/WPA mode NDIS_802_11_ENCRYPTION_STATUS GroupCipher; // Multicast cipher suite NDIS_802_11_ENCRYPTION_STATUS PairCipher; // Unicast cipher suite BOOLEAN bMixCipher; // Indicate current Pair & Group use different cipher suites USHORT RsnCapability; // MIB:ieee802dot11.dot11smt(1).dot11WEPDefaultKeysTable(3) CIPHER_KEY PskKey; // WPA PSK mode PMK UCHAR PTK[64]; // WPA PSK mode PTK BSSID_INFO SavedPMK[PMKID_NO]; ULONG SavedPMKNum; // Saved PMKID number // WPA 802.1x port control, WPA_802_1X_PORT_SECURED, WPA_802_1X_PORT_NOT_SECURED UCHAR PortSecured; UCHAR RSN_IE[44]; UCHAR RSN_IELen;//#if WPA_SUPPLICANT_SUPPORT BOOLEAN IEEE8021X; // Enable or disable IEEE 802.1x CIPHER_KEY DesireSharedKey[4]; // Record user desired WEP keys BOOLEAN IEEE8021x_required_keys; // Enable or disable dynamic wep key updating BOOLEAN WPA_Supplicant; // Enable or disable WPA_SUPPLICANT BOOLEAN Send_Beacon;//#endif // For WPA countermeasures unsigned long LastMicErrorTime; // record last MIC error time ULONG MicErrCnt; // Should be 0, 1, 2, then reset to zero (after disassoiciation). BOOLEAN bBlockAssoc; // Block associate attempt for 60 seconds after counter measure occurred. // For WPA-PSK supplicant state WPA_STATE WpaState; // Default is SS_NOTUSE and handled by microsoft 802.1x UCHAR ReplayCounter[8]; UCHAR ANonce[32]; // ANonce for WPA-PSK from aurhenticator UCHAR SNonce[32]; // SNonce for WPA-PSK // MIB:ieee802dot11.dot11smt(1).dot11PrivacyTable(5) UCHAR DefaultKeyId; NDIS_802_11_PRIVACY_FILTER PrivacyFilter; // PrivacyFilter enum for 802.1X // MIB:ieee802dot11.dot11mac(2).dot11OperationTable(1) USHORT RtsThreshold; // in unit of BYTE USHORT FragmentThreshold; // in unit of BYTE BOOLEAN bFragmentZeroDisable; // Microsoft use 0 as disable // MIB:ieee802dot11.dot11phy(4).dot11PhyTxPowerTable(3) UCHAR TxPower; // in unit of mW ULONG TxPowerPercentage; // 0~100 % ULONG TxPowerDefault; // keep for TxPowerPercentage // MIB:ieee802dot11.dot11phy(4).dot11PhyDSSSTable(5) UCHAR Channel; // current (I)BSS channel used in the station UCHAR AdhocChannel; // current (I)BSS channel used in the station UCHAR CountryRegion; // Enum of country region, 0:FCC, 1:IC, 2:ETSI, 3:SPAIN, 4:France, 5:MKK, 6:MKK1, 7:Israel UCHAR CountryRegionForABand; // Enum of country region for A band // Copy supported rate from desired AP's beacon. We are trying to match // AP's supported and extended rate settings. UCHAR SupRate[MAX_LEN_OF_SUPPORTED_RATES]; UCHAR SupRateLen; UCHAR ExtRate[MAX_LEN_OF_SUPPORTED_RATES]; UCHAR ExtRateLen; UCHAR ExpectedACKRate[MAX_LEN_OF_SUPPORTED_RATES]; ULONG BasicRateBitmap; // backup basic ratebitmap // // other parameters not defined in standard MIB // UCHAR DesireRate[MAX_LEN_OF_SUPPORTED_RATES]; // OID_802_11_DESIRED_RATES UCHAR MaxDesiredRate; UCHAR BasicMlmeRate; // Default Rate for sending MLME frames UCHAR MlmeRate; UCHAR RtsRate; // RATE_xxx UCHAR TxRate; // RATE_1, RATE_2, RATE_5_5, RATE_11, ... UCHAR MaxTxRate; // RATE_1, RATE_2, RATE_5_5, RATE_11 UCHAR Bssid[MAC_ADDR_LEN]; USHORT BeaconPeriod; CHAR Ssid[MAX_LEN_OF_SSID]; // NOT NULL-terminated UCHAR SsidLen; // the actual ssid length in used UCHAR LastSsidLen; // the actual ssid length in used CHAR LastSsid[MAX_LEN_OF_SSID]; // NOT NULL-terminated UCHAR LastBssid[MAC_ADDR_LEN]; UCHAR BssType; // BSS_INFRA or BSS_ADHOC USHORT AtimWin; // used when starting a new IBSS UCHAR RssiTrigger; UCHAR RssiTriggerMode; // RSSI_TRIGGERED_UPON_BELOW_THRESHOLD or RSSI_TRIGGERED_UPON_EXCCEED_THRESHOLD USHORT DefaultListenCount; // default listen count; ULONG WindowsPowerMode; // Power mode for AC power ULONG WindowsBatteryPowerMode; // Power mode for battery if exists BOOLEAN bWindowsACCAMEnable; // Enable CAM power mode when AC on BOOLEAN bAutoReconnect; // Set to TRUE when setting OID_802_11_SSID with no matching BSSID UCHAR LastRssi; // last received BEACON's RSSI UCHAR LastRssi2; // last received BEACON's RSSI for smart antenna USHORT AvgRssi; // last 8 BEACON's average RSSI USHORT AvgRssiX8; // sum of last 8 BEACON's RSSI ULONG NumOfAvgRssiSample; unsigned long LastBeaconRxTime; // OS's timestamp of the last BEACON RX time unsigned long Last11bBeaconRxTime; // OS's timestamp of the last 11B BEACON RX time unsigned long LastScanTime; // Record last scan time for issue BSSID_SCAN_LIST ULONG ScanCnt; // Scan counts since most recent SSID, BSSID, SCAN OID request BOOLEAN bSwRadio; // Software controlled Radio On/Off, TRUE: On BOOLEAN bHwRadio; // Hardware controlled Radio On/Off, TRUE: On BOOLEAN bRadio; // Radio state, And of Sw & Hw radio state BOOLEAN bHardwareRadio; // Hardware controlled Radio enabled BOOLEAN bShowHiddenSSID; // Show all known SSID in SSID list get operation // PHY specification UCHAR PhyMode; // PHY_11A, PHY_11B, PHY_11BG_MIXED, PHY_ABG_MIXED USHORT Dsifs; // in units of usec USHORT TxPreamble; // Rt802_11PreambleLong, Rt802_11PreambleShort, Rt802_11PreambleAuto // New for WPA, windows want us to to keep association information and // Fixed IEs from last association response NDIS_802_11_ASSOCIATION_INFORMATION AssocInfo; UCHAR ReqVarIELen; // Length of next VIE include EID & Length UCHAR ReqVarIEs[MAX_VIE_LEN]; UCHAR ResVarIELen; // Length of next VIE include EID & Length UCHAR ResVarIEs[MAX_VIE_LEN]; ULONG EnableTurboRate; // 1: enable 72/100 Mbps whenever applicable, 0: never use 72/100 Mbps ULONG UseBGProtection; // 0:AUTO, 1-always ON,2-always OFF ULONG UseShortSlotTime; // 0: disable, 1 - use short slot (9us) // EDCA Qos BOOLEAN bWmmCapable; // 0:disable WMM, 1:enable WMM QOS_CAPABILITY_PARM APQosCapability; // QOS capability of the current associated AP EDCA_PARM APEdcaParm; // EDCA parameters of the current associated AP QBSS_LOAD_PARM APQbssLoad; // QBSS load of the current associated AP BOOLEAN bEnableTxBurst; // 0: disable, 1: enable TX PACKET BURST BOOLEAN bAggregationCapable; // 1: enable TX aggregation when the peer supports it BOOLEAN bUseZeroToDisableFragment; // Microsoft use 0 as disable BOOLEAN bIEEE80211H; // 1: enable IEEE802.11h spec. // a bitmap of BOOLEAN flags. each bit represent an operation status of a particular // BOOLEAN control, either ON or OFF. These flags should always be accessed via // OPSTATUS_TEST_FLAG(), OPSTATUS_SET_FLAG(), OP_STATUS_CLEAR_FLAG() macros. // see fOP_STATUS_xxx in RTMP_DEF.C for detail bit definition ULONG OpStatusFlags; UCHAR AckPolicy[4]; // ACK policy of the specified AC. see ACK_xxx ABGBAND_STATE BandState; // For setting BBP used on B/G or A mode ULONG AdhocMode; // 0:WIFI mode (11b rates only), 1: b/g mixed, 2: 11g only, 3: 11a only, 4: 11abg mixed RALINK_TIMER_STRUCT QuickResponeForRateUpTimer; BOOLEAN QuickResponeForRateUpTimerRunning;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -