/*++ Copyright (c) 1990-1995 Microsoft Corporation Module Name: Wanproto.h Abstract: This file contains the prototypes for functions that NdisWan uses. Author: Tony Bell (TonyBe) June 06, 1995 Environment: Kernel Mode Revision History: TonyBe 06/06/95 Created --*/ #ifndef _NDISWAN_PROTO #define _NDISWAN_PROTO // // Functions from cl.c // NDIS_STATUS ClCreateVc( IN NDIS_HANDLE ProtocolAfContext, IN NDIS_HANDLE NdisVcHandle, OUT PNDIS_HANDLE ProtocolVcContext ); NDIS_STATUS ClDeleteVc( IN NDIS_HANDLE ProtocolVcContext ); VOID ClOpenAfComplete( IN NDIS_STATUS Status, IN NDIS_HANDLE ProtocolAfContext, IN NDIS_HANDLE NdisAfHandle ); VOID ClCloseAfComplete( IN NDIS_STATUS Status, IN NDIS_HANDLE ProtocolAfContext ); VOID ClRegisterSapComplete( IN NDIS_STATUS Status, IN NDIS_HANDLE ProtocolSapContext, IN PCO_SAP Sap, IN NDIS_HANDLE NdisSapHandle ); VOID ClDeregisterSapComplete( IN NDIS_STATUS Status, IN NDIS_HANDLE ProtocolSapContext ); VOID ClMakeCallComplete( IN NDIS_STATUS Status, IN NDIS_HANDLE ProtocolVcContext, IN NDIS_HANDLE NdisPartyHandle OPTIONAL, IN PCO_CALL_PARAMETERS CallParameters ); VOID ClModifyQoSComplete( IN NDIS_STATUS Status, IN NDIS_HANDLE ProtocolVcContext, IN PCO_CALL_PARAMETERS CallParameters ); VOID ClCloseCallComplete( IN NDIS_STATUS Status, IN NDIS_HANDLE ProtocolVcContext, IN NDIS_HANDLE ProtocolPartyContext OPTIONAL ); NDIS_STATUS ClIncomingCall( IN NDIS_HANDLE ProtocolSapContext, IN NDIS_HANDLE ProtocolVcContext, IN OUT PCO_CALL_PARAMETERS CallParameters ); VOID ClIncomingCallQoSChange( IN NDIS_HANDLE ProtocolVcContext, IN PCO_CALL_PARAMETERS CallParameters ); VOID ClIncomingCloseCall( IN NDIS_STATUS CloseStatus, IN NDIS_HANDLE ProtocolVcContext, IN PVOID CloseData OPTIONAL, IN UINT Size OPTIONAL ); VOID ClCallConnected( IN NDIS_HANDLE ProtocolVcContext ); // // Functions from cm.c // NDIS_STATUS CmCreateVc( IN NDIS_HANDLE ProtocolAfContext, IN NDIS_HANDLE NdisVcHandle, OUT PNDIS_HANDLE ProtocolVcContext ); NDIS_STATUS CmDeleteVc( IN NDIS_HANDLE ProtocolVcContext ); NDIS_STATUS CmOpenAf( IN NDIS_HANDLE CallMgrBindingContext, IN PCO_ADDRESS_FAMILY AddressFamily, IN NDIS_HANDLE NdisAfHandle, OUT PNDIS_HANDLE CallMgrAfContext ); NDIS_STATUS CmCloseAf( IN NDIS_HANDLE CallMgrAfContext ); NDIS_STATUS CmRegisterSap( IN NDIS_HANDLE CallMgrAfContext, IN PCO_SAP Sap, IN NDIS_HANDLE NdisSapHandle, OUT PNDIS_HANDLE CallMgrSapContext ); NDIS_STATUS CmDeregisterSap( IN NDIS_HANDLE CallMgrSapContext ); NDIS_STATUS CmMakeCall( IN NDIS_HANDLE CallMgrVcContext, IN OUT PCO_CALL_PARAMETERS CallParameters, IN NDIS_HANDLE NdisPartyHandle OPTIONAL, OUT PNDIS_HANDLE CallMgrPartyContext OPTIONAL ); NDIS_STATUS CmCloseCall( IN NDIS_HANDLE CallMgrVcContext, IN NDIS_HANDLE CallMgrPartyContext OPTIONAL, IN PVOID CloseData OPTIONAL, IN UINT Size OPTIONAL ); NDIS_STATUS CmModifyCallQoS( IN NDIS_HANDLE CallMgrVcContext, IN PCO_CALL_PARAMETERS CallParameters ); VOID CmIncomingCallComplete( IN NDIS_STATUS Status, IN NDIS_HANDLE CallMgrVcContext, IN PCO_CALL_PARAMETERS CallParameters ); VOID CmActivateVcComplete( IN NDIS_STATUS Status, IN NDIS_HANDLE CallMgrVcContext, IN PCO_CALL_PARAMETERS CallParameters ); VOID CmDeactivateVcComplete( IN NDIS_STATUS Status, IN NDIS_HANDLE CallMgrVcContext ); NDIS_STATUS CmRequest( IN NDIS_HANDLE ProtocolAfContext, IN NDIS_HANDLE ProtocolVcContext OPTIONAL, IN NDIS_HANDLE ProtocolPartyContext OPTIONAL, IN OUT PNDIS_REQUEST NdisRequest ); // // Functions from ccp.c // VOID WanInitECP( VOID ); VOID WanDeleteECP( VOID ); NTSTATUS WanAllocateECP( PBUNDLECB BundleCB, PCOMPRESS_INFO CompInfo, PCRYPTO_INFO CryptoInfo, BOOLEAN IsSend ); VOID WanDeallocateECP( PBUNDLECB BundleCB, PCOMPRESS_INFO CompInfo, PCRYPTO_INFO CryptoInfo ); NTSTATUS WanAllocateCCP( PBUNDLECB BundleCB, PCOMPRESS_INFO CompInfo, BOOLEAN IsSend ); VOID WanDeallocateCCP( PBUNDLECB BundleCB, PCOMPRESS_INFO CompInfo, BOOLEAN IsSend ); // // Functions from indicate.c // VOID NdisWanLineUpIndication( IN POPENCB OpenCB, IN PUCHAR Buffer, IN ULONG BufferSize ); VOID NdisWanLineDownIndication( IN POPENCB OpenCB, IN PUCHAR Buffer, IN ULONG BufferSize ); VOID NdisWanFragmentIndication( IN POPENCB OpenCB, IN PUCHAR Buffer, IN ULONG BufferSize ); VOID NdisCoWanFragmentIndication( IN PLINKCB LinkCB, IN PBUNDLECB BundleCB, IN PUCHAR Buffer, IN ULONG BufferSize ); VOID NdisCoWanLinkParamChange( IN PLINKCB LinkCB, IN PBUNDLECB BundleCB, IN PUCHAR Buffer, IN ULONG BufferSize ); VOID UpdateBundleInfo( IN PBUNDLECB BundleCB ); VOID AddLinkToBundle( IN PBUNDLECB BundleCB, IN PLINKCB LinkCB ); VOID RemoveLinkFromBundle( IN PBUNDLECB BundleCB, IN PLINKCB LinkCB, IN BOOLEAN Locked ); VOID FreeBundleResources( PBUNDLECB BundleCB ); // // Functions from init.c // // // Functions from io.c // VOID SetBundleFlags( PBUNDLECB BundleCB ); #ifdef NT NTSTATUS NdisWanIoctl( IN PDEVICE_OBJECT pDeviceObject, IN PIRP pIrp ); NTSTATUS NdisWanCreate( IN PDEVICE_OBJECT pDeviceObject, IN PIRP pIrp ); NTSTATUS NdisWanCleanup( IN PDEVICE_OBJECT pDeviceObject, IN PIRP pIrp ); NTSTATUS NdisWanPnPPower( IN PDEVICE_OBJECT pDeviceObject, IN PIRP pIrp ); VOID NdisWanCancelRoutine( IN PDEVICE_OBJECT pDeviceObject, IN PIRP pIrp ); NTSTATUS NdisWanIrpStub( IN PDEVICE_OBJECT pDeviceObject, IN PIRP pIrp ); VOID FlushProtocolPacketQueue( PPROTOCOLCB ProtocolCB ); VOID IoRecvIrpWorker( PKDPC Dpc, PVOID Context, PVOID Arg1, PVOID Arg2 ); #endif // NT VOID RemoveProtocolCBFromBundle( PPROTOCOLCB ProtocolCB ); // // Functions from loopback.c // VOID NdisWanIndicateLoopbackPacket( PMINIPORTCB MiniportCB, PNDIS_PACKET NdisPacket ); // // Functions from memory.c // PMINIPORTCB NdisWanAllocateMiniportCB( IN PNDIS_STRING AdapterName ); VOID NdisWanFreeMiniportCB( IN PMINIPORTCB pMiniportCB ); POPENCB NdisWanAllocateOpenCB( IN PNDIS_STRING BindName ); VOID NdisWanFreeOpenCB( IN POPENCB pOpenCB ); PPROTOCOLCB NdisWanAllocateProtocolCB( IN PNDISWAN_ROUTE Route ); VOID NdisWanFreeProtocolCB( IN PPROTOCOLCB ProtocolCB ); PLINKCB NdisWanAllocateLinkCB( IN POPENCB OpenCB, IN ULONG SendWindow ); VOID NdisWanFreeLinkCB( IN PLINKCB LinkCB ); PBUNDLECB NdisWanAllocateBundleCB( VOID ); VOID NdisWanFreeBundleCB( IN PBUNDLECB BundleCB ); PNDIS_PACKET NdisWanAllocateNdisPacket( ULONG MagicNumber ); VOID NdisWanFreeNdisPacket( PNDIS_PACKET NdisPacket ); PVOID AllocateDataDesc( POOL_TYPE PoolType, SIZE_T NumberOfBytes, ULONG Tag ); VOID FreeDataDesc( PVOID Buffer ); PRECV_DESC NdisWanAllocateRecvDesc( ULONG SizeNeeded ); VOID NdisWanFreeRecvDesc( PRECV_DESC RecvDesc ); PSEND_DESC NdisWanAllocateSendDesc( PLINKCB LinkCB, ULONG SizeNeeded ); VOID NdisWanFreeSendDesc( PSEND_DESC SendDesc ); NDIS_STATUS NdisWanAllocateSendResources( POPENCB OpenCB ); VOID NdisWanFreeSendResources( POPENCB OpenCB ); NDIS_STATUS NdisWanCreateProtocolInfoTable( VOID ); VOID NdisWanDestroyProtocolInfoTable( VOID ); NDIS_STATUS NdisWanCreateConnectionTable( ULONG TableSize ); VOID CompleteThresholdEvent( PBUNDLECB BundleCB, ULONG DataType, ULONG ThresholdType ); PCL_AFSAPCB NdisWanAllocateClAfSapCB( POPENCB OpenCB, PCO_ADDRESS_FAMILY AddressFamily ); VOID NdisWanFreeClAfSapCB( PCL_AFSAPCB AfSapCB ); PCM_AFSAPCB NdisWanAllocateCmAfSapCB( PMINIPORTCB MiniportCB ); VOID NdisWanFreeCmAfSapCB( PCM_AFSAPCB AfSapCB ); PCM_VCCB NdisWanAllocateCmVcCB( PCM_AFSAPCB AfSapCB, NDIS_HANDLE NdisVcHandle ); VOID NdisWanFreeCmVcCB( PCM_VCCB CmVcCB ); NDIS_STATUS AllocateIoNdisPacket( ULONG SizeNeeded, PNDIS_PACKET *NdisPacket, PNDIS_BUFFER *NdisBuffer, PUCHAR *DataBuffer ); VOID FreeIoNdisPacket( PNDIS_PACKET NdisPacket ); // // Functions from ndiswan.c // NDIS_STATUS DoMiniportInit( VOID ); NDIS_STATUS DoProtocolInit( IN PUNICODE_STRING RegistryPath ); NDIS_STATUS DoWanMiniportInit( VOID ); VOID NdisWanReadRegistry( IN PUNICODE_STRING RegistryPath ); VOID NdisWanBindMiniports( IN PUNICODE_STRING RegistryPath ); VOID NdisWanGlobalCleanup( VOID ); VOID SetProtocolInfo( IN PPROTOCOL_INFO ProtocolInfo ); BOOLEAN GetProtocolInfo( IN OUT PPROTOCOL_INFO ProtocolInfo ); NDIS_HANDLE InsertLinkInConnectionTable( IN PLINKCB LinkCB ); VOID RemoveLinkFromConnectionTable( IN PLINKCB LinkCB ); NDIS_HANDLE InsertBundleInConnectionTable( IN PBUNDLECB BundleCB ); VOID RemoveBundleFromConnectionTable( IN PBUNDLECB BundleCB ); NTSTATUS BindQueryRoutine( IN PWSTR ValueName, IN ULONG ValueType, IN PVOID ValueData, IN ULONG ValueLength, IN PVOID Context, IN PVOID EntryContext ); BOOLEAN IsHandleValid( USHORT usHandleType, NDIS_HANDLE hHandle ); #if DBG PUCHAR NdisWanGetNdisStatus( IN NDIS_STATUS GeneralStatus ); #endif // // Functions from miniport.c // BOOLEAN MPCheckForHang( IN NDIS_HANDLE MiniportAdapterContext ); #if 0 NDIS_STATUS MPQueryInformation( IN NDIS_HANDLE MiniportAdapterContext, IN NDIS_OID Oid, IN PVOID InformationBuffer, IN ULONG InformationBufferLength, OUT PULONG BytesWritten, OUT PULONG BytesNeeded ); NDIS_STATUS MPSetInformation( IN NDIS_HANDLE MiniportAdapterContext, IN NDIS_OID Oid, IN PVOID InformationBuffer, IN ULONG InformationBufferLength, OUT PULONG BytesWritten, OUT PULONG BytesNeeded ); #endif VOID MPHalt( IN NDIS_HANDLE MiniportAdapterContext ); NDIS_STATUS MPInitialize( OUT PNDIS_STATUS OpenErrorStatus, OUT PUINT SelectedMediumIndex, IN PNDIS_MEDIUM MediumArray, IN UINT MediumArraySize, IN NDIS_HANDLE MiniportAdapterHandle, IN NDIS_HANDLE WrapperConfigurationContext ); NDIS_STATUS MPReconfigure( OUT PNDIS_STATUS OpenErrorStatus, IN NDIS_HANDLE MiniportAdapterContext, IN NDIS_HANDLE WrapperConfigurationContext ); NDIS_STATUS MPReset( OUT PBOOLEAN AddressingReset, IN NDIS_HANDLE MiniportAdapterContext ); VOID MPReturnPacket( IN NDIS_HANDLE MiniportAdapterContext, IN PNDIS_PACKET Packet ); VOID MPSendPackets( IN NDIS_HANDLE MiniportAdapterContext, IN PPNDIS_PACKET PacketArray, IN UINT NumberOfPackets ); NDIS_STATUS MPTransferData( OUT PNDIS_PACKET NdisPacket, OUT PUINT BytesTransferred, IN NDIS_HANDLE MiniportAdapterContext, IN NDIS_HANDLE MiniportReceiveContext, IN UINT ByteOffset, IN UINT BytesToTransfer ); NDIS_STATUS MPCoCreateVc( IN NDIS_HANDLE MiniportAdapterContext, IN NDIS_HANDLE NdisVcHandle, OUT PNDIS_HANDLE MiniportVcContext ); NDIS_STATUS MPCoDeleteVc( IN NDIS_HANDLE MiniportVcContext ); NDIS_STATUS MPCoActivateVc( IN NDIS_HANDLE MiniportVcContext, IN OUT PCO_CALL_PARAMETERS CallParameters ); NDIS_STATUS MPCoDeactivateVc( IN NDIS_HANDLE MiniportVcContext ); VOID MPCoSendPackets( IN NDIS_HANDLE MiniportVcContext, IN PPNDIS_PACKET PacketArray, IN UINT NumberOfPackets ); NDIS_STATUS MPCoRequest( IN NDIS_HANDLE MiniportAdapterContext, IN NDIS_HANDLE MiniportVcContext OPTIONAL, IN OUT PNDIS_REQUEST NdisRequest ); // // Functions from protocol.c // NDIS_STATUS ProtoOpenWanAdapter( POPENCB pOpenCB ); NDIS_STATUS ProtoCloseWanAdapter( IN POPENCB pOpenCB ); VOID ProtoOpenAdapterComplete( IN NDIS_HANDLE ProtocolBindingContext, IN NDIS_STATUS Status, IN NDIS_STATUS OpenErrorStatus ); VOID ProtoCloseAdapterComplete( IN NDIS_HANDLE ProtocolBindingContext, IN NDIS_STATUS Status ); VOID ProtoResetComplete( IN NDIS_HANDLE ProtocolBindingContext, IN NDIS_STATUS Status ); VOID ProtoReceiveComplete( IN NDIS_HANDLE ProtocolBindingContext ); VOID ProtoIndicateStatus( IN NDIS_HANDLE ProtocolBindingContext, IN NDIS_STATUS GeneralStatus, IN PVOID StatusBuffer, IN UINT StatusBufferSize ); VOID ProtoIndicateStatusComplete( IN NDIS_HANDLE ProtocolBindingContext ); VOID ProtoWanSendComplete( IN NDIS_HANDLE ProtocolBindingContext, IN PNDIS_WAN_PACKET Packet, IN NDIS_STATUS Status ); NDIS_STATUS ProtoWanReceiveIndication( IN NDIS_HANDLE NdisLinkHandle, IN PUCHAR Packet, IN ULONG PacketSize ); VOID ProtoRequestComplete( IN NDIS_HANDLE ProtocolBindingContext, IN PNDIS_REQUEST NdisRequest, IN NDIS_STATUS Status ); VOID ProtoBindAdapter( OUT PNDIS_STATUS Status, IN NDIS_HANDLE BindContext, IN PNDIS_STRING DeviceName, IN PVOID SystemSpecific1, IN PVOID SystemSpecific2 ); VOID ProtoUnbindAdapter( OUT PNDIS_STATUS Status, IN NDIS_HANDLE ProtocolBindingContext, IN NDIS_HANDLE UnbindContext ); VOID ProtoUnload( VOID ); NDIS_STATUS ProtoPnPEvent( IN NDIS_HANDLE ProtocolBindingContext, IN PNET_PNP_EVENT NetPnPEvent ); VOID ProtoCoSendComplete( IN NDIS_STATUS Status, IN NDIS_HANDLE ProtocolVcContext, IN PNDIS_PACKET Packet ); VOID ProtoCoIndicateStatus( IN NDIS_HANDLE ProtocolBindingContext, IN NDIS_HANDLE ProtocolVcContext OPTIONAL, IN NDIS_STATUS GeneralStatus, IN PVOID StatusBuffer, IN UINT StatusBufferSize ); UINT ProtoCoReceivePacket( IN NDIS_HANDLE ProtocolBindingContext, IN NDIS_HANDLE ProtocolVcContext, IN PNDIS_PACKET Packet ); NDIS_STATUS ProtoCoRequest( IN NDIS_HANDLE ProtocolAfContext, IN NDIS_HANDLE ProtocolVcContext OPTIONAL, IN NDIS_HANDLE ProtocolPartyContext OPTIONAL, IN OUT PNDIS_REQUEST NdisRequest ); VOID ProtoCoRequestComplete( IN NDIS_STATUS Status, IN NDIS_HANDLE ProtocolAfContext, IN NDIS_HANDLE ProtocolVcContext OPTIONAL, IN NDIS_HANDLE ProtocolPartyContext OPTIONAL, IN PNDIS_REQUEST NdisRequest ); VOID ProtoCoAfRegisterNotify( IN NDIS_HANDLE ProtocolBindingContext, IN PCO_ADDRESS_FAMILY AddressFamily ); NDIS_STATUS DoNewLineUpToProtocol( IN PPROTOCOLCB ProtocolCB ); NDIS_STATUS DoLineUpToProtocol( IN PPROTOCOLCB ProtocolCB ); NDIS_STATUS DoLineDownToProtocol( PPROTOCOLCB ProtocolCB ); VOID NdisWanProcessStatusIndications( PMINIPORTCB MiniportCB ); // // Functions from receive.c // NDIS_STATUS DetectBroadbandFraming( PLINKCB LinkCB, PRECV_DESC RecvDesc ); NDIS_STATUS DetectFraming( PLINKCB LinkCB, PRECV_DESC RecvDesc ); NDIS_STATUS ReceivePPP( PLINKCB LinkCB, PRECV_DESC RecvDesc ); NDIS_STATUS ReceiveSLIP( PLINKCB LinkCB, PRECV_DESC RecvDesc ); NDIS_STATUS ReceiveRAS( PLINKCB LinkCB, PRECV_DESC RecvDesc ); NDIS_STATUS ReceiveARAP( PLINKCB LinkCB, PRECV_DESC RecvDesc ); NDIS_STATUS ReceiveForward( PLINKCB LinkCB, PRECV_DESC RecvDesc ); NDIS_STATUS ReceiveLLC( PLINKCB LinkCB, PRECV_DESC RecvDesc ); VOID FlushAssemblyLists( IN PBUNDLECB BundleCB ); BOOLEAN IpIsDataFrame( PUCHAR HeaderBuffer, ULONG HeaderBufferLength, ULONG TotalLength ); BOOLEAN IpxIsDataFrame( PUCHAR HeaderBuffer, ULONG HeaderBufferLength, ULONG TotalLength ); BOOLEAN NbfIsDataFrame( PUCHAR HeaderBuffer, ULONG HeaderBufferLength, ULONG TotalLength ); VOID IndicatePromiscuousRecv( PBUNDLECB BundleCB, PRECV_DESC RecvDesc, RECV_TYPE RecvType ); // // Functions from request.c // NDIS_STATUS NdisWanSubmitNdisRequest( IN POPENCB pOpenCB, IN PWAN_REQUEST WanRequest ); NDIS_STATUS NdisWanOidProc( IN PMINIPORTCB pMiniportCB, IN OUT PNDIS_REQUEST NdisRequest ); NDIS_STATUS NdisWanCoOidProc( IN PMINIPORTCB pMiniportCB, IN PCM_VCCB CmVcCB OPTIONAL, IN OUT PNDIS_REQUEST NdisRequest ); // // Functions from send.c // VOID NdisWanQueueSend( IN PMINIPORTCB MiniportCB, IN PNDIS_PACKET NdisPacket ); VOID SendPacketOnBundle( PBUNDLECB BundleCB ); BOOLEAN SendFromPPP( PBUNDLECB BundleCB, PPROTOCOLCB ProtocolCB, PBOOLEAN PacketSent ); BOOLEAN SendFromProtocol( PBUNDLECB BundleCB, PPROTOCOLCB ProtocolCB, PINT RetClass, PULONG SendMask, PBOOLEAN PacketSent ); BOOLEAN SendFromFragQueue( PBUNDLECB BundleCB, BOOLEAN SendOne, PBOOLEAN PacketSent ); UINT FramePacket( PBUNDLECB BundleCB, PPROTOCOLCB ProtocolCB, PNDIS_PACKET NdisPacket, PLIST_ENTRY LinkCBList, ULONG SendingLinks, INT Class ); UINT SendOnLegacyLink( PSEND_DESC SendDesc ); UINT SendOnLink( PSEND_DESC SendDesc ); NDIS_STATUS BuildIoPacket( IN PLINKCB LinkCB, IN PBUNDLECB BundleCB, IN PNDISWAN_IO_PACKET pWanIoPacket, IN BOOLEAN SendImmediate ); VOID CompleteNdisPacket( PMINIPORTCB MiniportCB, PPROTOCOLCB ProtocolCB, PNDIS_PACKET NdisPacket ); VOID IndicatePromiscuousSendPacket( PLINKCB LinkCB, PNDIS_PACKET NdisPacket ); VOID IndicatePromiscuousSendDesc( PLINKCB LinkCB, PSEND_DESC SendDesc, SEND_TYPE SendType ); VOID DestroyIoPacket( PNDIS_PACKET NdisPacket ); // // Functions from tapi.c // NDIS_STATUS NdisWanTapiRequestProc( HANDLE NdisWanKey, PNDIS_REQUEST NdisRequest ); VOID NdisWanTapiRequestComplete( POPENCB OpenCB, PWAN_REQUEST WanRequest ); VOID NdisWanTapiIndication( POPENCB OpenCB, PUCHAR StatusBuffer, ULONG StatusBufferSize ); // // Function from util.c // VOID NdisWanStringToNdisString( IN PNDIS_STRING pDestString, IN PWSTR pSrcBuffer ); VOID NdisWanAllocateAdapterName( PNDIS_STRING Dest, PNDIS_STRING Src ); VOID NdisWanFreeNdisString( IN PNDIS_STRING NdisString ); VOID NdisWanNdisStringToInteger( IN PNDIS_STRING Source, IN PULONG Value ); VOID NdisWanCopyNdisString( OUT PNDIS_STRING Dest, IN PNDIS_STRING Src ); VOID NdisWanCopyFromPacketToBuffer( IN PNDIS_PACKET NdisPacket, IN ULONG Offset, IN ULONG BytesToCopy, OUT PUCHAR Buffer, OUT PULONG BytesCopied ); VOID NdisWanCopyFromBufferToPacket( PUCHAR Buffer, ULONG BytesToCopy, PNDIS_PACKET NdisPacket, ULONG PacketOffset, PULONG BytesCopied ); BOOLEAN IsLinkValid( NDIS_HANDLE LinkHandle, BOOLEAN CheckState, PLINKCB *LinkCB ); BOOLEAN IsBundleValid( NDIS_HANDLE BundleHandle, BOOLEAN CheckState, PBUNDLECB *BundleCB ); BOOLEAN AreLinkAndBundleValid( NDIS_HANDLE LinkHandle, BOOLEAN CheckState, PLINKCB *LinkCB, PBUNDLECB *BundleCB ); VOID DoDerefBundleCBWork( PBUNDLECB BundleCB ); VOID DoDerefLinkCBWork( PLINKCB LinkCB ); VOID DoDerefClAfSapCBWork( PCL_AFSAPCB AfSapCB ); VOID DoDerefCmVcCBWork( PCM_VCCB VcCB ); VOID DerefVc( PLINKCB LinkCB ); VOID DeferredWorker( PKDPC Dpc, PVOID Context, PVOID Arg1, PVOID Arg2 ); VOID BonDWorker( PKDPC Dpc, PVOID Context, PVOID Arg1, PVOID Arg2 ); VOID CheckBonDInfo( PKDPC Dpc, PBUNDLECB BundleCB, PVOID SysArg1, PVOID SysArg2 ); VOID AgeSampleTable( PSAMPLE_TABLE SampleTable ); VOID UpdateSampleTable( PSAMPLE_TABLE SampleTable, ULONG BytesSent ); VOID UpdateBandwidthOnDemand( PBOND_INFO BonDInfo, ULONG Bytes ); VOID CheckUpperThreshold( PBUNDLECB BundleCB ); VOID CheckLowerThreshold( PBUNDLECB BundleCB ); // // Functions from vjslip.c // VOID WanInitVJ( VOID ); VOID WanDeleteVJ( VOID ); #endif