Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
Copyright (c) 1998, Microsoft Corporation
Module Name:
natconn.h
Abstract:
This module contains declarations for the NAT's RAS connection management. Outgoing RAS client connections may be shared by associating them with a router-interface of type ROUTER_IF_TYPE_HOME_ROUTER. When such a connection is established by the user, we detect the connection and create a corresponding NAT interface with the kernel-mode translator.
Author:
Abolade Gbadegesin (aboladeg) 2-May-1998
Revision History:
--*/
#ifndef _NATHLP_NATCONN_H_
#define _NATHLP_NATCONN_H_
extern HANDLE NatConnectionNotifyEvent; extern HANDLE NatConfigurationChangedEvent;
//
// Structure : NAT_UDP_BROADCAST_MAPPING
//
typedef struct _NAT_UDP_BROADCAST_MAPPING { LIST_ENTRY Link; USHORT usPublicPort; PVOID pvCookie; } NAT_UDP_BROADCAST_MAPPING, *PNAT_UDP_BROADCAST_MAPPING;
//
// Structure: NAT_PORT_MAPPING_ENTRY
//
typedef struct _NAT_PORT_MAPPING_ENTRY { LIST_ENTRY Link; UCHAR ucProtocol; USHORT usPublicPort; ULONG ulPrivateAddress; USHORT usPrivatePort;
BOOLEAN fNameActive; BOOLEAN fUdpBroadcastMapping; PVOID pvBroadcastCookie;
GUID *pProtocolGuid; IHNetPortMappingProtocol *pProtocol; IHNetPortMappingBinding *pBinding; } NAT_PORT_MAPPING_ENTRY, *PNAT_PORT_MAPPING_ENTRY;
//
// Structure: NAT_CONNECTION_ENTRY
//
typedef struct _NAT_CONNECTION_INFO { LIST_ENTRY Link;
//
// Information needed to configure kernel driver
//
PIP_NAT_INTERFACE_INFO pInterfaceInfo; PIP_ADAPTER_BINDING_INFO pBindingInfo; NAT_INTERFACE Interface; ULONG AdapterIndex;
//
// HNetCfg interfaces for the connection
//
IHNetConnection *pHNetConnection; IHNetFirewalledConnection *pHNetFwConnection; IHNetIcsPublicConnection *pHNetIcsPublicConnection;
//
// Cached information describing the connection. Storing
// this allows us to reduce roundtrips to the store.
//
HNET_CONN_PROPERTIES HNetProperties; GUID Guid; LPWSTR wszPhonebookPath;
//
// Stored port mapping information
//
LIST_ENTRY PortMappingList; // The length of this list is the sum of the counts
ULONG PortMappingCount; ULONG UdpBroadcastPortMappingCount; } NAT_CONNECTION_ENTRY, *PNAT_CONNECTION_ENTRY;
PNAT_CONNECTION_ENTRY NatFindConnectionEntry( GUID *pGuid );
PNAT_PORT_MAPPING_ENTRY NatFindPortMappingEntry( PNAT_CONNECTION_ENTRY pConnection, GUID *pGuid );
VOID NatFreePortMappingEntry( PNAT_PORT_MAPPING_ENTRY pEntry );
PCHAR NatQuerySharedConnectionDomainName( VOID );
ULONG NatStartConnectionManagement( VOID );
VOID NatStopConnectionManagement( VOID );
BOOLEAN NatUnbindAllConnections( VOID );
HRESULT NatpGetTargetAddressForPortMappingEntry( BOOLEAN fPublic, BOOLEAN fNameActive, ULONG BindingAddress, IHNetPortMappingBinding *pBinding, OUT ULONG *pPrivateAddress );
#endif // _NATHLP_NATCONN_H_
|