/********************************************************************
Copyright (c) 1999 Microsoft Corporation

Module Name:
    sfprpc.idl

Abstract:
    IDL file for rpc interface defintions
	Defines 
		srrpc  - with rpc routines for system restore related operations

Revision History:

    Brijesh Krishnaswami (brijeshk) - 07/08/99 - Created

********************************************************************/

// SR interface
[ uuid (3f77b086-3a17-11d3-9166-00c04f688e28),
  version(1.0),
  pointer_default(unique)
]
interface srrpc
{

import "import.idl";
import "srrestoreptapi.h";

DWORD  DisableSRS([in] handle_t hl, 
				  [in, string, unique] LPCWSTR pszDrive);

DWORD  EnableSRS([in] handle_t hl,
				 [in, string, unique] LPCWSTR pszDrive);

DWORD  ResetSRS([in] handle_t hl, 
			    [in, string, unique] LPCWSTR pszDrive);


DWORD  SRUpdateMonitoredListS([in] handle_t hl, 
							  [in, string] LPCWSTR pszXmlFile);

BOOL   SRSetRestorePointS(
		[in] handle_t hl, 
    	[in, unique] PRESTOREPOINTINFOW  pRestorePtSpec, 
    	[out]        PSTATEMGRSTATUS     pSMgrStatus);
    	
BOOL   SRRemoveRestorePointS(
		[in] handle_t hl, 
		[in] DWORD dwRPNum);
    	
DWORD  DisableFIFOS([in] handle_t hl, 
				    [in] DWORD dwRPNum);
DWORD  EnableFIFOS([in] handle_t hl);

DWORD  SRUpdateDSSizeS([in] handle_t hl, 
					   [in, string, unique] LPCWSTR pszDrive, 
					   [in] UINT64 ullSizeLimit);
					   
DWORD  SRSwitchLogS([in] handle_t hl);

void   SRNotifyS([in] handle_t hl, 
			     [in, string] LPCWSTR pszDrive, 
			     [in] DWORD dwFreeSpaceInMB, [in] BOOL fImproving);

// test api
DWORD	FifoS(
			  [in] handle_t hl, 
		      [in, string, unique] LPCWSTR pszDrive,
			  [in] DWORD dwTargetRp, 
			  [in] int nPercent,
			  [in] BOOL fIncludeCurrentRp,
			  [in] BOOL fFifoAtleastOneRp);

DWORD	CompressS([in] handle_t hl,
				  [in, string, unique] LPCWSTR pszDrive);
DWORD	FreezeS([in] handle_t hl, 
                [in, string, unique] LPCWSTR pszDrive);	

DWORD	SRPrintStateS([in] handle_t hl);	

}
