dhcpp.h
来自「wince下的源代码集合打包」· C头文件 代码 · 共 238 行
H
238 行
/*****************************************************************************//** Microsoft Windows **//** Copyright (c) 1997-2000 Microsoft Corporation. All rights reserved. **//*****************************************************************************//* dhcpp.h DESCRIPTION: private dhcp.h*/#ifndef _DHCPP_H_#define _DHCPP_H_//// System include files.//#include <windows.h>#include <types.h>// DEBUG ZONES#ifdef DEBUG#define ZONE_INIT DEBUGZONE(0)#define ZONE_TIMER DEBUGZONE(1)#define ZONE_AUTOIP DEBUGZONE(2)#define ZONE_UNUSED3 DEBUGZONE(3)#define ZONE_RECV DEBUGZONE(4)#define ZONE_SEND DEBUGZONE(5)#define ZONE_UNUSED6 DEBUGZONE(6)#define ZONE_UNUSED7 DEBUGZONE(7)#define ZONE_UNUSED8 DEBUGZONE(8)#define ZONE_BUFFER DEBUGZONE(9)#define ZONE_INTERFACE DEBUGZONE(10)#define ZONE_MISC DEBUGZONE(11)#define ZONE_ALLOC DEBUGZONE(12)#define ZONE_FUNCTION DEBUGZONE(13)#define ZONE_WARN DEBUGZONE(14)#define ZONE_ERROR DEBUGZONE(15)#endif#include <types.h>#include <winsock.h>#include <memory.h>#include "ptype.h"typedef unsigned char UCHAR, *PUCHAR;typedef unsigned short USHORT, ushort;typedef unsigned int uint;typedef void *PVOID;#define PUNICODE_STRING PWSTR#include <string.h>#include <stdarg.h>#include "ndis.h"#include <cxport.h>#include "tdi.h"#include <tdistat.h>#include <tdipeg.h>#include <ipexport.h>#include <tdiinfo.h>#include <tcpinfo.h>#include "type.h"#include "linklist.h"#include "wsock.h"#include "wstype.h"#include "helper.h" // should be in comm\inc#include "netbios.h"//// Project include files.//#undef BEGIN_INIT_DATA#undef END_INIT_DATA//// Local include files.////#include "const.h"typedef int STATUS;#ifndef SUCCESS#define SUCCESS 0#endif#ifndef net_short#define net_short(x) ((((x)&0xff) << 8) | (((x)&0xff00) >> 8))#define net_long(x) (((((ulong)(x))&0xffL)<<24) | \ ((((ulong)(x))&0xff00L)<<8) | \ ((((ulong)(x))&0xff0000L)>>8) | \ ((((ulong)(x))&0xff000000L)>>24))#endif // net_short#ifdef MEMTRACKING// Memory types for AddTrackedItem. Do a MAKELONG(AFDMEM_BUFFER,Info)// for first user DWORD.#define AFDMEM_BUFFER 0#define AFDMEM_SOCKET 1#define AFDMEM_QUEUE 2#define AFDMEM_CONN 3#define AFDMEM_ENDP 4#define AFDMEM_TRACK 5#define AFDMEM_ACCEPTC 6#define AFDMEM_STACK 7#define AFDMEM_STACKMAP 8#endif#define MAX_REG_STR 128#define MAX_DHCP_REQ_OPTIONS 32#define MAX_DOMAIN_NAME 51 // -1 b/c first byte is length#define DHCP_SERVER_PORT 67#define DHCP_CLIENT_PORT 68//// Registry configurable options (DhcpInfo->Flags)//#define DHCP_ENABLED_FL 0x0001#define USER_OPTIONS_FL 0x0002#define OPTION_CHANGE_FL 0x0004#define SAVE_OPTIONS_FL 0x0008#define NO_MAC_COMPARE_FL 0x0010#define SEND_OPTIONS_FL 0x0020#define AUTO_IP_ENABLED_FL 0x0040//// Operational state flags (DhcpInfo->SFlags)//#define DHCPSTATE_T1_EXPIRE 0x0001#define DHCPSTATE_T2_EXPIRE 0x0002#define DHCPSTATE_LEASE_EXPIRE 0x0004#define DHCPSTATE_SAW_DHCP_SRV 0x0008 // There is a DHCP server on the net, don't autoconfigure the IP address#define DHCPSTATE_AUTO_CFG_IP 0x0010 // IP address was auto configured.#define DHCPSTATE_RELEASE_REQUEST 0x0020 // User has requested the lease be let go.#define DHCPSTATE_DIALOGUE_BOX 0x0040#define DHCPSTATE_DHCPNTE_SET 0x0080 // we have set the dhcpnte...#define ETH_ADDR_LEN 6//// IP Autoconfiguration defaults//#define DHCP_IPAUTOCONFIGURATION_DEFAULT_SUBNET 0x0000FEA9 //"169.254.0.0"#define DHCP_IPAUTOCONFIGURATION_DEFAULT_MASK 0x0000FFFF //"255.255.0.0"#define DHPC_IPAUTOCONFIG_DEFAULT_INTERVAL 300 // 5 minutes in seconds// define the reserved range of autonet addresses..#define DHCP_RESERVED_AUTOCFG_SUBNET 0x00FFFEA9 //"169.254.255.0"#define DHCP_RESERVED_AUTOCFG_MASK 0x00FFFFFF //"255.255.255.0"#define ARP_RESPONSE_WAIT 5000 // ms to wait for ARP response indicating collision#define TEN_M (10000000) // 10 million (to convert to seconds in a FILETIME)#pragma warning(disable:4200) // nonstandard extensions warningtypedef struct DhcpInfo { struct DhcpInfo *pNext; LPSOCK_INFO Socket; // the socket handle void *Nte; unsigned NteContext; ushort Flags; // configuration settings (*_*_FL defines) uint SFlags; // operational state flags (DHCPSTATE_* defines) char PhysAddr[ETH_ADDR_LEN]; uint IPAddr; uint SubnetMask; uint Gateway; // IP addr of the default gateway uint DNS[2]; uint DhcpServer; uint WinsServer[2]; // IP addrs of primary & ssecondary WINS servers FILETIME LeaseObtained; // in 100 micro-secs int T1; // these are in sec's int T2; int Lease; // total length of lease uint cRetryDialogue; uint cMaxRetry; // times to retry INIT phase int InitDelay; // in ms DEFINE_LOCK_STRUCTURE(Lock) CTEFTimer Timer; uchar ReqOptions[MAX_DHCP_REQ_OPTIONS]; uchar *pSendOptions; int cSendOptions; char aDomainName[MAX_DOMAIN_NAME+1]; uint AutoIPAddr; uint AutoSubnet; uint AutoMask; uint AutoSeed; uint AutoInterval; // Interval at which to check for a DHCP server HANDLE ARPEvent; uint ARPResult; TCHAR Name[];} DhcpInfo;#pragma warning(default:4200) // nonstandard extensions warningtypedef int STATUS;// dhcp.cvoid mul64_32_64(const FILETIME *lpnum1, DWORD num2, LPFILETIME lpres);void add64_32_64(const FILETIME *lpnum1, DWORD num2, LPFILETIME lpres);void add64_64_64(const FILETIME *lpnum1, LPFILETIME lpnum2, LPFILETIME lpres);void sub64_64_64(const FILETIME *lpnum1, LPFILETIME lpnum2, LPFILETIME lpres);void div64_32_64(const FILETIME *lpdividend, DWORD divisor, LPFILETIME lpresult);unsigned int GetXid(char * pMacAddr);LPTSTR AddrToString(DWORD Addr, TCHAR *pString);STATUS DhcpInitSock(DhcpInfo *pInfo, int SrcIP);void TakeNetDown(DhcpInfo *pDhcp, BOOL fDiscardIPAddr, BOOL fRemoveAfdInterface);BOOL SetDHCPNTE(DhcpInfo * pDhcp);BOOL ClearDHCPNTE(DhcpInfo * pDhcp);STATUS RequestDHCPAddr(PTSTR pAdapter, void *Nte, unsigned Context, char *pAddr, unsigned cAddr);BOOL ReleaseDHCPAddr(PTSTR pAdapter);void DhcpWorkerThread();HKEY OpenDHCPKey(DhcpInfo * pDhcp);// autonet.cSTATUS AutoIP(DhcpInfo *pDhcp);#include "globals.h"#endif // dhcpp.h
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?