/*++ Copyright (c) 1997 FORE Systems, Inc. Copyright (c) 1997 Microsoft Corporation Module Name: externs.h Abstract: All external declarations for ATMLANE modules (functions, variables) are here. Revision History: Notes: --*/ #ifndef __ATMLANE_EXTERNS_H #define __ATMLANE_EXTERNS_H #ifndef EXTERN #define EXTERN extern #endif // EXTERN // // --------------- From adapter.c ---------------------------- // #if 0 EXTERN VOID Adapter(); #endif EXTERN NDIS_STATUS AtmLanePnPEventHandler( IN NDIS_HANDLE ProtocolBindingContext, IN PNET_PNP_EVENT NetPnPEvent ); EXTERN VOID AtmLaneBindAdapterHandler( OUT PNDIS_STATUS pStatus, IN NDIS_HANDLE BindContext, IN PNDIS_STRING pDeviceName, IN PVOID SystemSpecific1, IN PVOID SystemSpecific2 ); EXTERN VOID AtmLaneUnbindAdapterHandler( OUT PNDIS_STATUS Status, IN NDIS_HANDLE ProtocolBindingContext, IN NDIS_HANDLE UnbindContext ); EXTERN VOID AtmLaneCompleteUnbindAdapter( IN PATMLANE_ADAPTER pAdapter ); EXTERN VOID AtmLaneOpenAdapterCompleteHandler( IN NDIS_HANDLE ProtocolBindingContext, IN NDIS_STATUS Status, IN NDIS_STATUS OpenErrorStatus ); EXTERN VOID AtmLaneCloseAdapterCompleteHandler( IN NDIS_HANDLE ProtocolBindingContext, IN NDIS_STATUS Status ); EXTERN VOID AtmLaneSendCompleteHandler( IN NDIS_HANDLE ProtocolBindingContext, IN PNDIS_PACKET Packet, IN NDIS_STATUS Status ); EXTERN VOID AtmLaneTransferDataCompleteHandler( IN NDIS_HANDLE ProtocolBindingContext, IN PNDIS_PACKET Packet, IN NDIS_STATUS Status, IN UINT BytesTransferred ); EXTERN NDIS_STATUS AtmLaneReceiveHandler( IN NDIS_HANDLE ProtocolBindingContext, IN NDIS_HANDLE MacReceiveContext, IN PVOID HeaderBuffer, IN UINT HeaderBufferSize, IN PVOID LookAheadBuffer, IN UINT LookaheadBufferSize, IN UINT PacketSize ); EXTERN VOID AtmLaneResetCompleteHandler( IN NDIS_HANDLE ProtocolBindingContext, IN NDIS_STATUS Status ); EXTERN VOID AtmLaneRequestCompleteHandler( IN NDIS_HANDLE ProtocolBindingContext, IN PNDIS_REQUEST pNdisRequest, IN NDIS_STATUS Status ); EXTERN VOID AtmLaneReceiveCompleteHandler( IN NDIS_HANDLE ProtocolBindingContext ); EXTERN VOID AtmLaneStatusHandler( IN NDIS_HANDLE ProtocolBindingContext, IN NDIS_STATUS GeneralStatus, IN PVOID pStatusBuffer, IN UINT StatusBufferSize ); EXTERN VOID AtmLaneStatusCompleteHandler( IN NDIS_HANDLE ProtocolBindingContext ); EXTERN VOID AtmLaneCoSendCompleteHandler( IN NDIS_STATUS Status, IN NDIS_HANDLE ProtocolVcContext, IN PNDIS_PACKET pNdisPacket ); EXTERN VOID AtmLaneCoStatusHandler( IN NDIS_HANDLE ProtocolBindingContext, IN NDIS_HANDLE ProtocolVcContext OPTIONAL, IN NDIS_STATUS GeneralStatus, IN PVOID pStatusBuffer, IN UINT StatusBufferSize ); EXTERN NDIS_STATUS AtmLaneSendAdapterNdisRequest( IN PATMLANE_ADAPTER pAdapter, IN PNDIS_REQUEST pNdisRequest, IN NDIS_REQUEST_TYPE RequestType, IN NDIS_OID Oid, IN PVOID pBuffer, IN ULONG BufferLength ); EXTERN VOID AtmLaneGetAdapterInfo( IN PATMLANE_ADAPTER pAdapter ); EXTERN UINT AtmLaneCoReceivePacketHandler( IN NDIS_HANDLE ProtocolBindingContext, IN NDIS_HANDLE ProtocolVcContext, IN PNDIS_PACKET pNdisPacket ); EXTERN VOID AtmLaneUnloadProtocol( VOID ); EXTERN BOOLEAN AtmLaneIsDeviceAlreadyBound( IN PNDIS_STRING pDeviceName ); // // --------------- From callmgr.c ---------------------------- // #if 0 EXTERN VOID CallMgr(); #endif EXTERN VOID AtmLaneAfRegisterNotifyHandler( IN NDIS_HANDLE ProtocolBindingContext, IN PCO_ADDRESS_FAMILY pAddressFamily ); EXTERN NDIS_STATUS AtmLaneOpenCallMgr( IN PATMLANE_ELAN pElan ); EXTERN VOID AtmLaneOpenAfCompleteHandler( IN NDIS_STATUS Status, IN NDIS_HANDLE ProtocolAfContext, IN NDIS_HANDLE NdisAfHandle ); EXTERN VOID AtmLaneCloseAfCompleteHandler( IN NDIS_STATUS Status, IN NDIS_HANDLE ProtocolAfContext ); EXTERN VOID AtmLaneRegisterSaps( IN PATMLANE_ELAN pElan ); EXTERN VOID AtmLaneDeregisterSaps( IN PATMLANE_ELAN pElan ); EXTERN VOID AtmLaneRegisterSaps( IN PATMLANE_ELAN pElan ); EXTERN NDIS_STATUS AtmLaneMakeCall( IN PATMLANE_ELAN pElan, IN PATMLANE_ATM_ENTRY pAtmEntry, IN BOOLEAN UsePvc ); EXTERN VOID AtmLaneCloseCall( IN PATMLANE_VC pVc ); EXTERN NDIS_STATUS AtmLaneCreateVcHandler( IN NDIS_HANDLE ProtocolAfContext, IN NDIS_HANDLE NdisVcHandle, OUT PNDIS_HANDLE pProtocolVcContext ); EXTERN NDIS_STATUS AtmLaneDeleteVcHandler( IN NDIS_HANDLE ProtocolVcContext ); EXTERN NDIS_STATUS AtmLaneIncomingCallHandler( IN NDIS_HANDLE ProtocolSapContext, IN NDIS_HANDLE ProtocolVcContext, IN OUT PCO_CALL_PARAMETERS pCallParameters ); EXTERN VOID AtmLaneCallConnectedHandler( IN NDIS_HANDLE ProtocolVcContext ); EXTERN VOID AtmLaneIncomingCloseHandler( IN NDIS_STATUS CloseStatus, IN NDIS_HANDLE ProtocolVcContext, IN PVOID pCloseData OPTIONAL, IN UINT Size OPTIONAL ); EXTERN VOID AtmLaneIncomingDropPartyHandler( IN NDIS_STATUS DropStatus, IN NDIS_HANDLE ProtocolPartyContext, IN PVOID pCloseData OPTIONAL, IN UINT Size OPTIONAL ); EXTERN VOID AtmLaneQosChangeHandler( IN NDIS_HANDLE ProtocolVcContext, IN PCO_CALL_PARAMETERS pCallParameters ); EXTERN VOID AtmLaneRegisterSapCompleteHandler( IN NDIS_STATUS Status, IN NDIS_HANDLE ProtocolSapContext, IN PCO_SAP pSap, IN NDIS_HANDLE NdisSapHandle ); EXTERN VOID AtmLaneDeregisterSapCompleteHandler( IN NDIS_STATUS Status, IN NDIS_HANDLE ProtocolSapContext ); EXTERN VOID AtmLaneMakeCallCompleteHandler( IN NDIS_STATUS Status, IN NDIS_HANDLE ProtocolVcContext, IN NDIS_HANDLE NdisPartyHandle OPTIONAL, IN PCO_CALL_PARAMETERS pCallParameters ); EXTERN VOID AtmLaneCloseCallCompleteHandler( IN NDIS_STATUS Status, IN NDIS_HANDLE ProtocolVcContext, IN NDIS_HANDLE ProtocolPartyContext OPTIONAL ); EXTERN VOID AtmLaneAddPartyCompleteHandler( IN NDIS_STATUS Status, IN NDIS_HANDLE ProtocolPartyContext, IN NDIS_HANDLE NdisPartyHandle, IN PCO_CALL_PARAMETERS pCallParameters ); EXTERN VOID AtmLaneDropPartyCompleteHandler( IN NDIS_STATUS Status, IN NDIS_HANDLE ProtocolPartyContext ); EXTERN VOID AtmLaneModifyQosCompleteHandler( IN NDIS_STATUS Status, IN NDIS_HANDLE ProtocolVcContext, IN PCO_CALL_PARAMETERS pCallParameters ); EXTERN NDIS_STATUS AtmLaneSendNdisCoRequest( IN NDIS_HANDLE NdisAdapterHandle, IN NDIS_HANDLE NdisAfHandle, IN PNDIS_REQUEST pNdisRequest, IN NDIS_REQUEST_TYPE RequestType, IN NDIS_OID Oid, IN PVOID pBuffer, IN ULONG BufferLength ); EXTERN NDIS_STATUS AtmLaneCoRequestHandler( IN NDIS_HANDLE ProtocolAfContext, IN NDIS_HANDLE ProtocolVcContext OPTIONAL, IN NDIS_HANDLE ProtocolPartyContext OPTIONAL, IN OUT PNDIS_REQUEST pNdisRequest ); EXTERN VOID AtmLaneCoRequestCompleteHandler( IN NDIS_STATUS Status, IN NDIS_HANDLE ProtocolAfContext, IN NDIS_HANDLE ProtocolVcContext OPTIONAL, IN NDIS_HANDLE ProtocolPartyContext OPTIONAL, IN PNDIS_REQUEST pNdisRequest ); EXTERN NDIS_STATUS AtmLaneGetAtmAddress( IN PATMLANE_ELAN pElan ); EXTERN VOID AtmLaneGetAtmAddressComplete( IN NDIS_STATUS Status, IN PATMLANE_ELAN pElan, IN PNDIS_REQUEST pNdisRequest ); EXTERN NDIS_STATUS AtmLaneGetLecsIlmi( IN PATMLANE_ELAN pElan ); EXTERN VOID AtmLaneGetLecsIlmiComplete( IN NDIS_STATUS Status, IN PATMLANE_ELAN pElan, IN PNDIS_REQUEST pNdisRequest ); // // --------------- From elanpkt.c ---------------------------- // #if 0 EXTERN VOID ElanPkt(); #endif EXTERN VOID AtmLaneSendConfigureRequest( IN PATMLANE_ELAN pElan LOCKIN NOLOCKOUT ); EXTERN VOID AtmLaneSendJoinRequest( IN PATMLANE_ELAN pElan ); EXTERN VOID AtmLaneSendArpRequest( IN PATMLANE_ELAN pElan, IN PATMLANE_MAC_ENTRY pMacEntry LOCKIN NOLOCKOUT ); EXTERN VOID AtmLaneSendReadyQuery( IN PATMLANE_ELAN pElan, IN PATMLANE_VC pVc LOCKIN NOLOCKOUT ); EXTERN VOID AtmLaneSendReadyIndication( IN PATMLANE_ELAN pElan, IN PATMLANE_VC pVc LOCKIN NOLOCKOUT ); EXTERN VOID AtmLaneSendFlushRequest( IN PATMLANE_ELAN pElan, IN PATMLANE_MAC_ENTRY pMacEntry LOCKIN NOLOCKOUT, IN PATMLANE_ATM_ENTRY pAtmEntry ); EXTERN VOID AtmLaneConfigureResponseHandler( IN PATMLANE_ELAN pElan, IN PATMLANE_VC pVc, IN PNDIS_PACKET pNdisPacket ); EXTERN VOID AtmLaneControlPacketHandler( IN PATMLANE_ELAN pElan, IN PATMLANE_VC pVc, IN PNDIS_PACKET pNdisPacket ); EXTERN VOID AtmLaneJoinResponseHandler( IN PATMLANE_ELAN pElan, IN PLANE_CONTROL_FRAME pCf ); EXTERN VOID AtmLaneReadyQueryHandler( IN PATMLANE_ELAN pElan, IN PATMLANE_VC pVc, IN PNDIS_PACKET pQueryNdisPacket ); EXTERN VOID AtmLaneFlushRequestHandler( IN PATMLANE_ELAN pElan, IN PNDIS_PACKET pRequestNdisPacket ); EXTERN VOID AtmLaneArpRequestHandler( IN PATMLANE_ELAN pElan, IN PLANE_CONTROL_FRAME pCf ); EXTERN VOID AtmLaneArpResponseHandler( IN PATMLANE_ELAN pElan, IN PLANE_CONTROL_FRAME pCf ); EXTERN VOID AtmLaneFlushResponseHandler( IN PATMLANE_ELAN pElan, IN PLANE_CONTROL_FRAME pCf ); EXTERN VOID AtmLaneReadyIndicationHandler( IN PATMLANE_ELAN pElan, IN PATMLANE_VC pVc, IN PNDIS_PACKET pIndNdisPacket ); EXTERN VOID AtmLaneTopologyRequestHandler( IN PATMLANE_ELAN pElan, IN PLANE_CONTROL_FRAME pCf ); EXTERN BOOLEAN AtmLaneDataPacketHandler( IN PATMLANE_ELAN pElan, IN PATMLANE_VC pVc, IN PNDIS_PACKET pNdisPacket ); EXTERN VOID AtmLaneSendPacketOnVc( IN PATMLANE_VC pVc LOCKIN NOLOCKOUT, IN PNDIS_PACKET pNdisPacket, IN BOOLEAN Refresh ); EXTERN VOID AtmLaneQueuePacketOnHead( IN PATMLANE_MAC_ENTRY pMacEntry, IN PNDIS_PACKET pNdisPacket ); EXTERN VOID AtmLaneQueuePacketOnTail( IN PATMLANE_MAC_ENTRY pMacEntry, IN PNDIS_PACKET pNdisPacket ); EXTERN PNDIS_PACKET AtmLaneDequeuePacketFromHead( IN PATMLANE_MAC_ENTRY pMacEntry ); EXTERN NDIS_STATUS AtmLaneSendUnicastPacket( IN PATMLANE_ELAN pElan, IN ULONG DestAddrType, IN PMAC_ADDRESS pDestAddress, IN PNDIS_PACKET pNdisPacket ); EXTERN VOID AtmLaneStartBusSends( IN PATMLANE_MAC_ENTRY pMacEntry LOCKIN NOLOCKOUT ); EXTERN VOID AtmLaneDoBusSends( IN PATMLANE_MAC_ENTRY pMacEntry LOCKIN NOLOCKOUT ); EXTERN VOID AtmLaneBusSendTimer( IN PVOID SystemSpecific1, IN PVOID pContext, IN PVOID SystemSpecific2, IN PVOID SystemSpecific3 ); EXTERN BOOLEAN AtmLaneOKToBusSend( IN PATMLANE_MAC_ENTRY pMacEntry ); EXTERN VOID AtmLaneFreePacketQueue( IN PATMLANE_MAC_ENTRY pMacEntry, IN NDIS_STATUS Status ); EXTERN VOID AtmLaneCompleteSendPacket( IN PATMLANE_ELAN pElan, IN PNDIS_PACKET pNdisPacket, IN NDIS_STATUS Status ); EXTERN PWSTR AtmLaneMacAddrToString( IN VOID * pIn ); EXTERN PWSTR AtmLaneAtmAddrToString( IN PATM_ADDRESS pIn ); // // --------------- From elanproc.c ---------------------------- // #if 0 EXTERN VOID elanproc(); #endif EXTERN VOID AtmLaneEventHandler( IN PNDIS_WORK_ITEM pWorkItem, IN PVOID pContext ); EXTERN VOID AtmLaneBootStrapElans( IN PATMLANE_ADAPTER pAdapter ); EXTERN NDIS_STATUS AtmLaneCreateElan( IN PATMLANE_ADAPTER pAdapter, IN PNDIS_STRING pElanKey, OUT PATMLANE_ELAN * ppElan ); EXTERN NDIS_STATUS AtmLaneReconfigureHandler( IN PATMLANE_ADAPTER pAdapter, IN PNET_PNP_EVENT pNetPnPEvent ); EXTERN PATMLANE_ELAN AtmLaneFindElan( IN PATMLANE_ADAPTER pAdapter, IN PNDIS_STRING pElanKey ); EXTERN VOID AtmLaneConnectToServer( IN PATMLANE_ELAN pElan LOCKIN NOLOCKOUT, IN ULONG ServerType, IN BOOLEAN UsePvc ); EXTERN VOID AtmLaneInvalidateAtmEntry( IN PATMLANE_ATM_ENTRY pAtmEntry LOCKIN NOLOCKOUT ); EXTERN VOID AtmLaneCloseVCsOnAtmEntry( IN PATMLANE_ATM_ENTRY pAtmEntry LOCKIN NOLOCKOUT ); EXTERN VOID AtmLaneGenerateMacAddr( PATMLANE_ELAN pElan ); EXTERN PATMLANE_MAC_ENTRY AtmLaneSearchForMacAddress( PATMLANE_ELAN pElan, ULONG pMacAddrType, PMAC_ADDRESS pMacAddress, BOOLEAN CreateNew ); EXTERN PATMLANE_ATM_ENTRY AtmLaneSearchForAtmAddress( IN PATMLANE_ELAN pElan, IN PUCHAR pAtmAddress, IN ULONG Type, IN BOOLEAN CreateNew ); EXTERN ULONG AtmLaneMacAddrEqual( PMAC_ADDRESS pMacAddr1, PMAC_ADDRESS pMacAddr2 ); EXTERN VOID AtmLaneAbortMacEntry( IN PATMLANE_MAC_ENTRY pMacEntry ); EXTERN VOID AtmLaneMacEntryAgingTimeout( IN PATMLANE_TIMER pTimer, IN PVOID Context ); EXTERN VOID AtmLaneArpTimeout( IN PATMLANE_TIMER pTimer, IN PVOID Context ); EXTERN VOID AtmLaneConfigureResponseTimeout( IN PATMLANE_TIMER pTimer, IN PVOID Context ); EXTERN VOID AtmLaneJoinResponseTimeout( IN PATMLANE_TIMER pTimer, IN PVOID Context ); EXTERN VOID AtmLaneInitializeMiniportDevice( IN PNDIS_WORK_ITEM NdisWorkItem, IN PVOID Context ); EXTERN VOID AtmLaneReadyTimeout( IN PATMLANE_TIMER pTimer, IN PVOID Context ); EXTERN VOID AtmLaneFlushTimeout( IN PATMLANE_TIMER pTimer, IN PVOID Context ); EXTERN VOID AtmLaneVcAgingTimeout( IN PATMLANE_TIMER pTimer, IN PVOID Context ); EXTERN VOID AtmLaneShutdownElan( IN PATMLANE_ELAN pElan LOCKIN NOLOCKOUT, IN BOOLEAN Restart ); EXTERN VOID AtmLaneContinueShutdownElan( IN PATMLANE_ELAN pElan ); EXTERN VOID AtmLaneGetProtocolConfiguration( IN NDIS_HANDLE AdapterConfigHandle, IN PATMLANE_ADAPTER pAdapter ); EXTERN VOID AtmLaneGetElanConfiguration( IN NDIS_HANDLE ElanConfigHandle, IN PATMLANE_ELAN pElan ); EXTERN VOID AtmLaneQueueElanEventAfterDelay( IN PATMLANE_ELAN pElan, IN ULONG Event, IN NDIS_STATUS EventStatus, IN ULONG DelayMs ); EXTERN VOID AtmLaneQueueDelayedElanEvent( IN PVOID SystemSpecific1, IN PVOID TimerContext, IN PVOID SystemSpecific2, IN PVOID SystemSpecific3 ); EXTERN VOID AtmLaneQueueElanEvent( IN PATMLANE_ELAN pElan, IN ULONG Event, IN NDIS_STATUS EventStatus ); EXTERN PATMLANE_EVENT AtmLaneDequeueElanEvent( IN PATMLANE_ELAN pElan ); EXTERN VOID AtmLaneDrainElanEventQueue( IN PATMLANE_ELAN pElan ); // // --------------- From miniport.c ---------------------------- // #if 0 EXTERN VOID Miniport(); #endif EXTERN NDIS_STATUS AtmLaneMInitialize( OUT PNDIS_STATUS OpenErrorStatus, OUT PUINT SelectedMediumIndex, IN PNDIS_MEDIUM MediumArray, IN UINT MediumArraySize, IN NDIS_HANDLE MiniportAdapterHandle, IN NDIS_HANDLE WrapperConfigurationContext ); EXTERN VOID AtmLaneMSendPackets( IN NDIS_HANDLE MiniportAdapterContext, IN PPNDIS_PACKET PacketArray, IN UINT NumberOfPackets ); EXTERN VOID AtmLaneMReturnPacket( IN NDIS_HANDLE MiniportAdapterContext, IN PNDIS_PACKET Packet ); EXTERN NDIS_STATUS AtmLaneMQueryInformation( IN NDIS_HANDLE MiniportAdapterContext, IN NDIS_OID Oid, IN PVOID InformationBuffer, IN ULONG InformationBufferLength, OUT PULONG BytesWritten, OUT PULONG BytesNeeded ); EXTERN NDIS_STATUS AtmLaneMSetInformation( IN NDIS_HANDLE MiniportAdapterContext, IN NDIS_OID Oid, IN PVOID InformationBuffer, IN ULONG InformationBufferLength, OUT PULONG BytesRead, OUT PULONG BytesNeeded ); EXTERN NDIS_STATUS AtmLaneMReset( OUT PBOOLEAN AddressingReset, IN NDIS_HANDLE MiniportAdapterContext ); EXTERN VOID AtmLaneMHalt( IN NDIS_HANDLE MiniportAdapterContext ); EXTERN PNDIS_PACKET AtmLaneWrapSendPacket( IN PATMLANE_ELAN pElan, IN PNDIS_PACKET pSendNdisPacket, OUT ULONG * pMacAddrType, OUT PMAC_ADDRESS pMacAddress, OUT BOOLEAN * pSendViaBUS ); EXTERN PNDIS_PACKET AtmLaneUnwrapSendPacket( IN PATMLANE_ELAN pElan, IN PNDIS_PACKET pNdisPacket ); EXTERN PNDIS_PACKET AtmLaneWrapRecvPacket( IN PATMLANE_ELAN pElan, IN PNDIS_PACKET pRecvNdisPacket, OUT ULONG * pMacHdrSize, OUT ULONG * pDestAddrType, OUT PMAC_ADDRESS pDestAddr, OUT BOOLEAN * pDestIsMulticast ) ; EXTERN PNDIS_PACKET AtmLaneUnwrapRecvPacket( IN PATMLANE_ELAN pElan, IN PNDIS_PACKET pNdisPacket ); EXTERN NDIS_STATUS AtmLaneMSetNetworkAddresses( IN PATMLANE_ELAN pElan, IN PVOID InformationBuffer, IN ULONG InformationBufferLength, OUT PULONG BytesRead, OUT PULONG BytesNeeded ); // // --------------- From space.c ---------------------------- // #if 0 EXTERN VOID Space(); #endif EXTERN PATMLANE_GLOBALS pAtmLaneGlobalInfo; EXTERN ATM_ADDRESS gWellKnownLecsAddress; EXTERN ATM_ADDRESS gWellKnownLecsAddress; EXTERN MAC_ADDRESS gMacBroadcastAddress; EXTERN ULONG AtmLaneMaxTimerValue[]; EXTERN ULONG AtmLaneTimerListSize[]; EXTERN ULONG AtmLaneTimerPeriod[]; // // --------------- From utils.c ---------------------------- // #if 0 EXTERN VOID Utils(); #endif EXTERN VOID AtmLaneInitGlobals( VOID ); EXTERN PATMLANE_ADAPTER AtmLaneAllocAdapter( IN PNDIS_STRING pDeviceName, IN PVOID SystemSpecific1 ); EXTERN VOID AtmLaneDeallocateAdapter( IN PATMLANE_ADAPTER pAdapter ); EXTERN BOOLEAN AtmLaneReferenceAdapter( IN PATMLANE_ADAPTER pAdapter, IN PUCHAR String ); EXTERN ULONG AtmLaneDereferenceAdapter( IN PATMLANE_ADAPTER pAdapter, IN PUCHAR String ); EXTERN NDIS_STATUS AtmLaneAllocElan( IN PATMLANE_ADAPTER pAdapter, IN OUT PATMLANE_ELAN *ppElan ); EXTERN VOID AtmLaneDeallocateElan( IN PATMLANE_ELAN pElan ); EXTERN VOID AtmLaneReferenceElan( IN PATMLANE_ELAN pElan, IN PUCHAR String ); EXTERN ULONG AtmLaneDereferenceElan( IN PATMLANE_ELAN pElan, IN PUCHAR String ); EXTERN VOID AtmLaneUnlinkElanFromAdapter( IN PATMLANE_ELAN pElan ); EXTERN PATMLANE_ATM_ENTRY AtmLaneAllocateAtmEntry( IN PATMLANE_ELAN pElan ); EXTERN VOID AtmLaneDeallocateAtmEntry( IN PATMLANE_ATM_ENTRY pAtmEntry ); EXTERN VOID AtmLaneReferenceAtmEntry( IN PATMLANE_ATM_ENTRY pAtmEntry, IN PUCHAR String ); EXTERN ULONG AtmLaneDereferenceAtmEntry( IN PATMLANE_ATM_ENTRY pAtmEntry, IN PUCHAR String ); EXTERN PATMLANE_VC AtmLaneAllocateVc( IN PATMLANE_ELAN pElan ); EXTERN VOID AtmLaneDeallocateVc( IN PATMLANE_VC pVc ); EXTERN VOID AtmLaneReferenceVc( IN PATMLANE_VC pVc, IN PUCHAR String ); EXTERN ULONG AtmLaneDereferenceVc( IN PATMLANE_VC pVc, IN PUCHAR String ); EXTERN PATMLANE_MAC_ENTRY AtmLaneAllocateMacEntry( IN PATMLANE_ELAN pElan ); EXTERN VOID AtmLaneDeallocateMacEntry( IN PATMLANE_MAC_ENTRY pMacEntry ); EXTERN VOID AtmLaneReferenceMacEntry( IN PATMLANE_MAC_ENTRY pMacEntry, IN PUCHAR String ); EXTERN ULONG AtmLaneDereferenceMacEntry( IN PATMLANE_MAC_ENTRY pMacEntry, IN PUCHAR String ); EXTERN PNDIS_PACKET AtmLaneAllocProtoPacket( IN PATMLANE_ELAN pElan ); VOID AtmLaneFreeProtoPacket( IN PATMLANE_ELAN pElan, IN PNDIS_PACKET pNdisPacket ); EXTERN PNDIS_BUFFER AtmLaneGrowHeaders( IN PATMLANE_ELAN pElan ); EXTERN PNDIS_BUFFER AtmLaneAllocateHeader( IN PATMLANE_ELAN pElan, OUT PUCHAR * pBufferAddress ); EXTERN VOID AtmLaneFreeHeader( IN PATMLANE_ELAN pElan, IN PNDIS_BUFFER pNdisBuffer, IN BOOLEAN LockHeld ); EXTERN VOID AtmLaneDeallocateHeaderBuffers( IN PATMLANE_ELAN pElan ); EXTERN PNDIS_BUFFER AtmLaneGrowPadBufs( IN PATMLANE_ELAN pElan ); EXTERN PNDIS_BUFFER AtmLaneAllocatePadBuf( IN PATMLANE_ELAN pElan, OUT PUCHAR * pBufferAddress ); EXTERN VOID AtmLaneFreePadBuf( IN PATMLANE_ELAN pElan, IN PNDIS_BUFFER pNdisBuffer, IN BOOLEAN LockHeld ); EXTERN VOID AtmLaneDeallocatePadBufs( IN PATMLANE_ELAN pElan ); EXTERN PNDIS_BUFFER AtmLaneAllocateProtoBuffer( IN PATMLANE_ELAN pElan, IN ULONG Length, OUT PUCHAR * pBufferAddress ); EXTERN VOID AtmLaneFreeProtoBuffer( IN PATMLANE_ELAN pElan, IN PNDIS_BUFFER pNdisBuffer ); EXTERN NDIS_STATUS AtmLaneInitProtoBuffers( IN PATMLANE_ELAN pElan ); EXTERN VOID AtmLaneDeallocateProtoBuffers( IN PATMLANE_ELAN pElan ); EXTERN VOID AtmLaneLinkVcToAtmEntry( IN PATMLANE_VC pVc, IN PATMLANE_ATM_ENTRY pAtmEntry, IN BOOLEAN ServerIncoming ); EXTERN BOOLEAN AtmLaneUnlinkVcFromAtmEntry( IN PATMLANE_VC pVc ); EXTERN BOOLEAN AtmLaneUnlinkMacEntryFromAtmEntry( IN PATMLANE_MAC_ENTRY pMacEntry ); EXTERN VOID AtmLaneStartTimer( IN PATMLANE_ELAN pElan, IN PATMLANE_TIMER pTimer, IN ATMLANE_TIMEOUT_HANDLER TimeoutHandler, IN ULONG SecondsToGo, IN PVOID ContextPtr ); EXTERN BOOLEAN AtmLaneStopTimer( IN PATMLANE_TIMER pTimer, IN PATMLANE_ELAN pElan ); EXTERN VOID AtmLaneRefreshTimer( IN PATMLANE_TIMER pTimer ); EXTERN VOID AtmLaneTickHandler( IN PVOID SystemSpecific1, IN PVOID Context, IN PVOID SystemSpecific2, IN PVOID SystemSpecific3 ); EXTERN ULONG AtmLaneSystemTimeMs( void ); EXTERN VOID AtmLaneBitSwapMacAddr( IN OUT PUCHAR ap ); EXTERN BOOLEAN AtmLaneCopyUnicodeString( IN OUT PUNICODE_STRING pDestString, IN OUT PUNICODE_STRING pSrcString, IN BOOLEAN AllocDest, IN BOOLEAN ConvertToUpper ); EXTERN PWSTR AtmLaneStrTok( IN PWSTR StrToken, IN WCHAR ChrDelim, OUT PUSHORT pStrLength ); #endif // __ATMLANE_EXTERNS_H