|
|
/*++
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(push) #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 #define IPNATHLP_CONTROL_UPDATE_DNS_DISABLE 132 #define IPNATHLP_CONTROL_UPDATE_DNS_ENABLE 133 #define IPNATHLP_CONTROL_UPDATE_POLICY 134
// // 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(pop)
#ifdef __cplusplus } // extern "C" #endif
#endif // _IPNATHLP_H_
|