154 lines
4.4 KiB
C
154 lines
4.4 KiB
C
/******************************************************************************
|
|
|
|
Copyright (c) 2000 Microsoft Corporation
|
|
|
|
Module Name:
|
|
SRRestorePtAPI.h
|
|
|
|
Abstract:
|
|
This file contains the declarations for the SRRESTOREPT_API
|
|
|
|
******************************************************************************/
|
|
|
|
#if !defined( _SRRESTOREPTAPI_H )
|
|
#define _SRRESTOREPTAPI_H
|
|
|
|
//
|
|
// Type of Event
|
|
//
|
|
|
|
#define MIN_EVENT 100
|
|
#define BEGIN_SYSTEM_CHANGE 100
|
|
#define END_SYSTEM_CHANGE 101
|
|
#define BEGIN_NESTED_SYSTEM_CHANGE 102 // for Whistler only - use this to prevent nested restore pts
|
|
#define END_NESTED_SYSTEM_CHANGE 103 // for Whistler only - use this to prevent nested restore pts
|
|
#define MAX_EVENT 103
|
|
|
|
//
|
|
// Type of Restore Points
|
|
//
|
|
|
|
#define MIN_RPT 0
|
|
#define APPLICATION_INSTALL 0
|
|
#define APPLICATION_UNINSTALL 1
|
|
#define DESKTOP_SETTING 2 /* Not implemented */
|
|
#define ACCESSIBILITY_SETTING 3 /* Not implemented */
|
|
#define OE_SETTING 4 /* Not implemented */
|
|
#define APPLICATION_RUN 5 /* Not implemented */
|
|
#define RESTORE 6
|
|
#define CHECKPOINT 7
|
|
#define WINDOWS_SHUTDOWN 8 /* Not implemented */
|
|
#define WINDOWS_BOOT 9 /* Not implemented */
|
|
#define DEVICE_DRIVER_INSTALL 10
|
|
#define FIRSTRUN 11
|
|
#define MODIFY_SETTINGS 12
|
|
#define CANCELLED_OPERATION 13 /* Only valid for END_SYSTEM_CHANGE */
|
|
#define BACKUP_RECOVERY 14
|
|
#define MAX_RPT 14
|
|
|
|
|
|
#define MAX_DESC 64
|
|
#define MAX_DESC_W 256 // longer for Whistler
|
|
|
|
//
|
|
// for Millennium compatibility
|
|
//
|
|
|
|
#pragma pack(push, srrestoreptapi_include)
|
|
#pragma pack(1)
|
|
|
|
//
|
|
// Restore point information
|
|
//
|
|
|
|
typedef struct _RESTOREPTINFOA {
|
|
DWORD dwEventType; // Type of Event - Begin or End
|
|
DWORD dwRestorePtType; // Type of Restore Point - App install/uninstall
|
|
INT64 llSequenceNumber; // Sequence Number - 0 for begin
|
|
CHAR szDescription[MAX_DESC]; // Description - Name of Application / Operation
|
|
} RESTOREPOINTINFOA, *PRESTOREPOINTINFOA;
|
|
|
|
typedef struct _RESTOREPTINFOW {
|
|
DWORD dwEventType;
|
|
DWORD dwRestorePtType;
|
|
INT64 llSequenceNumber;
|
|
WCHAR szDescription[MAX_DESC_W];
|
|
} RESTOREPOINTINFOW, *PRESTOREPOINTINFOW;
|
|
|
|
|
|
//
|
|
// Status returned by System Restore
|
|
//
|
|
|
|
typedef struct _SMGRSTATUS {
|
|
DWORD nStatus; // Status returned by State Manager Process
|
|
INT64 llSequenceNumber; // Sequence Number for the restore point
|
|
} STATEMGRSTATUS, *PSTATEMGRSTATUS;
|
|
|
|
#pragma pack(pop, srrestoreptapi_include)
|
|
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
//
|
|
// RPC call to set a restore point
|
|
//
|
|
// Return value TRUE if the call was a success
|
|
// FALSE if the call failed
|
|
//
|
|
// If pSmgrStatus nStatus field is set as follows
|
|
//
|
|
// ERROR_SUCCESS If the call succeeded (return value will be TRUE)
|
|
//
|
|
// ERROR_TIMEOUT If the call timed out due to a wait on a mutex for
|
|
// for setting restore points.
|
|
//
|
|
// ERROR_INVALID_DATA If the cancel restore point is called with an invalid
|
|
// sequence number
|
|
//
|
|
// ERROR_INTERNAL_ERROR If there are internal failures.
|
|
//
|
|
// ERROR_BAD_ENVIRONMENT If the API is called in SafeMode
|
|
//
|
|
// ERROR_SERVICE_DISABLED If SystemRestore is Disabled.
|
|
//
|
|
// ERROR_DISK_FULL If System Restore is frozen (Windows Whistler only)
|
|
//
|
|
// ERROR_ALREADY_EXISTS If this is a nested restore point
|
|
|
|
BOOL __stdcall
|
|
SRSetRestorePointA(
|
|
PRESTOREPOINTINFOA pRestorePtSpec, // [in] Restore Point specification
|
|
PSTATEMGRSTATUS pSMgrStatus // [out] Status returned
|
|
);
|
|
|
|
|
|
BOOL __stdcall
|
|
SRSetRestorePointW(
|
|
PRESTOREPOINTINFOW pRestorePtSpec,
|
|
PSTATEMGRSTATUS pSMgrStatus
|
|
);
|
|
|
|
DWORD __stdcall
|
|
SRRemoveRestorePoint(DWORD dwRPNum);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
|
|
#ifdef UNICODE
|
|
#define RESTOREPOINTINFO RESTOREPOINTINFOW
|
|
#define PRESTOREPOINTINFO PRESTOREPOINTINFOW
|
|
#define SRSetRestorePoint SRSetRestorePointW
|
|
#else
|
|
#define RESTOREPOINTINFO RESTOREPOINTINFOA
|
|
#define PRESTOREPOINTINFO PRESTOREPOINTINFOA
|
|
#define SRSetRestorePoint SRSetRestorePointA
|
|
#endif
|
|
|
|
|
|
#endif // !defined( _RESTOREPTAPI_H )
|