Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/******************************************************************************
* * Copyright (c) 2000 Microsoft Corporation * * Module Name: * snapshot.h * * Abstract: * CSnapshot, CSnapshot class definitions * * Revision History: * Ashish Sikka (ashishs) 05/05/2000 * created * *****************************************************************************/
#ifndef _SNAPSHOT_H_
#define _SNAPSHOT_H_
typedef HRESULT (WINAPI *PF_REG_DB_API)(PWCHAR); typedef DWORD (WINAPI *PSNAPSHOTCALLBACK) (LPCWSTR);
class CTokenPrivilege { public: DWORD SetPrivilegeInAccessToken(WCHAR * pszPrivilegeName);
CTokenPrivilege () { m_fNewToken = FALSE; } ~CTokenPrivilege () { if (m_fNewToken) SetThreadToken (NULL, NULL); // remove impersonation token
} private: BOOL m_fNewToken; };
class CSnapshot { public: CSnapshot(); ~CSnapshot(); DWORD CreateSnapshot(WCHAR * pszRestoreDir, HMODULE hCOMDll, LPWSTR pszRpLast, BOOL fSerialized);
// This function must be called to Initialize a restore
// operation. This must be called before calling
// GetSystemHivePath GetSoftwareHivePath
DWORD InitRestoreSnapshot(WCHAR * pszRestoreDir);
// Caller must reboot machine after calling this function
DWORD RestoreSnapshot(WCHAR * pszRestoreDir);
DWORD DeleteSnapshot(WCHAR * pszRestoreDir);
// this returns the path of the system hive. The caller must pass
// in a buffer with length of this buffer in dwNumChars
DWORD GetSystemHivePath(WCHAR * pszRestoreDir, WCHAR * pszHivePath, DWORD dwNumChars);
// this returns the path of the software hive. The caller must pass
// in a buffer with length of this buffer in dwNumChars
DWORD GetSoftwareHivePath(WCHAR * pszRestoreDir, WCHAR * pszHivePath, DWORD dwNumChars);
DWORD GetSamHivePath (WCHAR * pszRestoreDir, WCHAR * pszHivePath, DWORD dwNumChars);
// this function must be called after a restore operation to
// cleanup files created by RegReplaceKey.
DWORD CleanupAfterRestore(WCHAR * pszRestoreDir); private: HMODULE m_hRegdbDll ; PF_REG_DB_API m_pfnRegDbBackup; PF_REG_DB_API m_pfnRegDbRestore; DWORD DoCOMDbSnapshot(WCHAR * pszSnapshotDir, HMODULE hCOMDll); DWORD DoRegistrySnapshot(WCHAR * pszSnapshotDir); DWORD RestoreRegistrySnapshot(WCHAR * pszSnapShotDir); DWORD RestoreCOMDbSnapshot(WCHAR * pszSnapShotDir); DWORD GetCOMplusBackupFN(HMODULE hCOMDll); DWORD GetCOMplusRestoreFN(); };
#endif // _SNAPSHOT_H_
|