/*++ Copyright (c) 2000 Microsoft Corporation Module Name: rmALG.h Abstract: This module declares routines for the ALG transparent proxy module's interface to the IP router-manager. (See ROUTPROT.H for details). Author: JPDup 10-Nov-2000 Revision History: Savasg 22-Aug-2001 Added RRAS Support --*/ #ifndef _NATHLP_RMALG_H_ #define _NATHLP_RMALG_H_ // // GLOBAL DATA DECLARATIONS // extern COMPONENT_REFERENCE AlgComponentReference; extern PIP_ALG_GLOBAL_INFO AlgGlobalInfo; extern CRITICAL_SECTION AlgGlobalInfoLock; extern HANDLE AlgNotificationEvent; extern HANDLE AlgTimerQueueHandle; extern HANDLE AlgPortReservationHandle; extern ULONG AlgProtocolStopped; extern const MPR_ROUTING_CHARACTERISTICS AlgRoutingCharacteristics; extern IP_ALG_STATISTICS AlgStatistics; extern SUPPORT_FUNCTIONS AlgSupportFunctions; extern HANDLE AlgTranslatorHandle; // // MACRO DECLARATIONS // #define REFERENCE_ALG() \ REFERENCE_COMPONENT(&AlgComponentReference) #define REFERENCE_ALG_OR_RETURN(retcode) \ REFERENCE_COMPONENT_OR_RETURN(&AlgComponentReference,retcode) #define DEREFERENCE_ALG() \ DEREFERENCE_COMPONENT(&AlgComponentReference) #define DEREFERENCE_ALG_AND_RETURN(retcode) \ DEREFERENCE_COMPONENT_AND_RETURN(&AlgComponentReference, retcode) #define ALG_PORT_RESERVATION_BLOCK_SIZE 32 // // FUNCTION DECLARATIONS // VOID AlgCleanupModule( VOID ); BOOLEAN AlgInitializeModule( VOID ); ULONG APIENTRY AlgRmStartProtocol( HANDLE NotificationEvent, PSUPPORT_FUNCTIONS SupportFunctions, PVOID GlobalInfo, ULONG StructureVersion, ULONG StructureSize, ULONG StructureCount ); ULONG APIENTRY AlgRmStartComplete( VOID ); ULONG APIENTRY AlgRmStopProtocol( VOID ); ULONG APIENTRY AlgRmAddInterface( PWCHAR Name, ULONG Index, NET_INTERFACE_TYPE Type, ULONG MediaType, USHORT AccessType, USHORT ConnectionType, PVOID InterfaceInfo, ULONG StructureVersion, ULONG StructureSize, ULONG StructureCount ); ULONG APIENTRY AlgRmDeleteInterface( ULONG Index ); ULONG APIENTRY AlgRmInterfaceStatus( ULONG Index, BOOL InterfaceActive, ULONG StatusType, PVOID StatusInfo ); ULONG APIENTRY AlgRmBindInterface( ULONG Index, PVOID BindingInfo ); ULONG APIENTRY AlgRmUnbindInterface( ULONG Index ); ULONG APIENTRY AlgRmEnableInterface( ULONG Index ); ULONG APIENTRY AlgRmDisableInterface( ULONG Index ); ULONG APIENTRY AlgRmGetGlobalInfo( PVOID GlobalInfo, IN OUT PULONG GlobalInfoSize, IN OUT PULONG StructureVersion, IN OUT PULONG StructureSize, IN OUT PULONG StructureCount ); ULONG APIENTRY AlgRmSetGlobalInfo( PVOID GlobalInfo, ULONG StructureVersion, ULONG StructureSize, ULONG StructureCount ); ULONG AlgRmPortMappingChanged( ULONG Index, UCHAR Protocol, USHORT Port ); // Added for RRAS compatibility ULONG APIENTRY AlgRmGetEventMessage( OUT ROUTING_PROTOCOL_EVENTS* Event, OUT MESSAGE* Result ); ULONG APIENTRY AlgRmGetInterfaceInfo( ULONG Index, PVOID InterfaceInfo, IN OUT PULONG InterfaceInfoSize, IN OUT PULONG StructureVersion, IN OUT PULONG StructureSize, IN OUT PULONG StructureCount ); ULONG APIENTRY AlgRmSetInterfaceInfo( ULONG Index, PVOID InterfaceInfo, ULONG StructureVersion, ULONG StructureSize, ULONG StructureCount ); ULONG APIENTRY AlgRmMibCreate( ULONG InputDataSize, PVOID InputData ); ULONG APIENTRY AlgRmMibDelete( ULONG InputDataSize, PVOID InputData ); ULONG APIENTRY AlgRmMibGet( ULONG InputDataSize, PVOID InputData, OUT PULONG OutputDataSize, OUT PVOID OutputData ); ULONG APIENTRY AlgRmMibSet( ULONG InputDataSize, PVOID InputData ); ULONG APIENTRY AlgRmMibGetFirst( ULONG InputDataSize, PVOID InputData, OUT PULONG OutputDataSize, OUT PVOID OutputData ); ULONG APIENTRY AlgRmMibGetNext( ULONG InputDataSize, PVOID InputData, OUT PULONG OutputDataSize, OUT PVOID OutputData ); #endif // _NATHLP_RMALG_H_