/* parser auto-generated by pidl */

#include "includes.h"
#include "autoconf/librpc/gen_ndr/ndr_fsrvp.h"

#include "librpc/gen_ndr/ndr_misc.h"
static enum ndr_err_code ndr_push_fssagent_share_mapping_1(struct ndr_push *ndr, int ndr_flags, const struct fssagent_share_mapping_1 *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_align(ndr, 5));
		NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->ShadowCopySetId));
		NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->ShadowCopyId));
		NDR_CHECK(ndr_push_unique_ptr(ndr, r->ShareNameUNC));
		NDR_CHECK(ndr_push_unique_ptr(ndr, r->ShadowCopyShareName));
		NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->tstamp));
		NDR_CHECK(ndr_push_trailer_align(ndr, 5));
	}
	if (ndr_flags & NDR_BUFFERS) {
		if (r->ShareNameUNC) {
			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->ShareNameUNC, CH_UTF16)));
			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->ShareNameUNC, CH_UTF16)));
			NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ShareNameUNC, ndr_charset_length(r->ShareNameUNC, CH_UTF16), sizeof(uint16_t), CH_UTF16));
		}
		if (r->ShadowCopyShareName) {
			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->ShadowCopyShareName, CH_UTF16)));
			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->ShadowCopyShareName, CH_UTF16)));
			NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ShadowCopyShareName, ndr_charset_length(r->ShadowCopyShareName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
		}
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_fssagent_share_mapping_1(struct ndr_pull *ndr, int ndr_flags, struct fssagent_share_mapping_1 *r)
{
	uint32_t _ptr_ShareNameUNC;
	uint32_t size_ShareNameUNC_1 = 0;
	uint32_t length_ShareNameUNC_1 = 0;
	TALLOC_CTX *_mem_save_ShareNameUNC_0;
	uint32_t _ptr_ShadowCopyShareName;
	uint32_t size_ShadowCopyShareName_1 = 0;
	uint32_t length_ShadowCopyShareName_1 = 0;
	TALLOC_CTX *_mem_save_ShadowCopyShareName_0;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_align(ndr, 5));
		NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->ShadowCopySetId));
		NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->ShadowCopyId));
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ShareNameUNC));
		if (_ptr_ShareNameUNC) {
			NDR_PULL_ALLOC(ndr, r->ShareNameUNC);
		} else {
			r->ShareNameUNC = NULL;
		}
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ShadowCopyShareName));
		if (_ptr_ShadowCopyShareName) {
			NDR_PULL_ALLOC(ndr, r->ShadowCopyShareName);
		} else {
			r->ShadowCopyShareName = NULL;
		}
		NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->tstamp));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
	}
	if (ndr_flags & NDR_BUFFERS) {
		if (r->ShareNameUNC) {
			_mem_save_ShareNameUNC_0 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, r->ShareNameUNC, 0);
			NDR_CHECK(ndr_pull_array_size(ndr, &r->ShareNameUNC));
			NDR_CHECK(ndr_pull_array_length(ndr, &r->ShareNameUNC));
			size_ShareNameUNC_1 = ndr_get_array_size(ndr, &r->ShareNameUNC);
			length_ShareNameUNC_1 = ndr_get_array_length(ndr, &r->ShareNameUNC);
			if (length_ShareNameUNC_1 > size_ShareNameUNC_1) {
				return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_ShareNameUNC_1, length_ShareNameUNC_1);
			}
			NDR_CHECK(ndr_check_string_terminator(ndr, length_ShareNameUNC_1, sizeof(uint16_t)));
			NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ShareNameUNC, length_ShareNameUNC_1, sizeof(uint16_t), CH_UTF16));
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ShareNameUNC_0, 0);
		}
		if (r->ShadowCopyShareName) {
			_mem_save_ShadowCopyShareName_0 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, r->ShadowCopyShareName, 0);
			NDR_CHECK(ndr_pull_array_size(ndr, &r->ShadowCopyShareName));
			NDR_CHECK(ndr_pull_array_length(ndr, &r->ShadowCopyShareName));
			size_ShadowCopyShareName_1 = ndr_get_array_size(ndr, &r->ShadowCopyShareName);
			length_ShadowCopyShareName_1 = ndr_get_array_length(ndr, &r->ShadowCopyShareName);
			if (length_ShadowCopyShareName_1 > size_ShadowCopyShareName_1) {
				return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_ShadowCopyShareName_1, length_ShadowCopyShareName_1);
			}
			NDR_CHECK(ndr_check_string_terminator(ndr, length_ShadowCopyShareName_1, sizeof(uint16_t)));
			NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ShadowCopyShareName, length_ShadowCopyShareName_1, sizeof(uint16_t), CH_UTF16));
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ShadowCopyShareName_0, 0);
		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_fssagent_share_mapping_1(struct ndr_print *ndr, const char *name, const struct fssagent_share_mapping_1 *r)
{
	ndr_print_struct(ndr, name, "fssagent_share_mapping_1");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	ndr_print_GUID(ndr, "ShadowCopySetId", &r->ShadowCopySetId);
	ndr_print_GUID(ndr, "ShadowCopyId", &r->ShadowCopyId);
	ndr_print_ptr(ndr, "ShareNameUNC", r->ShareNameUNC);
	ndr->depth++;
	if (r->ShareNameUNC) {
		ndr_print_string(ndr, "ShareNameUNC", r->ShareNameUNC);
	}
	ndr->depth--;
	ndr_print_ptr(ndr, "ShadowCopyShareName", r->ShadowCopyShareName);
	ndr->depth++;
	if (r->ShadowCopyShareName) {
		ndr_print_string(ndr, "ShadowCopyShareName", r->ShadowCopyShareName);
	}
	ndr->depth--;
	ndr_print_NTTIME(ndr, "tstamp", r->tstamp);
	ndr->depth--;
}

static enum ndr_err_code ndr_push_fssagent_share_mapping(struct ndr_push *ndr, int ndr_flags, const union fssagent_share_mapping *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		uint32_t level = ndr_push_get_switch_value(ndr, r);
		NDR_CHECK(ndr_push_union_align(ndr, 5));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
		NDR_CHECK(ndr_push_union_align(ndr, 5));
		switch (level) {
			case 1: {
				NDR_CHECK(ndr_push_unique_ptr(ndr, r->ShareMapping1));
			break; }

			default: {
			break; }

		}
	}
	if (ndr_flags & NDR_BUFFERS) {
		uint32_t level = ndr_push_get_switch_value(ndr, r);
		switch (level) {
			case 1:
				if (r->ShareMapping1) {
					NDR_CHECK(ndr_push_fssagent_share_mapping_1(ndr, NDR_SCALARS|NDR_BUFFERS, r->ShareMapping1));
				}
			break;

			default:
			break;

		}
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_fssagent_share_mapping(struct ndr_pull *ndr, int ndr_flags, union fssagent_share_mapping *r)
{
	uint32_t level;
	uint32_t _level;
	TALLOC_CTX *_mem_save_ShareMapping1_0;
	uint32_t _ptr_ShareMapping1;
	level = ndr_pull_get_switch_value(ndr, r);
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_union_align(ndr, 5));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
		if (_level != level) {
			return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
		}
		NDR_CHECK(ndr_pull_union_align(ndr, 5));
		switch (level) {
			case 1: {
				NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ShareMapping1));
				if (_ptr_ShareMapping1) {
					NDR_PULL_ALLOC(ndr, r->ShareMapping1);
				} else {
					r->ShareMapping1 = NULL;
				}
			break; }

			default: {
			break; }

		}
	}
	if (ndr_flags & NDR_BUFFERS) {
		switch (level) {
			case 1:
				if (r->ShareMapping1) {
					_mem_save_ShareMapping1_0 = NDR_PULL_GET_MEM_CTX(ndr);
					NDR_PULL_SET_MEM_CTX(ndr, r->ShareMapping1, 0);
					NDR_CHECK(ndr_pull_fssagent_share_mapping_1(ndr, NDR_SCALARS|NDR_BUFFERS, r->ShareMapping1));
					NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ShareMapping1_0, 0);
				}
			break;

			default:
			break;

		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_fssagent_share_mapping(struct ndr_print *ndr, const char *name, const union fssagent_share_mapping *r)
{
	uint32_t level;
	level = ndr_print_get_switch_value(ndr, r);
	ndr_print_union(ndr, name, level, "fssagent_share_mapping");
	switch (level) {
		case 1:
			ndr_print_ptr(ndr, "ShareMapping1", r->ShareMapping1);
			ndr->depth++;
			if (r->ShareMapping1) {
				ndr_print_fssagent_share_mapping_1(ndr, "ShareMapping1", r->ShareMapping1);
			}
			ndr->depth--;
		break;

		default:
		break;

	}
}

static enum ndr_err_code ndr_push_fss_GetSupportedVersion(struct ndr_push *ndr, int flags, const struct fss_GetSupportedVersion *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.magic, 52));
	}
	if (flags & NDR_OUT) {
		if (r->out.MinVersion == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.MinVersion));
		if (r->out.MaxVersion == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.MaxVersion));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_fss_GetSupportedVersion(struct ndr_pull *ndr, int flags, struct fss_GetSupportedVersion *r)
{
	uint32_t size_magic_0 = 0;
	TALLOC_CTX *_mem_save_MinVersion_0;
	TALLOC_CTX *_mem_save_MaxVersion_0;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		ZERO_STRUCT(r->out);

		size_magic_0 = 52;
		NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.magic, size_magic_0));
		NDR_PULL_ALLOC(ndr, r->out.MinVersion);
		ZERO_STRUCTP(r->out.MinVersion);
		NDR_PULL_ALLOC(ndr, r->out.MaxVersion);
		ZERO_STRUCTP(r->out.MaxVersion);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.MinVersion);
		}
		_mem_save_MinVersion_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.MinVersion, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.MinVersion));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_MinVersion_0, LIBNDR_FLAG_REF_ALLOC);
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.MaxVersion);
		}
		_mem_save_MaxVersion_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.MaxVersion, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.MaxVersion));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_MaxVersion_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_fss_GetSupportedVersion(struct ndr_print *ndr, const char *name, int flags, const struct fss_GetSupportedVersion *r)
{
	ndr_print_struct(ndr, name, "fss_GetSupportedVersion");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	if (flags & NDR_SET_VALUES) {
		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
	}
	if (flags & NDR_IN) {
		ndr_print_struct(ndr, "in", "fss_GetSupportedVersion");
		ndr->depth++;
		ndr_print_array_uint8(ndr, "magic", r->in.magic, 52);
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "fss_GetSupportedVersion");
		ndr->depth++;
		ndr_print_ptr(ndr, "MinVersion", r->out.MinVersion);
		ndr->depth++;
		ndr_print_uint32(ndr, "MinVersion", *r->out.MinVersion);
		ndr->depth--;
		ndr_print_ptr(ndr, "MaxVersion", r->out.MaxVersion);
		ndr->depth++;
		ndr_print_uint32(ndr, "MaxVersion", *r->out.MaxVersion);
		ndr->depth--;
		ndr_print_uint32(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_fss_SetContext(struct ndr_push *ndr, int flags, const struct fss_SetContext *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.Context));
	}
	if (flags & NDR_OUT) {
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_fss_SetContext(struct ndr_pull *ndr, int flags, struct fss_SetContext *r)
{
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.Context));
	}
	if (flags & NDR_OUT) {
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_fss_SetContext(struct ndr_print *ndr, const char *name, int flags, const struct fss_SetContext *r)
{
	ndr_print_struct(ndr, name, "fss_SetContext");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	if (flags & NDR_SET_VALUES) {
		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
	}
	if (flags & NDR_IN) {
		ndr_print_struct(ndr, "in", "fss_SetContext");
		ndr->depth++;
		ndr_print_uint32(ndr, "Context", r->in.Context);
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "fss_SetContext");
		ndr->depth++;
		ndr_print_uint32(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_fss_StartShadowCopySet(struct ndr_push *ndr, int flags, const struct fss_StartShadowCopySet *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->in.ClientShadowCopySetId));
	}
	if (flags & NDR_OUT) {
		if (r->out.pShadowCopySetId == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->out.pShadowCopySetId));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_fss_StartShadowCopySet(struct ndr_pull *ndr, int flags, struct fss_StartShadowCopySet *r)
{
	TALLOC_CTX *_mem_save_pShadowCopySetId_0;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		ZERO_STRUCT(r->out);

		NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->in.ClientShadowCopySetId));
		NDR_PULL_ALLOC(ndr, r->out.pShadowCopySetId);
		ZERO_STRUCTP(r->out.pShadowCopySetId);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.pShadowCopySetId);
		}
		_mem_save_pShadowCopySetId_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.pShadowCopySetId, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->out.pShadowCopySetId));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pShadowCopySetId_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_fss_StartShadowCopySet(struct ndr_print *ndr, const char *name, int flags, const struct fss_StartShadowCopySet *r)
{
	ndr_print_struct(ndr, name, "fss_StartShadowCopySet");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	if (flags & NDR_SET_VALUES) {
		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
	}
	if (flags & NDR_IN) {
		ndr_print_struct(ndr, "in", "fss_StartShadowCopySet");
		ndr->depth++;
		ndr_print_GUID(ndr, "ClientShadowCopySetId", &r->in.ClientShadowCopySetId);
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "fss_StartShadowCopySet");
		ndr->depth++;
		ndr_print_ptr(ndr, "pShadowCopySetId", r->out.pShadowCopySetId);
		ndr->depth++;
		ndr_print_GUID(ndr, "pShadowCopySetId", r->out.pShadowCopySetId);
		ndr->depth--;
		ndr_print_uint32(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_fss_AddToShadowCopySet(struct ndr_push *ndr, int flags, const struct fss_AddToShadowCopySet *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->in.ClientShadowCopyId));
		NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->in.ShadowCopySetId));
		if (r->in.ShareName == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.ShareName, CH_UTF16)));
		NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
		NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.ShareName, CH_UTF16)));
		NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.ShareName, ndr_charset_length(r->in.ShareName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
	}
	if (flags & NDR_OUT) {
		if (r->out.pShadowCopyId == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->out.pShadowCopyId));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_fss_AddToShadowCopySet(struct ndr_pull *ndr, int flags, struct fss_AddToShadowCopySet *r)
{
	uint32_t size_ShareName_1 = 0;
	uint32_t length_ShareName_1 = 0;
	TALLOC_CTX *_mem_save_pShadowCopyId_0;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		ZERO_STRUCT(r->out);

		NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->in.ClientShadowCopyId));
		NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->in.ShadowCopySetId));
		NDR_CHECK(ndr_pull_array_size(ndr, &r->in.ShareName));
		NDR_CHECK(ndr_pull_array_length(ndr, &r->in.ShareName));
		size_ShareName_1 = ndr_get_array_size(ndr, &r->in.ShareName);
		length_ShareName_1 = ndr_get_array_length(ndr, &r->in.ShareName);
		if (length_ShareName_1 > size_ShareName_1) {
			return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_ShareName_1, length_ShareName_1);
		}
		NDR_CHECK(ndr_check_string_terminator(ndr, length_ShareName_1, sizeof(uint16_t)));
		NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.ShareName, length_ShareName_1, sizeof(uint16_t), CH_UTF16));
		NDR_PULL_ALLOC(ndr, r->out.pShadowCopyId);
		ZERO_STRUCTP(r->out.pShadowCopyId);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.pShadowCopyId);
		}
		_mem_save_pShadowCopyId_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.pShadowCopyId, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->out.pShadowCopyId));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pShadowCopyId_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_fss_AddToShadowCopySet(struct ndr_print *ndr, const char *name, int flags, const struct fss_AddToShadowCopySet *r)
{
	ndr_print_struct(ndr, name, "fss_AddToShadowCopySet");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	if (flags & NDR_SET_VALUES) {
		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
	}
	if (flags & NDR_IN) {
		ndr_print_struct(ndr, "in", "fss_AddToShadowCopySet");
		ndr->depth++;
		ndr_print_GUID(ndr, "ClientShadowCopyId", &r->in.ClientShadowCopyId);
		ndr_print_GUID(ndr, "ShadowCopySetId", &r->in.ShadowCopySetId);
		ndr_print_ptr(ndr, "ShareName", r->in.ShareName);
		ndr->depth++;
		ndr_print_string(ndr, "ShareName", r->in.ShareName);
		ndr->depth--;
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "fss_AddToShadowCopySet");
		ndr->depth++;
		ndr_print_ptr(ndr, "pShadowCopyId", r->out.pShadowCopyId);
		ndr->depth++;
		ndr_print_GUID(ndr, "pShadowCopyId", r->out.pShadowCopyId);
		ndr->depth--;
		ndr_print_uint32(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_fss_CommitShadowCopySet(struct ndr_push *ndr, int flags, const struct fss_CommitShadowCopySet *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->in.ShadowCopySetId));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.TimeOutInMilliseconds));
	}
	if (flags & NDR_OUT) {
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_fss_CommitShadowCopySet(struct ndr_pull *ndr, int flags, struct fss_CommitShadowCopySet *r)
{
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->in.ShadowCopySetId));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.TimeOutInMilliseconds));
	}
	if (flags & NDR_OUT) {
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_fss_CommitShadowCopySet(struct ndr_print *ndr, const char *name, int flags, const struct fss_CommitShadowCopySet *r)
{
	ndr_print_struct(ndr, name, "fss_CommitShadowCopySet");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	if (flags & NDR_SET_VALUES) {
		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
	}
	if (flags & NDR_IN) {
		ndr_print_struct(ndr, "in", "fss_CommitShadowCopySet");
		ndr->depth++;
		ndr_print_GUID(ndr, "ShadowCopySetId", &r->in.ShadowCopySetId);
		ndr_print_uint32(ndr, "TimeOutInMilliseconds", r->in.TimeOutInMilliseconds);
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "fss_CommitShadowCopySet");
		ndr->depth++;
		ndr_print_uint32(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_fss_ExposeShadowCopySet(struct ndr_push *ndr, int flags, const struct fss_ExposeShadowCopySet *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->in.ShadowCopySetId));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.TimeOutInMilliseconds));
	}
	if (flags & NDR_OUT) {
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_fss_ExposeShadowCopySet(struct ndr_pull *ndr, int flags, struct fss_ExposeShadowCopySet *r)
{
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->in.ShadowCopySetId));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.TimeOutInMilliseconds));
	}
	if (flags & NDR_OUT) {
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_fss_ExposeShadowCopySet(struct ndr_print *ndr, const char *name, int flags, const struct fss_ExposeShadowCopySet *r)
{
	ndr_print_struct(ndr, name, "fss_ExposeShadowCopySet");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	if (flags & NDR_SET_VALUES) {
		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
	}
	if (flags & NDR_IN) {
		ndr_print_struct(ndr, "in", "fss_ExposeShadowCopySet");
		ndr->depth++;
		ndr_print_GUID(ndr, "ShadowCopySetId", &r->in.ShadowCopySetId);
		ndr_print_uint32(ndr, "TimeOutInMilliseconds", r->in.TimeOutInMilliseconds);
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "fss_ExposeShadowCopySet");
		ndr->depth++;
		ndr_print_uint32(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_fss_RecoveryCompleteShadowCopySet(struct ndr_push *ndr, int flags, const struct fss_RecoveryCompleteShadowCopySet *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->in.ShadowCopySetId));
	}
	if (flags & NDR_OUT) {
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_fss_RecoveryCompleteShadowCopySet(struct ndr_pull *ndr, int flags, struct fss_RecoveryCompleteShadowCopySet *r)
{
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->in.ShadowCopySetId));
	}
	if (flags & NDR_OUT) {
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_fss_RecoveryCompleteShadowCopySet(struct ndr_print *ndr, const char *name, int flags, const struct fss_RecoveryCompleteShadowCopySet *r)
{
	ndr_print_struct(ndr, name, "fss_RecoveryCompleteShadowCopySet");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	if (flags & NDR_SET_VALUES) {
		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
	}
	if (flags & NDR_IN) {
		ndr_print_struct(ndr, "in", "fss_RecoveryCompleteShadowCopySet");
		ndr->depth++;
		ndr_print_GUID(ndr, "ShadowCopySetId", &r->in.ShadowCopySetId);
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "fss_RecoveryCompleteShadowCopySet");
		ndr->depth++;
		ndr_print_uint32(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_fss_AbortShadowCopySet(struct ndr_push *ndr, int flags, const struct fss_AbortShadowCopySet *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->in.ShadowCopySetId));
	}
	if (flags & NDR_OUT) {
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_fss_AbortShadowCopySet(struct ndr_pull *ndr, int flags, struct fss_AbortShadowCopySet *r)
{
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->in.ShadowCopySetId));
	}
	if (flags & NDR_OUT) {
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_fss_AbortShadowCopySet(struct ndr_print *ndr, const char *name, int flags, const struct fss_AbortShadowCopySet *r)
{
	ndr_print_struct(ndr, name, "fss_AbortShadowCopySet");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	if (flags & NDR_SET_VALUES) {
		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
	}
	if (flags & NDR_IN) {
		ndr_print_struct(ndr, "in", "fss_AbortShadowCopySet");
		ndr->depth++;
		ndr_print_GUID(ndr, "ShadowCopySetId", &r->in.ShadowCopySetId);
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "fss_AbortShadowCopySet");
		ndr->depth++;
		ndr_print_uint32(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_fss_IsPathSupported(struct ndr_push *ndr, int flags, const struct fss_IsPathSupported *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		if (r->in.ShareName == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.ShareName, CH_UTF16)));
		NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
		NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.ShareName, CH_UTF16)));
		NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.ShareName, ndr_charset_length(r->in.ShareName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
		NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.magic, 52));
	}
	if (flags & NDR_OUT) {
		if (r->out.SupportedByThisProvider == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.SupportedByThisProvider));
		if (r->out.OwnerMachineName == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.OwnerMachineName));
		if (*r->out.OwnerMachineName) {
			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(*r->out.OwnerMachineName, CH_UTF16)));
			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(*r->out.OwnerMachineName, CH_UTF16)));
			NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.OwnerMachineName, ndr_charset_length(*r->out.OwnerMachineName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
		}
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_fss_IsPathSupported(struct ndr_pull *ndr, int flags, struct fss_IsPathSupported *r)
{
	uint32_t size_ShareName_1 = 0;
	uint32_t length_ShareName_1 = 0;
	uint32_t size_magic_0 = 0;
	uint32_t _ptr_OwnerMachineName;
	uint32_t size_OwnerMachineName_2 = 0;
	uint32_t length_OwnerMachineName_2 = 0;
	TALLOC_CTX *_mem_save_SupportedByThisProvider_0;
	TALLOC_CTX *_mem_save_OwnerMachineName_0;
	TALLOC_CTX *_mem_save_OwnerMachineName_1;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		ZERO_STRUCT(r->out);

		NDR_CHECK(ndr_pull_array_size(ndr, &r->in.ShareName));
		NDR_CHECK(ndr_pull_array_length(ndr, &r->in.ShareName));
		size_ShareName_1 = ndr_get_array_size(ndr, &r->in.ShareName);
		length_ShareName_1 = ndr_get_array_length(ndr, &r->in.ShareName);
		if (length_ShareName_1 > size_ShareName_1) {
			return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_ShareName_1, length_ShareName_1);
		}
		NDR_CHECK(ndr_check_string_terminator(ndr, length_ShareName_1, sizeof(uint16_t)));
		NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.ShareName, length_ShareName_1, sizeof(uint16_t), CH_UTF16));
		size_magic_0 = 52;
		NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.magic, size_magic_0));
		NDR_PULL_ALLOC(ndr, r->out.SupportedByThisProvider);
		ZERO_STRUCTP(r->out.SupportedByThisProvider);
		NDR_PULL_ALLOC(ndr, r->out.OwnerMachineName);
		ZERO_STRUCTP(r->out.OwnerMachineName);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.SupportedByThisProvider);
		}
		_mem_save_SupportedByThisProvider_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.SupportedByThisProvider, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.SupportedByThisProvider));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_SupportedByThisProvider_0, LIBNDR_FLAG_REF_ALLOC);
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.OwnerMachineName);
		}
		_mem_save_OwnerMachineName_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.OwnerMachineName, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_OwnerMachineName));
		if (_ptr_OwnerMachineName) {
			NDR_PULL_ALLOC(ndr, *r->out.OwnerMachineName);
		} else {
			*r->out.OwnerMachineName = NULL;
		}
		if (*r->out.OwnerMachineName) {
			_mem_save_OwnerMachineName_1 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, *r->out.OwnerMachineName, 0);
			NDR_CHECK(ndr_pull_array_size(ndr, r->out.OwnerMachineName));
			NDR_CHECK(ndr_pull_array_length(ndr, r->out.OwnerMachineName));
			size_OwnerMachineName_2 = ndr_get_array_size(ndr, r->out.OwnerMachineName);
			length_OwnerMachineName_2 = ndr_get_array_length(ndr, r->out.OwnerMachineName);
			if (length_OwnerMachineName_2 > size_OwnerMachineName_2) {
				return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_OwnerMachineName_2, length_OwnerMachineName_2);
			}
			NDR_CHECK(ndr_check_string_terminator(ndr, length_OwnerMachineName_2, sizeof(uint16_t)));
			NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.OwnerMachineName, length_OwnerMachineName_2, sizeof(uint16_t), CH_UTF16));
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_OwnerMachineName_1, 0);
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_OwnerMachineName_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_fss_IsPathSupported(struct ndr_print *ndr, const char *name, int flags, const struct fss_IsPathSupported *r)
{
	ndr_print_struct(ndr, name, "fss_IsPathSupported");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	if (flags & NDR_SET_VALUES) {
		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
	}
	if (flags & NDR_IN) {
		ndr_print_struct(ndr, "in", "fss_IsPathSupported");
		ndr->depth++;
		ndr_print_ptr(ndr, "ShareName", r->in.ShareName);
		ndr->depth++;
		ndr_print_string(ndr, "ShareName", r->in.ShareName);
		ndr->depth--;
		ndr_print_array_uint8(ndr, "magic", r->in.magic, 52);
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "fss_IsPathSupported");
		ndr->depth++;
		ndr_print_ptr(ndr, "SupportedByThisProvider", r->out.SupportedByThisProvider);
		ndr->depth++;
		ndr_print_uint32(ndr, "SupportedByThisProvider", *r->out.SupportedByThisProvider);
		ndr->depth--;
		ndr_print_ptr(ndr, "OwnerMachineName", r->out.OwnerMachineName);
		ndr->depth++;
		ndr_print_ptr(ndr, "OwnerMachineName", *r->out.OwnerMachineName);
		ndr->depth++;
		if (*r->out.OwnerMachineName) {
			ndr_print_string(ndr, "OwnerMachineName", *r->out.OwnerMachineName);
		}
		ndr->depth--;
		ndr->depth--;
		ndr_print_uint32(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_fss_IsPathShadowCopied(struct ndr_push *ndr, int flags, const struct fss_IsPathShadowCopied *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		if (r->in.ShareName == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.ShareName, CH_UTF16)));
		NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
		NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.ShareName, CH_UTF16)));
		NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.ShareName, ndr_charset_length(r->in.ShareName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
	}
	if (flags & NDR_OUT) {
		if (r->out.ShadowCopyPresent == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.ShadowCopyPresent));
		if (r->out.ShadowCopyCompatibility == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, *r->out.ShadowCopyCompatibility));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_fss_IsPathShadowCopied(struct ndr_pull *ndr, int flags, struct fss_IsPathShadowCopied *r)
{
	uint32_t size_ShareName_1 = 0;
	uint32_t length_ShareName_1 = 0;
	TALLOC_CTX *_mem_save_ShadowCopyPresent_0;
	TALLOC_CTX *_mem_save_ShadowCopyCompatibility_0;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		ZERO_STRUCT(r->out);

		NDR_CHECK(ndr_pull_array_size(ndr, &r->in.ShareName));
		NDR_CHECK(ndr_pull_array_length(ndr, &r->in.ShareName));
		size_ShareName_1 = ndr_get_array_size(ndr, &r->in.ShareName);
		length_ShareName_1 = ndr_get_array_length(ndr, &r->in.ShareName);
		if (length_ShareName_1 > size_ShareName_1) {
			return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_ShareName_1, length_ShareName_1);
		}
		NDR_CHECK(ndr_check_string_terminator(ndr, length_ShareName_1, sizeof(uint16_t)));
		NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.ShareName, length_ShareName_1, sizeof(uint16_t), CH_UTF16));
		NDR_PULL_ALLOC(ndr, r->out.ShadowCopyPresent);
		ZERO_STRUCTP(r->out.ShadowCopyPresent);
		NDR_PULL_ALLOC(ndr, r->out.ShadowCopyCompatibility);
		ZERO_STRUCTP(r->out.ShadowCopyCompatibility);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ShadowCopyPresent);
		}
		_mem_save_ShadowCopyPresent_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ShadowCopyPresent, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.ShadowCopyPresent));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ShadowCopyPresent_0, LIBNDR_FLAG_REF_ALLOC);
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ShadowCopyCompatibility);
		}
		_mem_save_ShadowCopyCompatibility_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ShadowCopyCompatibility, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, r->out.ShadowCopyCompatibility));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ShadowCopyCompatibility_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_fss_IsPathShadowCopied(struct ndr_print *ndr, const char *name, int flags, const struct fss_IsPathShadowCopied *r)
{
	ndr_print_struct(ndr, name, "fss_IsPathShadowCopied");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	if (flags & NDR_SET_VALUES) {
		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
	}
	if (flags & NDR_IN) {
		ndr_print_struct(ndr, "in", "fss_IsPathShadowCopied");
		ndr->depth++;
		ndr_print_ptr(ndr, "ShareName", r->in.ShareName);
		ndr->depth++;
		ndr_print_string(ndr, "ShareName", r->in.ShareName);
		ndr->depth--;
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "fss_IsPathShadowCopied");
		ndr->depth++;
		ndr_print_ptr(ndr, "ShadowCopyPresent", r->out.ShadowCopyPresent);
		ndr->depth++;
		ndr_print_uint32(ndr, "ShadowCopyPresent", *r->out.ShadowCopyPresent);
		ndr->depth--;
		ndr_print_ptr(ndr, "ShadowCopyCompatibility", r->out.ShadowCopyCompatibility);
		ndr->depth++;
		ndr_print_int32(ndr, "ShadowCopyCompatibility", *r->out.ShadowCopyCompatibility);
		ndr->depth--;
		ndr_print_uint32(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_fss_GetShareMapping(struct ndr_push *ndr, int flags, const struct fss_GetShareMapping *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->in.ShadowCopyId));
		NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->in.ShadowCopySetId));
		if (r->in.ShareName == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.ShareName, CH_UTF16)));
		NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
		NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.ShareName, CH_UTF16)));
		NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.ShareName, ndr_charset_length(r->in.ShareName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.Level));
	}
	if (flags & NDR_OUT) {
		if (r->out.ShareMapping == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.ShareMapping, r->in.Level));
		NDR_CHECK(ndr_push_fssagent_share_mapping(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ShareMapping));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_fss_GetShareMapping(struct ndr_pull *ndr, int flags, struct fss_GetShareMapping *r)
{
	uint32_t size_ShareName_1 = 0;
	uint32_t length_ShareName_1 = 0;
	TALLOC_CTX *_mem_save_ShareMapping_0;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		ZERO_STRUCT(r->out);

		NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->in.ShadowCopyId));
		NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->in.ShadowCopySetId));
		NDR_CHECK(ndr_pull_array_size(ndr, &r->in.ShareName));
		NDR_CHECK(ndr_pull_array_length(ndr, &r->in.ShareName));
		size_ShareName_1 = ndr_get_array_size(ndr, &r->in.ShareName);
		length_ShareName_1 = ndr_get_array_length(ndr, &r->in.ShareName);
		if (length_ShareName_1 > size_ShareName_1) {
			return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_ShareName_1, length_ShareName_1);
		}
		NDR_CHECK(ndr_check_string_terminator(ndr, length_ShareName_1, sizeof(uint16_t)));
		NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.ShareName, length_ShareName_1, sizeof(uint16_t), CH_UTF16));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.Level));
		NDR_PULL_ALLOC(ndr, r->out.ShareMapping);
		ZERO_STRUCTP(r->out.ShareMapping);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ShareMapping);
		}
		_mem_save_ShareMapping_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ShareMapping, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.ShareMapping, r->in.Level));
		NDR_CHECK(ndr_pull_fssagent_share_mapping(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ShareMapping));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ShareMapping_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_fss_GetShareMapping(struct ndr_print *ndr, const char *name, int flags, const struct fss_GetShareMapping *r)
{
	ndr_print_struct(ndr, name, "fss_GetShareMapping");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	if (flags & NDR_SET_VALUES) {
		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
	}
	if (flags & NDR_IN) {
		ndr_print_struct(ndr, "in", "fss_GetShareMapping");
		ndr->depth++;
		ndr_print_GUID(ndr, "ShadowCopyId", &r->in.ShadowCopyId);
		ndr_print_GUID(ndr, "ShadowCopySetId", &r->in.ShadowCopySetId);
		ndr_print_ptr(ndr, "ShareName", r->in.ShareName);
		ndr->depth++;
		ndr_print_string(ndr, "ShareName", r->in.ShareName);
		ndr->depth--;
		ndr_print_uint32(ndr, "Level", r->in.Level);
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "fss_GetShareMapping");
		ndr->depth++;
		ndr_print_ptr(ndr, "ShareMapping", r->out.ShareMapping);
		ndr->depth++;
		ndr_print_set_switch_value(ndr, r->out.ShareMapping, r->in.Level);
		ndr_print_fssagent_share_mapping(ndr, "ShareMapping", r->out.ShareMapping);
		ndr->depth--;
		ndr_print_uint32(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_fss_DeleteShareMapping(struct ndr_push *ndr, int flags, const struct fss_DeleteShareMapping *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->in.ShadowCopySetId));
		NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->in.ShadowCopyId));
		if (r->in.ShareName == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.ShareName, CH_UTF16)));
		NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
		NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.ShareName, CH_UTF16)));
		NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.ShareName, ndr_charset_length(r->in.ShareName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
	}
	if (flags & NDR_OUT) {
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_fss_DeleteShareMapping(struct ndr_pull *ndr, int flags, struct fss_DeleteShareMapping *r)
{
	uint32_t size_ShareName_1 = 0;
	uint32_t length_ShareName_1 = 0;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->in.ShadowCopySetId));
		NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->in.ShadowCopyId));
		NDR_CHECK(ndr_pull_array_size(ndr, &r->in.ShareName));
		NDR_CHECK(ndr_pull_array_length(ndr, &r->in.ShareName));
		size_ShareName_1 = ndr_get_array_size(ndr, &r->in.ShareName);
		length_ShareName_1 = ndr_get_array_length(ndr, &r->in.ShareName);
		if (length_ShareName_1 > size_ShareName_1) {
			return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_ShareName_1, length_ShareName_1);
		}
		NDR_CHECK(ndr_check_string_terminator(ndr, length_ShareName_1, sizeof(uint16_t)));
		NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.ShareName, length_ShareName_1, sizeof(uint16_t), CH_UTF16));
	}
	if (flags & NDR_OUT) {
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_fss_DeleteShareMapping(struct ndr_print *ndr, const char *name, int flags, const struct fss_DeleteShareMapping *r)
{
	ndr_print_struct(ndr, name, "fss_DeleteShareMapping");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	if (flags & NDR_SET_VALUES) {
		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
	}
	if (flags & NDR_IN) {
		ndr_print_struct(ndr, "in", "fss_DeleteShareMapping");
		ndr->depth++;
		ndr_print_GUID(ndr, "ShadowCopySetId", &r->in.ShadowCopySetId);
		ndr_print_GUID(ndr, "ShadowCopyId", &r->in.ShadowCopyId);
		ndr_print_ptr(ndr, "ShareName", r->in.ShareName);
		ndr->depth++;
		ndr_print_string(ndr, "ShareName", r->in.ShareName);
		ndr->depth--;
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "fss_DeleteShareMapping");
		ndr->depth++;
		ndr_print_uint32(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_fss_PrepareShadowCopySet(struct ndr_push *ndr, int flags, const struct fss_PrepareShadowCopySet *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->in.ShadowCopySetId));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.TimeOutInMilliseconds));
	}
	if (flags & NDR_OUT) {
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_fss_PrepareShadowCopySet(struct ndr_pull *ndr, int flags, struct fss_PrepareShadowCopySet *r)
{
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->in.ShadowCopySetId));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.TimeOutInMilliseconds));
	}
	if (flags & NDR_OUT) {
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_fss_PrepareShadowCopySet(struct ndr_print *ndr, const char *name, int flags, const struct fss_PrepareShadowCopySet *r)
{
	ndr_print_struct(ndr, name, "fss_PrepareShadowCopySet");
	if (r == NULL) { ndr_print_null(ndr); return; }
	ndr->depth++;
	if (flags & NDR_SET_VALUES) {
		ndr->flags |= LIBNDR_PRINT_SET_VALUES;
	}
	if (flags & NDR_IN) {
		ndr_print_struct(ndr, "in", "fss_PrepareShadowCopySet");
		ndr->depth++;
		ndr_print_GUID(ndr, "ShadowCopySetId", &r->in.ShadowCopySetId);
		ndr_print_uint32(ndr, "TimeOutInMilliseconds", r->in.TimeOutInMilliseconds);
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "fss_PrepareShadowCopySet");
		ndr->depth++;
		ndr_print_uint32(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static const struct ndr_interface_call FileServerVssAgent_calls[] = {
	{
		"fss_GetSupportedVersion",
		sizeof(struct fss_GetSupportedVersion),
		(ndr_push_flags_fn_t) ndr_push_fss_GetSupportedVersion,
		(ndr_pull_flags_fn_t) ndr_pull_fss_GetSupportedVersion,
		(ndr_print_function_t) ndr_print_fss_GetSupportedVersion,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"fss_SetContext",
		sizeof(struct fss_SetContext),
		(ndr_push_flags_fn_t) ndr_push_fss_SetContext,
		(ndr_pull_flags_fn_t) ndr_pull_fss_SetContext,
		(ndr_print_function_t) ndr_print_fss_SetContext,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"fss_StartShadowCopySet",
		sizeof(struct fss_StartShadowCopySet),
		(ndr_push_flags_fn_t) ndr_push_fss_StartShadowCopySet,
		(ndr_pull_flags_fn_t) ndr_pull_fss_StartShadowCopySet,
		(ndr_print_function_t) ndr_print_fss_StartShadowCopySet,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"fss_AddToShadowCopySet",
		sizeof(struct fss_AddToShadowCopySet),
		(ndr_push_flags_fn_t) ndr_push_fss_AddToShadowCopySet,
		(ndr_pull_flags_fn_t) ndr_pull_fss_AddToShadowCopySet,
		(ndr_print_function_t) ndr_print_fss_AddToShadowCopySet,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"fss_CommitShadowCopySet",
		sizeof(struct fss_CommitShadowCopySet),
		(ndr_push_flags_fn_t) ndr_push_fss_CommitShadowCopySet,
		(ndr_pull_flags_fn_t) ndr_pull_fss_CommitShadowCopySet,
		(ndr_print_function_t) ndr_print_fss_CommitShadowCopySet,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"fss_ExposeShadowCopySet",
		sizeof(struct fss_ExposeShadowCopySet),
		(ndr_push_flags_fn_t) ndr_push_fss_ExposeShadowCopySet,
		(ndr_pull_flags_fn_t) ndr_pull_fss_ExposeShadowCopySet,
		(ndr_print_function_t) ndr_print_fss_ExposeShadowCopySet,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"fss_RecoveryCompleteShadowCopySet",
		sizeof(struct fss_RecoveryCompleteShadowCopySet),
		(ndr_push_flags_fn_t) ndr_push_fss_RecoveryCompleteShadowCopySet,
		(ndr_pull_flags_fn_t) ndr_pull_fss_RecoveryCompleteShadowCopySet,
		(ndr_print_function_t) ndr_print_fss_RecoveryCompleteShadowCopySet,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"fss_AbortShadowCopySet",
		sizeof(struct fss_AbortShadowCopySet),
		(ndr_push_flags_fn_t) ndr_push_fss_AbortShadowCopySet,
		(ndr_pull_flags_fn_t) ndr_pull_fss_AbortShadowCopySet,
		(ndr_print_function_t) ndr_print_fss_AbortShadowCopySet,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"fss_IsPathSupported",
		sizeof(struct fss_IsPathSupported),
		(ndr_push_flags_fn_t) ndr_push_fss_IsPathSupported,
		(ndr_pull_flags_fn_t) ndr_pull_fss_IsPathSupported,
		(ndr_print_function_t) ndr_print_fss_IsPathSupported,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"fss_IsPathShadowCopied",
		sizeof(struct fss_IsPathShadowCopied),
		(ndr_push_flags_fn_t) ndr_push_fss_IsPathShadowCopied,
		(ndr_pull_flags_fn_t) ndr_pull_fss_IsPathShadowCopied,
		(ndr_print_function_t) ndr_print_fss_IsPathShadowCopied,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"fss_GetShareMapping",
		sizeof(struct fss_GetShareMapping),
		(ndr_push_flags_fn_t) ndr_push_fss_GetShareMapping,
		(ndr_pull_flags_fn_t) ndr_pull_fss_GetShareMapping,
		(ndr_print_function_t) ndr_print_fss_GetShareMapping,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"fss_DeleteShareMapping",
		sizeof(struct fss_DeleteShareMapping),
		(ndr_push_flags_fn_t) ndr_push_fss_DeleteShareMapping,
		(ndr_pull_flags_fn_t) ndr_pull_fss_DeleteShareMapping,
		(ndr_print_function_t) ndr_print_fss_DeleteShareMapping,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"fss_PrepareShadowCopySet",
		sizeof(struct fss_PrepareShadowCopySet),
		(ndr_push_flags_fn_t) ndr_push_fss_PrepareShadowCopySet,
		(ndr_pull_flags_fn_t) ndr_pull_fss_PrepareShadowCopySet,
		(ndr_print_function_t) ndr_print_fss_PrepareShadowCopySet,
		{ 0, NULL },
		{ 0, NULL },
	},
	{ NULL, 0, NULL, NULL, NULL }
};

static const char * const FileServerVssAgent_endpoint_strings[] = {
	"ncacn_np:[\\pipe\\FssagentRpc]", 
};

static const struct ndr_interface_string_array FileServerVssAgent_endpoints = {
	.count	= 1,
	.names	= FileServerVssAgent_endpoint_strings
};

static const char * const FileServerVssAgent_authservice_strings[] = {
	"host", 
};

static const struct ndr_interface_string_array FileServerVssAgent_authservices = {
	.count	= 1,
	.names	= FileServerVssAgent_authservice_strings
};


const struct ndr_interface_table ndr_table_FileServerVssAgent = {
	.name		= "FileServerVssAgent",
	.syntax_id	= {
		{0xa8e0653c,0x2744,0x4389,{0xa6,0x1d},{0x73,0x73,0xdf,0x8b,0x22,0x92}},
		NDR_FILESERVERVSSAGENT_VERSION
	},
	.helpstring	= NDR_FILESERVERVSSAGENT_HELPSTRING,
	.num_calls	= 13,
	.calls		= FileServerVssAgent_calls,
	.endpoints	= &FileServerVssAgent_endpoints,
	.authservices	= &FileServerVssAgent_authservices
};

