#include "idl_types.h" /* * File Server Remote VSS Protocol Definitions */ import "misc.idl"; [ uuid("a8e0653c-2744-4389-a61d-7373df8b2292"), version(1.0), endpoint("ncacn_np:[\\pipe\\FssagentRpc]"), helpstring("File Server Remote VSS Protocol"), pointer_default(unique) ] interface FileServerVssAgent { const uint32 FSRVP_E_BAD_STATE = 0x80042301; const uint32 FSRVP_E_SHADOW_COPY_SET_IN_PROGRESS = 0x80042316; const uint32 FSRVP_E_NOT_SUPPORTED = 0x8004230C; const uint32 FSRVP_E_WAIT_TIMEOUT = 0x00000102; const uint32 FSRVP_E_WAIT_FAILED = 0xFFFFFFFF; const uint32 FSRVP_E_OBJECT_ALREADY_EXISTS = 0x8004230D; const uint32 FSRVP_E_OBJECT_NOT_FOUND = 0x80042308; const uint32 FSRVP_E_UNSUPPORTED_CONTEXT = 0x8004231B; const uint32 FSRVP_E_BAD_ID = 0x80042302; /* wire, not documented */ const uint32 FSRVP_E_SHADOWCOPYSET_ID_MISMATCH = 0x80042501; typedef struct { GUID ShadowCopySetId; GUID ShadowCopyId; [string,charset(UTF16)] uint16 *ShareNameUNC; [string,charset(UTF16)] uint16 *ShadowCopyShareName; NTTIME tstamp; } fssagent_share_mapping_1; typedef union { [case(1)] fssagent_share_mapping_1 *ShareMapping1; [default]; } fssagent_share_mapping; const uint32 FSRVP_RPC_VERSION_1 = 0x00000001; DWORD fss_GetSupportedVersion( [out] uint32 *MinVersion, [out] uint32 *MaxVersion); const uint32 ATTR_PERSISTENT = 0x00000001; const uint32 ATTR_NO_AUTO_RECOVERY = 0x00000002; const uint32 ATTR_NO_AUTO_RELEASE = 0x00000008; const uint32 ATTR_NO_WRITERS = 0x00000010; const uint32 ATTR_FILE_SHARE = 0x04000000; const uint32 ATTR_AUTO_RECOVERY = 0x00400000; const uint32 FSRVP_CTX_BACKUP = 0x00000000; const uint32 FSRVP_CTX_FILE_SHARE_BACKUP = 0x00000010; const uint32 FSRVP_CTX_NAS_ROLLBACK = 0x00000019; const uint32 FSRVP_CTX_APP_ROLLBACK = 0x00000009; DWORD fss_SetContext( [in] uint32 Context); DWORD fss_StartShadowCopySet( [in] GUID ClientShadowCopySetId, [out] GUID *pShadowCopySetId); DWORD fss_AddToShadowCopySet( [in] GUID ClientShadowCopyId, [in] GUID ShadowCopySetId, [in] [string,charset(UTF16)] uint16 *ShareName, [out] GUID *pShadowCopyId); DWORD fss_CommitShadowCopySet( [in] GUID ShadowCopySetId, [in] uint32 TimeOutInMilliseconds); DWORD fss_ExposeShadowCopySet( [in] GUID ShadowCopySetId, [in] uint32 TimeOutInMilliseconds); DWORD fss_RecoveryCompleteShadowCopySet( [in] GUID ShadowCopySetId); DWORD fss_AbortShadowCopySet( [in] GUID ShadowCopySetId); DWORD fss_IsPathSupported( [in] [string,charset(UTF16)] uint16 *ShareName, [out] boolean32 *SupportedByThisProvider, [out] [string,charset(UTF16)] uint16 **OwnerMachineName); DWORD fss_IsPathShadowCopied( [in] [string,charset(UTF16)] uint16 *ShareName, [out] boolean32 *ShadowCopyPresent, [out] int32 *ShadowCopyCompatibility); DWORD fss_GetShareMapping( [in] GUID ShadowCopyId, [in] GUID ShadowCopySetId, [in] [string,charset(UTF16)] uint16 *ShareName, [in] uint32 Level, [out,switch_is(Level)] fssagent_share_mapping *ShareMapping); DWORD fss_DeleteShareMapping( [in] GUID ShadowCopySetId, [in] GUID ShadowCopyId, [in] [string,charset(UTF16)] uint16 *ShareName); DWORD fss_PrepareShadowCopySet( [in] GUID ShadowCopySetId, [in] uint32 TimeOutInMilliseconds); }