/*++ Copyright (c) 2000 Microsoft Corporation Module Name: rmftp.h Abstract: This module declares routines for the FTP transparent proxy module's interface to the IP router-manager. (See ROUTPROT.H for details). Author: Qiang Wang (qiangw) 10-Apr-2000 Revision History: --*/ #ifndef _NATHLP_RMFTP_H_ #define _NATHLP_RMFTP_H_ // // GLOBAL DATA DECLARATIONS // extern COMPONENT_REFERENCE FtpComponentReference; extern PIP_FTP_GLOBAL_INFO FtpGlobalInfo; extern CRITICAL_SECTION FtpGlobalInfoLock; extern HANDLE FtpNotificationEvent; extern HANDLE FtpTimerQueueHandle; extern HANDLE FtpPortReservationHandle; extern ULONG FtpProtocolStopped; extern const MPR_ROUTING_CHARACTERISTICS FtpRoutingCharacteristics; extern IP_FTP_STATISTICS FtpStatistics; extern SUPPORT_FUNCTIONS FtpSupportFunctions; extern HANDLE FtpTranslatorHandle; // // MACRO DECLARATIONS // #define REFERENCE_FTP() \ REFERENCE_COMPONENT(&FtpComponentReference) #define REFERENCE_FTP_OR_RETURN(retcode) \ REFERENCE_COMPONENT_OR_RETURN(&FtpComponentReference,retcode) #define DEREFERENCE_FTP() \ DEREFERENCE_COMPONENT(&FtpComponentReference) #define DEREFERENCE_FTP_AND_RETURN(retcode) \ DEREFERENCE_COMPONENT_AND_RETURN(&FtpComponentReference, retcode) #define FTP_PORT_RESERVATION_BLOCK_SIZE 32 // // FUNCTION DECLARATIONS // VOID FtpCleanupModule( VOID ); BOOLEAN FtpInitializeModule( VOID ); ULONG APIENTRY FtpRmStartProtocol( HANDLE NotificationEvent, PSUPPORT_FUNCTIONS SupportFunctions, PVOID GlobalInfo, ULONG StructureVersion, ULONG StructureSize, ULONG StructureCount ); ULONG APIENTRY FtpRmStartComplete( VOID ); ULONG APIENTRY FtpRmStopProtocol( VOID ); ULONG APIENTRY FtpRmAddInterface( PWCHAR Name, ULONG Index, NET_INTERFACE_TYPE Type, ULONG MediaType, USHORT AccessType, USHORT ConnectionType, PVOID InterfaceInfo, ULONG StructureVersion, ULONG StructureSize, ULONG StructureCount ); ULONG APIENTRY FtpRmDeleteInterface( ULONG Index ); ULONG APIENTRY FtpRmGetEventMessage( OUT ROUTING_PROTOCOL_EVENTS* Event, OUT MESSAGE* Result ); ULONG APIENTRY FtpRmGetInterfaceInfo( ULONG Index, PVOID InterfaceInfo, IN OUT PULONG InterfaceInfoSize, IN OUT PULONG StructureVersion, IN OUT PULONG StructureSize, IN OUT PULONG StructureCount ); ULONG APIENTRY FtpRmSetInterfaceInfo( ULONG Index, PVOID InterfaceInfo, ULONG StructureVersion, ULONG StructureSize, ULONG StructureCount ); ULONG APIENTRY FtpRmInterfaceStatus( ULONG Index, BOOL InterfaceActive, ULONG StatusType, PVOID StatusInfo ); ULONG APIENTRY FtpRmBindInterface( ULONG Index, PVOID BindingInfo ); ULONG APIENTRY FtpRmUnbindInterface( ULONG Index ); ULONG APIENTRY FtpRmEnableInterface( ULONG Index ); ULONG APIENTRY FtpRmDisableInterface( ULONG Index ); ULONG APIENTRY FtpRmGetGlobalInfo( PVOID GlobalInfo, IN OUT PULONG GlobalInfoSize, IN OUT PULONG StructureVersion, IN OUT PULONG StructureSize, IN OUT PULONG StructureCount ); ULONG APIENTRY FtpRmSetGlobalInfo( PVOID GlobalInfo, ULONG StructureVersion, ULONG StructureSize, ULONG StructureCount ); ULONG APIENTRY FtpRmMibCreate( ULONG InputDataSize, PVOID InputData ); ULONG APIENTRY FtpRmMibDelete( ULONG InputDataSize, PVOID InputData ); ULONG APIENTRY FtpRmMibGet( ULONG InputDataSize, PVOID InputData, OUT PULONG OutputDataSize, OUT PVOID OutputData ); ULONG APIENTRY FtpRmMibSet( ULONG InputDataSize, PVOID InputData ); ULONG APIENTRY FtpRmMibGetFirst( ULONG InputDataSize, PVOID InputData, OUT PULONG OutputDataSize, OUT PVOID OutputData ); ULONG APIENTRY FtpRmMibGetNext( ULONG InputDataSize, PVOID InputData, OUT PULONG OutputDataSize, OUT PVOID OutputData ); #endif // _NATHLP_RMFTP_H_