|
|
//--------------------------------------------------------------------------------
// Copyright (C) Micorosoft Confidential 1997
// Author: RameshV
// Description: Option related registry handling -- common between NT and VxD
//--------------------------------------------------------------------------------
#ifndef OPTREG_H
#define OPTREG_H
//--------------------------------------------------------------------------------
// Exported functions: Caller must take locks and any lists accessed
//--------------------------------------------------------------------------------
DWORD // status
DhcpRegReadOptionDefList( // fill DhcpGlobalOptionDefList
VOID );
DWORD // status
DhcpRegFillSendOptions( // fill in the list of options for SENDING
IN OUT PLIST_ENTRY SendOptList, // list to add too
IN LPWSTR AdapterName, // adapter name to fill for
IN LPBYTE ClassId, // class id to assume for filling
IN DWORD ClassIdLen // the length of the classId in bytes
);
DWORD // status
DhcpRegSaveOptions( // save these options onto the registry
IN PLIST_ENTRY SaveOptList, // list of options to save
IN LPWSTR AdapterName, // adapter name
IN LPBYTE ClassName, // the current class
IN DWORD ClassLen // length of the above in bytes
);
BOOLEAN // status
DhcpRegIsOptionChanged( IN PLIST_ENTRY SaveOptList, // list of options to save
IN LPWSTR AdapterName, // adapter name
IN LPBYTE ClassName, // the current class
IN DWORD ClassLen // length of the above in bytes
);
DWORD // status
DhcpRegReadOptionCache( // read the list of options from cache
IN OUT PLIST_ENTRY OptionsList, // add the options to this list
IN HKEY KeyHandle, // registry key where options are stored
IN LPWSTR ValueName, // name of the value holding the options blob
IN BOOLEAN fAddClassList );
POPTION // option from which more appends can occur
DhcpAppendSendOptions( // append all configured options
IN OUT PDHCP_CONTEXT DhcpContext, // this is the context to append for
IN PLIST_ENTRY SendOptionsList, IN LPBYTE ClassName, // current class
IN DWORD ClassLen, // len of above in bytes
IN LPBYTE BufStart, // start of buffer
IN LPBYTE BufEnd, // how far can we go in this buffer
IN OUT LPBYTE SentOptions, // BoolArray[OPTION_END+1] to avoid repeating options
IN OUT LPBYTE VSentOptions, // to avoid repeating vendor specific options
IN OUT LPBYTE VendorOpt, // Buffer[OPTION_END+1] Holding Vendor specific options
OUT LPDWORD VendorOptLen // the # of bytes filled into that
);
DWORD // status
DhcpAddIncomingOption( // this option just arrived, add it to list
IN LPWSTR AdapterName, IN OUT PLIST_ENTRY RecdOptionsList, IN DWORD OptionId, // option id of the option
IN BOOL IsVendor, // is it vendor specific?
IN LPBYTE ClassName, // what is the class name?
IN DWORD ClassLen, // what is the class name's lenght in bytes?
IN DWORD ServerId, // server ip from which this option came
IN LPBYTE Data, // this is the real data value coming in
IN DWORD DataLen, // the length of above in # of bytes
IN time_t ExpiryTime, // when does this option expire?
IN BOOL IsApiCall // is this coming from an API call?
);
DWORD // status
DhcpCopyFallbackOptions( // copies the Fallback options list to RecdOptionsList
IN OUT PDHCP_CONTEXT DhcpContext, // NIC context
OUT LPDHCP_IP_ADDRESS Address, // Fallback address as taken from option 50
OUT LPDHCP_IP_ADDRESS SubnetMask // SubnetMask as taken from option 1
);
DWORD // status
MadcapAddIncomingOption( // this option just arrived, add it to list
IN OUT PLIST_ENTRY RecdOptionsList, IN DWORD OptionId, // option id of the option
IN DWORD ServerId, // server ip from which this option came
IN LPBYTE Data, // this is the real data value coming in
IN DWORD DataLen, // the length of above in # of bytes
IN DWORD ExpiryTime // when does this option expire?
);
DWORD // status
DhcpDestroyOptionsList( // destroy a list of options, freeing up memory
IN OUT PLIST_ENTRY OptionsList, // this is the list of options to destroy
IN PLIST_ENTRY ClassesList // this is where to remove classes off
);
DWORD // win32 status
DhcpClearAllOptions( // remove all turds from off registry
IN OUT PDHCP_CONTEXT DhcpContext // the context to clear for
);
DWORD // status
DhcpRegSaveOptionAtLocation( // save this option at this particular location
IN PDHCP_OPTION OptionInfo, // optin to save
IN LPWSTR RegLocation, // location to save at
IN DWORD RegValueType, // type of the value to save at
IN BOOL SpecialCase // dirty downward compatabiltiy?
);
DWORD // status
DhcpRegSaveOptionAtLocationEx( // save the option in the required place in registry
IN PDHCP_OPTION OptionInfo, // save THIS option
IN LPWSTR AdapterName, // for this adpater,
IN LPWSTR RegLocMZ, // multiple locations in the registry
IN DWORD SaveValueType // What is the type of the value?
);
DWORD DhcpRegDeleteIpAddressAndOtherValues( // delete IPAddress, SubnetMask values from off key
IN HKEY Key // handle to adapter regkey..
);
DWORD // status
DhcpRegClearOptDefs( // clear all standard options
IN LPWSTR AdapterName // clear for this adapter
);
DWORD DhcpDeleteRegistryOption( LPWSTR pwstrAdapterName, DWORD dwOption, BOOL bIsVendor );
VOID DhcpCleanupOptionDefList( IN PLIST_ENTRY OptionDefList );
#endif OPTREG_H
|