201 lines
4.6 KiB
C
201 lines
4.6 KiB
C
|
/*++
|
||
|
|
||
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
mdhcpapi.h
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
This file contains the MDHCP APIs proto-type and description. Also
|
||
|
contains the data structures used by the MDHCP APIs.
|
||
|
|
||
|
Author:
|
||
|
|
||
|
Munil Shah (munils) 01-Oct-1997
|
||
|
|
||
|
Environment:
|
||
|
|
||
|
User Mode - Win32 - MIDL
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
--*/
|
||
|
|
||
|
#ifndef _MDHCSAPI_H_
|
||
|
#define _MDHCSAPI_H_
|
||
|
|
||
|
#if defined(MIDL_PASS)
|
||
|
#define LPWSTR [string] wchar_t *
|
||
|
#endif
|
||
|
|
||
|
typedef struct _DHCP_MSCOPE_INFO {
|
||
|
LPWSTR MScopeName;
|
||
|
LPWSTR MScopeComment;
|
||
|
DWORD MScopeId;
|
||
|
DWORD MScopeAddressPolicy;
|
||
|
DHCP_HOST_INFO PrimaryHost;
|
||
|
DHCP_SUBNET_STATE MScopeState;
|
||
|
DWORD MScopeFlags;
|
||
|
DATE_TIME ExpiryTime;
|
||
|
LPWSTR LangTag;
|
||
|
BYTE TTL;
|
||
|
} DHCP_MSCOPE_INFO, *LPDHCP_MSCOPE_INFO;
|
||
|
|
||
|
typedef struct _DHCP_MSCOPE_TABLE {
|
||
|
DWORD NumElements;
|
||
|
#if defined( MIDL_PASS )
|
||
|
[ size_is( NumElements ) ]
|
||
|
#endif;
|
||
|
LPWSTR *pMScopeNames; // scope name
|
||
|
} DHCP_MSCOPE_TABLE, *LPDHCP_MSCOPE_TABLE;
|
||
|
|
||
|
typedef struct _DHCP_MCLIENT_INFO {
|
||
|
DHCP_IP_ADDRESS ClientIpAddress; // currently assigned IP address.
|
||
|
DWORD MScopeId;
|
||
|
DHCP_CLIENT_UID ClientId;
|
||
|
LPWSTR ClientName; // optional.
|
||
|
DATE_TIME ClientLeaseStarts; // UTC time in FILE_TIME format.
|
||
|
DATE_TIME ClientLeaseEnds; // UTC time in FILE_TIME format.
|
||
|
DHCP_HOST_INFO OwnerHost; // host that distributed this IP address.
|
||
|
DWORD AddressFlags;
|
||
|
BYTE AddressState;
|
||
|
} DHCP_MCLIENT_INFO, *LPDHCP_MCLIENT_INFO;
|
||
|
|
||
|
typedef struct _DHCP_MCLIENT_INFO_ARRAY {
|
||
|
DWORD NumElements;
|
||
|
#if defined(MIDL_PASS)
|
||
|
[size_is(NumElements)]
|
||
|
#endif // MIDL_PASS
|
||
|
LPDHCP_MCLIENT_INFO *Clients; // array of pointers
|
||
|
} DHCP_MCLIENT_INFO_ARRAY, *LPDHCP_MCLIENT_INFO_ARRAY;
|
||
|
|
||
|
typedef struct _MSCOPE_MIB_INFO {
|
||
|
DWORD MScopeId;
|
||
|
LPWSTR MScopeName;
|
||
|
DWORD NumAddressesInuse;
|
||
|
DWORD NumAddressesFree;
|
||
|
DWORD NumPendingOffers;
|
||
|
} MSCOPE_MIB_INFO, *LPMSCOPE_MIB_INFO;
|
||
|
|
||
|
typedef struct _DHCP_MCAST_MIB_INFO {
|
||
|
DWORD Discovers;
|
||
|
DWORD Offers;
|
||
|
DWORD Requests;
|
||
|
DWORD Renews;
|
||
|
DWORD Acks;
|
||
|
DWORD Naks;
|
||
|
DWORD Releases;
|
||
|
DWORD Informs;
|
||
|
DATE_TIME ServerStartTime;
|
||
|
DWORD Scopes;
|
||
|
#if defined(MIDL_PASS)
|
||
|
[size_is(Scopes)]
|
||
|
#endif // MIDL_PASS
|
||
|
LPMSCOPE_MIB_INFO ScopeInfo; // array.
|
||
|
} DHCP_MCAST_MIB_INFO, *LPDHCP_MCAST_MIB_INFO;
|
||
|
|
||
|
// The APIs
|
||
|
|
||
|
#ifndef DHCPAPI_NO_PROTOTYPES
|
||
|
DWORD DHCP_API_FUNCTION
|
||
|
DhcpSetMScopeInfo(
|
||
|
DHCP_CONST WCHAR * ServerIpAddress,
|
||
|
WCHAR * MScopeName,
|
||
|
LPDHCP_MSCOPE_INFO MScopeInfo,
|
||
|
BOOL NewScope
|
||
|
);
|
||
|
|
||
|
DWORD DHCP_API_FUNCTION
|
||
|
DhcpGetMScopeInfo(
|
||
|
DHCP_CONST WCHAR * ServerIpAddress,
|
||
|
WCHAR * MScopeName,
|
||
|
LPDHCP_MSCOPE_INFO *MScopeInfo
|
||
|
);
|
||
|
|
||
|
DWORD DHCP_API_FUNCTION
|
||
|
DhcpEnumMScopes(
|
||
|
DHCP_CONST WCHAR *ServerIpAddress,
|
||
|
DHCP_RESUME_HANDLE *ResumeHandle,
|
||
|
DWORD PreferredMaximum,
|
||
|
LPDHCP_MSCOPE_TABLE *MScopeTable,
|
||
|
DWORD *ElementsRead,
|
||
|
DWORD *ElementsTotal
|
||
|
);
|
||
|
|
||
|
DWORD DHCP_API_FUNCTION
|
||
|
DhcpAddMScopeElement(
|
||
|
WCHAR * ServerIpAddress,
|
||
|
WCHAR * MScopeName,
|
||
|
LPDHCP_SUBNET_ELEMENT_DATA_V4 AddElementInfo
|
||
|
);
|
||
|
|
||
|
DWORD DHCP_API_FUNCTION
|
||
|
DhcpEnumMScopeElements(
|
||
|
WCHAR * ServerIpAddress,
|
||
|
WCHAR * MScopeName,
|
||
|
DHCP_SUBNET_ELEMENT_TYPE EnumElementType,
|
||
|
DHCP_RESUME_HANDLE *ResumeHandle,
|
||
|
DWORD PreferredMaximum,
|
||
|
LPDHCP_SUBNET_ELEMENT_INFO_ARRAY_V4 *EnumElementInfo,
|
||
|
DWORD *ElementsRead,
|
||
|
DWORD *ElementsTotal
|
||
|
);
|
||
|
|
||
|
DWORD DHCP_API_FUNCTION
|
||
|
DhcpRemoveMScopeElement(
|
||
|
WCHAR * ServerIpAddress,
|
||
|
WCHAR * MScopeName,
|
||
|
LPDHCP_SUBNET_ELEMENT_DATA_V4 RemoveElementInfo,
|
||
|
DHCP_FORCE_FLAG ForceFlag
|
||
|
);
|
||
|
|
||
|
DWORD DHCP_API_FUNCTION
|
||
|
DhcpDeleteMScope(
|
||
|
WCHAR * ServerIpAddress,
|
||
|
WCHAR * MScopeName,
|
||
|
DHCP_FORCE_FLAG ForceFlag
|
||
|
);
|
||
|
|
||
|
DWORD DHCP_API_FUNCTION
|
||
|
DhcpGetMClientInfo(
|
||
|
WCHAR * ServerIpAddress,
|
||
|
LPDHCP_SEARCH_INFO SearchInfo,
|
||
|
LPDHCP_MCLIENT_INFO *ClientInfo
|
||
|
);
|
||
|
|
||
|
DWORD DHCP_API_FUNCTION
|
||
|
DhcpDeleteMClientInfo(
|
||
|
WCHAR * ServerIpAddress,
|
||
|
LPDHCP_SEARCH_INFO ClientInfo
|
||
|
);
|
||
|
|
||
|
DWORD DHCP_API_FUNCTION
|
||
|
DhcpEnumMScopeClients(
|
||
|
WCHAR * ServerIpAddress,
|
||
|
WCHAR * MScopeName,
|
||
|
DHCP_RESUME_HANDLE *ResumeHandle,
|
||
|
DWORD PreferredMaximum,
|
||
|
LPDHCP_MCLIENT_INFO_ARRAY *ClientInfo,
|
||
|
DWORD *ClientsRead,
|
||
|
DWORD *ClientsTotal
|
||
|
);
|
||
|
|
||
|
DWORD DHCP_API_FUNCTION
|
||
|
DhcpScanMDatabase(
|
||
|
DHCP_CONST WCHAR *ServerIpAddress,
|
||
|
WCHAR * MScopeName,
|
||
|
DWORD FixFlag,
|
||
|
LPDHCP_SCAN_LIST *ScanList
|
||
|
);
|
||
|
|
||
|
DWORD DHCP_API_FUNCTION
|
||
|
DhcpGetMCastMibInfo(
|
||
|
DHCP_CONST WCHAR *ServerIpAddress,
|
||
|
LPDHCP_MCAST_MIB_INFO *MibInfo
|
||
|
);
|
||
|
|
||
|
#endif DHCPAPI_NO_PROTOTYPES
|
||
|
#endif _MDHCSAPI_H_
|