📄 channel.h
字号:
//********************************************************************
// 日期: 2004/08/25 - 25:8:2004 13:40
// 名前: tiamo
// 描述: channel
//*********************************************************************
#pragma once
#define CHANNEL_SIG MAKE_SIG('C','H','N','L')
#define CHANNEL_CLOSE 0x00000001 // before create vc
#define CHANNEL_OPEN 0x00000002 // after create vc
#define CHANNEL_ACTIVATING 0x00000003 // after make call
#define CHANNEL_ACTIVATED 0x00000004 // after activate vc
#define CHANNEL_DEACTIVATING CHANNEL_ACTIVATING // after close call
typedef struct __tagBindContext *PBIND_CONTEXT;
// channel
typedef struct __tagChannel
{
ULONG m_ulSig; // sig
LONG m_lRefCount; // ref
LONG m_lSapRefCount; // sap ref count
ULONG m_ulState; // state
NDIS_SPIN_LOCK m_lockSelf; // lock
ULONG m_ulLineId; // line id
ULONG m_ulLinkSpeed; // speed
ULONG m_ulBearerMode; // bearer mode
ULONG m_ulMediaMode; // media mode
NDIS_WAN_CO_GET_LINK_INFO m_wanCoLinkInfo; // wan link info
NDIS_HANDLE m_hNdisVcHandle; // ndis vc handle
NDIS_HANDLE m_hNdisSapHandle; // sap handle
CO_AF_TAPI_SAP m_coTapiSap; // sap
PCO_CALL_PARAMETERS m_pOutParam; // call params
ULONG m_ulFsmState; // fsm state
PPACKET m_pLastPacket; // last packet
UCHAR m_ucService[256]; // service name
UCHAR m_ucAC[256]; // ac name
USHORT m_usServiceLen; // len
USHORT m_usACLen;
UCHAR m_macPeer[ETH_ADDR_LEN]; // mac address
UCHAR m_macSelf[ETH_ADDR_LEN];
USHORT m_usSessionId; // session
USHORT m_usRetryCounts; // retry counts
ULONG m_bRecvedTimerScheduled; // timer already scheduled
TIMER_ITEM m_timerItemDiscovery; // discovery timer
TIMER_ITEM m_timerItemSession; // session timer
LONG m_lSendingPackets; // sending packets
LONG m_lPendingRecvedPackets; // count
LONG m_lPendingReturnPackets; // pending return
LIST_ENTRY m_ltRecvedPacketsHead; // recv packets
PBIND_CONTEXT m_pBindContext; // bind context
}CHANNEL,*PCHANNEL;
extern "C"
{
// create init channel <= DISPATCH_LEVEL
PCHANNEL CreateInitializeChannel(ULONG ulLineId);
// shutdown channel PASSIVE_LEVEL only
VOID ShutdownChannel(PCHANNEL pChannel);
// reference channel <= DISPATCH_LEVEL
VOID ReferenceChannel(PCHANNEL pChannel,BOOLEAN bAcquireLook);
// dereference channel <= DISPATCH_LEVEL
VOID DereferenceChannel(PCHANNEL pChannel);
// reference sap <= DISPATCH_LEVEL
VOID ReferenceSap(PCHANNEL pChannel,BOOLEAN bAcquireLook);
// dereference sap <= DISPATCH_LEVEL
VOID DereferenceSap(PCHANNEL pChannel);
// add channel to bind <= DISPATCH_LEVEL
VOID AddChannel2Bind(PCHANNEL pChannel,PBIND_CONTEXT pBind);
// remove <= DISPATCH_LEVEL
VOID RemoveChannelFromBind(PCHANNEL pChannel,PBIND_CONTEXT pBind);
// map packet to channel
PCHANNEL MapWithoutSessionId2Channel(PPACKET pPacket);
// map session to channel
PCHANNEL MapSessionId2Channel(PPACKET pPacket);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -