zig/lib/libc/include/any-windows-any/dhcpv6csdk.h
Andrew Kelley 9346cd38e8 update mingw-w64 headers to latest git commit
Upstream commit dddccbc3ef50ac52bf00723fd2f68d98140aab80

Martin Storsjö suggested synchronizing with git snapshots rather than
waiting for tagged releases. Let's try this for a few releases of Zig
and see how we like it.

These headers were configured with `--with-default-msvcrt=ucrt`.

See related issue #18477.
2024-01-08 11:52:37 -07:00

144 lines
3.6 KiB
C
Vendored

/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the mingw-w64 runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
#ifndef _INC_DHCPV6CSDK
#define _INC_DHCPV6CSDK
#ifdef __cplusplus
extern "C" {
#endif
#if (_WIN32_WINNT >= 0x0600)
#include <winapifamily.h>
#ifndef DHCPV6_OPTIONS_DEFINED
#define DHCPV6_OPTIONS_DEFINED
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
#define DHCPV6_OPTION_CLIENTID 1
#define DHCPV6_OPTION_SERVERID 2
#define DHCPV6_OPTION_IA_NA 3
#define DHCPV6_OPTION_IA_TA 4
#define DHCPV6_OPTION_ORO 6
#define DHCPV6_OPTION_PREFERENCE 7
#define DHCPV6_OPTION_UNICAST 12
#define DHCPV6_OPTION_RAPID_COMMIT 14
#define DHCPV6_OPTION_USER_CLASS 15
#define DHCPV6_OPTION_VENDOR_CLASS 16
#define DHCPV6_OPTION_VENDOR_OPTS 17
#define DHCPV6_OPTION_RECONF_MSG 19
#define DHCPV6_OPTION_SIP_SERVERS_NAMES 21
#define DHCPV6_OPTION_SIP_SERVERS_ADDRS 22
#define DHCPV6_OPTION_DNS_SERVERS 23
#define DHCPV6_OPTION_DOMAIN_LIST 24
#define DHCPV6_OPTION_IA_PD 25
#define DHCPV6_OPTION_NIS_SERVERS 27
#define DHCPV6_OPTION_NISP_SERVERS 28
#define DHCPV6_OPTION_NIS_DOMAIN_NAME 29
#define DHCPV6_OPTION_NISP_DOMAIN_NAME 30
#endif /* WINAPI_PARTITION_APP */
#endif /* DHCPV6_OPTIONS_DEFINED */
typedef enum _StatusCode {
STATUS_NO_ERROR,
STATUS_UNSPECIFIED_FAILURE,
STATUS_NO_BINDING = 3,
STATUS_NOPREFIX_AVAIL = 6
} StatusCode;
typedef struct _DHCPV6CAPI_CLASSID {
ULONG Flags;
LPBYTE Data;
ULONG nBytesData;
} DHCPV6CAPI_CLASSID, *PDHCPV6CAPI_CLASSID, *LPDHCPV6CAPI_CLASSID;
#ifndef DHCPV6API_PARAMS_DEFINED
#define DHCPV6API_PARAMS_DEFINED
typedef struct _DHCPV6CAPI_PARAMS {
ULONG Flags;
ULONG OptionId;
WINBOOL IsVendor;
LPBYTE Data;
DWORD nBytesData;
} DHCPV6CAPI_PARAMS, *PDHCPV6CAPI_PARAMS, *LPDHCPV6CAPI_PARAMS;
#endif /* DHCPV6API_PARAMS_DEFINED */
typedef struct _DHCPV6Prefix {
UCHAR prefix[16];
DWORD prefixLength;
DWORD preferredLifeTime;
DWORD validLifeTime;
StatusCode status;
} DHCPV6Prefix, *PDHCPV6Prefix, *LPDHCPV6Prefix;
typedef struct _DHCPV6CAPI_PARAMS_ARRAY {
ULONG nParams;
LPDHCPV6CAPI_PARAMS Params;
} DHCPV6CAPI_PARAMS_ARRAY, *PDHCPV6CAPI_PARAMS_ARRAY, *LPDHCPV6CAPI_PARAMS_ARRAY;
typedef struct _DHCPV6PrefixLeaseInformation {
DWORD nPrefixes;
LPDHCPV6Prefix prefixArray;
DWORD iaid;
time_t T1;
time_t T2;
time_t MaxLeaseExpirationTime;
time_t LastRenewalTime;
StatusCode status;
LPBYTE ServerId;
DWORD ServerIdLen;
} DHCPV6PrefixLeaseInformation, *PDHCPV6PrefixLeaseInformation, *LPDHCPV6PrefixLeaseInformation, *LPDHCPV6CAPIPrefixLeaseInformation;
VOID APIENTRY Dhcpv6CApiCleanup(void);
VOID APIENTRY Dhcpv6CApiInitialize(
LPDWORD Version
);
DWORD APIENTRY Dhcpv6RequestParams(
WINBOOL forceNewInform,
LPVOID reserved,
LPWSTR adapterName,
LPDHCPV6CAPI_CLASSID classId,
DHCPV6CAPI_PARAMS_ARRAY recdParams,
LPBYTE buffer,
LPDWORD pSize
);
DWORD APIENTRY Dhcpv6ReleasePrefix(
LPWSTR adapterName,
LPDHCPV6CAPI_CLASSID classId,
LPDHCPV6CAPIPrefixLeaseInformation prefixleaseInfo
);
DWORD APIENTRY Dhcpv6RenewPrefix(
LPWSTR adapterName,
LPDHCPV6CAPI_CLASSID classId,
LPDHCPV6PrefixLeaseInformation prefixleaseInfo,
DWORD *pdwTimeToWait,
DWORD bValidatePrefix
);
DWORD APIENTRY Dhcpv6RequestPrefix(
LPWSTR adapterName,
LPDHCPV6CAPI_CLASSID classId,
LPDHCPV6PrefixLeaseInformation prefixleaseInfo,
DWORD *pdwTimeToWait
);
#endif /* (_WIN32_WINNT >= 0x0600) */
#ifdef __cplusplus
}
#endif
#endif /*_INC_DHCPV6CSDK*/