79 lines
2.8 KiB
C++
79 lines
2.8 KiB
C++
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
|
|
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
|
|
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
|
|
// PARTICULAR PURPOSE.
|
|
//
|
|
// Copyright (c) Microsoft Corporation. All rights reserved
|
|
|
|
|
|
#include<windows.h>
|
|
#include<stdio.h>
|
|
#include<dhcpsapi.h>
|
|
|
|
// This routine frees LPDHCPV4_FAILOVER_CLIENT_INFO and its internal elements.
|
|
VOID FreeClientInfoMemory(LPDHCPV4_FAILOVER_CLIENT_INFO pClientInfo)
|
|
{
|
|
if (NULL != pClientInfo)
|
|
{
|
|
// Frees client name
|
|
if( NULL != pClientInfo->ClientName)
|
|
DhcpRpcFreeMemory(pClientInfo->ClientName);
|
|
|
|
//Frees policy name
|
|
if (NULL != pClientInfo->PolicyName)
|
|
DhcpRpcFreeMemory(pClientInfo->PolicyName);
|
|
|
|
//Frees client comments
|
|
if (NULL != pClientInfo->ClientComment)
|
|
DhcpRpcFreeMemory(pClientInfo->ClientComment);
|
|
|
|
//Frees the ClientHardwareAddress
|
|
if(NULL != pClientInfo->ClientHardwareAddress.Data && pClientInfo->ClientHardwareAddress.DataLength > 0)
|
|
DhcpRpcFreeMemory(pClientInfo->ClientHardwareAddress.Data);
|
|
|
|
//Frees the HostName
|
|
if(NULL != pClientInfo->OwnerHost.HostName)
|
|
DhcpRpcFreeMemory(pClientInfo->OwnerHost.HostName);
|
|
|
|
//Frees the NetBiosName
|
|
if(NULL != pClientInfo->OwnerHost.NetBiosName)
|
|
DhcpRpcFreeMemory(pClientInfo->OwnerHost.NetBiosName);
|
|
|
|
// Frees the clientInfo
|
|
DhcpRpcFreeMemory(pClientInfo);
|
|
pClientInfo=NULL;
|
|
}
|
|
}
|
|
|
|
int __cdecl main(void)
|
|
{
|
|
DHCP_SEARCH_INFO *pSearchInfo = NULL; //SearchInfo
|
|
LPDHCPV4_FAILOVER_CLIENT_INFO pClientInfo = NULL; // ClientInfo
|
|
DWORD dwError = ERROR_SUCCESS; // Variable that holds the error code
|
|
LPWSTR pwszServer = NULL; //Server IP Address
|
|
|
|
pSearchInfo = (DHCP_SEARCH_INFO *)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,sizeof(DHCP_SEARCH_INFO));
|
|
if(pSearchInfo == NULL)
|
|
{
|
|
wprintf(L"HeapAlloc failed. Not Enough memory\n");
|
|
goto cleanup;
|
|
}
|
|
pSearchInfo->SearchType = DhcpClientIpAddress;
|
|
pSearchInfo->SearchInfo.ClientIpAddress=0xa000033; // Client with IP Address 10.0.0.51
|
|
dwError = DhcpV4FailoverGetClientInfo(
|
|
pwszServer, // Server IP Address
|
|
pSearchInfo, // Search Info on the basis of which clients will be fetched
|
|
&pClientInfo // ClientInfo obtained from the server
|
|
);
|
|
if(ERROR_SUCCESS != dwError)
|
|
{
|
|
wprintf(L"DhcpV4FailoverGetClientInfo failed with Error = %d\n", dwError);
|
|
}
|
|
HeapFree(GetProcessHeap(), HEAP_ZERO_MEMORY, pSearchInfo);
|
|
pSearchInfo = NULL;
|
|
FreeClientInfoMemory(pClientInfo);
|
|
pClientInfo = NULL;
|
|
cleanup:
|
|
return 0;
|
|
}
|