/*++ Copyright (c) 1990-1998 Microsoft Corporation, All Rights Reserved. Module Name: proto.h Abstract: Ndis Atm Sample protocol. Author: Anil Francis Thomas (10/98) Environment: Kernel Revision History: --*/ #ifndef __PROTO_H #define __PROTO_H // // prototypes from atmsmdrv.c // NTSTATUS DriverEntry( IN PDRIVER_OBJECT pDriverObject, IN PUNICODE_STRING RegistryPath ); VOID AtmSmShutDown( ); NDIS_STATUS AtmSmInitializeNdis( ); NDIS_STATUS AtmSmDeinitializeNdis( ); // // Prototypes in adapter.c // VOID AtmSmBindAdapter( OUT PNDIS_STATUS pStatus, IN NDIS_HANDLE BindContext, IN PNDIS_STRING pDeviceName, IN PVOID SystemSpecific1, IN PVOID SystemSpecific2 ); VOID AtmSmOpenAdapterComplete( IN NDIS_HANDLE ProtocolBindingContext, IN NDIS_STATUS Status, IN NDIS_STATUS OpenStatus ); VOID AtmSmUnbindAdapter( OUT PNDIS_STATUS pStatus, IN NDIS_HANDLE ProtocolBindingContext, IN NDIS_HANDLE UnbindContext ); NDIS_STATUS AtmSmShutdownAdapter( PATMSM_ADAPTER pAdapt ); VOID AtmSmCloseAdapterComplete( IN NDIS_HANDLE ProtocolBindingContext, IN NDIS_STATUS Status ); BOOLEAN AtmSmReferenceAdapter( PATMSM_ADAPTER pAdapt ); LONG AtmSmDereferenceAdapter( PATMSM_ADAPTER pAdapt ); NDIS_STATUS AtmSmQueryAdapterATMAddresses( PATMSM_ADAPTER pAdapt ); VOID AtmSmQueryAdapter( IN PATMSM_ADAPTER pAdapt ); NDIS_STATUS AtmSmPnPEvent( IN NDIS_HANDLE ProtocolBindingContext, IN PNET_PNP_EVENT pNetPnPEvent ); VOID AtmSmStatus( IN NDIS_HANDLE ProtocolBindingContext, IN NDIS_STATUS GeneralStatus, IN PVOID StatusBuffer, IN UINT StatusBufferSize ); VOID AtmSmReceiveComplete( IN NDIS_HANDLE ProtocolBindingContext ); VOID AtmSmStatusComplete( IN NDIS_HANDLE ProtocolBindingContext ); VOID AtmSmCoStatus( IN NDIS_HANDLE ProtocolBindingContext, IN NDIS_HANDLE ProtocolVcContext OPTIONAL, IN NDIS_STATUS GeneralStatus, IN PVOID StatusBuffer, IN UINT StatusBufferSize ); // // Prototypes in callmgr.c // VOID AtmSmCoAfRegisterNotify( IN NDIS_HANDLE ProtocolBindingContext, IN PCO_ADDRESS_FAMILY pAddressFamily ); VOID AtmSmOpenAfComplete( IN NDIS_STATUS Status, IN NDIS_HANDLE ProtocolAfContext, IN NDIS_HANDLE NdisAfHandle ); NDIS_STATUS AtmSmRegisterSap( IN PATMSM_ADAPTER pAdapt ); VOID AtmSmRegisterSapComplete( IN NDIS_STATUS Status, IN NDIS_HANDLE ProtocolSapContext, IN PCO_SAP Sap, IN NDIS_HANDLE NdisSapHandle ); VOID AtmSmDeregisterSapComplete( IN NDIS_STATUS Status, IN NDIS_HANDLE ProtocolSapContext ); VOID AtmSmCloseAfComplete( IN NDIS_STATUS Status, IN NDIS_HANDLE ProtocolAfContext ); NDIS_STATUS AtmSmCreateVc( IN NDIS_HANDLE ProtocolAfContext, IN NDIS_HANDLE NdisVcHandle, OUT PNDIS_HANDLE ProtocolVcContext ); NDIS_STATUS AtmSmDeleteVc( IN NDIS_HANDLE ProtocolVcContext ); NDIS_STATUS AtmSmIncomingCall( IN NDIS_HANDLE ProtocolSapContext, IN NDIS_HANDLE ProtocolVcContext, IN OUT PCO_CALL_PARAMETERS CallParameters ); VOID AtmSmCallConnected( IN NDIS_HANDLE ProtocolVcContext ); VOID AtmSmMakeCallComplete( IN NDIS_STATUS Status, IN NDIS_HANDLE ProtocolVcContext, IN NDIS_HANDLE NdisPartyHandle OPTIONAL, IN PCO_CALL_PARAMETERS CallParameters ); VOID AtmSmIncomingCloseCall( IN NDIS_STATUS CloseStatus, IN NDIS_HANDLE ProtocolVcContext, IN PVOID CloseData OPTIONAL, IN UINT Size OPTIONAL ); VOID AtmSmCloseCallComplete( IN NDIS_STATUS Status, IN NDIS_HANDLE ProtocolVcContext, IN NDIS_HANDLE ProtocolPartyContext OPTIONAL ); VOID AtmSmAddPartyComplete( IN NDIS_STATUS Status, IN NDIS_HANDLE ProtocolPartyContext, IN NDIS_HANDLE NdisPartyHandle, IN PCO_CALL_PARAMETERS CallParameters ); VOID AtmSmDropPartyComplete( IN NDIS_STATUS Status, IN NDIS_HANDLE ProtocolPartyContext ); VOID AtmSmIncomingDropParty( IN NDIS_STATUS DropStatus, IN NDIS_HANDLE ProtocolPartyContext, IN PVOID CloseData OPTIONAL, IN UINT Size OPTIONAL ); VOID AtmSmIncomingCallQoSChange( IN NDIS_HANDLE ProtocolVcContext, IN PCO_CALL_PARAMETERS CallParameters ); // // Prototypes in misc.c // NDIS_STATUS AtmSmAllocVc( IN PATMSM_ADAPTER pAdapt, OUT PATMSM_VC *ppVc, IN ULONG VcType, IN NDIS_HANDLE NdisVcHandle ); BOOLEAN AtmSmReferenceVc( IN PATMSM_VC pVc ); ULONG AtmSmDereferenceVc( IN PATMSM_VC pVc ); VOID AtmSmDisconnectVc( IN PATMSM_VC pVc ); BOOLEAN DeleteMemberInfoFromVc( IN PATMSM_VC pVc, IN PATMSM_PMP_MEMBER pMemberToRemove ); VOID AtmSmDropMemberFromVc( IN PATMSM_VC pVc, IN PATMSM_PMP_MEMBER pMemberToDrop ); PCO_CALL_PARAMETERS AtmSmPrepareCallParameters( IN PATMSM_ADAPTER pAdapt, IN PHW_ADDR pHwAddr, IN BOOLEAN IsMakeCall, IN BOOLEAN IsMultipointVC ); NTSTATUS VerifyRecvOpenContext( PATMSM_ADAPTER pAdapt ); NTSTATUS VerifyConnectContext( PATMSM_VC pVc ); UINT CopyPacketToIrp( PIRP pIrp, PNDIS_PACKET pPkt ); VOID AtmSmRecvReturnTimerFunction ( IN PVOID SystemSpecific1, IN PVOID FunctionContext, IN PVOID SystemSpecific2, IN PVOID SystemSpecific3 ); VOID AtmSmConnectToPMPDestinations( IN PATMSM_VC pVc ); VOID AtmSmConnectPPVC( IN PATMSM_VC pVc ); // // Prototypes in request.c // NDIS_STATUS AtmSmCoRequest( IN NDIS_HANDLE ProtocolAfContext, IN NDIS_HANDLE ProtocolVcContext OPTIONAL, IN NDIS_HANDLE ProtocolPartyContext OPTIONAL, IN OUT PNDIS_REQUEST NdisRequest ); VOID AtmSmCoRequestComplete( IN NDIS_STATUS Status, IN NDIS_HANDLE ProtocolAfContext, IN NDIS_HANDLE ProtocolVcContext OPTIONAL, IN NDIS_HANDLE ProtocolPartyContext OPTIONAL, IN PNDIS_REQUEST pNdisRequest ); VOID AtmSmSendAdapterNdisRequest( IN PATMSM_ADAPTER pAdapt, IN NDIS_OID Oid, IN PVOID pBuffer, IN ULONG BufferLength ); VOID AtmSmRequestComplete( IN NDIS_HANDLE ProtocolBindingContext, IN PNDIS_REQUEST pRequest, IN NDIS_STATUS Status ); // // Prototypes in sendrecv.c // VOID AtmSmSendPacketOnVc( IN PATMSM_VC pVc, IN PNDIS_PACKET pPacket ); VOID AtmSmSendQueuedPacketsOnVc( IN PATMSM_VC pVc ); VOID AtmSmCoSendComplete( IN NDIS_STATUS Status, IN NDIS_HANDLE ProtocolVcContext, IN PNDIS_PACKET Packet ); UINT AtmSmCoReceivePacket( IN NDIS_HANDLE ProtocolBindingContext, IN NDIS_HANDLE ProtocolVcContext, IN PNDIS_PACKET Packet ); // // Prototypes in ioctl.c // NTSTATUS AtmSmDispatch( IN PDEVICE_OBJECT pDeviceObject, IN PIRP pIrp ); NTSTATUS AtmSmIoctlEnumerateAdapters( PIRP pIrp, PIO_STACK_LOCATION pIrpSp ); NTSTATUS AtmSmIoctlOpenForRecv( PIRP pIrp, PIO_STACK_LOCATION pIrpSp ); NTSTATUS AtmSmIoctlRecvData( PIRP pIrp, PIO_STACK_LOCATION pIrpSp ); NTSTATUS AtmSmIoctlCloseRecvHandle( PIRP pIrp, PIO_STACK_LOCATION pIrpSp ); NTSTATUS AtmSmIoctlConnectToDsts( PIRP pIrp, PIO_STACK_LOCATION pIrpSp ); NTSTATUS AtmSmIoctlSendToDsts( PIRP pIrp, PIO_STACK_LOCATION pIrpSp ); NTSTATUS AtmSmIoctlCloseSendHandle( PIRP pIrp, PIO_STACK_LOCATION pIrpSp ); #endif