402 lines
9.5 KiB
C
402 lines
9.5 KiB
C
|
/*++
|
|||
|
|
|||
|
Copyright (c) 1998, Microsoft Corporation
|
|||
|
|
|||
|
Module Name:
|
|||
|
|
|||
|
ipnathlp.h
|
|||
|
|
|||
|
Abstract:
|
|||
|
|
|||
|
This module contains declarations for user-mode home-networking components.
|
|||
|
These include the DNS proxy, the DHCP allocator, and the DirectPlay
|
|||
|
transparent proxy.
|
|||
|
|
|||
|
Author:
|
|||
|
|
|||
|
Abolade Gbadegesin (aboladeg) 2-Mar-1998
|
|||
|
|
|||
|
Revision History:
|
|||
|
|
|||
|
Abolade Gbadegesin (aboladeg) 24-May-1999
|
|||
|
|
|||
|
Added declarations for the DirectPlay transparent proxy.
|
|||
|
|
|||
|
--*/
|
|||
|
|
|||
|
#ifndef _IPNATHLP_H_
|
|||
|
#define _IPNATHLP_H_
|
|||
|
|
|||
|
#ifdef __cplusplus
|
|||
|
extern "C" {
|
|||
|
#endif
|
|||
|
#pragma warning(disable:4200)
|
|||
|
|
|||
|
//
|
|||
|
// COMMON DECLARATIONS
|
|||
|
//
|
|||
|
|
|||
|
#define IPNATHLP_LOGGING_NONE 0
|
|||
|
#define IPNATHLP_LOGGING_ERROR 1
|
|||
|
#define IPNATHLP_LOGGING_WARN 2
|
|||
|
#define IPNATHLP_LOGGING_INFO 3
|
|||
|
|
|||
|
#define IPNATHLP_INTERFACE_FLAG_DISABLED 0x00000001
|
|||
|
|
|||
|
#define IPNATHLP_CONTROL_UPDATE_SETTINGS 128
|
|||
|
#define IPNATHLP_CONTROL_UPDATE_CONNECTION 129
|
|||
|
#define IPNATHLP_CONTROL_UPDATE_AUTODIAL 130
|
|||
|
#define IPNATHLP_CONTROL_UPDATE_FWLOGGER 131
|
|||
|
|
|||
|
|
|||
|
//
|
|||
|
// NAT MIB-ACCESS DECLARATIONS (alphabetically)
|
|||
|
//
|
|||
|
|
|||
|
//
|
|||
|
// Structure: IP_NAT_MIB_QUERY
|
|||
|
//
|
|||
|
// This structure is passed to 'MibGet' to retrieve NAT information.
|
|||
|
//
|
|||
|
|
|||
|
typedef struct _IP_NAT_MIB_QUERY {
|
|||
|
ULONG Oid;
|
|||
|
union {
|
|||
|
ULONG Index[0];
|
|||
|
UCHAR Data[0];
|
|||
|
};
|
|||
|
} IP_NAT_MIB_QUERY, *PIP_NAT_MIB_QUERY;
|
|||
|
|
|||
|
#define IP_NAT_INTERFACE_STATISTICS_OID 0
|
|||
|
#define IP_NAT_INTERFACE_MAPPING_TABLE_OID 1
|
|||
|
#define IP_NAT_MAPPING_TABLE_OID 2
|
|||
|
|
|||
|
|
|||
|
//
|
|||
|
// DHCP ALLOCATOR DECLARATIONS (alphabetically)
|
|||
|
//
|
|||
|
|
|||
|
//
|
|||
|
// Structure: IP_AUTO_DHCP_GLOBAL_INFO
|
|||
|
//
|
|||
|
// This structure holds global configuration for the DHCP allocator.
|
|||
|
// The configuration consists of
|
|||
|
// (a) the network and mask from which addresses are to be allocated
|
|||
|
// (b) an optional list of addresses to be excluded from allocation.
|
|||
|
//
|
|||
|
|
|||
|
typedef struct _IP_AUTO_DHCP_GLOBAL_INFO {
|
|||
|
ULONG LoggingLevel;
|
|||
|
ULONG Flags;
|
|||
|
ULONG LeaseTime;
|
|||
|
ULONG ScopeNetwork;
|
|||
|
ULONG ScopeMask;
|
|||
|
ULONG ExclusionCount;
|
|||
|
ULONG ExclusionArray[0];
|
|||
|
} IP_AUTO_DHCP_GLOBAL_INFO, *PIP_AUTO_DHCP_GLOBAL_INFO;
|
|||
|
|
|||
|
//
|
|||
|
// Structure: IP_AUTO_DHCP_INTERFACE_INFO
|
|||
|
//
|
|||
|
// This structure holds per-interface configuration for the DHCP allocator.
|
|||
|
// The configuration currently only allows the allocator to be disabled
|
|||
|
// on the given interface. Since the allocator runs in promiscuous-interface
|
|||
|
// mode, it is enabled by default on all interfaces. Thus, the only interfaces
|
|||
|
// which require any configuration are those on which the allocator is to be
|
|||
|
// disabled.
|
|||
|
//
|
|||
|
|
|||
|
typedef struct _IP_AUTO_DHCP_INTERFACE_INFO {
|
|||
|
ULONG Flags;
|
|||
|
} IP_AUTO_DHCP_INTERFACE_INFO, *PIP_AUTO_DHCP_INTERFACE_INFO;
|
|||
|
|
|||
|
#define IP_AUTO_DHCP_INTERFACE_FLAG_DISABLED \
|
|||
|
IPNATHLP_INTERFACE_FLAG_DISABLED
|
|||
|
|
|||
|
//
|
|||
|
// Structure: IP_AUTO_DHCP_MIB_QUERY
|
|||
|
//
|
|||
|
// This structure is passed to 'MibGet' to retrieve DHCP allocator information.
|
|||
|
//
|
|||
|
|
|||
|
typedef struct _IP_AUTO_DHCP_MIB_QUERY {
|
|||
|
ULONG Oid;
|
|||
|
union {
|
|||
|
ULONG Index[0];
|
|||
|
UCHAR Data[0];
|
|||
|
};
|
|||
|
} IP_AUTO_DHCP_MIB_QUERY, *PIP_AUTO_DHCP_MIB_QUERY;
|
|||
|
|
|||
|
//
|
|||
|
// Structure : IP_AUTO_DHCP_STATISTICS
|
|||
|
//
|
|||
|
// This structure defines the statistics kept by the DHCP allocator,
|
|||
|
// and accessible via 'MibGet'.
|
|||
|
//
|
|||
|
|
|||
|
typedef struct _IP_AUTO_DHCP_STATISTICS {
|
|||
|
ULONG MessagesIgnored;
|
|||
|
ULONG BootpOffersSent;
|
|||
|
ULONG DiscoversReceived;
|
|||
|
ULONG InformsReceived;
|
|||
|
ULONG OffersSent;
|
|||
|
ULONG RequestsReceived;
|
|||
|
ULONG AcksSent;
|
|||
|
ULONG NaksSent;
|
|||
|
ULONG DeclinesReceived;
|
|||
|
ULONG ReleasesReceived;
|
|||
|
} IP_AUTO_DHCP_STATISTICS, *PIP_AUTO_DHCP_STATISTICS;
|
|||
|
|
|||
|
#define IP_AUTO_DHCP_STATISTICS_OID 0
|
|||
|
|
|||
|
|
|||
|
//
|
|||
|
// DNS PROXY DECLARATIONS (alphabetically)
|
|||
|
//
|
|||
|
|
|||
|
//
|
|||
|
// Structure: IP_DNS_PROXY_GLOBAL_INFO
|
|||
|
//
|
|||
|
// This structure holds global configuration for the DNS proxy.
|
|||
|
//
|
|||
|
|
|||
|
typedef struct _IP_DNS_PROXY_GLOBAL_INFO {
|
|||
|
ULONG LoggingLevel;
|
|||
|
ULONG Flags;
|
|||
|
ULONG TimeoutSeconds;
|
|||
|
} IP_DNS_PROXY_GLOBAL_INFO, *PIP_DNS_PROXY_GLOBAL_INFO;
|
|||
|
|
|||
|
#define IP_DNS_PROXY_FLAG_ENABLE_DNS 0x00000001
|
|||
|
#define IP_DNS_PROXY_FLAG_ENABLE_WINS 0x00000002
|
|||
|
|
|||
|
//
|
|||
|
// Structure: IP_DNS_PROXY_INTERFACE_INFO
|
|||
|
//
|
|||
|
// This structure holds per-interface configuration for the DNS proxy.
|
|||
|
// The configuration currently only allows the proxy to be disabled
|
|||
|
// on a given interface. The proxy runs in promiscuous-interface mode
|
|||
|
// so that all interfaces are added to it and it is enabled on all of them
|
|||
|
// by default. Hence, the configuration need only be present for those
|
|||
|
// interfaces on which the proxy is not to be run.
|
|||
|
//
|
|||
|
|
|||
|
typedef struct _IP_DNS_PROXY_INTERFACE_INFO {
|
|||
|
ULONG Flags;
|
|||
|
} IP_DNS_PROXY_INTERFACE_INFO, *PIP_DNS_PROXY_INTERFACE_INFO;
|
|||
|
|
|||
|
#define IP_DNS_PROXY_INTERFACE_FLAG_DISABLED \
|
|||
|
IPNATHLP_INTERFACE_FLAG_DISABLED
|
|||
|
#define IP_DNS_PROXY_INTERFACE_FLAG_DEFAULT 0x00000002
|
|||
|
|
|||
|
//
|
|||
|
// Structure: IP_DNS_PROXY_MIB_QUERY
|
|||
|
//
|
|||
|
// This structure is passed to 'MibGet' to retrieve DNS proxy information.
|
|||
|
//
|
|||
|
|
|||
|
typedef struct _IP_DNS_PROXY_MIB_QUERY {
|
|||
|
ULONG Oid;
|
|||
|
union {
|
|||
|
ULONG Index[0];
|
|||
|
UCHAR Data[0];
|
|||
|
};
|
|||
|
} IP_DNS_PROXY_MIB_QUERY, *PIP_DNS_PROXY_MIB_QUERY;
|
|||
|
|
|||
|
//
|
|||
|
// Structure: IP_DNS_PROXY_STATISTICS
|
|||
|
//
|
|||
|
|
|||
|
typedef struct _IP_DNS_PROXY_STATISTICS {
|
|||
|
ULONG MessagesIgnored;
|
|||
|
ULONG QueriesReceived;
|
|||
|
ULONG ResponsesReceived;
|
|||
|
ULONG QueriesSent;
|
|||
|
ULONG ResponsesSent;
|
|||
|
} IP_DNS_PROXY_STATISTICS, *PIP_DNS_PROXY_STATISTICS;
|
|||
|
|
|||
|
#define IP_DNS_PROXY_STATISTICS_OID 0
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
//
|
|||
|
// Structure: IP_FTP_GLOBAL_INFO
|
|||
|
//
|
|||
|
// This structure holds global configuration for the DirectPlay transparent
|
|||
|
// proxy.
|
|||
|
//
|
|||
|
|
|||
|
typedef struct IP_FTP_GLOBAL_INFO {
|
|||
|
ULONG LoggingLevel;
|
|||
|
ULONG Flags;
|
|||
|
} IP_FTP_GLOBAL_INFO, *PIP_FTP_GLOBAL_INFO;
|
|||
|
|
|||
|
//
|
|||
|
// Structure: IP_FTP_INTERFACE_INFO
|
|||
|
//
|
|||
|
// This structure holds per-interface configuration for the transparent proxy.
|
|||
|
// The configuration currently only allows the proxy to be disabled
|
|||
|
// on a given interface. The proxy runs in promiscuous-interface mode
|
|||
|
// so that all interfaces are added to it and it is enabled on all of them
|
|||
|
// by default. Hence, the configuration need only be present for those
|
|||
|
// interfaces on which the proxy is not to be run.
|
|||
|
//
|
|||
|
|
|||
|
typedef struct _IP_FTP_INTERFACE_INFO {
|
|||
|
ULONG Flags;
|
|||
|
} IP_FTP_INTERFACE_INFO, *PIP_FTP_INTERFACE_INFO;
|
|||
|
|
|||
|
#define IP_FTP_INTERFACE_FLAG_DISABLED IPNATHLP_INTERFACE_FLAG_DISABLED
|
|||
|
|
|||
|
//
|
|||
|
// Structure: IP_FTP_MIB_QUERY
|
|||
|
//
|
|||
|
// This structure is passed to 'MibGet' to retrieve transparent proxy
|
|||
|
// information.
|
|||
|
//
|
|||
|
|
|||
|
typedef struct _IP_FTP_MIB_QUERY {
|
|||
|
ULONG Oid;
|
|||
|
union {
|
|||
|
ULONG Index[0];
|
|||
|
UCHAR Data[0];
|
|||
|
};
|
|||
|
} IP_FTP_MIB_QUERY, *PIP_FTP_MIB_QUERY;
|
|||
|
|
|||
|
//
|
|||
|
// Structure: IP_FTP_STATISTICS
|
|||
|
//
|
|||
|
|
|||
|
typedef struct _IP_FTP_STATISTICS {
|
|||
|
ULONG ConnectionsAccepted;
|
|||
|
ULONG ConnectionsDropped;
|
|||
|
ULONG ConnectionsActive;
|
|||
|
ULONG PlayersActive;
|
|||
|
} IP_FTP_STATISTICS, *PIP_FTP_STATISTICS;
|
|||
|
|
|||
|
#define IP_FTP_STATISTICS_OID 0
|
|||
|
|
|||
|
|
|||
|
//
|
|||
|
// DIRECTPLAY TRANSPARENT PROXY DECLARATIONS (alphabetically)
|
|||
|
//
|
|||
|
|
|||
|
//
|
|||
|
// Structure: IP_H323_GLOBAL_INFO
|
|||
|
//
|
|||
|
// This structure holds global configuration for the H.323 transparent
|
|||
|
// proxy.
|
|||
|
//
|
|||
|
|
|||
|
typedef struct IP_H323_GLOBAL_INFO {
|
|||
|
ULONG LoggingLevel;
|
|||
|
ULONG Flags;
|
|||
|
} IP_H323_GLOBAL_INFO, *PIP_H323_GLOBAL_INFO;
|
|||
|
|
|||
|
//
|
|||
|
// Structure: IP_H323_INTERFACE_INFO
|
|||
|
//
|
|||
|
// This structure holds per-interface configuration for the transparent proxy.
|
|||
|
// The configuration currently only allows the proxy to be disabled
|
|||
|
// on a given interface. The proxy runs in promiscuous-interface mode
|
|||
|
// so that all interfaces are added to it and it is enabled on all of them
|
|||
|
// by default. Hence, the configuration need only be present for those
|
|||
|
// interfaces on which the proxy is not to be run.
|
|||
|
//
|
|||
|
|
|||
|
typedef struct _IP_H323_INTERFACE_INFO {
|
|||
|
ULONG Flags;
|
|||
|
} IP_H323_INTERFACE_INFO, *PIP_H323_INTERFACE_INFO;
|
|||
|
|
|||
|
#define IP_H323_INTERFACE_FLAG_DISABLED IPNATHLP_INTERFACE_FLAG_DISABLED
|
|||
|
|
|||
|
//
|
|||
|
// Structure: IP_H323_MIB_QUERY
|
|||
|
//
|
|||
|
// This structure is passed to 'MibGet' to retrieve transparent proxy
|
|||
|
// information.
|
|||
|
//
|
|||
|
|
|||
|
typedef struct _IP_H323_MIB_QUERY {
|
|||
|
ULONG Oid;
|
|||
|
union {
|
|||
|
ULONG Index[0];
|
|||
|
UCHAR Data[0];
|
|||
|
};
|
|||
|
} IP_H323_MIB_QUERY, *PIP_H323_MIB_QUERY;
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
//
|
|||
|
// Application Level Gateway
|
|||
|
//
|
|||
|
|
|||
|
|
|||
|
//
|
|||
|
// Structure: IP_ALG_GLOBAL_INFO
|
|||
|
//
|
|||
|
// This structure holds global configuration for the ALG transparent proxy.
|
|||
|
//
|
|||
|
|
|||
|
typedef struct IP_ALG_GLOBAL_INFO {
|
|||
|
ULONG LoggingLevel;
|
|||
|
ULONG Flags;
|
|||
|
} IP_ALG_GLOBAL_INFO, *PIP_ALG_GLOBAL_INFO;
|
|||
|
|
|||
|
//
|
|||
|
// Structure: IP_ALG_INTERFACE_INFO
|
|||
|
//
|
|||
|
// This structure holds per-interface configuration for the transparent proxy.
|
|||
|
// The configuration currently only allows the proxy to be disabled
|
|||
|
// on a given interface. The proxy runs in promiscuous-interface mode
|
|||
|
// so that all interfaces are added to it and it is enabled on all of them
|
|||
|
// by default. Hence, the configuration need only be present for those
|
|||
|
// interfaces on which the proxy is not to be run.
|
|||
|
//
|
|||
|
|
|||
|
typedef struct _IP_ALG_INTERFACE_INFO {
|
|||
|
ULONG Flags;
|
|||
|
} IP_ALG_INTERFACE_INFO, *PIP_ALG_INTERFACE_INFO;
|
|||
|
|
|||
|
#define IP_ALG_INTERFACE_FLAG_DISABLED IPNATHLP_INTERFACE_FLAG_DISABLED
|
|||
|
|
|||
|
//
|
|||
|
// Structure: IP_ALG_MIB_QUERY
|
|||
|
//
|
|||
|
// This structure is passed to 'MibGet' to retrieve transparent proxy
|
|||
|
// information.
|
|||
|
//
|
|||
|
|
|||
|
typedef struct _IP_ALG_MIB_QUERY {
|
|||
|
ULONG Oid;
|
|||
|
union {
|
|||
|
ULONG Index[0];
|
|||
|
UCHAR Data[0];
|
|||
|
};
|
|||
|
} IP_ALG_MIB_QUERY, *PIP_ALG_MIB_QUERY;
|
|||
|
|
|||
|
//
|
|||
|
// Structure: IP_ALG_STATISTICS
|
|||
|
//
|
|||
|
|
|||
|
typedef struct _IP_ALG_STATISTICS {
|
|||
|
ULONG ConnectionsAccepted;
|
|||
|
ULONG ConnectionsDropped;
|
|||
|
ULONG ConnectionsActive;
|
|||
|
ULONG PlayersActive;
|
|||
|
} IP_ALG_STATISTICS, *PIP_ALG_STATISTICS;
|
|||
|
|
|||
|
#define IP_ALG_STATISTICS_OID 0
|
|||
|
|
|||
|
|
|||
|
#pragma warning(default:4200)
|
|||
|
|
|||
|
#ifdef __cplusplus
|
|||
|
} // extern "C"
|
|||
|
#endif
|
|||
|
|
|||
|
#endif // _IPNATHLP_H_
|