windows-nt/Source/XPSP1/NT/net/rras/ip/nat/entry.h
2020-09-26 16:20:57 +08:00

127 lines
2.3 KiB
C
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*++
Copyright (c) 1997 Microsoft Corporation
Module Name:
entry.h
Abstract:
This module contains declarations for the NAT's driver-entry.
Also included are declarations for data defined in 'entry.c'.
Author:
Abolade Gbadegesin (t-abolag) 13-July-1997
Revision History:
--*/
#ifndef _NAT_ENTRY_H_
#define _NAT_ENTRY_H_
//
// CONSTANT DECLARATIONS
//
#define DEFAULT_TCP_TIMEOUT (24 * 60 * 60)
#define DEFAULT_UDP_TIMEOUT 60
#define DEFAULT_START_PORT NTOHS(1025)
#define DEFAULT_END_PORT NTOHS(3000)
//
// GLOBAL DATA DECLARATIONS
//
extern BOOLEAN AllowInboundNonUnicastTraffic;
extern COMPONENT_REFERENCE ComponentReference;
extern WCHAR ExternalName[];
extern PDEVICE_OBJECT IpDeviceObject;
extern PFILE_OBJECT IpFileObject;
extern PDEVICE_OBJECT NatDeviceObject;
#if NAT_WMI
extern UNICODE_STRING NatRegistryPath;
#endif
extern USHORT ReservedPortsLowerRange;
extern USHORT ReservedPortsUpperRange;
extern PDEVICE_OBJECT TcpDeviceObject;
extern PFILE_OBJECT TcpFileObject;
extern HANDLE TcpDeviceHandle;
extern ULONG TcpTimeoutSeconds;
extern ULONG TraceClassesEnabled;
extern ULONG UdpTimeoutSeconds;
//
// MACRO DEFINITIONS
//
//
// Component-reference macros
//
#define REFERENCE_NAT() \
REFERENCE_COMPONENT(&ComponentReference)
#define REFERENCE_NAT_OR_RETURN(retcode) \
REFERENCE_COMPONENT_OR_RETURN(&ComponentReference,retcode)
#define DEREFERENCE_NAT() \
DEREFERENCE_COMPONENT(&ComponentReference)
#define DEREFERENCE_NAT_AND_RETURN(retcode) \
DEREFERENCE_COMPONENT_AND_RETURN(&ComponentReference, retcode)
//
// Macro for composing a LONG64 from two LONGs.
//
#define MAKE_LONG64(lo,hi) ((lo) | ((LONG64)(hi) << 32))
//
// Macros for handling network-order shorts and longs
//
#define ADDRESS_BYTES(a) \
((a) & 0x000000FF), (((a) & 0x0000FF00) >> 8), \
(((a) & 0x00FF0000) >> 16), (((a) & 0xFF000000) >> 24)
//
// Define a macro version of ntohs which can be applied to constants,
// and which can thus be computed at compile time.
//
#define NTOHS(p) ((((p) & 0xFF00) >> 8) | (((UCHAR)(p) << 8)))
//
// FUNCTION PROTOTYPES
//
NTSTATUS
NatInitiateTranslation(
VOID
);
VOID
NatTerminateTranslation(
VOID
);
extern
ULONG
tcpxsum (
IN ULONG Checksum,
IN PUCHAR Source,
IN ULONG Length
);
#endif // _NAT_ENTRY_H_