|
|
/*
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
|