| Server IP : 209.209.40.120 / Your IP : 216.73.217.112 Web Server : Microsoft-IIS/10.0 System : Windows NT NEWWWW 10.0 build 17763 (Windows Server 2019) i586 User : NEWWWW$ ( 0) PHP Version : 8.3.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /Program Files (x86)/Windows Kits/10/Include/10.0.19041.0/um/ |
Upload File : |
#include <winapifamily.h>
/*++
Copyright (c) Microsoft Corporation. All rights reserved.
Module Name:
dhcpv6csdk.h
Abstract:
These are the exported dhcpv6 client api function definitions
Author:
Achint Setia (asetia) July-1-2005
Environment:
User Mode - Win32
Revision History:
--*/
#ifndef _DHCPV6CSDK_
#define _DHCPV6CSDK_
#ifdef __cplusplus
extern "C" {
#endif
#ifndef DHCPV6_OPTIONS_DEFINED
#define DHCPV6_OPTIONS_DEFINED
#if _MSC_VER > 1000
#pragma once
#endif
#pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
//
// DHCPv6 Standard Options(non-encapsulated).
//
#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_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#endif DHCPV6_OPTIONS_DEFINED
#pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
#ifndef DHCPV6API_PARAMS_DEFINED
#define DHCPV6API_PARAMS_DEFINED
typedef struct _DHCPV6CAPI_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?
} DHCPV6CAPI_PARAMS, *PDHCPV6CAPI_PARAMS, *LPDHCPV6CAPI_PARAMS;
#endif DHCPV6API_PARAMS_DEFINED
typedef struct _DHCPV6CAPI_PARAMS_ARRAY { // array of params..
ULONG nParams; // size of array
LPDHCPV6CAPI_PARAMS Params; // actual array
} DHCPV6CAPI_PARAMS_ARRAY, *PDHCPV6CAPI_PARAMS_ARRAY, *LPDHCPV6CAPI_PARAMS_ARRAY;
typedef struct _DHCPV6CAPI_CLASSID { // defines a client class id.
ULONG Flags; // must be zero currently.
#ifdef __midl
[size_is(nBytesData)] LPBYTE Data;
#else
_Field_size_bytes_(nBytesData) LPBYTE Data; // classid binary data.
#endif
ULONG nBytesData; // how many bytes of data are there?
} DHCPV6CAPI_CLASSID, *PDHCPV6CAPI_CLASSID, *LPDHCPV6CAPI_CLASSID;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
typedef
enum
{
STATUS_NO_ERROR, //Prefix successfully leased, renewed.
STATUS_UNSPECIFIED_FAILURE, //Some unspecified failure occurred while trying to process the prefix.
STATUS_NO_BINDING = 3, //The server doesn't have binding for the prefix.
STATUS_NOPREFIX_AVAIL = 6 //The server doesn't have prefix to offer to the requesting client.
}StatusCode;
typedef struct _DHCPV6Prefix{
UCHAR prefix[16]; //128 bit prefix
DWORD prefixLength; //(48-64 bits)
DWORD preferredLifeTime; //The Preferred Lifetime of the Prefix returned or requested in seconds
DWORD validLifeTime; //The Valid Lifetime of the Prefix returned or requested in seconds
StatusCode status; //The status code returned by the server for the prefix
}DHCPV6Prefix, *PDHCPV6Prefix, *LPDHCPV6Prefix;
typedef struct _DHCPV6PrefixLeaseInformation {
DWORD nPrefixes; // number of prefixes.
_Field_size_(nPrefixes) LPDHCPV6Prefix prefixArray; // Array of prefixes
DWORD iaid; //The 32 bit Identity Association identifier for the prefix option.
time_t T1; //The absolute renewal time for the prefixes in seconds
time_t T2; //The absolute rebind time for the prefixes in seconds
time_t MaxLeaseExpirationTime; //The absolute maximum lease expiration time of all the prefix leases in this structure.
time_t LastRenewalTime; // The absolute time at which the last renewal for the prefixes happened.
StatusCode status; //The status code returned by the server for the IAPD
_Field_size_bytes_(ServerIdLen) LPBYTE ServerId; // The server DUID from which the prefix is received. This is used in subsequent Renews.
DWORD ServerIdLen; // The length of the above DUID data.
} DHCPV6PrefixLeaseInformation, *PDHCPV6PrefixLeaseInformation, *LPDHCPV6PrefixLeaseInformation;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
VOID
APIENTRY
Dhcpv6CApiInitialize(
OUT LPDWORD Version
);
VOID
APIENTRY
Dhcpv6CApiCleanup(
VOID
);
DWORD // win32 status
APIENTRY
Dhcpv6RequestParams( // request parameters of client
IN BOOL forceNewInform,
IN LPVOID reserved,
_In_ IN LPWSTR adapterName,
IN LPDHCPV6CAPI_CLASSID classId,
IN OUT DHCPV6CAPI_PARAMS_ARRAY recdParams,
IN LPBYTE buffer,
IN OUT LPDWORD pSize
);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
DWORD
APIENTRY
Dhcpv6RequestPrefix(
IN _In_ LPWSTR adapterName,
IN LPDHCPV6CAPI_CLASSID pclassId,
IN OUT LPDHCPV6PrefixLeaseInformation prefixleaseInfo,
_Out_ DWORD* pdwTimeToWait
);
DWORD
APIENTRY
Dhcpv6RenewPrefix(
IN _In_ LPWSTR adapterName,
IN LPDHCPV6CAPI_CLASSID pclassId,
IN OUT LPDHCPV6PrefixLeaseInformation prefixleaseInfo,
_Out_ DWORD* pdwTimeToWait,
IN DWORD bValidatePrefix
);
DWORD
APIENTRY
Dhcpv6ReleasePrefix(
_In_ IN LPWSTR adapterName,
IN LPDHCPV6CAPI_CLASSID classId,
IN LPDHCPV6PrefixLeaseInformation leaseInfo
);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#ifdef __cplusplus
}
#endif
//================================================================================
// end of file
//================================================================================
#endif _DHCPV6CSDK_