124 lines
2 KiB
C++
124 lines
2 KiB
C++
|
/*++
|
||
|
|
||
|
Copyright (c) 2000 Microsoft Corporation
|
||
|
All rights reserved
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
checkpoint.hxx
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
This file implements a class (or for 'C' handle based) calls to set and
|
||
|
restore system breakpoints.
|
||
|
|
||
|
Author:
|
||
|
|
||
|
Mark Lawrence (mlawrenc).
|
||
|
|
||
|
Environment:
|
||
|
|
||
|
User Mode -Win32
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
--*/
|
||
|
#ifndef _CHECKPOINT_HXX_
|
||
|
#define _CHECKPOINT_HXX_
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
|
||
|
//
|
||
|
// This only needs to be included from C++ includers, and is a very small header indeed.
|
||
|
//
|
||
|
#include <srrestoreptapi.h>
|
||
|
|
||
|
class TSystemRestorePoint
|
||
|
{
|
||
|
|
||
|
SIGNATURE('srsp');
|
||
|
|
||
|
public:
|
||
|
|
||
|
TSystemRestorePoint(
|
||
|
VOID
|
||
|
);
|
||
|
|
||
|
~TSystemRestorePoint(
|
||
|
VOID
|
||
|
);
|
||
|
|
||
|
HRESULT
|
||
|
IsValid(
|
||
|
VOID
|
||
|
) const;
|
||
|
|
||
|
HRESULT
|
||
|
StartSystemRestorePoint(
|
||
|
IN PCWSTR pszServer,
|
||
|
IN PCWSTR pszDriverName,
|
||
|
IN HINSTANCE hInst,
|
||
|
IN UINT ResId
|
||
|
);
|
||
|
|
||
|
HRESULT
|
||
|
EndSystemRestorePoint(
|
||
|
IN BOOL bCancel
|
||
|
);
|
||
|
|
||
|
private:
|
||
|
|
||
|
typedef BOOL
|
||
|
(__stdcall* PFnSRSetRestorePoint)(
|
||
|
IN PRESTOREPOINTINFOW pRestorePtSpec,
|
||
|
OUT PSTATEMGRSTATUS pSMgrStatus
|
||
|
);
|
||
|
|
||
|
//
|
||
|
// Copying and assignment are not defined.
|
||
|
//
|
||
|
TSystemRestorePoint(const TSystemRestorePoint &);
|
||
|
TSystemRestorePoint &operator=(const TSystemRestorePoint &);
|
||
|
|
||
|
HRESULT
|
||
|
Initialize(
|
||
|
VOID
|
||
|
);
|
||
|
|
||
|
HMODULE m_hLibrary;
|
||
|
PFnSRSetRestorePoint m_pfnSetRestorePoint;
|
||
|
RESTOREPOINTINFO m_RestorePointInfo;
|
||
|
BOOL m_bSystemRestoreSet;
|
||
|
HRESULT m_hr;
|
||
|
};
|
||
|
|
||
|
extern "C"
|
||
|
{
|
||
|
|
||
|
#endif
|
||
|
|
||
|
HRESULT
|
||
|
GetLastErrorAsHResult(
|
||
|
VOID
|
||
|
);
|
||
|
|
||
|
HANDLE
|
||
|
StartSystemRestorePoint(
|
||
|
IN PCWSTR pszServer,
|
||
|
IN PCWSTR pszDriverName,
|
||
|
IN HINSTANCE hInst,
|
||
|
IN UINT ResId
|
||
|
);
|
||
|
|
||
|
BOOL
|
||
|
EndSystemRestorePoint(
|
||
|
IN HANDLE hRestorePoint,
|
||
|
IN BOOL bCancel
|
||
|
);
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#endif // #ifndef _CHECKPOINT_HXX_
|