237 lines
8.5 KiB
C
237 lines
8.5 KiB
C
//================================================================================
|
|
// Copyright (C) 1997-1999 Microsoft Corporation
|
|
// Description: these are the exported dhcp client api function definitions
|
|
//================================================================================
|
|
#ifndef _DHCPCSDK_
|
|
#define _DHCPCSDK_
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#ifndef DHCP_OPTIONS_DEFINED
|
|
#define DHCP_OPTIONS_DEFINED
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif
|
|
|
|
//
|
|
// DHCP Standard Options.
|
|
//
|
|
|
|
#define OPTION_PAD 0
|
|
#define OPTION_SUBNET_MASK 1
|
|
#define OPTION_TIME_OFFSET 2
|
|
#define OPTION_ROUTER_ADDRESS 3
|
|
#define OPTION_TIME_SERVERS 4
|
|
#define OPTION_IEN116_NAME_SERVERS 5
|
|
#define OPTION_DOMAIN_NAME_SERVERS 6
|
|
#define OPTION_LOG_SERVERS 7
|
|
#define OPTION_COOKIE_SERVERS 8
|
|
#define OPTION_LPR_SERVERS 9
|
|
#define OPTION_IMPRESS_SERVERS 10
|
|
#define OPTION_RLP_SERVERS 11
|
|
#define OPTION_HOST_NAME 12
|
|
#define OPTION_BOOT_FILE_SIZE 13
|
|
#define OPTION_MERIT_DUMP_FILE 14
|
|
#define OPTION_DOMAIN_NAME 15
|
|
#define OPTION_SWAP_SERVER 16
|
|
#define OPTION_ROOT_DISK 17
|
|
#define OPTION_EXTENSIONS_PATH 18
|
|
|
|
//
|
|
// IP layer parameters - per host
|
|
//
|
|
|
|
#define OPTION_BE_A_ROUTER 19
|
|
#define OPTION_NON_LOCAL_SOURCE_ROUTING 20
|
|
#define OPTION_POLICY_FILTER_FOR_NLSR 21
|
|
#define OPTION_MAX_REASSEMBLY_SIZE 22
|
|
#define OPTION_DEFAULT_TTL 23
|
|
#define OPTION_PMTU_AGING_TIMEOUT 24
|
|
#define OPTION_PMTU_PLATEAU_TABLE 25
|
|
|
|
//
|
|
// Link layer parameters - per interface.
|
|
//
|
|
|
|
#define OPTION_MTU 26
|
|
#define OPTION_ALL_SUBNETS_MTU 27
|
|
#define OPTION_BROADCAST_ADDRESS 28
|
|
#define OPTION_PERFORM_MASK_DISCOVERY 29
|
|
#define OPTION_BE_A_MASK_SUPPLIER 30
|
|
#define OPTION_PERFORM_ROUTER_DISCOVERY 31
|
|
#define OPTION_ROUTER_SOLICITATION_ADDR 32
|
|
#define OPTION_STATIC_ROUTES 33
|
|
#define OPTION_TRAILERS 34
|
|
#define OPTION_ARP_CACHE_TIMEOUT 35
|
|
#define OPTION_ETHERNET_ENCAPSULATION 36
|
|
|
|
//
|
|
// TCP Paramters - per host
|
|
//
|
|
|
|
#define OPTION_TTL 37
|
|
#define OPTION_KEEP_ALIVE_INTERVAL 38
|
|
#define OPTION_KEEP_ALIVE_DATA_SIZE 39
|
|
|
|
//
|
|
// Application Layer Parameters
|
|
//
|
|
|
|
#define OPTION_NETWORK_INFO_SERVICE_DOM 40
|
|
#define OPTION_NETWORK_INFO_SERVERS 41
|
|
#define OPTION_NETWORK_TIME_SERVERS 42
|
|
|
|
//
|
|
// Vender specific information option
|
|
//
|
|
|
|
#define OPTION_VENDOR_SPEC_INFO 43
|
|
|
|
//
|
|
// NetBIOS over TCP/IP Name server option
|
|
//
|
|
|
|
#define OPTION_NETBIOS_NAME_SERVER 44
|
|
#define OPTION_NETBIOS_DATAGRAM_SERVER 45
|
|
#define OPTION_NETBIOS_NODE_TYPE 46
|
|
#define OPTION_NETBIOS_SCOPE_OPTION 47
|
|
|
|
//
|
|
// X Window System Options.
|
|
//
|
|
|
|
#define OPTION_XWINDOW_FONT_SERVER 48
|
|
#define OPTION_XWINDOW_DISPLAY_MANAGER 49
|
|
|
|
//
|
|
// Other extensions
|
|
//
|
|
|
|
#define OPTION_REQUESTED_ADDRESS 50
|
|
#define OPTION_LEASE_TIME 51
|
|
#define OPTION_OK_TO_OVERLAY 52
|
|
#define OPTION_MESSAGE_TYPE 53
|
|
#define OPTION_SERVER_IDENTIFIER 54
|
|
#define OPTION_PARAMETER_REQUEST_LIST 55
|
|
#define OPTION_MESSAGE 56
|
|
#define OPTION_MESSAGE_LENGTH 57
|
|
#define OPTION_RENEWAL_TIME 58 // T1
|
|
#define OPTION_REBIND_TIME 59 // T2
|
|
#define OPTION_CLIENT_CLASS_INFO 60
|
|
#define OPTION_CLIENT_ID 61
|
|
|
|
#define OPTION_TFTP_SERVER_NAME 66
|
|
#define OPTION_BOOTFILE_NAME 67
|
|
|
|
|
|
#define OPTION_END 255
|
|
|
|
#endif DHCP_OPTIONS_DEFINED
|
|
|
|
#ifndef DHCPAPI_PARAMS_DEFINED
|
|
#define DHCPAPI_PARAMS_DEFINED
|
|
typedef struct _DHCPAPI_PARAMS { // use this structure to request params
|
|
ULONG Flags; // for future use
|
|
ULONG OptionId; // what option is this?
|
|
BOOL IsVendor; // is this vendor specific?
|
|
LPBYTE Data; // the actual data
|
|
DWORD nBytesData; // how many bytes of data are there in Data?
|
|
} DHCPAPI_PARAMS, *PDHCPAPI_PARAMS, *LPDHCPAPI_PARAMS;
|
|
#endif DHCPAPI_PARAMS_DEFINED
|
|
|
|
typedef struct _DHCPAPI_PARAMS
|
|
DHCPCAPI_PARAMS, *PDHCPCAPI_PARAMS, *LPDHCPCAPI_PARAMS;
|
|
|
|
typedef struct _DHCPCAPI_PARAMS_ARARAY { // array of params..
|
|
ULONG nParams; // size of array
|
|
LPDHCPCAPI_PARAMS Params; // actual array
|
|
} DHCPCAPI_PARAMS_ARRAY, *PDHCPCAPI_PARAMS_ARRAY, *LPDHCPCAPI_PARAMS_ARRAY;
|
|
|
|
typedef struct _DHCPCAPI_CLASSID { // defines a client class id.
|
|
ULONG Flags; // must be zero currently.
|
|
LPBYTE Data; // classid binary data.
|
|
ULONG nBytesData; // how many bytes of data are there?
|
|
} DHCPCAPI_CLASSID, *PDHCPCAPI_CLASSID, *LPDHCPCAPI_CLASSID;
|
|
|
|
|
|
#define DHCPCAPI_REQUEST_PERSISTENT 0x01 // request this options "permanently"
|
|
#define DHCPCAPI_REQUEST_SYNCHRONOUS 0x02 // request and block on it
|
|
#define DHCPCAPI_REQUEST_ASYNCHRONOUS 0x04 // request and return, set event on completion
|
|
#define DHCPCAPI_REQUEST_CANCEL 0x08 // cancel request
|
|
#define DHCPCAPI_REQUEST_MASK 0x0F // allowed flags..
|
|
|
|
DWORD
|
|
APIENTRY
|
|
DhcpCApiInitialize(
|
|
OUT LPDWORD Version
|
|
);
|
|
|
|
VOID
|
|
APIENTRY
|
|
DhcpCApiCleanup(
|
|
VOID
|
|
);
|
|
|
|
DWORD // win32 status
|
|
APIENTRY
|
|
DhcpRequestParams( // request parameters of client
|
|
IN DWORD Flags, // must be DHCPCAPI_REQUEST_SYNCHRONOUS
|
|
IN LPVOID Reserved, // this parameter is reserved
|
|
IN LPWSTR AdapterName, // adapter name to request for
|
|
IN LPDHCPCAPI_CLASSID ClassId, // reserved must be NULL
|
|
IN DHCPCAPI_PARAMS_ARRAY SendParams, // parameters to send.
|
|
IN OUT DHCPCAPI_PARAMS_ARRAY RecdParams, // parameters that are to be requested..
|
|
IN LPBYTE Buffer, // a buffer to hold data for RecdParams
|
|
IN OUT LPDWORD pSize, // i/p: size of above in BYTES, o/p required bytes..
|
|
IN LPWSTR RequestIdStr // needed for persistent requests
|
|
); // returns ERROR_MORE_DATA if o/p buffer is of insufficient size, and fills in reqd size in # of bytes
|
|
|
|
DWORD // win32 status
|
|
APIENTRY
|
|
DhcpUndoRequestParams( // undo the effect of a persistent request -- currently undo from registry
|
|
IN DWORD Flags, // must be zero, reserved
|
|
IN LPVOID Reserved, // this parameter is reserved
|
|
IN LPWSTR AdapterName, // the name of the adpater to delete for
|
|
IN LPWSTR RequestIdStr // needed for persistent requests..
|
|
);
|
|
|
|
#define DHCPCAPI_REGISTER_HANDLE_EVENT 0x01 // handle returned is to an event
|
|
DWORD // win32 status
|
|
APIENTRY
|
|
DhcpRegisterParamChange( // notify if a parameter has changed
|
|
IN DWORD Flags, // must be zero, reserved
|
|
IN LPVOID Reserved, // this parameter is reserved
|
|
IN LPWSTR AdapterName, // adapter of interest
|
|
IN LPDHCPCAPI_CLASSID ClassId, // reserved must be NULL
|
|
IN DHCPCAPI_PARAMS_ARRAY Params, // parameters of interest
|
|
IN OUT LPVOID Handle // handle to event that will be SetEvent'ed in case of param change
|
|
);
|
|
|
|
#define DHCPCAPI_DEREGISTER_HANDLE_EVENT 0x01 // de-register handle that is an event
|
|
DWORD
|
|
APIENTRY
|
|
DhcpDeRegisterParamChange( // undo the registration
|
|
IN DWORD Flags, // MUST BE ZERO --> No flags yet.
|
|
IN LPVOID Reserved, // MUST BE NULL --> Reserved
|
|
IN LPVOID Event // handle to event returned by DhcpRegisterParamChange.
|
|
);
|
|
|
|
DWORD
|
|
APIENTRY
|
|
DhcpRemoveDNSRegistrations(
|
|
VOID
|
|
);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
//================================================================================
|
|
// end of file
|
|
//================================================================================
|
|
#endif _DHCPCSDK_
|
|
|