windows-nt/Source/XPSP1/NT/net/rras/ndis/ndproxy/proxy.h
2020-09-26 16:20:57 +08:00

1115 lines
20 KiB
C

/*++
Copyright (c) 1995-1996 Microsoft Corporation
Module Name:
Proxy.h
Abstract:
Fuction prototypes and globals
Author:
Tony Bell
Revision History:
Who When What
-------- -------- ----------------------------------------------
TonyBe 03/04/99 Created
--*/
#ifndef _PROXY__H
#define _PROXY__H
#include "pxtapi.h"
#include "pxdefs.h"
#include "pxtypes.h"
#include "ndpif.h"
//
// Global data
//
extern NPAGED_LOOKASIDE_LIST ProviderEventLookaside;
extern NPAGED_LOOKASIDE_LIST VcLookaside;
extern TAPI_LINE_TABLE LineTable;
extern VC_TABLE VcTable;
extern TAPI_TSP_CB TspCB;
extern PX_DEVICE_EXTENSION *DeviceExtension;
extern TSP_EVENT_LIST TspEventList;
//
// Functions from pxntinit.c
//
NTSTATUS
DriverEntry(
IN PDRIVER_OBJECT DriverObject,
IN PUNICODE_STRING RegistryPath
);
VOID
PxCancelSetQuery(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
//
// Functions from pxinit.c
//
BOOLEAN
InitNDISProxy(
VOID
);
VOID
GetRegistryParameters(
IN PUNICODE_STRING RegistryPath
);
NDIS_STATUS
GetConfigDword(
NDIS_HANDLE Handle,
PWCHAR ParameterName,
PULONG Destination,
ULONG MinValue,
ULONG MaxValue
);
//
// From pxcm.c
//
NDIS_STATUS
PxCmCreateVc(
IN NDIS_HANDLE ProtocolAfContext,
IN NDIS_HANDLE NdisVcHandle,
OUT PNDIS_HANDLE pProtocolVcContext
);
NDIS_STATUS
PxCmDeleteVc(
IN NDIS_HANDLE ProtocolVcContext
);
NDIS_STATUS
PxCmOpenAf(
IN NDIS_HANDLE CallMgrBindingContext,
IN PCO_ADDRESS_FAMILY pAddressFamily,
IN NDIS_HANDLE NdisAfHandle,
OUT PNDIS_HANDLE pCallMgrAfContext
);
NDIS_STATUS
PxCmCloseAf(
IN NDIS_HANDLE CallMgrAfContext
);
NDIS_STATUS
PxCmRegisterSap(
IN NDIS_HANDLE CallMgrAfContext,
IN PCO_SAP pCoSap,
IN NDIS_HANDLE NdisSapHandle,
OUT PNDIS_HANDLE pCallMgrSapContext
);
NDIS_STATUS
PxCmDeRegisterSap(
IN NDIS_HANDLE CallMgrSapContext
);
NDIS_STATUS
PxCmMakeCall(
IN NDIS_HANDLE CallMgrVcContext,
IN OUT PCO_CALL_PARAMETERS pCallParameters,
IN NDIS_HANDLE NdisPartyHandle OPTIONAL,
OUT PNDIS_HANDLE pCallMgrPartyContext OPTIONAL
);
NDIS_STATUS
PxCmCloseCall(
IN NDIS_HANDLE CallMgrVcContext,
IN NDIS_HANDLE CallMgrPartyContext OPTIONAL,
IN PVOID Buffer OPTIONAL,
IN UINT Size OPTIONAL
);
VOID
PxCmIncomingCallComplete(
IN NDIS_STATUS Status,
IN NDIS_HANDLE CallMgrVcContext,
IN PCO_CALL_PARAMETERS pCallParameters
);
NDIS_STATUS
PxCmAddParty(
IN NDIS_HANDLE CallMgrVcContext,
IN OUT PCO_CALL_PARAMETERS pCallParameters,
IN NDIS_HANDLE NdisPartyHandle,
OUT PNDIS_HANDLE pCallMgrPartyContext
);
NDIS_STATUS
PxCmDropParty(
IN NDIS_HANDLE CallMgrPartyContext,
IN PVOID Buffer OPTIONAL,
IN UINT Size OPTIONAL
);
VOID
PxCmActivateVcComplete(
IN NDIS_STATUS Status,
IN NDIS_HANDLE CallMgrVcContext,
IN PCO_CALL_PARAMETERS pCallParameters
);
VOID
PxCmDeActivateVcComplete(
IN NDIS_STATUS Status,
IN NDIS_HANDLE CallMgrVcContext
);
NDIS_STATUS
PxCmModifyCallQos(
IN NDIS_HANDLE CallMgrVcContext,
IN PCO_CALL_PARAMETERS pCallParameters
);
NDIS_STATUS
PxCmRequest(
IN NDIS_HANDLE ProtocolAfContext,
IN NDIS_HANDLE ProtocolVcContext OPTIONAL,
IN NDIS_HANDLE ProtocolPartyContext OPTIONAL,
IN OUT PNDIS_REQUEST NdisRequest
);
VOID
PxCmRequestComplete(
IN NDIS_STATUS Status,
IN NDIS_HANDLE ProtocolAfContext,
IN NDIS_HANDLE ProtocolVcContext,
IN NDIS_HANDLE ProtocolPartyContext,
IN PNDIS_REQUEST NdisRequest
);
NDIS_STATUS
PxCmMakeCall(
IN NDIS_HANDLE CallMgrVcContext,
IN OUT PCO_CALL_PARAMETERS pCallParameters,
IN NDIS_HANDLE NdisPartyHandle OPTIONAL,
OUT PNDIS_HANDLE pCallMgrPartyContext OPTIONAL
);
//
// From pxutils.c
//
BOOLEAN
PxIsAdapterAlreadyBound(
PNDIS_STRING pDeviceName
);
PPX_ADAPTER
PxAllocateAdapter(
ULONG ulAdditionalLength
);
VOID
PxFreeAdapter(
PPX_ADAPTER pAdapter
);
PPX_CM_AF
PxAllocateCmAf(
IN PCO_ADDRESS_FAMILY pFamily
);
VOID
PxFreeCmAf(
PPX_CM_AF pCmAf
);
PPX_CL_AF
PxAllocateClAf(
IN PCO_ADDRESS_FAMILY pFamily,
IN PPX_ADAPTER pAdapter
);
VOID
PxFreeClAf(
PPX_CL_AF pAfBlock
);
PPX_CM_SAP
PxAllocateCmSap(
PCO_SAP Sap
);
VOID
PxFreeCmSap(
PPX_CM_SAP pCmSap
);
VOID
PxFreeClSap(
PPX_CL_SAP pClSap
);
PPX_VC
PxAllocateVc(
IN PPX_CL_AF pClAf
);
VOID
PxFreeVc(
PPX_VC pVc
);
#if 0
NDIS_STATUS
GenericGetNdisCallParams(
IN PPX_VC pProxyVc,
IN ULONG ulLineID,
IN ULONG ulAddressID,
IN ULONG ulFlags,
IN PNDIS_TAPI_MAKE_CALL TapiBuffer,
OUT PCO_CALL_PARAMETERS *pNdisCallParameters
);
NDIS_STATUS
GenericGetTapiCallParams(
IN PPX_VC pProxyVc,
IN PCO_CALL_PARAMETERS pCallParams
);
PPX_CL_SAP
GenericTranslateTapiSap(
IN PPX_CL_AF pClAf,
IN PPX_TAPI_LINE TapiLine
);
VOID
GenericFreeNdisSap(
IN PPX_CL_AF pAfBlock,
IN PCO_SAP pCoSap
);
#endif
NDIS_STATUS
PxAfXyzTranslateTapiCallParams(
IN PPX_VC pProxyVc,
IN ULONG ulLineID,
IN ULONG ulAddressID,
IN ULONG ulFlags,
IN PNDIS_TAPI_MAKE_CALL pTapiParams,
OUT PCO_CALL_PARAMETERS * ppNdisCallParams
);
NDIS_STATUS
PxAfXyzTranslateNdisCallParams(
IN PPX_VC pProxyVc,
IN PCO_CALL_PARAMETERS pNdisCallParams
);
PPX_CL_SAP
PxAfXyzTranslateTapiSap(
IN PPX_CL_AF pClAf,
IN PPX_TAPI_LINE TapiLine
);
NDIS_STATUS
PxAfTapiTranslateTapiCallParams(
IN PPX_VC pProxyVc,
IN ULONG ulLineID,
IN ULONG ulAddressID,
IN ULONG ulFlags,
IN PNDIS_TAPI_MAKE_CALL pTapiParams,
OUT PCO_CALL_PARAMETERS * ppNdisCallParams
);
ULONG
PxCopyLineCallParams(
IN LINE_CALL_PARAMS *pSrcLineCallParams,
OUT LINE_CALL_PARAMS *pDstLineCallParams
);
NDIS_STATUS
PxAfTapiTranslateNdisCallParams(
IN PPX_VC pProxyVc,
IN PCO_CALL_PARAMETERS pNdisCallParams
);
PPX_CL_SAP
PxAfTapiTranslateTapiSap(
IN PPX_CL_AF pClAf,
IN PPX_TAPI_LINE TapiLine
);
VOID
PxAfTapiFreeNdisSap(
IN PPX_CL_AF pClAf,
IN PCO_SAP pCoSap
);
PCO_CALL_PARAMETERS
PxCopyCallParameters(
IN PCO_CALL_PARAMETERS pCallParameters
);
VOID
PxStartIncomingCallTimeout(
IN PPX_VC pProxyVc
);
VOID
PxStopIncomingCallTimeout(
IN PPX_VC pProxyVc
);
VOID
PxIncomingCallTimeout(
IN PVOID SystemSpecific1,
IN PVOID FunctionContext,
IN PVOID SystemSpecific2,
IN PVOID SystemSpecific3
);
ULONG
PxMapNdisStatusToTapiDisconnectMode(
IN NDIS_STATUS NdisStatus,
IN BOOLEAN bMakeCallStatus
);
NTSTATUS
IntegerToChar (
IN ULONG Value,
IN LONG OutputLength,
OUT PSZ String
);
NTSTATUS
IntegerToWChar (
IN ULONG Value,
IN LONG OutputLength,
OUT PWCHAR String
);
BOOLEAN
PxAfAndSapFromDevClass(
PPX_ADAPTER pAdapter,
LPCWSTR DevClass,
PPX_CM_AF *pCmAf,
PPX_CM_SAP *pCmSap
);
VOID
GetAllDevClasses(
PPX_ADAPTER pAdapter,
LPCWSTR DevClass,
PULONG DevClassSize
);
VOID
PxCloseCallWithCm(
PPX_VC pVc
);
NDIS_STATUS
PxCloseCallWithCl(
PPX_VC pVc
);
VOID
DoDerefVcWork(
PPX_VC pVc
);
VOID
DoDerefClAfWork(
PPX_CL_AF pClAf
);
VOID
DoDerefCmAfWork(
PPX_CM_AF pCmAf
);
//
// Functions from pxco.c
//
VOID
PxCoBindAdapter(
OUT PNDIS_STATUS pStatus,
IN NDIS_HANDLE BindContext,
IN PNDIS_STRING DeviceName,
IN PVOID SystemSpecific1,
IN PVOID SystemSpecific2
);
VOID
PxCoOpenAdaperComplete(
NDIS_HANDLE BindingContext,
NDIS_STATUS Status,
NDIS_STATUS OpenErrorStatus
);
VOID
PxCoUnbindAdapter(
OUT PNDIS_STATUS pStatus,
IN NDIS_HANDLE ProtocolBindContext,
IN PNDIS_HANDLE UnbindContext
);
VOID
PxCoCloseAdaperComplete(
NDIS_HANDLE BindingContext,
NDIS_STATUS Status
);
VOID
PxCoRequestComplete(
IN NDIS_HANDLE ProtocolBindingContext,
IN PNDIS_REQUEST NdisRequest,
IN NDIS_STATUS Status
);
VOID
PxCoNotifyAfRegistration(
IN NDIS_HANDLE BindingContext,
IN PCO_ADDRESS_FAMILY pFamily
);
VOID
PxCoUnloadProtocol(
VOID
);
NDIS_STATUS
PxCoPnPEvent(
IN NDIS_HANDLE ProtocolBindingContext,
IN PNET_PNP_EVENT pNetPnPEvent
);
NDIS_STATUS
PxPnPSetPower(
IN PPX_ADAPTER pAdapter,
IN PNET_PNP_EVENT pNetPnPEvent
);
NDIS_STATUS
PxPnPQueryPower(
IN PPX_ADAPTER pAdapter,
IN PNET_PNP_EVENT pNetPnPEvent
);
NDIS_STATUS
PxPnPQueryRemove(
IN PPX_ADAPTER pAdapter,
IN PNET_PNP_EVENT pNetPnPEvent
);
NDIS_STATUS
PxPnPCancelRemove(
IN PPX_ADAPTER pAdapter,
IN PNET_PNP_EVENT pNetPnPEvent
);
NDIS_STATUS
PxPnPReconfigure(
IN PPX_ADAPTER pAdapter OPTIONAL,
IN PNET_PNP_EVENT pNetPnPEvent
);
VOID
PxCoSendComplete(
IN NDIS_HANDLE ProtocolBindingContext,
IN PNDIS_PACKET Packet,
IN NDIS_STATUS Status
);
VOID
PxCoTransferDataComplete(
IN NDIS_HANDLE ProtocolBindingContext,
IN PNDIS_PACKET Packet,
IN NDIS_STATUS Status,
IN UINT BytesTransferred
);
VOID
PxCoResetComplete(
IN NDIS_HANDLE ProtocolBindingContext,
IN NDIS_STATUS Status
);
VOID
PxCoStatusComplete(
IN NDIS_HANDLE ProtocolBindingContext
);
VOID
PxCoReceiveComplete(
IN NDIS_HANDLE ProtocolBindingContext
);
VOID
PxCoStatus(
IN NDIS_HANDLE ProtocolBindingContext,
IN NDIS_HANDLE ProtocolVcContext OPTIONAL,
IN NDIS_STATUS GeneralStatus,
IN PVOID StatusBuffer,
IN UINT StatusBufferSize
);
UINT
PxCoReceivePacket(
IN NDIS_HANDLE ProtocolBindingContext,
IN NDIS_HANDLE ProtocolVcContext,
IN PNDIS_PACKET pNdisPacket
);
VOID
PxTerminateDigitDetection(
IN PPX_VC pVc,
IN PNDISTAPI_REQUEST pNdisTapiRequest,
IN ULONG ulReason
);
VOID
PxDigitTimerRoutine(
IN PVOID SystemSpecific1,
IN PVOID FunctionContext,
IN PVOID SystemSpecific2,
IN PVOID SystemSpecific3
);
NDIS_STATUS
PxStopDigitReporting(
PPX_VC pVc
);
VOID
PxHandleReceivedDigit(
IN PPX_VC pVc,
IN PVOID Buffer,
IN UINT BufferSize
);
VOID
PxHandleWanLinkParams(
IN PPX_VC pVc,
IN PVOID Buffer,
IN UINT BufferSize
);
//
// Functions from pxcl.c
//
NDIS_STATUS
PxClCreateVc(
IN NDIS_HANDLE ProtocolAfContext,
IN NDIS_HANDLE NdisVcHandle,
OUT PNDIS_HANDLE ProtocolVcContext
);
NDIS_STATUS
PxClDeleteVc(
IN NDIS_HANDLE ProtocolVcContext
);
NDIS_STATUS
PxClRequest(
IN NDIS_HANDLE ProtocolAfContext,
IN NDIS_HANDLE ProtocolVcContext OPTIONAL,
IN NDIS_HANDLE ProtocolPartyContext OPTIONAL,
IN OUT PNDIS_REQUEST NdisRequest
);
VOID
PxClRequestComplete(
IN NDIS_STATUS Status,
IN NDIS_HANDLE ProtocolAfContext,
IN NDIS_HANDLE ProtocolVcContext,
IN NDIS_HANDLE ProtocolPartyContext,
IN PNDIS_REQUEST NdisRequest
);
VOID
PxClOpenAfComplete(
IN NDIS_STATUS Status,
IN NDIS_HANDLE ProtocolAfContext,
IN NDIS_HANDLE NdisAfHandle
);
VOID
PxClCloseAfComplete(
IN NDIS_STATUS status,
IN NDIS_HANDLE ProtocolAfContext
);
VOID
PxClRegisterSapComplete(
IN NDIS_STATUS Status,
IN NDIS_HANDLE ProtocolSapContext,
IN PCO_SAP Sap,
IN NDIS_HANDLE NdisSapHandle
);
VOID
PxClDeregisterSapComplete(
IN NDIS_STATUS status,
IN NDIS_HANDLE ProtocolSapContext
);
VOID
PxClMakeCallComplete(
IN NDIS_STATUS Status,
IN NDIS_HANDLE ProtocolVcContext,
IN NDIS_HANDLE NdisPartyHandle OPTIONAL,
IN PCO_CALL_PARAMETERS CallParameters
);
VOID
PxClModifyCallQosComplete(
IN NDIS_STATUS status,
IN NDIS_HANDLE ProtocolVcContext,
IN PCO_CALL_PARAMETERS CallParameters
);
VOID
PxClCloseCallComplete(
IN NDIS_STATUS status,
IN NDIS_HANDLE ProtocolVcContext,
IN NDIS_HANDLE ProtocolPartyContext OPTIONAL
);
VOID
PxClAddPartyComplete(
IN NDIS_STATUS status,
IN NDIS_HANDLE ProtocolPartyContext,
IN NDIS_HANDLE NdisPartyHandle,
IN PCO_CALL_PARAMETERS CallParameters
);
VOID
PxClDropPartyComplete(
IN NDIS_STATUS status,
IN NDIS_HANDLE ProtocolPartyContext
);
NDIS_STATUS
PxClIncomingCall(
IN NDIS_HANDLE ProtocolSapContext,
IN NDIS_HANDLE ProtocolVcContext,
IN OUT PCO_CALL_PARAMETERS pCallParams
);
VOID
PxClIncomingCallQosChange(
IN NDIS_HANDLE ProtocolVcContext,
IN PCO_CALL_PARAMETERS CallParameters
);
VOID
PxClIncomingCloseCall(
IN NDIS_STATUS closeStatus,
IN NDIS_HANDLE ProtocolVcContext,
IN PVOID CloseData OPTIONAL,
IN UINT Size OPTIONAL
);
VOID
PxClIncomingDropParty(
IN NDIS_STATUS DropStatus,
IN NDIS_HANDLE ProtocolPartyContext,
IN PVOID CloseData OPTIONAL,
IN UINT Size OPTIONAL
);
VOID
PxClCallConnected(
IN NDIS_HANDLE ProtocolVcContext
);
//
// Functions from pxtapi.c
//
ULONG
GetLineEvents(
PCHAR EventBuffer,
ULONG BufferSize
);
NDIS_STATUS
PxTapiPlaceHolder(
IN PNDISTAPI_REQUEST pndisTapiRequest
);
NDIS_STATUS
PxTapiMakeCall(
IN PNDISTAPI_REQUEST pndisTapiRequest
);
NDIS_STATUS
PxTapiGetDevCaps(
IN PNDISTAPI_REQUEST pndisTapiRequest
);
NDIS_STATUS
PxTapiAccept(
IN PNDISTAPI_REQUEST pndisTapiRequest
);
NDIS_STATUS
PxTapiAnswer(
IN PNDISTAPI_REQUEST pndisTapiRequest
);
NDIS_STATUS
PxTapiLineGetID (
IN PNDISTAPI_REQUEST pndisTapiRequest
);
NDIS_STATUS
PxTapiClose(
IN PNDISTAPI_REQUEST pndisTapiRequest
);
NDIS_STATUS
PxTapiCloseCall(
IN PNDISTAPI_REQUEST pndisTapiRequest
);
NDIS_STATUS
PxTapiConditionalMediaDetection(
IN PNDISTAPI_REQUEST pndisTapiRequest
);
NDIS_STATUS
PxTapiConfigDialog(
IN PNDISTAPI_REQUEST pndisTapiRequest
);
NDIS_STATUS
PxTapiDevSpecific(
IN PNDISTAPI_REQUEST pndisTapiRequest
);
NDIS_STATUS
PxTapiDial(
IN PNDISTAPI_REQUEST pndisTapiRequest
);
NDIS_STATUS
PxTapiDrop(
IN PNDISTAPI_REQUEST pndisTapiRequest
);
NDIS_STATUS
PxTapiGetAddressCaps(
IN PNDISTAPI_REQUEST pndisTapiRequest
);
NDIS_STATUS
PxTapiGetAddressID(
IN PNDISTAPI_REQUEST pndisTapiRequest
);
NDIS_STATUS
PxTapiGetAddressStatus(
IN PNDISTAPI_REQUEST pndisTapiRequest
);
NDIS_STATUS
PxTapiGetCallInfo(
IN PNDISTAPI_REQUEST pndisTapiRequest
);
NDIS_STATUS
PxTapiGetCallStatus(
IN PNDISTAPI_REQUEST pndisTapiRequest
);
NDIS_STATUS
PxTapiGetDevConfig(
IN PNDISTAPI_REQUEST pndisTapiRequest
);
NDIS_STATUS
PxTapiGetExtensionID(
IN PNDISTAPI_REQUEST pndisTapiRequest
);
NDIS_STATUS
PxTapiGetID(
IN PNDISTAPI_REQUEST pndisTapiRequest
);
NDIS_STATUS
PxTapiGetLineDevStatus(
IN PNDISTAPI_REQUEST pndisTapiRequest
);
NDIS_STATUS
PxTapiNegotiateExtVersion(
IN PNDISTAPI_REQUEST pndisTapiRequest
);
NDIS_STATUS
PxTapiSendUserUserInfo(
IN PNDISTAPI_REQUEST pndisTapiRequest
);
NDIS_STATUS
PxTapiSetAppSpecific(
IN PNDISTAPI_REQUEST pndisTapiRequest
);
NDIS_STATUS
PxTapiSetCallParams(
IN PNDISTAPI_REQUEST pndisTapiRequest
);
NDIS_STATUS
PxTapiSetDefaultMediaDetection(
IN PNDISTAPI_REQUEST pndisTapiRequest
);
NDIS_STATUS
PxTapiSetDevConfig(
IN PNDISTAPI_REQUEST pndisTapiRequest
);
NDIS_STATUS
PxTapiSetMediaMode(
IN PNDISTAPI_REQUEST pndisTapiRequest
);
NDIS_STATUS
PxTapiSetStatusMessages (
IN PNDISTAPI_REQUEST pndisTapiRequest
);
NDIS_STATUS
PxTapiGetCallAddressID(
IN PNDISTAPI_REQUEST pndisTapiRequest
);
NDIS_STATUS
PxTapiOpen(
IN PNDISTAPI_REQUEST pndisTapiRequest
);
NDIS_STATUS
PxTapiProviderInit(
IN PNDISTAPI_REQUEST pndisTapiRequest
);
NDIS_STATUS
PxTapiProviderShutdown(
IN PNDISTAPI_REQUEST pndisTapiRequest
);
NDIS_STATUS
PxTapiSecureCall(
IN PNDISTAPI_REQUEST pndisTapiRequest
);
NDIS_STATUS
PxTapiSelectExtVersion(
IN PNDISTAPI_REQUEST pndisTapiRequest
);
NDIS_STATUS
PxTapiGatherDigits(
IN PNDISTAPI_REQUEST pndisTapiRequest
);
NDIS_STATUS
PxTapiMonitorDigits(
IN PNDISTAPI_REQUEST pndisTapiRequest
);
VOID
PxTapiCompleteDropIrps(
IN PPX_VC pVc,
IN ULONG Status
);
VOID
PxTapiCompleteAllIrps(
IN PPX_VC pVc,
IN ULONG Status
);
VOID
PxIndicateStatus(
IN PVOID StatusBuffer,
IN UINT StatusBufferSize
);
NDIS_STATUS
AllocateTapiResources(
IN PPX_ADAPTER ClAdapter,
IN PPX_CL_AF pClAf
);
PPX_TAPI_PROVIDER
AllocateTapiProvider(
IN PPX_ADAPTER ClAdapter,
IN PPX_CL_AF pClAf
);
VOID
MarkProviderOnline(
PPX_TAPI_PROVIDER TapiProvider
);
VOID
MarkProviderOffline(
PPX_TAPI_PROVIDER TapiProvider
);
VOID
MarkProviderConnected(
PPX_TAPI_PROVIDER TapiProvider
);
VOID
MarkProviderDisconnected(
PPX_TAPI_PROVIDER TapiProvider
);
VOID
ClearSapWithTapiLine(
PPX_CL_SAP pClSap
);
VOID
FreeTapiProvider(
PPX_TAPI_PROVIDER TapiProvider
);
PPX_TAPI_LINE
AllocateTapiLine(
IN PPX_TAPI_PROVIDER TapiProvider,
IN ULONG LineID
);
VOID
FreeTapiLine(
IN PPX_TAPI_LINE TapiLine
);
PPX_TAPI_ADDR
AllocateTapiAddr(
IN PPX_TAPI_PROVIDER TapiProvider,
IN PPX_TAPI_LINE TapiLine,
IN ULONG AddrID
);
VOID
FreeTapiAddr(
IN PPX_TAPI_ADDR TapiAddr
);
NDIS_STATUS
AllocateTapiCallInfo(
PPX_VC pVC,
LINE_CALL_INFO UNALIGNED *LineCallInfo
);
BOOLEAN
InsertVcInTable(
PPX_VC pVc
);
VOID
RemoveVcFromTable(
PPX_VC pVc
);
BOOLEAN
IsTapiLineValid(
ULONG hdLine,
PPX_TAPI_LINE *TapiLine
);
BOOLEAN
IsTapiDeviceValid(
ULONG ulDeviceID,
PPX_TAPI_LINE *TapiLine
);
BOOLEAN
IsVcValid(
ULONG_PTR CallId,
PPX_VC *pVc
);
VOID
GetVcFromCtx(
NDIS_HANDLE VcCtx,
PPX_VC *pVc
);
BOOLEAN
IsAddressValid(
PPX_TAPI_LINE TapiLine,
ULONG AddressId,
PPX_TAPI_ADDR *TapiAddr
);
BOOLEAN
GetLineFromCmLineID(
PPX_TAPI_PROVIDER TapiProvider,
ULONG CmLineID,
PPX_TAPI_LINE *TapiLine
);
PPX_TAPI_ADDR
GetAvailAddrFromProvider(
PPX_TAPI_PROVIDER TapiProvider
);
PPX_TAPI_ADDR
GetAvailAddrFromLine(
PPX_TAPI_LINE TapiLine
);
BOOLEAN
GetAvailLineFromProvider(
PPX_TAPI_PROVIDER TapiProvider,
PPX_TAPI_LINE *TapiLine,
PPX_TAPI_ADDR *TapiAddr
);
BOOLEAN
InsertLineInTable(
PPX_TAPI_LINE TapiLine
);
VOID
RemoveTapiLineFromTable(
PPX_TAPI_LINE TapiLine
);
NDIS_STATUS
PxVcCleanup(
PPX_VC pVc,
ULONG DropPending
);
#endif // _PROXY__H