windows-nt/Source/XPSP1/NT/net/rras/upgrade/steelhead2nt5/utils.h
2020-09-26 16:20:57 +08:00

165 lines
2.7 KiB
C

/*
File uitls.h
A set of utilities useful for upgrading mpr v1 to NT 5.0.
Paul Mayfield, 9/11/97
*/
#ifndef _rtrupg_utils_h
#define _rtrupg_utils_h
//
// Definitions for a DWORD table (dwt)
//
typedef struct _tag_dwValueNode
{
PWCHAR Name;
DWORD Value;
} dwValueNode;
typedef struct _tag_DWordTable
{
DWORD dwCount;
DWORD dwSize;
dwValueNode * pValues;
} dwt, *pdwt;
//
// Typedef for callback functions in interface enumeration.
// Return TRUE to continue the enumeration, FALSE to stop it.
//
typedef
BOOL
(*IfEnumFuncPtr)(
IN HANDLE hConfig, // MprConfig handle
IN MPR_INTERFACE_0 * pIf, // Interface reference
IN HANDLE hUserData); // User defined
//
// Typedef for callback functions for enumerating registry sub keys.
// Return NO_ERROR to continue, error code to stop.
//
typedef
DWORD
(*RegKeyEnumFuncPtr)(
IN PWCHAR pszName, // sub key name
IN HKEY hKey, // sub key
IN HANDLE hData);
//
// Functions that manipulate dword tables
//
DWORD
dwtInitialize(
IN dwt *This,
IN DWORD dwCount,
IN DWORD dwMaxSize);
DWORD
dwtCleanup(
IN dwt *This);
DWORD
dwtPrint(IN dwt *This);
DWORD
dwtGetValue(
IN dwt *This,
IN PWCHAR ValName,
OUT LPDWORD pValue);
DWORD
dwtLoadRegistyTable(
IN dwt *This,
IN HKEY hkParams);
//
// Enumerates interfaces from the registry
//
DWORD
UtlEnumerateInterfaces (
IN IfEnumFuncPtr pCallback,
IN HANDLE hUserData);
DWORD
UtlEnumRegistrySubKeys(
IN HKEY hkRoot,
IN PWCHAR pszPath,
IN RegKeyEnumFuncPtr pCallback,
IN HANDLE hData);
//
// If the given info blob exists in the given toc header
// reset it with the given information, otherwise add
// it as an entry in the TOC.
//
DWORD
UtlUpdateInfoBlock (
IN BOOL bOverwrite,
IN LPVOID pHeader,
IN DWORD dwEntryId,
IN DWORD dwSize,
IN DWORD dwCount,
IN LPBYTE pEntry,
OUT LPVOID* ppNewHeader,
OUT LPDWORD lpdwNewSize);
//
// Other handy definitions
//
#if DBG
#define PrintMessage OutputDebugStringW
#else
#define PrintMessage
#endif
// Common allocation routine
PVOID
UtlAlloc (
IN DWORD dwSize);
// Common deallocation routine
VOID
UtlFree (
PVOID pvBuffer);
PWCHAR
UtlDupString(
IN PWCHAR pszString);
// Error printing
void
UtlPrintErr(
DWORD err);
// Helper functions
DWORD
UtlAccessRouterKey(
HKEY* hkeyRouter);
DWORD
UtlSetupBackupPrivelege(
BOOL bEnable);
DWORD
UtlSetupRestorePrivilege(
BOOL bEnable);
DWORD
UtlLoadSavedSettings(
IN HKEY hkRoot,
IN PWCHAR pszTempKey,
IN PWCHAR pszFile,
OUT PHKEY phTemp);
DWORD
UtlDeleteRegistryTree(
IN HKEY hkRoot);
DWORD
UtlMarkRouterConfigured();
#endif