|
|
/*++
Copyright (c) 1998, Microsoft Corporation
Module Name:
rmnat.h
Abstract:
This module declares routines for the NAT module's interface to the IP router-manager. (See ROUTPROT.H for details).
Author:
Abolade Gbadegesin (aboladeg) 4-Mar-1998
Revision History:
--*/
#ifndef _NATHLP_RMNAT_H_
#define _NATHLP_RMNAT_H_
//
// GLOBAL DATA DECLARATIONS
//
extern COMPONENT_REFERENCE NatComponentReference; extern PIP_NAT_GLOBAL_INFO NatGlobalInfo; extern CRITICAL_SECTION NatGlobalInfoLock; extern HANDLE NatNotificationEvent; extern ULONG NatProtocolStopped; extern const MPR_ROUTING_CHARACTERISTICS NatRoutingCharacteristics; extern SUPPORT_FUNCTIONS NatSupportFunctions;
//
// MACRO DECLARATIONS
//
#define REFERENCE_NAT() \
REFERENCE_COMPONENT(&NatComponentReference)
#define REFERENCE_NAT_OR_RETURN(retcode) \
REFERENCE_COMPONENT_OR_RETURN(&NatComponentReference,retcode)
#define DEREFERENCE_NAT() \
DEREFERENCE_COMPONENT(&NatComponentReference)
#define DEREFERENCE_NAT_AND_RETURN(retcode) \
DEREFERENCE_COMPONENT_AND_RETURN(&NatComponentReference, retcode)
//
// FUNCTION DECLARATIONS
//
VOID NatCleanupModule( VOID );
BOOLEAN NatInitializeModule( VOID );
ULONG APIENTRY NatRmStartProtocol( HANDLE NotificationEvent, PSUPPORT_FUNCTIONS SupportFunctions, PVOID GlobalInfo, ULONG StructureVersion, ULONG StructureSize, ULONG StructureCount );
ULONG APIENTRY NatRmStartComplete( VOID );
ULONG APIENTRY NatRmStopProtocol( VOID );
ULONG APIENTRY NatRmAddInterface( PWCHAR Name, ULONG Index, NET_INTERFACE_TYPE Type, ULONG MediaType, USHORT AccessType, USHORT ConnectionType, PVOID InterfaceInfo, ULONG StructureVersion, ULONG StructureSize, ULONG StructureCount );
ULONG APIENTRY NatRmDeleteInterface( ULONG Index );
ULONG APIENTRY NatRmGetEventMessage( OUT ROUTING_PROTOCOL_EVENTS* Event, OUT MESSAGE* Result );
ULONG APIENTRY NatRmGetInterfaceInfo( ULONG Index, PVOID InterfaceInfo, IN OUT PULONG InterfaceInfoSize, IN OUT PULONG StructureVersion, IN OUT PULONG StructureSize, IN OUT PULONG StructureCount );
ULONG APIENTRY NatRmSetInterfaceInfo( ULONG Index, PVOID InterfaceInfo, ULONG StructureVersion, ULONG StructureSize, ULONG StructureCount );
ULONG APIENTRY NatRmInterfaceStatus( ULONG Index, BOOL InterfaceActive, ULONG StatusType, PVOID StatusInfo );
ULONG NatRmBindInterface( ULONG Index, PVOID BindingInfo );
ULONG NatRmUnbindInterface( ULONG Index );
ULONG NatRmEnableInterface( ULONG Index );
ULONG NatRmDisableInterface( ULONG Index );
ULONG APIENTRY NatRmGetGlobalInfo( PVOID GlobalInfo, IN OUT PULONG GlobalInfoSize, IN OUT PULONG StructureVersion, IN OUT PULONG StructureSize, IN OUT PULONG StructureCount );
ULONG APIENTRY NatRmSetGlobalInfo( PVOID GlobalInfo, ULONG StructureVersion, ULONG StructureSize, ULONG StructureCount );
ULONG APIENTRY NatRmMibCreate( ULONG InputDataSize, PVOID InputData );
ULONG APIENTRY NatRmMibDelete( ULONG InputDataSize, PVOID InputData );
ULONG APIENTRY NatRmMibGet( ULONG InputDataSize, PVOID InputData, OUT PULONG OutputDataSize, OUT PVOID OutputData );
ULONG APIENTRY NatRmMibSet( ULONG InputDataSize, PVOID InputData );
ULONG APIENTRY NatRmMibGetFirst( ULONG InputDataSize, PVOID InputData, OUT PULONG OutputDataSize, OUT PVOID OutputData );
ULONG APIENTRY NatRmMibGetNext( ULONG InputDataSize, PVOID InputData, OUT PULONG OutputDataSize, OUT PVOID OutputData );
ULONG APIENTRY NatRmConnectClient( ULONG Index, PVOID ClientAddress );
ULONG APIENTRY NatRmDisconnectClient( ULONG Index, PVOID ClientAddress );
#endif // _NATHLP_RMNAT_H_
|