📄 stdafx.h
字号:
NDIS_STATUS protocolPnPEvent(PBIND_CONTEXT pBindContext,PNET_PNP_EVENT pNetPnPEvent);
}
// for timer
extern "C"
{
VOID GlobalTimerEvent(PVOID pSystem1,PVOID pContext,PVOID pSystem2,PVOID pSystem3);
VOID GlobalSetTimer(PPPPOE_TIMER pTimer,LARGE_INTEGER ullTime);
VOID CancelTimerItem(PPPPOE_TIMER pTimer,PPPPOE_TIMER_ITEM pItem,PVOID pCancelContext);
VOID ScheduleTimerItem(PPPPOE_TIMER pTimer,PPPPOE_TIMER_ITEM pItem,ULONG ulDelay,VOID(*pRoutine)(PPPPOE_TIMER_ITEM,PVOID,PVOID),PVOID pContext);
}
// for packet
extern "C"
{
NDIS_STATUS InitializePool();
VOID DestroyPool();
VOID DereferencePacket(PPPPOE_PACKET pPacket);
VOID ReferencePacket(PPPPOE_PACKET pPacket);
PPPPOE_PACKET GetSimplePPPOEPacket();
PPPPOE_PACKET ClonePacket(PPPPOE_PACKET pPacket);
PNDIS_PACKET GetNdisPacketFromPool(PPACKET_POOL pPacketPool,PPACKET_ARRAY_ITEM *pOutItem);
VOID FreePacketToPool(PPACKET_POOL pPacketPool,PPPPOE_PACKET pPPPOEPacket);
PPPPOE_FRAME GetFrameBufferFromPool(PBUFFER_POOL pBufferPool,PNDIS_BUFFER *pOutBuffer);
VOID FreeBufferToPool(PBUFFER_POOL pBufferPool,PPPPOE_FRAME);
PPPPOE_PACKET AllocPPPOEPacketStorage();
VOID FreePPPOEPacketStorage(PPPPOE_PACKET pPPPOEPacket);
PNDIS_PACKET AddPacketBlockToPool(PPACKET_POOL pPacketPool,PPACKET_ARRAY_ITEM *pOutItem);
PPPPOE_FRAME AddBufferBlockToPool(PBUFFER_POOL pBufferPool,PNDIS_BUFFER *pOutBuffer);
VOID FreeUnusedPacketBlock(PPACKET_POOL pPacketPool);
VOID FreeUnusedBufferBlock(PBUFFER_POOL pBufferPool);
VOID PPPOEPacketInsertTag(USHORT ucTag,PPPPOE_PACKET pPacket,PUCHAR pBuffer,USHORT usLen,PUCHAR *ppOutBuffer);
VOID PreparePacketForSend(PPPPOE_PACKET pPacket);
PPPPOE_PACKET BuildPPPOEPacketFromWanSendPacket(PADAPTER pAdapter,USHORT usSessionId,PUCHAR pPeerMac,PUCHAR pSelfMac,PNDIS_WAN_PACKET pWanPacket);
BOOLEAN InitializePPPOEPacketForRecved(PPPPOE_PACKET pPacket);
PPPPOE_PACKET NdisPacket2PPPOEPacket(PBIND_CONTEXT pBind,PNDIS_PACKET pNdisPacket,PBOOLEAN pNeedCallReturn);
BOOLEAN FastCheckIsPPPOEFrame(PPPPOE_FRAME pFrame,ULONG ulSize);
BOOLEAN CheckIsPPPOEPacket(PPPPOE_PACKET pPacket);
PPPPOE_PACKET CreatePPPOEPacketFromReceived(PBIND_CONTEXT pBind,PNDIS_PACKET pNdisPacket,PNDIS_BUFFER pBuffer,PPPPOE_FRAME pFrame);
VOID RetrieveTag(USHORT usTag,PPPPOE_PACKET pPacket,PUCHAR *ppBuffer,PUSHORT pBufferLen,BOOLEAN bSaveToPacket);
VOID RetrieveErrorTag(PPPPOE_PACKET pPacket);
VOID RetrieveServiceName(PPPPOE_PACKET pPacket,PUCHAR *ppBuffer,PUSHORT pBufferLen,PUCHAR pStart,USHORT usTotalLen);
BOOLEAN CheckClientQuota(PADAPTER pAdapter,PPPPOE_PACKET pPacket);
BOOLEAN VerifyACCookie(PPPPOE_PACKET pPacket);
BOOLEAN VerifyServiceName(PADAPTER pAdapter,PPPPOE_PACKET pPacket,BOOLEAN bStrict);
PPPPOE_PACKET InitializePADIToSend(PUCHAR pServiceName,USHORT usServiceName,PUCHAR pHostUnique,USHORT usHostUnique);
PPPPOE_PACKET InitializePADOToSend(PPPPOE_PACKET pRecvedPacket,PUCHAR pSelfMac,PUCHAR pServiceName,USHORT usServiceName,PUCHAR pACName,USHORT usACNameLen,BOOLEAN bSetACCookie);
PPPPOE_PACKET InitializePADRToSend(PPPPOE_PACKET pRecvedPacket,PUCHAR pServiceName,USHORT usServiceName,PUCHAR pHostUnique,USHORT usHostUnique);
PPPPOE_PACKET InitializePADSToSend(PPPPOE_PACKET pRecvedPacket,USHORT usSessionId);
PPPPOE_PACKET InitializePADTToSend(PUCHAR pDstAddr,PUCHAR pSrcAddr,USHORT usSession);
VOID SendPADSWithError(USHORT usTag,PBIND_CONTEXT pBind,PPPPOE_PACKET pRecvedPacket);
}
// for call
extern "C"
{
VOID ReferenceCall(PCALL_INFO pCall,BOOLEAN bAcquireSpinLock);
VOID DereferenceCall(PCALL_INFO pCall);
VOID TspiCloseCallComplete(PCALL_INFO pCall);
VOID InitializeCall(PCALL_INFO pCall,PLINE_INFO pLine,HTAPI_CALL htCall,BOOLEAN bRunAsServer);
VOID CallCleanup(PCALL_INFO pCall);
VOID InitializeHandleTable(ULONG ulCount);
HDRV_CALL InsertToHandleTable(PHANDLE_TABLE pTable,PCALL_INFO pCall,ULONG ulWhere);
VOID RemoveFromHandleTable(PHANDLE_TABLE pCallHandle,HDRV_CALL hCall);
VOID FreeHandleTable(PHANDLE_TABLE pTable);
VOID AddCall2Bind(PCALL_INFO pCall,PBIND_CONTEXT pBind);
VOID RemoveCallFromBind(PCALL_INFO pCall,PBIND_CONTEXT pBind);
PCALL_INFO GetCallPtrFromCallHandle(PHANDLE_TABLE pCallHandle,HDRV_CALL hCall);
PCALL_INFO GetCallPtrFromHandleTableIndex(PHANDLE_TABLE pCallHandle,USHORT usIndex);
PCALL_INFO MapSeccesionIdToCall(PADAPTER pAdapter,PPPPOE_PACKET pPacket);
PCALL_INFO MapWithoutSessionIdToCall(PADAPTER pAdapter,PPPPOE_PACKET pPacket);
USHORT GetSessionIdFromCallHandle(HDRV_CALL hdCall);
VOID ScheduleIndicateRecvedPacketTimer(PCALL_INFO pCall);
VOID IndicateRecvedPackets(PPPPOE_TIMER_ITEM pItem,PVOID pContext,PVOID pCancelContext);
VOID CreateUniqueValue(HDRV_CALL hCall,PLARGE_INTEGER pUnique,PUSHORT pusLen);
}
// for line
extern "C"
{
VOID ReferenceLine(PLINE_INFO pLine,BOOLEAN bAcquireLock);
VOID DereferenceLine(PLINE_INFO pLine);
VOID TspiCloseLineComplete(PLINE_INFO pLine);
HDRV_LINE GetHdLineFromDeviceId(PADAPTER pAdapter,ULONG ulDeviceId);
PLINE_INFO GetLinePtrFromHdLineCheckInitOnly(PADAPTER pAdapter,HDRV_LINE hdLine);
PLINE_INFO GetLinePtrFromHdLineCheckWorking(PADAPTER pAdapter,HDRV_LINE hdLine);
}
// for pppoe
extern "C"
{
NDIS_STATUS SendPPPOEPacket(PADAPTER pAdapter,PBIND_CONTEXT pBind,PPPPOE_PACKET pPacket);
BOOLEAN BroadcastPacket(PPPPOE_PACKET pPacket);
VOID BroadcastExecWorkItem(PPPPOE_WORK_ITEM pItem,PPPPOE_WORK_ITEM_PARAM pParam,PVOID pAdditionalParam);
VOID ProcessRecvPacket(PBIND_CONTEXT pBind,PPPPOE_PACKET pPacket);
VOID ProcessCtrlPacket(PBIND_CONTEXT pBind,PPPPOE_PACKET pPacket);
VOID ExecFsmMakeCall(PPPPOE_WORK_ITEM pItem,PPPPOE_WORK_ITEM_PARAM pParam,PVOID pAdditionalParam);
VOID FsmMakeCall(PCALL_INFO pCall);
VOID FsmReceiveCall(PCALL_INFO pCall,PBIND_CONTEXT pBind,PPPPOE_PACKET pPacket);
NDIS_STATUS FsmAnswerCall(PCALL_INFO pCall);
NDIS_STATUS FsmRun(PCALL_INFO pCall,PBIND_CONTEXT pBind,PPPPOE_PACKET pPacket);
VOID ClientSendPADI(PCALL_INFO pCall,PBIND_CONTEXT pBind,PPPPOE_PACKET pRecvedPacket);
VOID ClientWaitForPADO(PCALL_INFO pCall,PBIND_CONTEXT pBind,PPPPOE_PACKET pRecvedPacket);
VOID ClientWaitForPADS(PCALL_INFO pCall,PBIND_CONTEXT pBind,PPPPOE_PACKET pRecvedPacket);
VOID FsmSendPADITimeOut(PPPPOE_TIMER_ITEM pItem,PVOID pContext,PVOID pCancelContext);
VOID FsmSendPADRTimeOut(PPPPOE_TIMER_ITEM pItem,PVOID pContext,PVOID pCancelContext);
VOID ServerOfferingTimeOut(PPPPOE_TIMER_ITEM pItem,PVOID pContext,PVOID pCancelContext);
NDIS_STATUS ServerAnswerCall(PCALL_INFO pCall,PBIND_CONTEXT pBind,PPPPOE_PACKET pRecvedPacket);
VOID ServerReceiveNewCall(PCALL_INFO pCall,PBIND_CONTEXT pBind,PPPPOE_PACKET pRecvedPacket);
}
// bind
extern "C"
{
PBIND_CONTEXT CreateBind();
VOID FreeBind(PBIND_CONTEXT pBind);
VOID ReferenceBind(PBIND_CONTEXT pBind,BOOLEAN bAcquireSpinLock);
VOID DereferenceBind(PBIND_CONTEXT pBind);
VOID QueryLowerMiniportForLinkSpeed(PBIND_CONTEXT pBind);
VOID QueryLowerMiniportForCurrentAddress(PBIND_CONTEXT pBind);
VOID QueryLowerMiniportForMaxFrameSize(PBIND_CONTEXT pBind);
VOID ChangeLowerMiniportPacketFilter(BOOLEAN bSetAtBind);
VOID SetLowerMiniportPacketFilter(PBIND_CONTEXT pBind,BOOLEAN bSet);
VOID ExecReEnumerateBindForMakeCall(PPPPOE_WORK_ITEM pItem,PPPPOE_WORK_ITEM_PARAM pParam,PVOID pAdditionalParam);
VOID NotifyBindingRemoval(PBIND_CONTEXT pBind);
}
// for adapter
extern "C"
{
VOID IntializeAdapter(PADAPTER pAdapter,NDIS_HANDLE hMiniport,NDIS_HANDLE hConfigContext);
PADAPTER CreateAdapter();
VOID FreeAdapter(PADAPTER pAdapter);
VOID ReferenceAdapter(PADAPTER pAdapter,BOOLEAN bAcquireSpinLock);
VOID DereferenceAdapter(PADAPTER pAdapter);
VOID ReadRegestrySettings(PADAPTER pAdapter,NDIS_HANDLE hWrapperContext);
}
// for workitem
extern "C"
{
PPPPOE_WORK_ITEM AllocateWorkItem(PNPAGED_LOOKASIDE_LIST pLookasideList,VOID (*pRoutine)(PPPPOE_WORK_ITEM,PPPPOE_WORK_ITEM_PARAM,PVOID),PVOID pAdditionalParam,VOID (*pDestructor)(PPPPOE_WORK_ITEM));
VOID ScheduleWorkItem(PPPPOE_WORK_ITEM pWorkItem);
VOID GlobalExecWorkItem(PNDIS_WORK_ITEM pNdisWorkItem,PVOID pContext);
}
// for tspi
extern "C"
{
VOID ReferenceTspiProvider(PADAPTER pAdapter,BOOLEAN bAcquireSpinLock);
VOID DereferenceTspiProvider(PADAPTER pAdapter);
VOID TspiCallStateChange(PCALL_INFO pCall,ULONG ulState,ULONG ulParam);
NDIS_STATUS TspiInitialize(PADAPTER pAdapter,PNDIS_TAPI_PROVIDER_INITIALIZE pInit);
VOID TspiCleanup(PADAPTER pAdapter);
NDIS_STATUS TspiOpen(PADAPTER pAdapter,PNDIS_TAPI_OPEN pOpen);
NDIS_STATUS TspiMakeCall(PADAPTER pAdapter,PNDIS_TAPI_MAKE_CALL pMakeCall);
NDIS_STATUS TspiGetExtensionId(PADAPTER pAdapter,PNDIS_TAPI_GET_EXTENSION_ID pExtensionId);
NDIS_STATUS TspiGetDeviceCaps(PADAPTER pAdapter,PNDIS_TAPI_GET_DEV_CAPS pDeviceCaps);
NDIS_STATUS TspiGetCallStatus(PADAPTER pAdapter,PNDIS_TAPI_GET_CALL_STATUS pCallStatus);
NDIS_STATUS TspiGetCallInfo(PADAPTER pAdapter,PNDIS_TAPI_GET_CALL_INFO pCallInfo);
NDIS_STATUS TspiGetAddressStatus(PADAPTER pAdapter,PNDIS_TAPI_GET_ADDRESS_STATUS pStatus);
NDIS_STATUS TspiGetAddressCaps(PADAPTER pAdapter,PNDIS_TAPI_GET_ADDRESS_CAPS pCaps);
NDIS_STATUS TspiNegotiateExtVersion(PADAPTER pAdapter,PNDIS_TAPI_NEGOTIATE_EXT_VERSION pVersion);
NDIS_STATUS TspiGetId(PADAPTER pAdapter,PNDIS_TAPI_GET_ID pGetId,ULONG ulLen);
NDIS_STATUS TspiShutdown(PADAPTER pAdapter,PNDIS_TAPI_PROVIDER_SHUTDOWN pShutdown,BOOLEAN bNeedComplete);
VOID TspiShutdownComplete(PADAPTER pAdapter);
NDIS_STATUS TspiSetLinkInfo(PADAPTER pAdapter,PNDIS_WAN_SET_LINK_INFO pLinkInfo);
NDIS_STATUS TspiAnswer(PADAPTER pAdapter,PNDIS_TAPI_ANSWER pAnswer);
NDIS_STATUS TspiClose(PADAPTER pAdapter,PNDIS_TAPI_CLOSE pClose,BOOLEAN bNeedComplete);
VOID ExecTspiClose(PPPPOE_WORK_ITEM pItem,PPPPOE_WORK_ITEM_PARAM pParam,PVOID pAdditionalParam);
NDIS_STATUS TspiCloseCall(PADAPTER pAdapter,PNDIS_TAPI_CLOSE_CALL pCloseCall,BOOLEAN bNeedComplete);
NDIS_STATUS TspiDrop(PADAPTER pAdapter,PNDIS_TAPI_DROP pDrop,ULONG ulParam);
NDIS_STATUS TspiSetDefaultMediaDetection(PADAPTER pAdapter,PNDIS_TAPI_SET_DEFAULT_MEDIA_DETECTION pDetection);
VOID ExecSetDefMediaDetection(PPPPOE_WORK_ITEM pItem,PPPPOE_WORK_ITEM_PARAM pParam,PVOID pAdditionalParam);
NDIS_STATUS TspiSetStatusMessage(PADAPTER pAdapter,PNDIS_TAPI_SET_STATUS_MESSAGES pStatusMessage);
VOID TspiIndicateNewCall(PCALL_INFO pCall);
VOID TspiReceiveCall(PADAPTER pAdapter,PBIND_CONTEXT pBind,PPPPOE_PACKET pPacket);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -