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

📄 stdafx.h

📁 pppoe client
💻 H
📖 第 1 页 / 共 3 页
字号:
	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 + -