DhcpCSdk.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:9k
- //================================================================================
- // 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_