671 lines
20 KiB
C
671 lines
20 KiB
C
//========================================================================
|
|
// Copyright (C) 1997 Microsoft Corporation
|
|
// Author: RameshV
|
|
// Description: This file has been generated. Pl look at the .c file
|
|
//========================================================================
|
|
|
|
#ifndef _MMREG_REGUTIL_H
|
|
#define _MMREG_REGUTIL_H
|
|
|
|
typedef struct _REG_HANDLE {
|
|
HKEY Key;
|
|
HKEY SubKey;
|
|
LPWSTR SubKeyLocation;
|
|
} REG_HANDLE, *PREG_HANDLE, *LPREG_HANDLE;
|
|
|
|
|
|
#define REG_THIS_SERVER L"Software\\Microsoft\\DHCPServer\\Configuration"
|
|
#define REG_THIS_SERVER_DS L"Software\\Microsoft\\DHCPServer\\Config_DS"
|
|
#define REG_THIS_SERVER_DS_VALUE L"Config_DS"
|
|
#define REG_THIS_SERVER_DS_PARENT L"Software\\Microsoft\\DHCPServer"
|
|
|
|
#define REG_SERVER_GLOBAL_OPTIONS L"GlobalOptionValues"
|
|
#define REG_SERVER_OPTDEFS L"OptionInfo"
|
|
#define REG_SERVER_SUBNETS L"Subnets"
|
|
#define REG_SERVER_SSCOPES L"SuperScope"
|
|
#define REG_SERVER_CLASSDEFS L"ClassDefs"
|
|
#define REG_SERVER_MSCOPES L"MulticastScopes"
|
|
|
|
#define REG_SUBNET_SERVERS L"DHCPServers"
|
|
#define REG_SUBNET_RANGES L"IpRanges"
|
|
#define REG_SUBNET_RESERVATIONS L"ReservedIps"
|
|
#define REG_SUBNET_OPTIONS L"SubnetOptions"
|
|
|
|
#define REG_SUBNET_EXCL L"ExcludedIpRanges"
|
|
#define REG_SUBNET_ADDRESS L"SubnetAddress"
|
|
#define REG_SUBNET_NAME L"SubnetName"
|
|
#define REG_SUBNET_COMMENT L"SubnetComment"
|
|
#define REG_SUBNET_MASK L"SubnetMask"
|
|
#define REG_SUBNET_STATE L"SubnetState"
|
|
#define REG_SUBNET_SWITCHED_FLAG L"SwitchedNetworkFlag"
|
|
|
|
#define REG_MSCOPE_NAME L"MScopeName"
|
|
#define REG_MSCOPE_COMMENT L"MScopeComment"
|
|
#define REG_MSCOPE_SCOPEID L"MScopeIdValue"
|
|
#define REG_MSCOPE_STATE L"MScopeState"
|
|
#define REG_MSCOPE_ADDR_POLICY L"MScopeAddressPolicy"
|
|
#define REG_MSCOPE_TTL L"MScopeTTL"
|
|
#define REG_MSCOPE_LANG_TAG L"MScopeLangTag"
|
|
#define REG_MSCOPE_EXPIRY_TIME L"MScopeExpiryTime"
|
|
|
|
#define REG_SUB_SERVER_NAME L"ServerHostName"
|
|
#define REG_SUB_SERVER_COMMENT L"ServerComment"
|
|
#define REG_SUB_SERVER_ADDRESS L"ServerAddress"
|
|
#define REG_SUB_SERVER_ROLE L"Role"
|
|
|
|
#define REG_RANGE_NAME L"RangeName"
|
|
#define REG_RANGE_COMMENT L"RangeComment"
|
|
#define REG_RANGE_START_ADDRESS L"StartAddress"
|
|
#define REG_RANGE_END_ADDRESS L"EndAddress"
|
|
#define REG_RANGE_INUSE_CLUSTERS L"InUseClusters"
|
|
#define REG_RANGE_USED_CLUSTERS L"UsedClusters"
|
|
#define REG_RANGE_BITS_PREFIX L"Bits "
|
|
#define REG_RANGE_BITS_PREFIX_WCHAR_COUNT (5)
|
|
#define REG_RANGE_FLAGS L"RangeFlags"
|
|
#define REG_RANGE_ALLOC L"RangeBootpAllocated"
|
|
#define REG_RANGE_MAX_ALLOC L"RangeBootpMaxAllowed"
|
|
|
|
#define REG_OPTION_NAME L"OptionName"
|
|
#define REG_OPTION_COMMENT L"OptionComment"
|
|
#define REG_OPTION_TYPE L"OptionType"
|
|
#define REG_OPTION_VALUE L"OptionValue"
|
|
#define REG_OPTION_ID L"OptionId"
|
|
#define REG_OPTION_CLASSNAME L"OptionClassName"
|
|
#define REG_OPTION_VENDORNAME L"OptionVendorName"
|
|
|
|
#define REG_CLASSDEF_NAME L"ClassName"
|
|
#define REG_CLASSDEF_COMMENT L"ClassComment"
|
|
#define REG_CLASSDEF_TYPE L"ClassType"
|
|
#define REG_CLASSDEF_VALUE L"ClassValue"
|
|
|
|
#define REG_RESERVATION_ADDRESS L"IpAddress"
|
|
#define REG_RESERVATION_UID L"ClientUID"
|
|
#define REG_RESERVATION_TYPE L"AllowedClientTypes"
|
|
#define REG_RESERVATION_NAME L"ReservationName"
|
|
#define REG_RESERVATION_COMMENT L"ReservationComment"
|
|
|
|
#define REG_FLAGS L"Flags"
|
|
|
|
#define REG_ACCESS KEY_ALL_ACCESS
|
|
#define REG_DEFAULT_SUBNET_STATE 0
|
|
#define REG_DEFAULT_SUBNET_MASK 0xFFFFFFFF
|
|
#define REG_DEFAULT_SWITCHED_FLAG FALSE
|
|
|
|
#define REG_CLASS L"DhcpClass"
|
|
|
|
#define DHCP_LAST_DOWNLOAD_TIME_VALUE L"LastDownloadTime"
|
|
#define DHCP_LAST_DOWNLOAD_TIME_TYPE REG_BINARY
|
|
|
|
#define DEF_RANGE_ALLOC 0
|
|
#define DEF_RANGE_MAX_ALLOC (~(ULONG)0)
|
|
|
|
|
|
|
|
//================================================================================
|
|
// The basic open/traverse/close functions are here
|
|
//================================================================================
|
|
|
|
|
|
DWORD
|
|
DhcpRegSetCurrentServer(
|
|
IN OUT PREG_HANDLE Hdl
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpRegGetThisServer(
|
|
IN OUT PREG_HANDLE Hdl
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpRegGetNextHdl(
|
|
IN PREG_HANDLE Hdl,
|
|
IN LPWSTR NextLoc,
|
|
OUT PREG_HANDLE OutHdl
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpRegCloseHdl(
|
|
IN OUT PREG_HANDLE Hdl
|
|
) ;
|
|
|
|
|
|
//================================================================================
|
|
// MISC utilities for registry manipulation
|
|
//================================================================================
|
|
|
|
|
|
DWORD
|
|
DhcpRegFillSubKeys(
|
|
IN PREG_HANDLE Hdl,
|
|
IN OUT PARRAY Array // fill in a list of key names
|
|
) ;
|
|
|
|
|
|
LPVOID // DWORD or LPWSTR or LPBYTE
|
|
DhcpRegRead( // read differnt values from registry and allocate if not DWORD
|
|
IN PREG_HANDLE Hdl,
|
|
IN DWORD Type, // if DWORD dont allocate memory
|
|
IN LPWSTR ValueName,
|
|
IN LPVOID RetValue // value to use if nothing found
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpRegReadBinary( // read binary type
|
|
IN PREG_HANDLE Hdl,
|
|
IN LPWSTR ValueName,
|
|
OUT LPBYTE *RetVal,
|
|
OUT DWORD *RetValSize
|
|
) ;
|
|
|
|
|
|
LPWSTR
|
|
DhcpRegCombineClassAndOption( // create string based on class name and option id
|
|
IN LPWSTR ClassName,
|
|
IN LPWSTR VendorName,
|
|
IN DWORD OptionId
|
|
) ;
|
|
|
|
|
|
LPWSTR
|
|
ConvertAddressToLPWSTR(
|
|
IN DWORD Address,
|
|
IN OUT LPWSTR BufferStr // input buffer to fill with dotted notation
|
|
) ;
|
|
|
|
|
|
//================================================================================
|
|
// the following functions help traversing the registry
|
|
//================================================================================
|
|
|
|
|
|
DWORD
|
|
DhcpRegServerGetSubnetHdl(
|
|
IN PREG_HANDLE Hdl,
|
|
IN LPWSTR Subnet,
|
|
OUT PREG_HANDLE Hdl2
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpRegServerGetSScopeHdl(
|
|
IN PREG_HANDLE Hdl,
|
|
IN LPWSTR SScope,
|
|
OUT PREG_HANDLE Hdl2
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpRegServerGetOptDefHdl(
|
|
IN PREG_HANDLE Hdl,
|
|
IN LPWSTR OptDef,
|
|
OUT PREG_HANDLE Hdl2
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpRegServerGetOptHdl(
|
|
IN PREG_HANDLE Hdl,
|
|
IN LPWSTR Opt,
|
|
OUT PREG_HANDLE Hdl2
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpRegServerGetMScopeHdl(
|
|
IN PREG_HANDLE Hdl,
|
|
IN LPWSTR MScope,
|
|
OUT PREG_HANDLE Hdl2
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpRegServerGetClassDefHdl(
|
|
IN PREG_HANDLE Hdl,
|
|
IN LPWSTR ClassDef,
|
|
OUT PREG_HANDLE Hdl2
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpRegSubnetGetOptHdl(
|
|
IN PREG_HANDLE Hdl,
|
|
IN LPWSTR Opt,
|
|
OUT PREG_HANDLE Hdl2
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpRegSubnetGetRangeHdl(
|
|
IN PREG_HANDLE Hdl,
|
|
IN LPWSTR Range,
|
|
OUT PREG_HANDLE Hdl2
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpRegSubnetGetReservationHdl(
|
|
IN PREG_HANDLE Hdl,
|
|
IN LPWSTR Reservation,
|
|
OUT PREG_HANDLE Hdl2
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpRegSubnetGetServerHdl(
|
|
IN PREG_HANDLE Hdl,
|
|
IN LPWSTR Server,
|
|
OUT PREG_HANDLE Hdl2
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpRegReservationGetOptHdl(
|
|
IN PREG_HANDLE Hdl,
|
|
IN LPWSTR OptionName,
|
|
OUT PREG_HANDLE Hdl2
|
|
) ;
|
|
|
|
|
|
//================================================================================
|
|
// List retrieval functions.. for servers, subnets, ranges etc.
|
|
//================================================================================
|
|
|
|
|
|
DWORD
|
|
DhcpRegServerGetList(
|
|
IN PREG_HANDLE Hdl, // ptr to server location
|
|
IN OUT PARRAY OptList, // list of LPWSTR options
|
|
IN OUT PARRAY OptDefList, // list of LPWSTR optdefs
|
|
IN OUT PARRAY Subnets, // list of LPWSTR subnets
|
|
IN OUT PARRAY SScopes, // list of LPWSTR sscopes
|
|
IN OUT PARRAY ClassDefs, // list of LPWSTR classes
|
|
IN OUT PARRAY MScopes // list of LPWSTR mscopes
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpRegSubnetGetExclusions(
|
|
IN PREG_HANDLE Hdl,
|
|
OUT LPBYTE *Excl,
|
|
OUT DWORD *ExclSize
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpRegSubnetGetList(
|
|
IN PREG_HANDLE Hdl,
|
|
IN OUT PARRAY Servers,
|
|
IN OUT PARRAY IpRanges,
|
|
IN OUT PARRAY Reservations,
|
|
IN OUT PARRAY Options,
|
|
OUT LPBYTE *Excl,
|
|
OUT DWORD *ExclSizeInBytes
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpRegSScopeGetList(
|
|
IN PREG_HANDLE Hdl,
|
|
IN OUT PARRAY Subnets
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpRegReservationGetList(
|
|
IN PREG_HANDLE Hdl,
|
|
IN OUT PARRAY Options
|
|
) ;
|
|
|
|
|
|
//================================================================================
|
|
// the separate stuff are here -- these are not list stuff, but just simple
|
|
// single valued attributes
|
|
// some of these actually, dont even go to the registry, but that's fine alright?
|
|
//================================================================================
|
|
|
|
|
|
DWORD
|
|
DhcpRegServerGetAttributes(
|
|
IN PREG_HANDLE Hdl,
|
|
OUT LPWSTR *Name,
|
|
OUT LPWSTR *Comment,
|
|
OUT DWORD *Flags
|
|
// more attributes will come here soon?
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpRegSubnetGetAttributes(
|
|
IN PREG_HANDLE Hdl,
|
|
OUT LPWSTR *Name,
|
|
OUT LPWSTR *Comment,
|
|
OUT DWORD *Flags,
|
|
OUT DWORD *Address,
|
|
OUT DWORD *Mask
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpRegMScopeGetAttributes(
|
|
IN PREG_HANDLE Hdl,
|
|
OUT LPWSTR *Comments,
|
|
OUT DWORD *State,
|
|
OUT DWORD *ScopeId,
|
|
OUT DWORD *Policy,
|
|
OUT DWORD *TTL,
|
|
OUT LPWSTR *LangTag,
|
|
OUT PDATE_TIME *ExpiryTime
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpRegOptDefGetAttributes(
|
|
IN PREG_HANDLE Hdl,
|
|
OUT LPWSTR *Name,
|
|
OUT LPWSTR *Comments,
|
|
OUT DWORD *Flags,
|
|
OUT DWORD *OptionId,
|
|
OUT LPWSTR *ClassName,
|
|
OUT LPWSTR *VendorName,
|
|
OUT LPBYTE *Value,
|
|
OUT DWORD *ValueSize
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpRegSScopeGetAttributes( // superscopes dont have any information stored.. dont use this
|
|
IN PREG_HANDLE Hdl,
|
|
OUT LPWSTR *Name,
|
|
OUT LPWSTR *Comment,
|
|
OUT DWORD *Flags
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpRegClassDefGetAttributes(
|
|
IN PREG_HANDLE Hdl,
|
|
OUT LPWSTR *Name,
|
|
OUT LPWSTR *Comment,
|
|
OUT DWORD *Flags,
|
|
OUT LPBYTE *Value,
|
|
OUT DWORD *ValueSize
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpRegSubnetServerGetAttributes(
|
|
IN PREG_HANDLE Hdl,
|
|
OUT LPWSTR *Name,
|
|
OUT LPWSTR *Comment,
|
|
OUT DWORD *Flags,
|
|
OUT DWORD *Address,
|
|
OUT DWORD *Role
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpRegRangeGetAttributes(
|
|
IN PREG_HANDLE Hdl,
|
|
OUT LPWSTR *Name,
|
|
OUT LPWSTR *Comment,
|
|
OUT DWORD *Flags,
|
|
OUT ULONG *AllocCount,
|
|
OUT ULONG *MaxAllocCount,
|
|
OUT DWORD *StartAddress,
|
|
OUT DWORD *EndAddress,
|
|
OUT LPBYTE *InUseClusters,
|
|
OUT DWORD *InUseClusterSize,
|
|
OUT LPBYTE *UsedClusters,
|
|
OUT DWORD *UsedClustersSize
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpRegReservationGetAttributes(
|
|
IN PREG_HANDLE Hdl,
|
|
OUT LPWSTR *Name,
|
|
OUT LPWSTR *Comment,
|
|
OUT DWORD *Flags,
|
|
OUT DWORD *Address,
|
|
OUT LPBYTE *ClientUID,
|
|
OUT DWORD *ClientUIDSize
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpRegOptGetAttributes(
|
|
IN PREG_HANDLE Hdl,
|
|
OUT DWORD *OptionId,
|
|
OUT LPWSTR *ClassName,
|
|
OUT LPWSTR *VendorName,
|
|
OUT DWORD *Flags,
|
|
OUT LPBYTE *Value,
|
|
OUT DWORD *ValueSize
|
|
) ;
|
|
|
|
|
|
//================================================================================
|
|
// the following functiosn help in writing to the registry
|
|
//================================================================================
|
|
|
|
|
|
DWORD
|
|
DhcpRegSaveSubKeys(
|
|
IN PREG_HANDLE Hdl,
|
|
IN OUT PARRAY Array
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpRegSaveSubKeysPrefixed(
|
|
IN PREG_HANDLE Hdl,
|
|
IN OUT PARRAY Array,
|
|
IN LPWSTR CommonPrefix
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpRegServerSetList(
|
|
IN PREG_HANDLE Hdl,
|
|
IN PARRAY OptList, // list of LPWSTR options
|
|
IN PARRAY OptDefList, // list of LPWSTR optdefs
|
|
IN PARRAY Subnets, // list of LPWSTR subnets
|
|
IN PARRAY SScopes, // list of LPWSTR sscopes
|
|
IN PARRAY ClassDefs, // list of LPWSTR classes
|
|
IN PARRAY MScopes // list of LPWSTR mscopes
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpRegSubnetSetExclusions(
|
|
IN PREG_HANDLE Hdl,
|
|
IN LPBYTE *Excl,
|
|
IN DWORD ExclSize
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpRegSubnetSetList(
|
|
IN PREG_HANDLE Hdl,
|
|
IN PARRAY Servers,
|
|
IN PARRAY IpRanges,
|
|
IN PARRAY Reservations,
|
|
IN PARRAY Options,
|
|
IN LPBYTE *Excl,
|
|
IN DWORD ExclSizeInBytes
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpRegSScopeSetList(
|
|
IN PREG_HANDLE Hdl,
|
|
IN OUT PARRAY Subnets
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpRegReservationSetList(
|
|
IN PREG_HANDLE Hdl,
|
|
IN PARRAY Subnets
|
|
) ;
|
|
|
|
|
|
//================================================================================
|
|
// the single stuff are here -- these are not list stuff, but just simple
|
|
// single valued attributes
|
|
// some of these actually, dont even go to the registry, but that's fine alright?
|
|
//================================================================================
|
|
|
|
|
|
DWORD
|
|
DhcpRegServerSetAttributes(
|
|
IN PREG_HANDLE Hdl,
|
|
IN LPWSTR *Name,
|
|
IN LPWSTR *Comment,
|
|
IN DWORD *Flags
|
|
// more attributes will come here soon?
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpRegSubnetSetAttributes(
|
|
IN PREG_HANDLE Hdl,
|
|
IN LPWSTR *Name,
|
|
IN LPWSTR *Comment,
|
|
IN DWORD *Flags,
|
|
IN DWORD *Address,
|
|
IN DWORD *Mask
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpRegMScopeSetAttributes(
|
|
IN PREG_HANDLE Hdl,
|
|
IN LPWSTR *Comments,
|
|
IN DWORD *State,
|
|
IN DWORD *ScopeId,
|
|
IN DWORD *Policy,
|
|
IN DWORD *TTL,
|
|
IN LPWSTR *LangTag,
|
|
IN PDATE_TIME *ExpiryTime
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpRegOptDefSetAttributes(
|
|
IN PREG_HANDLE Hdl,
|
|
IN LPWSTR *Name,
|
|
IN LPWSTR *Comments,
|
|
IN DWORD *Flags,
|
|
IN DWORD *OptionId,
|
|
IN LPWSTR *ClassName,
|
|
IN LPWSTR *VendorName,
|
|
IN LPBYTE *Value,
|
|
IN DWORD ValueSize
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpRegSScopeSetAttributes( // superscopes dont have any information stored.. dont use this
|
|
IN PREG_HANDLE Hdl,
|
|
IN LPWSTR *Name,
|
|
IN LPWSTR *Comment,
|
|
IN DWORD *Flags
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpRegClassDefSetAttributes(
|
|
IN PREG_HANDLE Hdl,
|
|
IN LPWSTR *Name,
|
|
IN LPWSTR *Comment,
|
|
IN DWORD *Flags,
|
|
IN LPBYTE *Value,
|
|
IN DWORD ValueSize
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpRegSubnetServerSetAttributes(
|
|
IN PREG_HANDLE Hdl,
|
|
IN LPWSTR *Name,
|
|
IN LPWSTR *Comment,
|
|
IN DWORD *Flags,
|
|
IN DWORD *Address,
|
|
IN DWORD *Role
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpRegRangeSetAttributes(
|
|
IN PREG_HANDLE Hdl,
|
|
IN LPWSTR *Name,
|
|
IN LPWSTR *Comment,
|
|
IN DWORD *Flags,
|
|
IN ULONG *AllocCount,
|
|
IN ULONG *MaxAllocCount,
|
|
IN DWORD *StartAddress,
|
|
IN DWORD *EndAddress,
|
|
IN LPBYTE *InUseClusters,
|
|
IN DWORD InUseClusterSize,
|
|
IN LPBYTE *UsedClusters,
|
|
IN DWORD UsedClustersSize
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpRegReservationSetAttributes(
|
|
IN PREG_HANDLE Hdl,
|
|
IN LPWSTR *Name,
|
|
IN LPWSTR *Comment,
|
|
IN DWORD *Flags,
|
|
IN DWORD *Address,
|
|
IN LPBYTE *ClientUID,
|
|
IN DWORD ClientUIDSize
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpRegOptSetAttributes(
|
|
IN PREG_HANDLE Hdl,
|
|
IN DWORD *OptionId,
|
|
IN LPWSTR *ClassName,
|
|
IN LPWSTR *VendorName,
|
|
IN DWORD *Flags,
|
|
IN LPBYTE *Value,
|
|
IN DWORD ValueSize
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpRegRecurseDelete(
|
|
IN PREG_HANDLE Hdl,
|
|
IN LPWSTR KeyName
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpRegRecurseDeleteBunch(
|
|
IN PREG_HANDLE Hdl,
|
|
IN PARRAY KeysArray
|
|
) ;
|
|
|
|
|
|
DWORD
|
|
DhcpRegUpdateTime( // update the last modified time
|
|
VOID
|
|
) ;
|
|
|
|
|
|
#endif // _MMREG_REGUTIL_H
|
|
|
|
//========================================================================
|
|
// end of file
|
|
//========================================================================
|
|
|
|
|