135 lines
7.4 KiB
C
135 lines
7.4 KiB
C
//--------------------------------------------------------------------------------
|
|
// 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
|
|
);
|
|
|
|
#endif OPTREG_H
|
|
|