Windows NT 4.0 source code leak
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.
 
 
 
 
 
 

304 lines
7.7 KiB

/*++
Copyright (c) 1994 Microsoft Corporation
Module Name:
local.h
Abstract:
This module contains various declarations for implementation
specific "stuff".
Author:
Manny Weiser (mannyw) 21-Oct-1992
Environment:
User Mode - Win32
Revision History:
Madan Appiah (madana) 21-Oct-1993
--*/
#ifndef _LOCAL_
#define _LOCAL_
//
// dhcp.c will #include this file with GLOBAL_DATA_ALLOCATE defined.
// That will cause each of these variables to be allocated.
//
#ifdef GLOBAL_DATA_ALLOCATE
#define EXTERN
#else
#define EXTERN extern
#endif
#define DAY_LONG_SLEEP 24*60*60 // in secs.
#define INVALID_INTERFACE_CONTEXT 0xFFFF
#define DHCP_NEW_IPADDRESS_EVENT_NAME L"DHCPNEWIPADDRESS"
//
// Registry keys and values we're interested in.
//
#define DHCP_SERVICES_KEY L"System\\CurrentControlSet\\Services"
#define DHCP_ADAPTERS_KEY L"System\\CurrentControlSet\\Services\\TCPIP\\Linkage"
#define DHCP_ADAPTERS_VALUE L"Bind"
#define DHCP_ADAPTERS_VALUE_TYPE REG_MULTI_SZ
#define DHCP_ADAPTERS_DEVICE_STRING L"\\Device\\"
#define DHCP_NETBT_DEVICE_STRING L"NetBT_"
#if DBG
#define DHCP_CLIENT_PARAMETER_KEY L"System\\CurrentControlSet\\Services\\Dhcp\\Parameters"
#define DHCP_DEBUG_FLAG_VALUE L"DebugFlag"
#define DHCP_DEBUG_FLAG_VALUE_TYPE REG_DWORD
#endif
#define DHCP_CLIENT_OPTION_KEY L"System\\CurrentControlSet\\Services\\Dhcp\\Parameters\\Options"
#define DHCP_ADAPTER_PARAMETERS_KEY L"\\Parameters\\TCPIP"
#define DHCP_DEFAULT_GATEWAY_PARAMETER L"DefaultGateway"
#define DHCP_DONT_ADD_DEFAULT_GATEWAY_FLAG L"DontAddDefaultGateway"
#define REGISTRY_CONNECT L'\\'
#define REGISTRY_CONNECT_STRING L"\\"
#define DHCP_CLIENT_OPTION_REG_LOCATION L"RegLocation"
#define DHCP_CLIENT_OPTION_REG_LOCATION_TYPE REG_SZ
#define DHCP_CLIENT_OPTION_REG_KEY_TYPE L"KeyType"
#define DHCP_CLIENT_OPTION_REG_KEY_TYPE_TYPE REG_DWORD
#define DHCP_ENABLE_STRING L"EnableDhcp"
#define DHCP_ENABLE_STRING_TYPE REG_DWORD
#define DHCP_IP_ADDRESS_STRING L"DhcpIPAddress"
#define DHCP_IP_ADDRESS_STRING_TYPE REG_SZ
#define DHCP_SUBNET_MASK_STRING L"DhcpSubnetMask"
#define DHCP_SUBNET_MASK_STRING_TYPE REG_SZ
#define DHCP_SERVER L"DhcpServer"
#define DHCP_SERVER_TYPE REG_SZ
#define DHCP_LEASE L"Lease"
#define DHCP_LEASE_TYPE REG_DWORD
#define DHCP_LEASE_OBTAINED_TIME L"LeaseObtainedTime"
#define DHCP_LEASE_OBTAINED_TIME_TYPE REG_DWORD
#define DHCP_LEASE_T1_TIME L"T1"
#define DHCP_LEASE_T1_TIME_TYPE REG_DWORD
#define DHCP_LEASE_T2_TIME L"T2"
#define DHCP_LEASE_T2_TIME_TYPE REG_DWORD
#define DHCP_LEASE_TERMINATED_TIME L"LeaseTerminatesTime"
#define DHCP_LEASE_TERMINATED_TIME_TYPE REG_DWORD
#define DHCP_IP_INTERFACE_CONTEXT L"IpInterfaceContext"
#define DHCP_IP_INTERFACE_CONTEXT_TYPE REG_DWORD
#define DHCP_IP_INTERFACE_CONTEXT_MAX L"IpInterfaceContextMax"
#define DHCP_IP_INTERFACE_CONTEXT_MAX_TYPE REG_DWORD
#define DHCP_CLIENT_IDENTIFIER_FORMAT L"DhcpClientIdentifierType"
#define DHCP_CLIENT_IDENTIFIER_FORMAT_TYPE REG_DWORD
#define DHCP_CLIENT_IDENTIFIER L"DhcpClientIdentifier"
#if DBG
#define DHCP_LEASE_OBTAINED_CTIME L"LeaseObtainedCTime"
#define DHCP_LEASE_OBTAINED_CTIME_TYPE REG_SZ
#define DHCP_LEASE_T1_CTIME L"T1CTime"
#define DHCP_LEASE_T1_CTIME_TYPE REG_SZ
#define DHCP_LEASE_T2_CTIME L"T2CTime"
#define DHCP_LEASE_T2_CTIME_TYPE REG_SZ
#define DHCP_LEASE_TERMINATED_CTIME L"LeaseTerminatesCTime"
#define DHCP_LEASE_TERMINATED_CTIME_TYPE REG_SZ
#endif
//
// windows version info.
//
#define HOST_COMMENT_LENGTH 128
#define WINDOWS_32S "Win32s on Windows 3.1"
#define WINDOWS_NT "Windows NT"
#define DHCP_NAMESERVER_BACKUP L"Backup"
//
// Adapter Key - replacement character.
//
#define OPTION_REPLACE_CHAR L'\?'
//
// registry access key.
//
#define DHCP_CLIENT_KEY_ACCESS (KEY_QUERY_VALUE | \
KEY_SET_VALUE | \
KEY_CREATE_SUB_KEY | \
KEY_ENUMERATE_SUB_KEYS)
//
// Dhcp registry class.
//
#define DHCP_CLASS L"DhcpClientClass"
#define DHCP_CLASS_SIZE sizeof(DHCP_CLASS)
//
// Option ID key length.
//
#define DHCP_OPTION_KEY_LEN 32
//
// The name of the DHCP service DLL
//
#define DHCP_SERVICE_DLL L"dhcpcsvc.dll"
//
// command values for SetDefaultGateway function.
#define DEFAULT_GATEWAY_ADD 0
#define DEFAULT_GATEWAY_DELETE 1
//
// A block NT specific context information, appended the the DHCP work
// context block.
//
typedef struct _LOCAL_CONTEXT_INFO {
DWORD IpInterfaceContext;
DWORD IpInterfaceInstance; // needed for BringUpInterface
LPWSTR AdapterName;
LPWSTR DeviceName;
LPWSTR NetBTDeviceName;
LPWSTR RegistryKey;
SOCKET Socket;
BOOL DefaultGatewaysSet;
} LOCAL_CONTEXT_INFO, *PLOCAL_CONTEXT_INFO;
//
// Other service specific options info struct.
//
typedef struct _SERVICE_SPECIFIC_DHCP_OPTION {
DHCP_OPTION_ID OptionId;
LPWSTR RegKey; // alloted memory.
LPWSTR ValueName; // embedded in the RegKey memory.
DWORD ValueType;
DWORD OptionLength;
LPBYTE RawOptionValue;
} SERVICE_SPECIFIC_DHCP_OPTION, *LPSERVICE_SPECIFIC_DHCP_OPTION;
//
// Key query Info.
//
typedef struct _DHCP_KEY_QUERY_INFO {
WCHAR Class[DHCP_CLASS_SIZE];
DWORD ClassSize;
DWORD NumSubKeys;
DWORD MaxSubKeyLen;
DWORD MaxClassLen;
DWORD NumValues;
DWORD MaxValueNameLen;
DWORD MaxValueLen;
DWORD SecurityDescriptorLen;
FILETIME LastWriteTime;
} DHCP_KEY_QUERY_INFO, *LPDHCP_KEY_QUERY_INFO;
//
// Global variables.
//
//
// client specific option list.
//
EXTERN HINSTANCE DhcpGlobalMessageFileHandle;
EXTERN DWORD DhcpGlobalOptionCount;
EXTERN LPSERVICE_SPECIFIC_DHCP_OPTION DhcpGlobalOptionInfo;
EXTERN LPBYTE DhcpGlobalOptionList;
//
// Service variables
//
EXTERN SERVICE_STATUS DhcpGlobalServiceStatus;
EXTERN SERVICE_STATUS_HANDLE DhcpGlobalServiceStatusHandle;
//
// To signal to stop the service.
//
EXTERN HANDLE DhcpGlobalTerminateEvent;
//
// multi home flag.
//
EXTERN BOOL DhcpGlobalMultiHomedHost;
//
// Client APIs over name pipe variables.
//
EXTERN HANDLE DhcpGlobalClientApiPipe;
EXTERN HANDLE DhcpGlobalClientApiPipeEvent;
EXTERN OVERLAPPED DhcpGlobalClientApiOverLapBuffer;
//
// Message Popup Thread handle.
//
EXTERN HANDLE DhcpGlobalMsgPopupThreadHandle;
EXTERN BOOL DhcpGlobalDisplayPopup;
EXTERN CRITICAL_SECTION DhcpGlobalPopupCritSect;
#define LOCK_POPUP() EnterCriticalSection(&DhcpGlobalPopupCritSect)
#define UNLOCK_POPUP() LeaveCriticalSection(&DhcpGlobalPopupCritSect)
//
// winsock variables.
//
EXTERN WSADATA DhcpGlobalWsaData;
EXTERN BOOL DhcpGlobalWinSockInitialized;
EXTERN BOOL DhcpGlobalGatewaysSet;
EXTERN BOOL DhcpGlobalIsService;
//
// a named event that notifies the ip address changes to
// external apps.
//
EXTERN HANDLE DhcpGlobalNewIpAddressNotifyEvent;
#endif // _LOCAL_