/* header auto-generated by pidl */

#ifndef _PIDL_HEADER_FileServerVssAgent
#define _PIDL_HEADER_FileServerVssAgent

#include <stdint.h>

#include "libcli/util/ntstatus.h"

#include "librpc/gen_ndr/misc.h"
#ifndef _HEADER_FileServerVssAgent
#define _HEADER_FileServerVssAgent

#define FSRVP_E_BAD_STATE	( 0x80042301 )
#define FSRVP_E_SHADOW_COPY_SET_IN_PROGRESS	( 0x80042316 )
#define FSRVP_E_NOT_SUPPORTED	( 0x8004230C )
#define FSRVP_E_WAIT_TIMEOUT	( 0x00000102 )
#define FSRVP_E_WAIT_FAILED	( 0xFFFFFFFF )
#define FSRVP_E_OBJECT_ALREADY_EXISTS	( 0x8004230D )
#define FSRVP_E_OBJECT_NOT_FOUND	( 0x80042308 )
#define FSRVP_E_BAD_ID	( 0x80042302 )
#define E_ACCESSDENIED	( 0x80070005 )
#define E_INVALIDARG	( 0x80070057 )
#define E_OUTOFMEMORY	( 0x80000002 )
#define FSRVP_RPC_VERSION_1	( 0x000000001 )
#define ATTR_PERSISTENT	( 0x00000001 )
#define ATTR_NO_AUTO_RECOVERY	( 0x00000002 )
#define ATTR_NO_AUTO_RELEASE	( 0x00000008 )
#define ATTR_NO_WRITERS	( 0x00000010 )
#define ATTR_FILE_SHARE	( 0x04000000 )
#define ATTR_AUTO_RECOVERY	( 0x00400000 )
#define FSRVP_CTX_BACKUP	( 0x00000000 )
#define FSRVP_CTX_FILE_SHARE_BACKUP	( 0x00000010 )
#define FSRVP_CTX_NAS_ROLLBACK	( 0x00000019 )
#define FSRVP_CTX_APP_ROLLBACK	( 0x00000009 )
struct fssagent_share_mapping_1 {
	struct GUID ShadowCopySetId;
	struct GUID ShadowCopyId;
	const char *ShareNameUNC;/* [unique,charset(UTF16)] */
	const char *ShadowCopyShareName;/* [unique,charset(UTF16)] */
	NTTIME tstamp;
};

union fssagent_share_mapping {
	struct fssagent_share_mapping_1 *ShareMapping1;/* [unique,case] */
};


struct fss_GetSupportedVersion {
	struct {
		uint8_t magic[52];
	} in;

	struct {
		uint32_t *MinVersion;/* [ref] */
		uint32_t *MaxVersion;/* [ref] */
		uint32_t result;
	} out;

};


struct fss_SetContext {
	struct {
		uint32_t Context;
	} in;

	struct {
		uint32_t result;
	} out;

};


struct fss_StartShadowCopySet {
	struct {
		struct GUID ClientShadowCopySetId;
	} in;

	struct {
		struct GUID *pShadowCopySetId;/* [ref] */
		uint32_t result;
	} out;

};


struct fss_AddToShadowCopySet {
	struct {
		struct GUID ClientShadowCopyId;
		struct GUID ShadowCopySetId;
		const char *ShareName;/* [ref,charset(UTF16)] */
	} in;

	struct {
		struct GUID *pShadowCopyId;/* [ref] */
		uint32_t result;
	} out;

};


struct fss_CommitShadowCopySet {
	struct {
		struct GUID ShadowCopySetId;
		uint32_t TimeOutInMilliseconds;
	} in;

	struct {
		uint32_t result;
	} out;

};


struct fss_ExposeShadowCopySet {
	struct {
		struct GUID ShadowCopySetId;
		uint32_t TimeOutInMilliseconds;
	} in;

	struct {
		uint32_t result;
	} out;

};


struct fss_RecoveryCompleteShadowCopySet {
	struct {
		struct GUID ShadowCopySetId;
	} in;

	struct {
		uint32_t result;
	} out;

};


struct fss_AbortShadowCopySet {
	struct {
		struct GUID ShadowCopySetId;
	} in;

	struct {
		uint32_t result;
	} out;

};


struct fss_IsPathSupported {
	struct {
		const char *ShareName;/* [ref,charset(UTF16)] */
		uint8_t magic[52];
	} in;

	struct {
		uint32_t *SupportedByThisProvider;/* [ref] */
		const char **OwnerMachineName;/* [ref,charset(UTF16)] */
		uint32_t result;
	} out;

};


struct fss_IsPathShadowCopied {
	struct {
		const char *ShareName;/* [ref,charset(UTF16)] */
	} in;

	struct {
		uint32_t *ShadowCopyPresent;/* [ref] */
		int32_t *ShadowCopyCompatibility;/* [ref] */
		uint32_t result;
	} out;

};


struct fss_GetShareMapping {
	struct {
		struct GUID ShadowCopyId;
		struct GUID ShadowCopySetId;
		const char *ShareName;/* [ref,charset(UTF16)] */
		uint32_t Level;
	} in;

	struct {
		union fssagent_share_mapping *ShareMapping;/* [ref,switch_is(Level)] */
		uint32_t result;
	} out;

};


struct fss_DeleteShareMapping {
	struct {
		struct GUID ShadowCopySetId;
		struct GUID ShadowCopyId;
		const char *ShareName;/* [ref,charset(UTF16)] */
	} in;

	struct {
		uint32_t result;
	} out;

};


struct fss_PrepareShadowCopySet {
	struct {
		struct GUID ShadowCopySetId;
		uint32_t TimeOutInMilliseconds;
	} in;

	struct {
		uint32_t result;
	} out;

};

#endif /* _HEADER_FileServerVssAgent */
#endif /* _PIDL_HEADER_FileServerVssAgent */
