Home | History | Annotate | Download | only in include
      1 /**
      2  * This file has no copyright assigned and is placed in the Public Domain.
      3  * This file is part of the mingw-w64 runtime package.
      4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
      5  */
      6 #ifndef _DHCPCSDK_
      7 #define _DHCPCSDK_
      8 
      9 #ifdef __cplusplus
     10 extern "C" {
     11 #endif
     12 
     13 #ifndef DHCP_OPTIONS_DEFINED
     14 #define DHCP_OPTIONS_DEFINED
     15 
     16 #define OPTION_PAD 0
     17 #define OPTION_SUBNET_MASK 1
     18 #define OPTION_TIME_OFFSET 2
     19 #define OPTION_ROUTER_ADDRESS 3
     20 #define OPTION_TIME_SERVERS 4
     21 #define OPTION_IEN116_NAME_SERVERS 5
     22 #define OPTION_DOMAIN_NAME_SERVERS 6
     23 #define OPTION_LOG_SERVERS 7
     24 #define OPTION_COOKIE_SERVERS 8
     25 #define OPTION_LPR_SERVERS 9
     26 #define OPTION_IMPRESS_SERVERS 10
     27 #define OPTION_RLP_SERVERS 11
     28 #define OPTION_HOST_NAME 12
     29 #define OPTION_BOOT_FILE_SIZE 13
     30 #define OPTION_MERIT_DUMP_FILE 14
     31 #define OPTION_DOMAIN_NAME 15
     32 #define OPTION_SWAP_SERVER 16
     33 #define OPTION_ROOT_DISK 17
     34 #define OPTION_EXTENSIONS_PATH 18
     35 
     36 #define OPTION_BE_A_ROUTER 19
     37 #define OPTION_NON_LOCAL_SOURCE_ROUTING 20
     38 #define OPTION_POLICY_FILTER_FOR_NLSR 21
     39 #define OPTION_MAX_REASSEMBLY_SIZE 22
     40 #define OPTION_DEFAULT_TTL 23
     41 #define OPTION_PMTU_AGING_TIMEOUT 24
     42 #define OPTION_PMTU_PLATEAU_TABLE 25
     43 
     44 #define OPTION_MTU 26
     45 #define OPTION_ALL_SUBNETS_MTU 27
     46 #define OPTION_BROADCAST_ADDRESS 28
     47 #define OPTION_PERFORM_MASK_DISCOVERY 29
     48 #define OPTION_BE_A_MASK_SUPPLIER 30
     49 #define OPTION_PERFORM_ROUTER_DISCOVERY 31
     50 #define OPTION_ROUTER_SOLICITATION_ADDR 32
     51 #define OPTION_STATIC_ROUTES 33
     52 #define OPTION_TRAILERS 34
     53 #define OPTION_ARP_CACHE_TIMEOUT 35
     54 #define OPTION_ETHERNET_ENCAPSULATION 36
     55 
     56 #define OPTION_TTL 37
     57 #define OPTION_KEEP_ALIVE_INTERVAL 38
     58 #define OPTION_KEEP_ALIVE_DATA_SIZE 39
     59 
     60 #define OPTION_NETWORK_INFO_SERVICE_DOM 40
     61 #define OPTION_NETWORK_INFO_SERVERS 41
     62 #define OPTION_NETWORK_TIME_SERVERS 42
     63 
     64 #define OPTION_VENDOR_SPEC_INFO 43
     65 
     66 #define OPTION_NETBIOS_NAME_SERVER 44
     67 #define OPTION_NETBIOS_DATAGRAM_SERVER 45
     68 #define OPTION_NETBIOS_NODE_TYPE 46
     69 #define OPTION_NETBIOS_SCOPE_OPTION 47
     70 
     71 #define OPTION_XWINDOW_FONT_SERVER 48
     72 #define OPTION_XWINDOW_DISPLAY_MANAGER 49
     73 
     74 #define OPTION_REQUESTED_ADDRESS 50
     75 #define OPTION_LEASE_TIME 51
     76 #define OPTION_OK_TO_OVERLAY 52
     77 #define OPTION_MESSAGE_TYPE 53
     78 #define OPTION_SERVER_IDENTIFIER 54
     79 #define OPTION_PARAMETER_REQUEST_LIST 55
     80 #define OPTION_MESSAGE 56
     81 #define OPTION_MESSAGE_LENGTH 57
     82 #define OPTION_RENEWAL_TIME 58
     83 #define OPTION_REBIND_TIME 59
     84 #define OPTION_CLIENT_CLASS_INFO 60
     85 #define OPTION_CLIENT_ID 61
     86 
     87 #define OPTION_TFTP_SERVER_NAME 66
     88 #define OPTION_BOOTFILE_NAME 67
     89 
     90 #define OPTION_END 255
     91 #endif
     92 
     93 #ifndef DHCPAPI_PARAMS_DEFINED
     94 #define DHCPAPI_PARAMS_DEFINED
     95   typedef struct _DHCPAPI_PARAMS {
     96     ULONG Flags;
     97     ULONG OptionId;
     98     WINBOOL IsVendor;
     99     LPBYTE Data;
    100     DWORD nBytesData;
    101   } DHCPAPI_PARAMS,*PDHCPAPI_PARAMS,*LPDHCPAPI_PARAMS;
    102 #endif
    103 
    104   typedef struct _DHCPAPI_PARAMS DHCPCAPI_PARAMS,*PDHCPCAPI_PARAMS,*LPDHCPCAPI_PARAMS;
    105 
    106   typedef struct _DHCPCAPI_PARAMS_ARARAY {
    107     ULONG nParams;
    108     LPDHCPCAPI_PARAMS Params;
    109   } DHCPCAPI_PARAMS_ARRAY,*PDHCPCAPI_PARAMS_ARRAY,*LPDHCPCAPI_PARAMS_ARRAY;
    110 
    111   typedef struct _DHCPCAPI_CLASSID {
    112     ULONG Flags;
    113     LPBYTE Data;
    114     ULONG nBytesData;
    115   } DHCPCAPI_CLASSID,*PDHCPCAPI_CLASSID,*LPDHCPCAPI_CLASSID;
    116 
    117 #define DHCPCAPI_REQUEST_PERSISTENT 0x01
    118 #define DHCPCAPI_REQUEST_SYNCHRONOUS 0x02
    119 #define DHCPCAPI_REQUEST_ASYNCHRONOUS 0x04
    120 #define DHCPCAPI_REQUEST_CANCEL 0x08
    121 #define DHCPCAPI_REQUEST_MASK 0x0F
    122 
    123   DWORD WINAPI DhcpCApiInitialize(LPDWORD Version);
    124   VOID WINAPI DhcpCApiCleanup(VOID);
    125   DWORD WINAPI DhcpRequestParams(DWORD Flags,LPVOID Reserved,LPWSTR AdapterName,LPDHCPCAPI_CLASSID ClassId,DHCPCAPI_PARAMS_ARRAY SendParams,DHCPCAPI_PARAMS_ARRAY RecdParams,LPBYTE Buffer,LPDWORD pSize,LPWSTR RequestIdStr);
    126   DWORD WINAPI DhcpUndoRequestParams(DWORD Flags,LPVOID Reserved,LPWSTR AdapterName,LPWSTR RequestIdStr);
    127 
    128 #define DHCPCAPI_REGISTER_HANDLE_EVENT 0x01
    129   DWORD WINAPI DhcpRegisterParamChange(DWORD Flags,LPVOID Reserved,LPWSTR AdapterName,LPDHCPCAPI_CLASSID ClassId,DHCPCAPI_PARAMS_ARRAY Params,LPVOID Handle);
    130 
    131 #define DHCPCAPI_DEREGISTER_HANDLE_EVENT 0x01
    132   DWORD WINAPI DhcpDeRegisterParamChange(DWORD Flags,LPVOID Reserved,LPVOID Event);
    133   DWORD WINAPI DhcpRemoveDNSRegistrations(VOID);
    134 
    135 #ifdef __cplusplus
    136 }
    137 #endif
    138 #endif
    139