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

📄 card.h

📁 WinCE5.0部分核心源码
💻 H
📖 第 1 页 / 共 2 页
字号:
#endif              
    BOOLEAN             m_IndicateReceiveDone;// TRUE if the driver needs to call
    BOOLEAN             m_VxdLoaded;
    BOOLEAN             m_IsInDoNextSend;
    CQ                  m_Q;        // Store NDIS packets buffers' pointers
    CQ                  fidQ;
    CSTACK              m_IntStack;
    BOOLEAN             m_CardFirmwareErr;
    // 
    // Array of configuration profiles.
    // 
    STPROFILE           *m_profiles;
    // 
    // Number of available configuration profiles.
    // 
    USHORT              m_numProfiles;
    // 
    // Index of the active profile.
    // 
    USHORT              m_activeProfileIndex;
    // 
    // Points to the "active" profile in the m_profiles array.  This is the profile that 
    // is stored in the card.
    // 
    STPROFILE           *m_activeProfile;
    // 
    // Points to the "current" profile in the m_profiles array.  This is not necessarily 
    // the profile stored in the card.
    // 
    STPROFILE           *m_currentProfile;

//    BOOLEAN             m_activeProfileSwitched;
    // 
    // Global enable/disable flag for auto profile switching.
    // 
    BOOLEAN             m_autoConfigEnabled;
    // 
    // Flag to temporarily disable auto profile switching.
    // 
    BOOLEAN             m_tempDisableAutoSwitch;

    // 
    // BSSID list cache.  Gets destroyed on a list scan, and rebuilt on the next request
    // for the BSSID list.  Subsequent requests for the list, return the cached copy.
    // 
    NDIS_802_11_BSSID_LIST  *bssid_list;
    UINT                    bssid_list_count;   // number of elements in the list.
    UINT                    bssid_list_size;    // size of the list (bytes).


    // 
    // Forces init FW to read the card's stored config and use this as the default.
    // 
    BOOLEAN             m_readCardConfig;

//-- NDIS5  
    NDIS_SPIN_LOCK      m_lock;
    PNDIS_PACKET        m_TxHead;
    PNDIS_PACKET        m_TxTail;
    UINT                m_NumPacketsQueued;

    //Currently associated information
    NDIS_802_11_MAC_ADDRESS     m_BSSID;
    NDIS_802_11_SSID            m_SSID;

    //                  - -------------- AMCC PCI card 
    BOOLEAN             IsAMCC;
    PUCHAR              m_ContolRegMemBase;
    BOOLEAN             m_ContolRegRegistered;
    //PUCHAR                m_RadioMemBase;
    //BOOLEAN               m_RadioMemRegistered;

    //                  ---- ----------- Softex stuff
    BOOLEAN             IsSoftexClient;
    USHORT              Softex_ClientHandle;
    ULONG               Softex_Flags;
    USHORT              Softex_Sktnum;
    BOOLEAN             Softex_Removed;
    int                 SoftexRegistryPathLength;
    PWSTR               SoftexRegistryPath;

//          
    UINT                m_MediaDisconnectDamper;
    UINT                m_MediaDisconnectDamperTick;
    NDIS_STATUS         m_MSenceStatus;     
    // 
    // Dampers used when switching among configuration profiles.
    // 
    UINT                m_AutoConfigActiveDamper;
    UINT                m_AutoConfigPassiveDamper;
    UINT                m_AutoConfigDamperTick;

    STCAPS              capabilities;
    DBM_TABLE           *dBmTable;

#if NDISVER == 5
    void                *m_pSwRfd;
    D100_LIST_ENTRY     RfdList;
    UINT                UsedRfdCount;       
    UINT                NumRfd; 
    NDIS_HANDLE         RxPktPool;
    NDIS_HANDLE         RxBufPool;
    MP_MODE             mp_enabled;    // magic packet command enabled
#endif
    BOOLEAN             initComplete;           //spb001
    UINT                m_UpdateLinkDamper;     //spb004
    BOOLEAN             cancelTimer;            //spb019
    BOOLEAN             wasFlashChecked;        //spb023
    BOOLEAN             flashCard;              //spb026
    BOOLEAN             cancelFlash;            //spb027

#ifdef UNDER_CE
    BOOLEAN             bHalting;
#endif

//
}CARD, *PCARD;

#define     PUSH(a)         push(card->m_IntStack, a)
#define     POP()           pop(card->m_IntStack)   
#define     POPPEAK         PopPeak(card->m_IntStack, a)
#define     POPPEAK         PopPeak(card->m_IntStack, a)
#define     RESETSTACK()    ResetStack(card->m_IntStack)    

#ifdef INVALIDPACKETS
    void Reader80211();
#endif

BOOLEAN baseCardConstruct(PCARD card);
void baseCardDestruct(PCARD card);

extern NDIS_STATUS  cbResetCard(PBOOLEAN, NDIS_HANDLE );
extern ULONG    GetRxHeader(PCARD   card, PUCHAR);
extern void     UpdateCounters(PCARD    card);
extern void     cbIsr( PBOOLEAN ,PBOOLEAN, NDIS_HANDLE);    
extern void     cbHandleInterrupt( PCARD card);
extern BOOLEAN  cardConstruct(PCARD card);
extern void     cardDestruct(PCARD card);
NDIS_STATUS     cbSend( NDIS_HANDLE,PNDIS_PACKET Packet, UINT Flags);
VOID            cbSendPackets(NDIS_HANDLE, PPNDIS_PACKET, UINT);
void            ReleaseSendQ(PCARD card);

NDIS_STATUS         
cbTransferData( 
    PNDIS_PACKET    Pkt,
    PUINT           BytesTransferred,
    NDIS_HANDLE     Context,
    NDIS_HANDLE     MiniportReceiveContext,
    UINT            ByteOffset,
    UINT            BytesToTransfer 
    );

extern BOOLEAN  InitHW(PCARD    card);

extern BOOLEAN  InitFW(PCARD    card, BOOLEAN useCurrentConfig = FALSE);
extern BOOLEAN  InitFW1(PCARD   card, BOOLEAN useCurrentConfig = FALSE);     //spb001

NDIS_STATUS 
cbQueryInformation(
    NDIS_HANDLE     Context,
    IN NDIS_OID     Oid,
    IN PVOID        InfBuff,
    IN ULONG        InfBuffLen,
    OUT PULONG      BytesWritten,
    OUT PULONG      BytesNeeded
    );

NDIS_STATUS 
cbSetInformation(   
    NDIS_HANDLE     Context,
    IN NDIS_OID     Oid,
    IN PVOID        InfBuff,
    IN ULONG        InfBuffLen,
    OUT PULONG      BytesRead,
    OUT PULONG      BytesNeeded
    );

extern NDIS_STATUS  
ExtendedOids(
    PCARD           card,
    IN NDIS_OID     Oid ,
    IN PVOID        InfBuff,
    IN ULONG        InfBuffLen,
    OUT PULONG      BytesWritten,
    OUT PULONG      BytesNeeded
    ); 


inline
BOOLEAN             
IsValidPacket(
    PCARD   card,
    UCHAR   Lookahead
    )
{
    return  *(ULONG *)(Lookahead+6) || *(USHORT *)(card->m_Lookahead+10);
}

void                
XmitDpc(
    PCARD   card
    );

void                
RcvDpc(
    PCARD   card
    );

INDICATE_STATUS     
IndicatePacket(
    PCARD   card
    );


BOOLEAN             
DoNextSend(
    PCARD   card,
    PNDIS_PACKET    Packet=NULL
    );

BOOLEAN             
CopyDownPacketPortUShort(
    PCARD   card,
    PNDIS_PACKET    Packet 
    );

BOOLEAN             
CopyDownPacketPortUChar(
    PCARD   card,
    PNDIS_PACKET    Packet 
    );

void                
CopyUpPacketUShort( 
    PCARD   card,
    PUCHAR,
    UINT 
    );


BOOLEAN             
InitDriver(
    PCARD   card,
    PNDIS_STATUS    OpenErrorStatus,
    PUINT           SelectedMediumIndex,
    PNDIS_MEDIUM    MediumArray,
    UINT            MediumArraySize,
    NDIS_HANDLE     MiniportAdapterHandle,
    NDIS_HANDLE     ConfigurationHandle
    );

//spb023
BOOLEAN 
CheckRev(
    PCARD card
    );

void 
FlashImage(
    PCARD card
    );

BOOLEAN             
GetDriverConfig(
    PCARD   card
    );

BOOLEAN             
RegisterAdapter(
    PCARD   card
    );

BOOLEAN             
RegisterInterrupt(
    PCARD   card
    );

void                
LogError( 
    PCARD   card,
    NDIS_ERROR_CODE, 
    const int 
    );

void
LogError(
    IN  NDIS_HANDLE             adapterHandle,
    IN  NDIS_ERROR_CODE         ErrorCode,
    IN  const int               AiroCode
    );

BOOLEAN             
LoadVxd(
    PCARD   card
    );

void                
UnloadVxd(
    PCARD   card
    );

void                
GetExtendedRegistryParams(
    PCARD   card,
    NDIS_HANDLE,
    EXTENDED_PARAMS &
    );

void    
CardTimerCallback(
    IN PVOID    ,
    PCARD,IN PVOID, 
    IN PVOID
    );
void
AckPendingPackets(
    PCARD   card
    );

BOOLEAN CheckCardFlashing (PCARD card,
                           NDIS_STATUS *status,
                           NDIS_OID Oid );

////////////////////////////////////////////////////////////////////////
inline
BOOLEAN             
IsMyPacket(
    PCARD   card,
    PUCHAR  Lookahead
    )
{   
    UINT    result;
    //ETH_COMPARE_NETWORK_ADDRESSES_EQ( card->m_Lookahead, card->m_StationAddress, &result);
    ETH_COMPARE_NETWORK_ADDRESSES_EQ( Lookahead, card->m_StationAddress, &result);
    return  0==result;
}

inline
BOOLEAN             
CheckMulticast(
    PCARD   card,
    PUCHAR  Lookahead
    )
{
    UINT    i;
    UINT    result=1;

    // The received packet is a broadcast/multicast packet
    // It is at least a multicast address.  Check to see if
    // it is a broadcast address.
    
    if ( ETH_IS_BROADCAST( Lookahead )){
        return card->m_PacketFilter & NDIS_PACKET_TYPE_BROADCAST ? TRUE : FALSE;
    }
    else  // received a multicast packet
    if ( card->m_PacketFilter & ( NDIS_PACKET_TYPE_ALL_MULTICAST | NDIS_PACKET_TYPE_MULTICAST)){
            
        if ( card->m_PacketFilter & NDIS_PACKET_TYPE_ALL_MULTICAST )
            return TRUE;
        
        for (i = 0; result && i < card->m_CurMulticastSize ; i++){
            ETH_COMPARE_NETWORK_ADDRESSES_EQ( Lookahead, card->m_Addresses[i], &result);
            if( 0==result )
                return TRUE;
        }
    }
    return FALSE;
}

void setAutoConfigTimer (PCARD card, BOOLEAN includeMediaDisconnectTimer = FALSE);


#define F_PCMCIA 0x00000001
inline ADAPTER_READY(PCARD card)
{
#ifndef SOFTEX
    return TRUE;
#else
    BOOLEAN SoftexCardReady (PCARD  card);
    return !(card->Softex_Flags & F_PCMCIA) || SoftexCardReady(card);
#endif
}

////////////////////////////////////////////////////////////////////////
#endif

⌨️ 快捷键说明

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