/* parser auto-generated by pidl */

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

#include "librpc/gen_ndr/ndr_orpc.h"
#include "librpc/gen_ndr/ndr_dcom.h"
#include "librpc/gen_ndr/ndr_misc.h"
#include "librpc/gen_ndr/ndr_orpc.h"
static enum ndr_err_code ndr_push_BSTR(struct ndr_push *ndr, int ndr_flags, const struct BSTR *r)
{
	NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data, CH_UTF16)));
		NDR_CHECK(ndr_push_align(ndr, 4));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x72657355));
		NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
		NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data, CH_UTF16)));
		NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data, ndr_charset_length(r->data, CH_UTF16), sizeof(uint16_t), CH_UTF16));
		NDR_CHECK(ndr_push_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_BSTR(struct ndr_pull *ndr, int ndr_flags, struct BSTR *r)
{
	uint32_t size_data_0 = 0;
	uint32_t length_data_0 = 0;
	NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
	if (ndr_flags & NDR_SCALARS) {
		NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
		NDR_CHECK(ndr_pull_align(ndr, 4));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
		NDR_CHECK(ndr_pull_array_length(ndr, &r->data));
		size_data_0 = ndr_get_array_size(ndr, &r->data);
		length_data_0 = ndr_get_array_length(ndr, &r->data);
		if (length_data_0 > size_data_0) {
			return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_data_0, length_data_0);
		}
		NDR_CHECK(ndr_check_string_terminator(ndr, length_data_0, sizeof(uint16_t)));
		NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data, length_data_0, sizeof(uint16_t), CH_UTF16));
		NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
	}
	if (ndr_flags & NDR_BUFFERS) {
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_push_Delete(struct ndr_push *ndr, int flags, const struct Delete *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		if (r->in.wszName == 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.wszName, CH_UTF16)));
		NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
		NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.wszName, CH_UTF16)));
		NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.wszName, ndr_charset_length(r->in.wszName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_Delete(struct ndr_pull *ndr, int flags, struct Delete *r)
{
	uint32_t size_wszName_1 = 0;
	uint32_t length_wszName_1 = 0;
	TALLOC_CTX *_mem_save_ORPCthat_0;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		ZERO_STRUCT(r->out);

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_pull_array_size(ndr, &r->in.wszName));
		NDR_CHECK(ndr_pull_array_length(ndr, &r->in.wszName));
		size_wszName_1 = ndr_get_array_size(ndr, &r->in.wszName);
		length_wszName_1 = ndr_get_array_length(ndr, &r->in.wszName);
		if (length_wszName_1 > size_wszName_1) {
			return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_wszName_1, length_wszName_1);
		}
		NDR_CHECK(ndr_check_string_terminator(ndr, length_wszName_1, sizeof(uint16_t)));
		NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.wszName, length_wszName_1, sizeof(uint16_t), CH_UTF16));
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_Delete(struct ndr_print *ndr, const char *name, int flags, const struct Delete *r)
{
	ndr_print_struct(ndr, name, "Delete");
	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", "Delete");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr_print_ptr(ndr, "wszName", r->in.wszName);
		ndr->depth++;
		ndr_print_string(ndr, "wszName", r->in.wszName);
		ndr->depth--;
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "Delete");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static const struct ndr_interface_call IWbemClassObject_calls[] = {
	{
		"Delete",
		sizeof(struct Delete),
		(ndr_push_flags_fn_t) ndr_push_Delete,
		(ndr_pull_flags_fn_t) ndr_pull_Delete,
		(ndr_print_function_t) ndr_print_Delete,
		{ 0, NULL },
		{ 0, NULL },
	},
	{ NULL, 0, NULL, NULL, NULL }
};

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

static const struct ndr_interface_string_array IWbemClassObject_endpoints = {
	.count	= 1,
	.names	= IWbemClassObject_endpoint_strings
};

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

static const struct ndr_interface_string_array IWbemClassObject_authservices = {
	.count	= 1,
	.names	= IWbemClassObject_authservice_strings
};


const struct ndr_interface_table ndr_table_IWbemClassObject = {
	.name		= "IWbemClassObject",
	.syntax_id	= {
		{0xdc12a681,0x737f,0x11cf,{0x88,0x4d},{0x00,0xaa,0x00,0x4b,0x2e,0x24}},
		NDR_IWBEMCLASSOBJECT_VERSION
	},
	.helpstring	= NDR_IWBEMCLASSOBJECT_HELPSTRING,
	.num_calls	= 1,
	.calls		= IWbemClassObject_calls,
	.endpoints	= &IWbemClassObject_endpoints,
	.authservices	= &IWbemClassObject_authservices
};

#include "librpc/gen_ndr/ndr_orpc.h"
_PUBLIC_ enum ndr_err_code ndr_push_WBEM_GENERIC_FLAG_TYPE(struct ndr_push *ndr, int ndr_flags, uint32_t r)
{
	NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_WBEM_GENERIC_FLAG_TYPE(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
{
	uint32_t v;
	NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
	*r = v;
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_WBEM_GENERIC_FLAG_TYPE(struct ndr_print *ndr, const char *name, uint32_t r)
{
	ndr_print_uint32(ndr, name, r);
	ndr->depth++;
	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "WBEM_FLAG_RETURN_WBEM_COMPLETE", WBEM_FLAG_RETURN_WBEM_COMPLETE, r);
	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "WBEM_FLAG_BIDIRECTIONAL", WBEM_FLAG_BIDIRECTIONAL, r);
	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "WBEM_FLAG_RETURN_IMMEDIATELY", WBEM_FLAG_RETURN_IMMEDIATELY, r);
	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "WBEM_FLAG_FORWARD_ONLY", WBEM_FLAG_FORWARD_ONLY, r);
	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "WBEM_FLAG_NO_ERROR_OBJECT", WBEM_FLAG_NO_ERROR_OBJECT, r);
	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "WBEM_FLAG_SEND_STATUS", WBEM_FLAG_SEND_STATUS, r);
	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "WBEM_FLAG_ENSURE_LOCATABLE", WBEM_FLAG_ENSURE_LOCATABLE, r);
	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "WBEM_FLAG_DIRECT_READ", WBEM_FLAG_DIRECT_READ, r);
	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "WBEM_FLAG_USE_AMENDED_QUALIFIERS", WBEM_FLAG_USE_AMENDED_QUALIFIERS, r);
	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "WBEM_FLAG_STRONG_VALIDATION", WBEM_FLAG_STRONG_VALIDATION, r);
	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "WBEM_FLAG_RETURN_ERROR_OBJECT", WBEM_FLAG_RETURN_ERROR_OBJECT, r);
	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "WBEM_FLAG_DONT_SEND_STATUS", WBEM_FLAG_DONT_SEND_STATUS, r);
	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "WBEM_FLAG_SEND_ONLY_SELECTED", WBEM_FLAG_SEND_ONLY_SELECTED, r);
	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "WBEM_RETURN_WHEN_COMPLETE", WBEM_RETURN_WHEN_COMPLETE, r);
	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "WBEM_RETURN_IMMEDIATELY", WBEM_RETURN_IMMEDIATELY, r);
	ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "WBEM_MASK_RESERVED_FLAGS", WBEM_MASK_RESERVED_FLAGS, r);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_WBEM_TIMEOUT_TYPE(struct ndr_push *ndr, int ndr_flags, enum WBEM_TIMEOUT_TYPE r)
{
	NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_WBEM_TIMEOUT_TYPE(struct ndr_pull *ndr, int ndr_flags, enum WBEM_TIMEOUT_TYPE *r)
{
	uint32_t v;
	NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
	*r = v;
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_WBEM_TIMEOUT_TYPE(struct ndr_print *ndr, const char *name, enum WBEM_TIMEOUT_TYPE r)
{
	const char *val = NULL;

	switch (r) {
		case WBEM_NO_WAIT: val = "WBEM_NO_WAIT"; break;
		case WBEM_INFINITE: val = "WBEM_INFINITE"; break;
	}
	ndr_print_enum(ndr, name, "ENUM", val, r);
}

_PUBLIC_ enum ndr_err_code ndr_push_CIMTYPE_ENUMERATION(struct ndr_push *ndr, int ndr_flags, enum CIMTYPE_ENUMERATION r)
{
	NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_CIMTYPE_ENUMERATION(struct ndr_pull *ndr, int ndr_flags, enum CIMTYPE_ENUMERATION *r)
{
	uint32_t v;
	NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
	*r = v;
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_CIMTYPE_ENUMERATION(struct ndr_print *ndr, const char *name, enum CIMTYPE_ENUMERATION r)
{
	const char *val = NULL;

	switch (r) {
		case CIM_EMPTY: val = "CIM_EMPTY"; break;
		case CIM_SINT16: val = "CIM_SINT16"; break;
		case CIM_SINT32: val = "CIM_SINT32"; break;
		case CIM_REAL32: val = "CIM_REAL32"; break;
		case CIM_REAL64: val = "CIM_REAL64"; break;
		case CIM_STRING: val = "CIM_STRING"; break;
		case CIM_BOOLEAN: val = "CIM_BOOLEAN"; break;
		case CIM_OBJECT: val = "CIM_OBJECT"; break;
		case CIM_SINT8: val = "CIM_SINT8"; break;
		case CIM_UINT8: val = "CIM_UINT8"; break;
		case CIM_UINT16: val = "CIM_UINT16"; break;
		case CIM_UINT32: val = "CIM_UINT32"; break;
		case CIM_SINT64: val = "CIM_SINT64"; break;
		case CIM_UINT64: val = "CIM_UINT64"; break;
		case CIM_DATETIME: val = "CIM_DATETIME"; break;
		case CIM_REFERENCE: val = "CIM_REFERENCE"; break;
		case CIM_CHAR16: val = "CIM_CHAR16"; break;
		case CIM_FLAG_ARRAY: val = "CIM_FLAG_ARRAY"; break;
		case CIM_ILLEGAL: val = "CIM_ILLEGAL"; break;
		case CIM_TYPEMASK: val = "CIM_TYPEMASK"; break;
		case CIM_ARR_SINT8: val = "CIM_ARR_SINT8"; break;
		case CIM_ARR_UINT8: val = "CIM_ARR_UINT8"; break;
		case CIM_ARR_SINT16: val = "CIM_ARR_SINT16"; break;
		case CIM_ARR_UINT16: val = "CIM_ARR_UINT16"; break;
		case CIM_ARR_SINT32: val = "CIM_ARR_SINT32"; break;
		case CIM_ARR_UINT32: val = "CIM_ARR_UINT32"; break;
		case CIM_ARR_SINT64: val = "CIM_ARR_SINT64"; break;
		case CIM_ARR_UINT64: val = "CIM_ARR_UINT64"; break;
		case CIM_ARR_REAL32: val = "CIM_ARR_REAL32"; break;
		case CIM_ARR_REAL64: val = "CIM_ARR_REAL64"; break;
		case CIM_ARR_BOOLEAN: val = "CIM_ARR_BOOLEAN"; break;
		case CIM_ARR_STRING: val = "CIM_ARR_STRING"; break;
		case CIM_ARR_DATETIME: val = "CIM_ARR_DATETIME"; break;
		case CIM_ARR_REFERENCE: val = "CIM_ARR_REFERENCE"; break;
		case CIM_ARR_CHAR16: val = "CIM_ARR_CHAR16"; break;
		case CIM_ARR_OBJECT: val = "CIM_ARR_OBJECT"; break;
	}
	ndr_print_enum(ndr, name, "ENUM", val, r);
}

_PUBLIC_ enum ndr_err_code ndr_push_WBEM_FLAVOR_TYPE(struct ndr_push *ndr, int ndr_flags, uint8_t r)
{
	NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r));
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_WBEM_FLAVOR_TYPE(struct ndr_pull *ndr, int ndr_flags, uint8_t *r)
{
	uint8_t v;
	NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &v));
	*r = v;
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_WBEM_FLAVOR_TYPE(struct ndr_print *ndr, const char *name, uint8_t r)
{
	ndr_print_uint8(ndr, name, r);
	ndr->depth++;
	ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "WBEM_FLAVOR_FLAG_PROPAGATE_TO_INSTANCE", WBEM_FLAVOR_FLAG_PROPAGATE_TO_INSTANCE, r);
	ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "WBEM_FLAVOR_FLAG_PROPAGATE_TO_DERIVED_CLASS", WBEM_FLAVOR_FLAG_PROPAGATE_TO_DERIVED_CLASS, r);
	ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "WBEM_FLAVOR_NOT_OVERRIDABLE", WBEM_FLAVOR_NOT_OVERRIDABLE, r);
	ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "WBEM_FLAVOR_ORIGIN_PROPAGATED", WBEM_FLAVOR_ORIGIN_PROPAGATED, r);
	ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "WBEM_FLAVOR_ORIGIN_SYSTEM", WBEM_FLAVOR_ORIGIN_SYSTEM, r);
	ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "WBEM_FLAVOR_AMENDED", WBEM_FLAVOR_AMENDED, r);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_WCO_FLAGS(struct ndr_push *ndr, int ndr_flags, uint8_t r)
{
	NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r));
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_WCO_FLAGS(struct ndr_pull *ndr, int ndr_flags, uint8_t *r)
{
	uint8_t v;
	NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &v));
	*r = v;
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_WCO_FLAGS(struct ndr_print *ndr, const char *name, uint8_t r)
{
	ndr_print_uint8(ndr, name, r);
	ndr->depth++;
	ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "WCF_DECORATIONS", WCF_DECORATIONS, r);
	ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "WCF_INSTANCE", WCF_INSTANCE, r);
	ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "WCF_CLASS", WCF_CLASS, r);
	ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "WCF_CLASS_PART_INTERNAL", WCF_CLASS_PART_INTERNAL, r);
	ndr->depth--;
}

_PUBLIC_ enum ndr_err_code ndr_push_DEFAULT_FLAGS(struct ndr_push *ndr, int ndr_flags, uint8_t r)
{
	NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r));
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ enum ndr_err_code ndr_pull_DEFAULT_FLAGS(struct ndr_pull *ndr, int ndr_flags, uint8_t *r)
{
	uint8_t v;
	NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &v));
	*r = v;
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_DEFAULT_FLAGS(struct ndr_print *ndr, const char *name, uint8_t r)
{
	ndr_print_uint8(ndr, name, r);
	ndr->depth++;
	ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "DEFAULT_FLAG_EMPTY", DEFAULT_FLAG_EMPTY, r);
	ndr_print_bitmap_flag(ndr, sizeof(uint8_t), "DEFAULT_FLAG_INHERITED", DEFAULT_FLAG_INHERITED, r);
	ndr->depth--;
}

static enum ndr_err_code ndr_push_OpenNamespace(struct ndr_push *ndr, int flags, const struct OpenNamespace *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_push_BSTR(ndr, NDR_SCALARS, &r->in.strNamespace));
		NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.lFlags));
		if (r->in.pCtx == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pCtx));
		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ppWorkingNamespace));
		if (r->in.ppWorkingNamespace) {
			NDR_CHECK(ndr_push_unique_ptr(ndr, *r->in.ppWorkingNamespace));
			if (*r->in.ppWorkingNamespace) {
				NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->in.ppWorkingNamespace));
			}
		}
		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ppResult));
		if (r->in.ppResult) {
			NDR_CHECK(ndr_push_unique_ptr(ndr, *r->in.ppResult));
			if (*r->in.ppResult) {
				NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->in.ppResult));
			}
		}
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.ppWorkingNamespace));
		if (r->out.ppWorkingNamespace) {
			NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ppWorkingNamespace));
			if (*r->out.ppWorkingNamespace) {
				NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppWorkingNamespace));
			}
		}
		NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.ppResult));
		if (r->out.ppResult) {
			NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ppResult));
			if (*r->out.ppResult) {
				NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppResult));
			}
		}
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_OpenNamespace(struct ndr_pull *ndr, int flags, struct OpenNamespace *r)
{
	uint32_t _ptr_ppWorkingNamespace;
	uint32_t _ptr_ppResult;
	TALLOC_CTX *_mem_save_ORPCthat_0;
	TALLOC_CTX *_mem_save_pCtx_0;
	TALLOC_CTX *_mem_save_ppWorkingNamespace_0;
	TALLOC_CTX *_mem_save_ppWorkingNamespace_1;
	TALLOC_CTX *_mem_save_ppResult_0;
	TALLOC_CTX *_mem_save_ppResult_1;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		ZERO_STRUCT(r->out);

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_pull_BSTR(ndr, NDR_SCALARS, &r->in.strNamespace));
		NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.lFlags));
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->in.pCtx);
		}
		_mem_save_pCtx_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->in.pCtx, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pCtx));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pCtx_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppWorkingNamespace));
		if (_ptr_ppWorkingNamespace) {
			NDR_PULL_ALLOC(ndr, r->in.ppWorkingNamespace);
		} else {
			r->in.ppWorkingNamespace = NULL;
		}
		if (r->in.ppWorkingNamespace) {
			_mem_save_ppWorkingNamespace_0 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, r->in.ppWorkingNamespace, 0);
			NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppWorkingNamespace));
			if (_ptr_ppWorkingNamespace) {
				NDR_PULL_ALLOC(ndr, *r->in.ppWorkingNamespace);
			} else {
				*r->in.ppWorkingNamespace = NULL;
			}
			if (*r->in.ppWorkingNamespace) {
				_mem_save_ppWorkingNamespace_1 = NDR_PULL_GET_MEM_CTX(ndr);
				NDR_PULL_SET_MEM_CTX(ndr, *r->in.ppWorkingNamespace, 0);
				NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->in.ppWorkingNamespace));
				NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppWorkingNamespace_1, 0);
			}
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppWorkingNamespace_0, 0);
		}
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppResult));
		if (_ptr_ppResult) {
			NDR_PULL_ALLOC(ndr, r->in.ppResult);
		} else {
			r->in.ppResult = NULL;
		}
		if (r->in.ppResult) {
			_mem_save_ppResult_0 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, r->in.ppResult, 0);
			NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppResult));
			if (_ptr_ppResult) {
				NDR_PULL_ALLOC(ndr, *r->in.ppResult);
			} else {
				*r->in.ppResult = NULL;
			}
			if (*r->in.ppResult) {
				_mem_save_ppResult_1 = NDR_PULL_GET_MEM_CTX(ndr);
				NDR_PULL_SET_MEM_CTX(ndr, *r->in.ppResult, 0);
				NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->in.ppResult));
				NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppResult_1, 0);
			}
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppResult_0, 0);
		}
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppWorkingNamespace));
		if (_ptr_ppWorkingNamespace) {
			NDR_PULL_ALLOC(ndr, r->out.ppWorkingNamespace);
		} else {
			r->out.ppWorkingNamespace = NULL;
		}
		if (r->out.ppWorkingNamespace) {
			_mem_save_ppWorkingNamespace_0 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, r->out.ppWorkingNamespace, 0);
			NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppWorkingNamespace));
			if (_ptr_ppWorkingNamespace) {
				NDR_PULL_ALLOC(ndr, *r->out.ppWorkingNamespace);
			} else {
				*r->out.ppWorkingNamespace = NULL;
			}
			if (*r->out.ppWorkingNamespace) {
				_mem_save_ppWorkingNamespace_1 = NDR_PULL_GET_MEM_CTX(ndr);
				NDR_PULL_SET_MEM_CTX(ndr, *r->out.ppWorkingNamespace, 0);
				NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppWorkingNamespace));
				NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppWorkingNamespace_1, 0);
			}
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppWorkingNamespace_0, 0);
		}
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppResult));
		if (_ptr_ppResult) {
			NDR_PULL_ALLOC(ndr, r->out.ppResult);
		} else {
			r->out.ppResult = NULL;
		}
		if (r->out.ppResult) {
			_mem_save_ppResult_0 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, r->out.ppResult, 0);
			NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppResult));
			if (_ptr_ppResult) {
				NDR_PULL_ALLOC(ndr, *r->out.ppResult);
			} else {
				*r->out.ppResult = NULL;
			}
			if (*r->out.ppResult) {
				_mem_save_ppResult_1 = NDR_PULL_GET_MEM_CTX(ndr);
				NDR_PULL_SET_MEM_CTX(ndr, *r->out.ppResult, 0);
				NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppResult));
				NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppResult_1, 0);
			}
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppResult_0, 0);
		}
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_OpenNamespace(struct ndr_print *ndr, const char *name, int flags, const struct OpenNamespace *r)
{
	ndr_print_struct(ndr, name, "OpenNamespace");
	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", "OpenNamespace");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr_print_BSTR(ndr, "strNamespace", &r->in.strNamespace);
		ndr_print_int32(ndr, "lFlags", r->in.lFlags);
		ndr_print_ptr(ndr, "pCtx", r->in.pCtx);
		ndr->depth++;
		ndr_print_MInterfacePointer(ndr, "pCtx", r->in.pCtx);
		ndr->depth--;
		ndr_print_ptr(ndr, "ppWorkingNamespace", r->in.ppWorkingNamespace);
		ndr->depth++;
		if (r->in.ppWorkingNamespace) {
			ndr_print_ptr(ndr, "ppWorkingNamespace", *r->in.ppWorkingNamespace);
			ndr->depth++;
			if (*r->in.ppWorkingNamespace) {
				ndr_print_MInterfacePointer(ndr, "ppWorkingNamespace", *r->in.ppWorkingNamespace);
			}
			ndr->depth--;
		}
		ndr->depth--;
		ndr_print_ptr(ndr, "ppResult", r->in.ppResult);
		ndr->depth++;
		if (r->in.ppResult) {
			ndr_print_ptr(ndr, "ppResult", *r->in.ppResult);
			ndr->depth++;
			if (*r->in.ppResult) {
				ndr_print_MInterfacePointer(ndr, "ppResult", *r->in.ppResult);
			}
			ndr->depth--;
		}
		ndr->depth--;
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "OpenNamespace");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_ptr(ndr, "ppWorkingNamespace", r->out.ppWorkingNamespace);
		ndr->depth++;
		if (r->out.ppWorkingNamespace) {
			ndr_print_ptr(ndr, "ppWorkingNamespace", *r->out.ppWorkingNamespace);
			ndr->depth++;
			if (*r->out.ppWorkingNamespace) {
				ndr_print_MInterfacePointer(ndr, "ppWorkingNamespace", *r->out.ppWorkingNamespace);
			}
			ndr->depth--;
		}
		ndr->depth--;
		ndr_print_ptr(ndr, "ppResult", r->out.ppResult);
		ndr->depth++;
		if (r->out.ppResult) {
			ndr_print_ptr(ndr, "ppResult", *r->out.ppResult);
			ndr->depth++;
			if (*r->out.ppResult) {
				ndr_print_MInterfacePointer(ndr, "ppResult", *r->out.ppResult);
			}
			ndr->depth--;
		}
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_CancelAsyncCall(struct ndr_push *ndr, int flags, const struct CancelAsyncCall *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		if (r->in.pSink == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pSink));
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_CancelAsyncCall(struct ndr_pull *ndr, int flags, struct CancelAsyncCall *r)
{
	TALLOC_CTX *_mem_save_ORPCthat_0;
	TALLOC_CTX *_mem_save_pSink_0;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		ZERO_STRUCT(r->out);

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->in.pSink);
		}
		_mem_save_pSink_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->in.pSink, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pSink));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pSink_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_CancelAsyncCall(struct ndr_print *ndr, const char *name, int flags, const struct CancelAsyncCall *r)
{
	ndr_print_struct(ndr, name, "CancelAsyncCall");
	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", "CancelAsyncCall");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr_print_ptr(ndr, "pSink", r->in.pSink);
		ndr->depth++;
		ndr_print_MInterfacePointer(ndr, "pSink", r->in.pSink);
		ndr->depth--;
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "CancelAsyncCall");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_QueryObjectSink(struct ndr_push *ndr, int flags, const struct QueryObjectSink *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.lFlags));
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		if (r->out.ppResponseHandler == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ppResponseHandler));
		if (*r->out.ppResponseHandler) {
			NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppResponseHandler));
		}
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_QueryObjectSink(struct ndr_pull *ndr, int flags, struct QueryObjectSink *r)
{
	uint32_t _ptr_ppResponseHandler;
	TALLOC_CTX *_mem_save_ORPCthat_0;
	TALLOC_CTX *_mem_save_ppResponseHandler_0;
	TALLOC_CTX *_mem_save_ppResponseHandler_1;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		ZERO_STRUCT(r->out);

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.lFlags));
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
		NDR_PULL_ALLOC(ndr, r->out.ppResponseHandler);
		ZERO_STRUCTP(r->out.ppResponseHandler);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ppResponseHandler);
		}
		_mem_save_ppResponseHandler_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ppResponseHandler, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppResponseHandler));
		if (_ptr_ppResponseHandler) {
			NDR_PULL_ALLOC(ndr, *r->out.ppResponseHandler);
		} else {
			*r->out.ppResponseHandler = NULL;
		}
		if (*r->out.ppResponseHandler) {
			_mem_save_ppResponseHandler_1 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, *r->out.ppResponseHandler, 0);
			NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppResponseHandler));
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppResponseHandler_1, 0);
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppResponseHandler_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_QueryObjectSink(struct ndr_print *ndr, const char *name, int flags, const struct QueryObjectSink *r)
{
	ndr_print_struct(ndr, name, "QueryObjectSink");
	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", "QueryObjectSink");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr_print_int32(ndr, "lFlags", r->in.lFlags);
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "QueryObjectSink");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_ptr(ndr, "ppResponseHandler", r->out.ppResponseHandler);
		ndr->depth++;
		ndr_print_ptr(ndr, "ppResponseHandler", *r->out.ppResponseHandler);
		ndr->depth++;
		if (*r->out.ppResponseHandler) {
			ndr_print_MInterfacePointer(ndr, "ppResponseHandler", *r->out.ppResponseHandler);
		}
		ndr->depth--;
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_GetObject(struct ndr_push *ndr, int flags, const struct GetObject *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_push_BSTR(ndr, NDR_SCALARS, &r->in.strObjectPath));
		NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.lFlags));
		if (r->in.pCtx == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pCtx));
		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ppObject));
		if (r->in.ppObject) {
			NDR_CHECK(ndr_push_unique_ptr(ndr, *r->in.ppObject));
			if (*r->in.ppObject) {
				NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->in.ppObject));
			}
		}
		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ppCallResult));
		if (r->in.ppCallResult) {
			NDR_CHECK(ndr_push_unique_ptr(ndr, *r->in.ppCallResult));
			if (*r->in.ppCallResult) {
				NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->in.ppCallResult));
			}
		}
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.ppObject));
		if (r->out.ppObject) {
			NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ppObject));
			if (*r->out.ppObject) {
				NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppObject));
			}
		}
		NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.ppCallResult));
		if (r->out.ppCallResult) {
			NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ppCallResult));
			if (*r->out.ppCallResult) {
				NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppCallResult));
			}
		}
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_GetObject(struct ndr_pull *ndr, int flags, struct GetObject *r)
{
	uint32_t _ptr_ppObject;
	uint32_t _ptr_ppCallResult;
	TALLOC_CTX *_mem_save_ORPCthat_0;
	TALLOC_CTX *_mem_save_pCtx_0;
	TALLOC_CTX *_mem_save_ppObject_0;
	TALLOC_CTX *_mem_save_ppObject_1;
	TALLOC_CTX *_mem_save_ppCallResult_0;
	TALLOC_CTX *_mem_save_ppCallResult_1;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		ZERO_STRUCT(r->out);

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_pull_BSTR(ndr, NDR_SCALARS, &r->in.strObjectPath));
		NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.lFlags));
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->in.pCtx);
		}
		_mem_save_pCtx_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->in.pCtx, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pCtx));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pCtx_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppObject));
		if (_ptr_ppObject) {
			NDR_PULL_ALLOC(ndr, r->in.ppObject);
		} else {
			r->in.ppObject = NULL;
		}
		if (r->in.ppObject) {
			_mem_save_ppObject_0 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, r->in.ppObject, 0);
			NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppObject));
			if (_ptr_ppObject) {
				NDR_PULL_ALLOC(ndr, *r->in.ppObject);
			} else {
				*r->in.ppObject = NULL;
			}
			if (*r->in.ppObject) {
				_mem_save_ppObject_1 = NDR_PULL_GET_MEM_CTX(ndr);
				NDR_PULL_SET_MEM_CTX(ndr, *r->in.ppObject, 0);
				NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->in.ppObject));
				NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppObject_1, 0);
			}
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppObject_0, 0);
		}
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppCallResult));
		if (_ptr_ppCallResult) {
			NDR_PULL_ALLOC(ndr, r->in.ppCallResult);
		} else {
			r->in.ppCallResult = NULL;
		}
		if (r->in.ppCallResult) {
			_mem_save_ppCallResult_0 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, r->in.ppCallResult, 0);
			NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppCallResult));
			if (_ptr_ppCallResult) {
				NDR_PULL_ALLOC(ndr, *r->in.ppCallResult);
			} else {
				*r->in.ppCallResult = NULL;
			}
			if (*r->in.ppCallResult) {
				_mem_save_ppCallResult_1 = NDR_PULL_GET_MEM_CTX(ndr);
				NDR_PULL_SET_MEM_CTX(ndr, *r->in.ppCallResult, 0);
				NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->in.ppCallResult));
				NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppCallResult_1, 0);
			}
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppCallResult_0, 0);
		}
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppObject));
		if (_ptr_ppObject) {
			NDR_PULL_ALLOC(ndr, r->out.ppObject);
		} else {
			r->out.ppObject = NULL;
		}
		if (r->out.ppObject) {
			_mem_save_ppObject_0 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, r->out.ppObject, 0);
			NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppObject));
			if (_ptr_ppObject) {
				NDR_PULL_ALLOC(ndr, *r->out.ppObject);
			} else {
				*r->out.ppObject = NULL;
			}
			if (*r->out.ppObject) {
				_mem_save_ppObject_1 = NDR_PULL_GET_MEM_CTX(ndr);
				NDR_PULL_SET_MEM_CTX(ndr, *r->out.ppObject, 0);
				NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppObject));
				NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppObject_1, 0);
			}
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppObject_0, 0);
		}
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppCallResult));
		if (_ptr_ppCallResult) {
			NDR_PULL_ALLOC(ndr, r->out.ppCallResult);
		} else {
			r->out.ppCallResult = NULL;
		}
		if (r->out.ppCallResult) {
			_mem_save_ppCallResult_0 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, r->out.ppCallResult, 0);
			NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppCallResult));
			if (_ptr_ppCallResult) {
				NDR_PULL_ALLOC(ndr, *r->out.ppCallResult);
			} else {
				*r->out.ppCallResult = NULL;
			}
			if (*r->out.ppCallResult) {
				_mem_save_ppCallResult_1 = NDR_PULL_GET_MEM_CTX(ndr);
				NDR_PULL_SET_MEM_CTX(ndr, *r->out.ppCallResult, 0);
				NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppCallResult));
				NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppCallResult_1, 0);
			}
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppCallResult_0, 0);
		}
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_GetObject(struct ndr_print *ndr, const char *name, int flags, const struct GetObject *r)
{
	ndr_print_struct(ndr, name, "GetObject");
	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", "GetObject");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr_print_BSTR(ndr, "strObjectPath", &r->in.strObjectPath);
		ndr_print_int32(ndr, "lFlags", r->in.lFlags);
		ndr_print_ptr(ndr, "pCtx", r->in.pCtx);
		ndr->depth++;
		ndr_print_MInterfacePointer(ndr, "pCtx", r->in.pCtx);
		ndr->depth--;
		ndr_print_ptr(ndr, "ppObject", r->in.ppObject);
		ndr->depth++;
		if (r->in.ppObject) {
			ndr_print_ptr(ndr, "ppObject", *r->in.ppObject);
			ndr->depth++;
			if (*r->in.ppObject) {
				ndr_print_MInterfacePointer(ndr, "ppObject", *r->in.ppObject);
			}
			ndr->depth--;
		}
		ndr->depth--;
		ndr_print_ptr(ndr, "ppCallResult", r->in.ppCallResult);
		ndr->depth++;
		if (r->in.ppCallResult) {
			ndr_print_ptr(ndr, "ppCallResult", *r->in.ppCallResult);
			ndr->depth++;
			if (*r->in.ppCallResult) {
				ndr_print_MInterfacePointer(ndr, "ppCallResult", *r->in.ppCallResult);
			}
			ndr->depth--;
		}
		ndr->depth--;
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "GetObject");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_ptr(ndr, "ppObject", r->out.ppObject);
		ndr->depth++;
		if (r->out.ppObject) {
			ndr_print_ptr(ndr, "ppObject", *r->out.ppObject);
			ndr->depth++;
			if (*r->out.ppObject) {
				ndr_print_MInterfacePointer(ndr, "ppObject", *r->out.ppObject);
			}
			ndr->depth--;
		}
		ndr->depth--;
		ndr_print_ptr(ndr, "ppCallResult", r->out.ppCallResult);
		ndr->depth++;
		if (r->out.ppCallResult) {
			ndr_print_ptr(ndr, "ppCallResult", *r->out.ppCallResult);
			ndr->depth++;
			if (*r->out.ppCallResult) {
				ndr_print_MInterfacePointer(ndr, "ppCallResult", *r->out.ppCallResult);
			}
			ndr->depth--;
		}
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_GetObjectAsync(struct ndr_push *ndr, int flags, const struct GetObjectAsync *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_push_BSTR(ndr, NDR_SCALARS, &r->in.strObjectPath));
		NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.lFlags));
		if (r->in.pCtx == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pCtx));
		if (r->in.pResponseHandler == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pResponseHandler));
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_GetObjectAsync(struct ndr_pull *ndr, int flags, struct GetObjectAsync *r)
{
	TALLOC_CTX *_mem_save_ORPCthat_0;
	TALLOC_CTX *_mem_save_pCtx_0;
	TALLOC_CTX *_mem_save_pResponseHandler_0;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		ZERO_STRUCT(r->out);

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_pull_BSTR(ndr, NDR_SCALARS, &r->in.strObjectPath));
		NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.lFlags));
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->in.pCtx);
		}
		_mem_save_pCtx_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->in.pCtx, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pCtx));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pCtx_0, LIBNDR_FLAG_REF_ALLOC);
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->in.pResponseHandler);
		}
		_mem_save_pResponseHandler_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->in.pResponseHandler, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pResponseHandler));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pResponseHandler_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_GetObjectAsync(struct ndr_print *ndr, const char *name, int flags, const struct GetObjectAsync *r)
{
	ndr_print_struct(ndr, name, "GetObjectAsync");
	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", "GetObjectAsync");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr_print_BSTR(ndr, "strObjectPath", &r->in.strObjectPath);
		ndr_print_int32(ndr, "lFlags", r->in.lFlags);
		ndr_print_ptr(ndr, "pCtx", r->in.pCtx);
		ndr->depth++;
		ndr_print_MInterfacePointer(ndr, "pCtx", r->in.pCtx);
		ndr->depth--;
		ndr_print_ptr(ndr, "pResponseHandler", r->in.pResponseHandler);
		ndr->depth++;
		ndr_print_MInterfacePointer(ndr, "pResponseHandler", r->in.pResponseHandler);
		ndr->depth--;
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "GetObjectAsync");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_PutClass(struct ndr_push *ndr, int flags, const struct PutClass *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		if (r->in.pObject == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pObject));
		NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.lFlags));
		if (r->in.pCtx == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pCtx));
		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ppCallResult));
		if (r->in.ppCallResult) {
			NDR_CHECK(ndr_push_unique_ptr(ndr, *r->in.ppCallResult));
			if (*r->in.ppCallResult) {
				NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->in.ppCallResult));
			}
		}
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.ppCallResult));
		if (r->out.ppCallResult) {
			NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ppCallResult));
			if (*r->out.ppCallResult) {
				NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppCallResult));
			}
		}
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_PutClass(struct ndr_pull *ndr, int flags, struct PutClass *r)
{
	uint32_t _ptr_ppCallResult;
	TALLOC_CTX *_mem_save_ORPCthat_0;
	TALLOC_CTX *_mem_save_pObject_0;
	TALLOC_CTX *_mem_save_pCtx_0;
	TALLOC_CTX *_mem_save_ppCallResult_0;
	TALLOC_CTX *_mem_save_ppCallResult_1;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		ZERO_STRUCT(r->out);

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->in.pObject);
		}
		_mem_save_pObject_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->in.pObject, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pObject));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pObject_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.lFlags));
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->in.pCtx);
		}
		_mem_save_pCtx_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->in.pCtx, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pCtx));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pCtx_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppCallResult));
		if (_ptr_ppCallResult) {
			NDR_PULL_ALLOC(ndr, r->in.ppCallResult);
		} else {
			r->in.ppCallResult = NULL;
		}
		if (r->in.ppCallResult) {
			_mem_save_ppCallResult_0 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, r->in.ppCallResult, 0);
			NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppCallResult));
			if (_ptr_ppCallResult) {
				NDR_PULL_ALLOC(ndr, *r->in.ppCallResult);
			} else {
				*r->in.ppCallResult = NULL;
			}
			if (*r->in.ppCallResult) {
				_mem_save_ppCallResult_1 = NDR_PULL_GET_MEM_CTX(ndr);
				NDR_PULL_SET_MEM_CTX(ndr, *r->in.ppCallResult, 0);
				NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->in.ppCallResult));
				NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppCallResult_1, 0);
			}
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppCallResult_0, 0);
		}
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppCallResult));
		if (_ptr_ppCallResult) {
			NDR_PULL_ALLOC(ndr, r->out.ppCallResult);
		} else {
			r->out.ppCallResult = NULL;
		}
		if (r->out.ppCallResult) {
			_mem_save_ppCallResult_0 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, r->out.ppCallResult, 0);
			NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppCallResult));
			if (_ptr_ppCallResult) {
				NDR_PULL_ALLOC(ndr, *r->out.ppCallResult);
			} else {
				*r->out.ppCallResult = NULL;
			}
			if (*r->out.ppCallResult) {
				_mem_save_ppCallResult_1 = NDR_PULL_GET_MEM_CTX(ndr);
				NDR_PULL_SET_MEM_CTX(ndr, *r->out.ppCallResult, 0);
				NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppCallResult));
				NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppCallResult_1, 0);
			}
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppCallResult_0, 0);
		}
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_PutClass(struct ndr_print *ndr, const char *name, int flags, const struct PutClass *r)
{
	ndr_print_struct(ndr, name, "PutClass");
	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", "PutClass");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr_print_ptr(ndr, "pObject", r->in.pObject);
		ndr->depth++;
		ndr_print_MInterfacePointer(ndr, "pObject", r->in.pObject);
		ndr->depth--;
		ndr_print_int32(ndr, "lFlags", r->in.lFlags);
		ndr_print_ptr(ndr, "pCtx", r->in.pCtx);
		ndr->depth++;
		ndr_print_MInterfacePointer(ndr, "pCtx", r->in.pCtx);
		ndr->depth--;
		ndr_print_ptr(ndr, "ppCallResult", r->in.ppCallResult);
		ndr->depth++;
		if (r->in.ppCallResult) {
			ndr_print_ptr(ndr, "ppCallResult", *r->in.ppCallResult);
			ndr->depth++;
			if (*r->in.ppCallResult) {
				ndr_print_MInterfacePointer(ndr, "ppCallResult", *r->in.ppCallResult);
			}
			ndr->depth--;
		}
		ndr->depth--;
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "PutClass");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_ptr(ndr, "ppCallResult", r->out.ppCallResult);
		ndr->depth++;
		if (r->out.ppCallResult) {
			ndr_print_ptr(ndr, "ppCallResult", *r->out.ppCallResult);
			ndr->depth++;
			if (*r->out.ppCallResult) {
				ndr_print_MInterfacePointer(ndr, "ppCallResult", *r->out.ppCallResult);
			}
			ndr->depth--;
		}
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_PutClassAsync(struct ndr_push *ndr, int flags, const struct PutClassAsync *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		if (r->in.pObject == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pObject));
		NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.lFlags));
		if (r->in.pCtx == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pCtx));
		if (r->in.pResponseHandler == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pResponseHandler));
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_PutClassAsync(struct ndr_pull *ndr, int flags, struct PutClassAsync *r)
{
	TALLOC_CTX *_mem_save_ORPCthat_0;
	TALLOC_CTX *_mem_save_pObject_0;
	TALLOC_CTX *_mem_save_pCtx_0;
	TALLOC_CTX *_mem_save_pResponseHandler_0;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		ZERO_STRUCT(r->out);

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->in.pObject);
		}
		_mem_save_pObject_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->in.pObject, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pObject));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pObject_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.lFlags));
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->in.pCtx);
		}
		_mem_save_pCtx_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->in.pCtx, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pCtx));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pCtx_0, LIBNDR_FLAG_REF_ALLOC);
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->in.pResponseHandler);
		}
		_mem_save_pResponseHandler_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->in.pResponseHandler, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pResponseHandler));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pResponseHandler_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_PutClassAsync(struct ndr_print *ndr, const char *name, int flags, const struct PutClassAsync *r)
{
	ndr_print_struct(ndr, name, "PutClassAsync");
	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", "PutClassAsync");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr_print_ptr(ndr, "pObject", r->in.pObject);
		ndr->depth++;
		ndr_print_MInterfacePointer(ndr, "pObject", r->in.pObject);
		ndr->depth--;
		ndr_print_int32(ndr, "lFlags", r->in.lFlags);
		ndr_print_ptr(ndr, "pCtx", r->in.pCtx);
		ndr->depth++;
		ndr_print_MInterfacePointer(ndr, "pCtx", r->in.pCtx);
		ndr->depth--;
		ndr_print_ptr(ndr, "pResponseHandler", r->in.pResponseHandler);
		ndr->depth++;
		ndr_print_MInterfacePointer(ndr, "pResponseHandler", r->in.pResponseHandler);
		ndr->depth--;
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "PutClassAsync");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_DeleteClass(struct ndr_push *ndr, int flags, const struct DeleteClass *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_push_BSTR(ndr, NDR_SCALARS, &r->in.strClass));
		NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.lFlags));
		if (r->in.pCtx == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pCtx));
		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ppCallResult));
		if (r->in.ppCallResult) {
			NDR_CHECK(ndr_push_unique_ptr(ndr, *r->in.ppCallResult));
			if (*r->in.ppCallResult) {
				NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->in.ppCallResult));
			}
		}
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.ppCallResult));
		if (r->out.ppCallResult) {
			NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ppCallResult));
			if (*r->out.ppCallResult) {
				NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppCallResult));
			}
		}
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_DeleteClass(struct ndr_pull *ndr, int flags, struct DeleteClass *r)
{
	uint32_t _ptr_ppCallResult;
	TALLOC_CTX *_mem_save_ORPCthat_0;
	TALLOC_CTX *_mem_save_pCtx_0;
	TALLOC_CTX *_mem_save_ppCallResult_0;
	TALLOC_CTX *_mem_save_ppCallResult_1;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		ZERO_STRUCT(r->out);

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_pull_BSTR(ndr, NDR_SCALARS, &r->in.strClass));
		NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.lFlags));
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->in.pCtx);
		}
		_mem_save_pCtx_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->in.pCtx, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pCtx));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pCtx_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppCallResult));
		if (_ptr_ppCallResult) {
			NDR_PULL_ALLOC(ndr, r->in.ppCallResult);
		} else {
			r->in.ppCallResult = NULL;
		}
		if (r->in.ppCallResult) {
			_mem_save_ppCallResult_0 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, r->in.ppCallResult, 0);
			NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppCallResult));
			if (_ptr_ppCallResult) {
				NDR_PULL_ALLOC(ndr, *r->in.ppCallResult);
			} else {
				*r->in.ppCallResult = NULL;
			}
			if (*r->in.ppCallResult) {
				_mem_save_ppCallResult_1 = NDR_PULL_GET_MEM_CTX(ndr);
				NDR_PULL_SET_MEM_CTX(ndr, *r->in.ppCallResult, 0);
				NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->in.ppCallResult));
				NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppCallResult_1, 0);
			}
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppCallResult_0, 0);
		}
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppCallResult));
		if (_ptr_ppCallResult) {
			NDR_PULL_ALLOC(ndr, r->out.ppCallResult);
		} else {
			r->out.ppCallResult = NULL;
		}
		if (r->out.ppCallResult) {
			_mem_save_ppCallResult_0 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, r->out.ppCallResult, 0);
			NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppCallResult));
			if (_ptr_ppCallResult) {
				NDR_PULL_ALLOC(ndr, *r->out.ppCallResult);
			} else {
				*r->out.ppCallResult = NULL;
			}
			if (*r->out.ppCallResult) {
				_mem_save_ppCallResult_1 = NDR_PULL_GET_MEM_CTX(ndr);
				NDR_PULL_SET_MEM_CTX(ndr, *r->out.ppCallResult, 0);
				NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppCallResult));
				NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppCallResult_1, 0);
			}
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppCallResult_0, 0);
		}
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_DeleteClass(struct ndr_print *ndr, const char *name, int flags, const struct DeleteClass *r)
{
	ndr_print_struct(ndr, name, "DeleteClass");
	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", "DeleteClass");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr_print_BSTR(ndr, "strClass", &r->in.strClass);
		ndr_print_int32(ndr, "lFlags", r->in.lFlags);
		ndr_print_ptr(ndr, "pCtx", r->in.pCtx);
		ndr->depth++;
		ndr_print_MInterfacePointer(ndr, "pCtx", r->in.pCtx);
		ndr->depth--;
		ndr_print_ptr(ndr, "ppCallResult", r->in.ppCallResult);
		ndr->depth++;
		if (r->in.ppCallResult) {
			ndr_print_ptr(ndr, "ppCallResult", *r->in.ppCallResult);
			ndr->depth++;
			if (*r->in.ppCallResult) {
				ndr_print_MInterfacePointer(ndr, "ppCallResult", *r->in.ppCallResult);
			}
			ndr->depth--;
		}
		ndr->depth--;
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "DeleteClass");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_ptr(ndr, "ppCallResult", r->out.ppCallResult);
		ndr->depth++;
		if (r->out.ppCallResult) {
			ndr_print_ptr(ndr, "ppCallResult", *r->out.ppCallResult);
			ndr->depth++;
			if (*r->out.ppCallResult) {
				ndr_print_MInterfacePointer(ndr, "ppCallResult", *r->out.ppCallResult);
			}
			ndr->depth--;
		}
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_DeleteClassAsync(struct ndr_push *ndr, int flags, const struct DeleteClassAsync *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_push_BSTR(ndr, NDR_SCALARS, &r->in.strClass));
		NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.lFlags));
		if (r->in.pCtx == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pCtx));
		if (r->in.pResponseHandler == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pResponseHandler));
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_DeleteClassAsync(struct ndr_pull *ndr, int flags, struct DeleteClassAsync *r)
{
	TALLOC_CTX *_mem_save_ORPCthat_0;
	TALLOC_CTX *_mem_save_pCtx_0;
	TALLOC_CTX *_mem_save_pResponseHandler_0;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		ZERO_STRUCT(r->out);

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_pull_BSTR(ndr, NDR_SCALARS, &r->in.strClass));
		NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.lFlags));
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->in.pCtx);
		}
		_mem_save_pCtx_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->in.pCtx, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pCtx));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pCtx_0, LIBNDR_FLAG_REF_ALLOC);
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->in.pResponseHandler);
		}
		_mem_save_pResponseHandler_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->in.pResponseHandler, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pResponseHandler));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pResponseHandler_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_DeleteClassAsync(struct ndr_print *ndr, const char *name, int flags, const struct DeleteClassAsync *r)
{
	ndr_print_struct(ndr, name, "DeleteClassAsync");
	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", "DeleteClassAsync");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr_print_BSTR(ndr, "strClass", &r->in.strClass);
		ndr_print_int32(ndr, "lFlags", r->in.lFlags);
		ndr_print_ptr(ndr, "pCtx", r->in.pCtx);
		ndr->depth++;
		ndr_print_MInterfacePointer(ndr, "pCtx", r->in.pCtx);
		ndr->depth--;
		ndr_print_ptr(ndr, "pResponseHandler", r->in.pResponseHandler);
		ndr->depth++;
		ndr_print_MInterfacePointer(ndr, "pResponseHandler", r->in.pResponseHandler);
		ndr->depth--;
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "DeleteClassAsync");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_CreateClassEnum(struct ndr_push *ndr, int flags, const struct CreateClassEnum *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_push_BSTR(ndr, NDR_SCALARS, &r->in.strSuperclass));
		NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.lFlags));
		if (r->in.pCtx == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pCtx));
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		if (r->out.ppEnum == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ppEnum));
		if (*r->out.ppEnum) {
			NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppEnum));
		}
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_CreateClassEnum(struct ndr_pull *ndr, int flags, struct CreateClassEnum *r)
{
	uint32_t _ptr_ppEnum;
	TALLOC_CTX *_mem_save_ORPCthat_0;
	TALLOC_CTX *_mem_save_pCtx_0;
	TALLOC_CTX *_mem_save_ppEnum_0;
	TALLOC_CTX *_mem_save_ppEnum_1;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		ZERO_STRUCT(r->out);

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_pull_BSTR(ndr, NDR_SCALARS, &r->in.strSuperclass));
		NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.lFlags));
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->in.pCtx);
		}
		_mem_save_pCtx_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->in.pCtx, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pCtx));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pCtx_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
		NDR_PULL_ALLOC(ndr, r->out.ppEnum);
		ZERO_STRUCTP(r->out.ppEnum);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ppEnum);
		}
		_mem_save_ppEnum_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ppEnum, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppEnum));
		if (_ptr_ppEnum) {
			NDR_PULL_ALLOC(ndr, *r->out.ppEnum);
		} else {
			*r->out.ppEnum = NULL;
		}
		if (*r->out.ppEnum) {
			_mem_save_ppEnum_1 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, *r->out.ppEnum, 0);
			NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppEnum));
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppEnum_1, 0);
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppEnum_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_CreateClassEnum(struct ndr_print *ndr, const char *name, int flags, const struct CreateClassEnum *r)
{
	ndr_print_struct(ndr, name, "CreateClassEnum");
	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", "CreateClassEnum");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr_print_BSTR(ndr, "strSuperclass", &r->in.strSuperclass);
		ndr_print_int32(ndr, "lFlags", r->in.lFlags);
		ndr_print_ptr(ndr, "pCtx", r->in.pCtx);
		ndr->depth++;
		ndr_print_MInterfacePointer(ndr, "pCtx", r->in.pCtx);
		ndr->depth--;
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "CreateClassEnum");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_ptr(ndr, "ppEnum", r->out.ppEnum);
		ndr->depth++;
		ndr_print_ptr(ndr, "ppEnum", *r->out.ppEnum);
		ndr->depth++;
		if (*r->out.ppEnum) {
			ndr_print_MInterfacePointer(ndr, "ppEnum", *r->out.ppEnum);
		}
		ndr->depth--;
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_CreateClassEnumAsync(struct ndr_push *ndr, int flags, const struct CreateClassEnumAsync *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_push_BSTR(ndr, NDR_SCALARS, &r->in.strSuperclass));
		NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.lFlags));
		if (r->in.pCtx == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pCtx));
		if (r->in.pResponseHandler == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pResponseHandler));
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_CreateClassEnumAsync(struct ndr_pull *ndr, int flags, struct CreateClassEnumAsync *r)
{
	TALLOC_CTX *_mem_save_ORPCthat_0;
	TALLOC_CTX *_mem_save_pCtx_0;
	TALLOC_CTX *_mem_save_pResponseHandler_0;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		ZERO_STRUCT(r->out);

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_pull_BSTR(ndr, NDR_SCALARS, &r->in.strSuperclass));
		NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.lFlags));
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->in.pCtx);
		}
		_mem_save_pCtx_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->in.pCtx, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pCtx));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pCtx_0, LIBNDR_FLAG_REF_ALLOC);
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->in.pResponseHandler);
		}
		_mem_save_pResponseHandler_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->in.pResponseHandler, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pResponseHandler));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pResponseHandler_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_CreateClassEnumAsync(struct ndr_print *ndr, const char *name, int flags, const struct CreateClassEnumAsync *r)
{
	ndr_print_struct(ndr, name, "CreateClassEnumAsync");
	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", "CreateClassEnumAsync");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr_print_BSTR(ndr, "strSuperclass", &r->in.strSuperclass);
		ndr_print_int32(ndr, "lFlags", r->in.lFlags);
		ndr_print_ptr(ndr, "pCtx", r->in.pCtx);
		ndr->depth++;
		ndr_print_MInterfacePointer(ndr, "pCtx", r->in.pCtx);
		ndr->depth--;
		ndr_print_ptr(ndr, "pResponseHandler", r->in.pResponseHandler);
		ndr->depth++;
		ndr_print_MInterfacePointer(ndr, "pResponseHandler", r->in.pResponseHandler);
		ndr->depth--;
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "CreateClassEnumAsync");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_PutInstance(struct ndr_push *ndr, int flags, const struct PutInstance *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		if (r->in.pInst == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pInst));
		NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.lFlags));
		if (r->in.pCtx == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pCtx));
		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ppCallResult));
		if (r->in.ppCallResult) {
			NDR_CHECK(ndr_push_unique_ptr(ndr, *r->in.ppCallResult));
			if (*r->in.ppCallResult) {
				NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->in.ppCallResult));
			}
		}
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.ppCallResult));
		if (r->out.ppCallResult) {
			NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ppCallResult));
			if (*r->out.ppCallResult) {
				NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppCallResult));
			}
		}
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_PutInstance(struct ndr_pull *ndr, int flags, struct PutInstance *r)
{
	uint32_t _ptr_ppCallResult;
	TALLOC_CTX *_mem_save_ORPCthat_0;
	TALLOC_CTX *_mem_save_pInst_0;
	TALLOC_CTX *_mem_save_pCtx_0;
	TALLOC_CTX *_mem_save_ppCallResult_0;
	TALLOC_CTX *_mem_save_ppCallResult_1;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		ZERO_STRUCT(r->out);

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->in.pInst);
		}
		_mem_save_pInst_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->in.pInst, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pInst));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pInst_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.lFlags));
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->in.pCtx);
		}
		_mem_save_pCtx_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->in.pCtx, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pCtx));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pCtx_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppCallResult));
		if (_ptr_ppCallResult) {
			NDR_PULL_ALLOC(ndr, r->in.ppCallResult);
		} else {
			r->in.ppCallResult = NULL;
		}
		if (r->in.ppCallResult) {
			_mem_save_ppCallResult_0 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, r->in.ppCallResult, 0);
			NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppCallResult));
			if (_ptr_ppCallResult) {
				NDR_PULL_ALLOC(ndr, *r->in.ppCallResult);
			} else {
				*r->in.ppCallResult = NULL;
			}
			if (*r->in.ppCallResult) {
				_mem_save_ppCallResult_1 = NDR_PULL_GET_MEM_CTX(ndr);
				NDR_PULL_SET_MEM_CTX(ndr, *r->in.ppCallResult, 0);
				NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->in.ppCallResult));
				NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppCallResult_1, 0);
			}
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppCallResult_0, 0);
		}
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppCallResult));
		if (_ptr_ppCallResult) {
			NDR_PULL_ALLOC(ndr, r->out.ppCallResult);
		} else {
			r->out.ppCallResult = NULL;
		}
		if (r->out.ppCallResult) {
			_mem_save_ppCallResult_0 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, r->out.ppCallResult, 0);
			NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppCallResult));
			if (_ptr_ppCallResult) {
				NDR_PULL_ALLOC(ndr, *r->out.ppCallResult);
			} else {
				*r->out.ppCallResult = NULL;
			}
			if (*r->out.ppCallResult) {
				_mem_save_ppCallResult_1 = NDR_PULL_GET_MEM_CTX(ndr);
				NDR_PULL_SET_MEM_CTX(ndr, *r->out.ppCallResult, 0);
				NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppCallResult));
				NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppCallResult_1, 0);
			}
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppCallResult_0, 0);
		}
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_PutInstance(struct ndr_print *ndr, const char *name, int flags, const struct PutInstance *r)
{
	ndr_print_struct(ndr, name, "PutInstance");
	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", "PutInstance");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr_print_ptr(ndr, "pInst", r->in.pInst);
		ndr->depth++;
		ndr_print_MInterfacePointer(ndr, "pInst", r->in.pInst);
		ndr->depth--;
		ndr_print_int32(ndr, "lFlags", r->in.lFlags);
		ndr_print_ptr(ndr, "pCtx", r->in.pCtx);
		ndr->depth++;
		ndr_print_MInterfacePointer(ndr, "pCtx", r->in.pCtx);
		ndr->depth--;
		ndr_print_ptr(ndr, "ppCallResult", r->in.ppCallResult);
		ndr->depth++;
		if (r->in.ppCallResult) {
			ndr_print_ptr(ndr, "ppCallResult", *r->in.ppCallResult);
			ndr->depth++;
			if (*r->in.ppCallResult) {
				ndr_print_MInterfacePointer(ndr, "ppCallResult", *r->in.ppCallResult);
			}
			ndr->depth--;
		}
		ndr->depth--;
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "PutInstance");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_ptr(ndr, "ppCallResult", r->out.ppCallResult);
		ndr->depth++;
		if (r->out.ppCallResult) {
			ndr_print_ptr(ndr, "ppCallResult", *r->out.ppCallResult);
			ndr->depth++;
			if (*r->out.ppCallResult) {
				ndr_print_MInterfacePointer(ndr, "ppCallResult", *r->out.ppCallResult);
			}
			ndr->depth--;
		}
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_PutInstanceAsync(struct ndr_push *ndr, int flags, const struct PutInstanceAsync *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		if (r->in.pInst == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pInst));
		NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.lFlags));
		if (r->in.pCtx == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pCtx));
		if (r->in.pResponseHandler == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pResponseHandler));
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_PutInstanceAsync(struct ndr_pull *ndr, int flags, struct PutInstanceAsync *r)
{
	TALLOC_CTX *_mem_save_ORPCthat_0;
	TALLOC_CTX *_mem_save_pInst_0;
	TALLOC_CTX *_mem_save_pCtx_0;
	TALLOC_CTX *_mem_save_pResponseHandler_0;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		ZERO_STRUCT(r->out);

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->in.pInst);
		}
		_mem_save_pInst_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->in.pInst, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pInst));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pInst_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.lFlags));
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->in.pCtx);
		}
		_mem_save_pCtx_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->in.pCtx, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pCtx));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pCtx_0, LIBNDR_FLAG_REF_ALLOC);
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->in.pResponseHandler);
		}
		_mem_save_pResponseHandler_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->in.pResponseHandler, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pResponseHandler));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pResponseHandler_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_PutInstanceAsync(struct ndr_print *ndr, const char *name, int flags, const struct PutInstanceAsync *r)
{
	ndr_print_struct(ndr, name, "PutInstanceAsync");
	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", "PutInstanceAsync");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr_print_ptr(ndr, "pInst", r->in.pInst);
		ndr->depth++;
		ndr_print_MInterfacePointer(ndr, "pInst", r->in.pInst);
		ndr->depth--;
		ndr_print_int32(ndr, "lFlags", r->in.lFlags);
		ndr_print_ptr(ndr, "pCtx", r->in.pCtx);
		ndr->depth++;
		ndr_print_MInterfacePointer(ndr, "pCtx", r->in.pCtx);
		ndr->depth--;
		ndr_print_ptr(ndr, "pResponseHandler", r->in.pResponseHandler);
		ndr->depth++;
		ndr_print_MInterfacePointer(ndr, "pResponseHandler", r->in.pResponseHandler);
		ndr->depth--;
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "PutInstanceAsync");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_DeleteInstance(struct ndr_push *ndr, int flags, const struct DeleteInstance *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_push_BSTR(ndr, NDR_SCALARS, &r->in.strObjectPath));
		NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.lFlags));
		if (r->in.pCtx == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pCtx));
		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ppCallResult));
		if (r->in.ppCallResult) {
			NDR_CHECK(ndr_push_unique_ptr(ndr, *r->in.ppCallResult));
			if (*r->in.ppCallResult) {
				NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->in.ppCallResult));
			}
		}
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.ppCallResult));
		if (r->out.ppCallResult) {
			NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ppCallResult));
			if (*r->out.ppCallResult) {
				NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppCallResult));
			}
		}
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_DeleteInstance(struct ndr_pull *ndr, int flags, struct DeleteInstance *r)
{
	uint32_t _ptr_ppCallResult;
	TALLOC_CTX *_mem_save_ORPCthat_0;
	TALLOC_CTX *_mem_save_pCtx_0;
	TALLOC_CTX *_mem_save_ppCallResult_0;
	TALLOC_CTX *_mem_save_ppCallResult_1;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		ZERO_STRUCT(r->out);

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_pull_BSTR(ndr, NDR_SCALARS, &r->in.strObjectPath));
		NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.lFlags));
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->in.pCtx);
		}
		_mem_save_pCtx_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->in.pCtx, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pCtx));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pCtx_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppCallResult));
		if (_ptr_ppCallResult) {
			NDR_PULL_ALLOC(ndr, r->in.ppCallResult);
		} else {
			r->in.ppCallResult = NULL;
		}
		if (r->in.ppCallResult) {
			_mem_save_ppCallResult_0 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, r->in.ppCallResult, 0);
			NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppCallResult));
			if (_ptr_ppCallResult) {
				NDR_PULL_ALLOC(ndr, *r->in.ppCallResult);
			} else {
				*r->in.ppCallResult = NULL;
			}
			if (*r->in.ppCallResult) {
				_mem_save_ppCallResult_1 = NDR_PULL_GET_MEM_CTX(ndr);
				NDR_PULL_SET_MEM_CTX(ndr, *r->in.ppCallResult, 0);
				NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->in.ppCallResult));
				NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppCallResult_1, 0);
			}
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppCallResult_0, 0);
		}
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppCallResult));
		if (_ptr_ppCallResult) {
			NDR_PULL_ALLOC(ndr, r->out.ppCallResult);
		} else {
			r->out.ppCallResult = NULL;
		}
		if (r->out.ppCallResult) {
			_mem_save_ppCallResult_0 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, r->out.ppCallResult, 0);
			NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppCallResult));
			if (_ptr_ppCallResult) {
				NDR_PULL_ALLOC(ndr, *r->out.ppCallResult);
			} else {
				*r->out.ppCallResult = NULL;
			}
			if (*r->out.ppCallResult) {
				_mem_save_ppCallResult_1 = NDR_PULL_GET_MEM_CTX(ndr);
				NDR_PULL_SET_MEM_CTX(ndr, *r->out.ppCallResult, 0);
				NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppCallResult));
				NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppCallResult_1, 0);
			}
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppCallResult_0, 0);
		}
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_DeleteInstance(struct ndr_print *ndr, const char *name, int flags, const struct DeleteInstance *r)
{
	ndr_print_struct(ndr, name, "DeleteInstance");
	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", "DeleteInstance");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr_print_BSTR(ndr, "strObjectPath", &r->in.strObjectPath);
		ndr_print_int32(ndr, "lFlags", r->in.lFlags);
		ndr_print_ptr(ndr, "pCtx", r->in.pCtx);
		ndr->depth++;
		ndr_print_MInterfacePointer(ndr, "pCtx", r->in.pCtx);
		ndr->depth--;
		ndr_print_ptr(ndr, "ppCallResult", r->in.ppCallResult);
		ndr->depth++;
		if (r->in.ppCallResult) {
			ndr_print_ptr(ndr, "ppCallResult", *r->in.ppCallResult);
			ndr->depth++;
			if (*r->in.ppCallResult) {
				ndr_print_MInterfacePointer(ndr, "ppCallResult", *r->in.ppCallResult);
			}
			ndr->depth--;
		}
		ndr->depth--;
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "DeleteInstance");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_ptr(ndr, "ppCallResult", r->out.ppCallResult);
		ndr->depth++;
		if (r->out.ppCallResult) {
			ndr_print_ptr(ndr, "ppCallResult", *r->out.ppCallResult);
			ndr->depth++;
			if (*r->out.ppCallResult) {
				ndr_print_MInterfacePointer(ndr, "ppCallResult", *r->out.ppCallResult);
			}
			ndr->depth--;
		}
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_DeleteInstanceAsync(struct ndr_push *ndr, int flags, const struct DeleteInstanceAsync *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_push_BSTR(ndr, NDR_SCALARS, &r->in.strObjectPath));
		NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.lFlags));
		if (r->in.pCtx == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pCtx));
		if (r->in.pResponseHandler == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pResponseHandler));
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_DeleteInstanceAsync(struct ndr_pull *ndr, int flags, struct DeleteInstanceAsync *r)
{
	TALLOC_CTX *_mem_save_ORPCthat_0;
	TALLOC_CTX *_mem_save_pCtx_0;
	TALLOC_CTX *_mem_save_pResponseHandler_0;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		ZERO_STRUCT(r->out);

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_pull_BSTR(ndr, NDR_SCALARS, &r->in.strObjectPath));
		NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.lFlags));
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->in.pCtx);
		}
		_mem_save_pCtx_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->in.pCtx, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pCtx));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pCtx_0, LIBNDR_FLAG_REF_ALLOC);
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->in.pResponseHandler);
		}
		_mem_save_pResponseHandler_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->in.pResponseHandler, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pResponseHandler));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pResponseHandler_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_DeleteInstanceAsync(struct ndr_print *ndr, const char *name, int flags, const struct DeleteInstanceAsync *r)
{
	ndr_print_struct(ndr, name, "DeleteInstanceAsync");
	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", "DeleteInstanceAsync");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr_print_BSTR(ndr, "strObjectPath", &r->in.strObjectPath);
		ndr_print_int32(ndr, "lFlags", r->in.lFlags);
		ndr_print_ptr(ndr, "pCtx", r->in.pCtx);
		ndr->depth++;
		ndr_print_MInterfacePointer(ndr, "pCtx", r->in.pCtx);
		ndr->depth--;
		ndr_print_ptr(ndr, "pResponseHandler", r->in.pResponseHandler);
		ndr->depth++;
		ndr_print_MInterfacePointer(ndr, "pResponseHandler", r->in.pResponseHandler);
		ndr->depth--;
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "DeleteInstanceAsync");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_CreateInstanceEnum(struct ndr_push *ndr, int flags, const struct CreateInstanceEnum *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_push_BSTR(ndr, NDR_SCALARS, &r->in.strFilter));
		NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.lFlags));
		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.pCtx));
		if (r->in.pCtx) {
			NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pCtx));
		}
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		if (r->out.ppEnum == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ppEnum));
		if (*r->out.ppEnum) {
			NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppEnum));
		}
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_CreateInstanceEnum(struct ndr_pull *ndr, int flags, struct CreateInstanceEnum *r)
{
	uint32_t _ptr_pCtx;
	uint32_t _ptr_ppEnum;
	TALLOC_CTX *_mem_save_ORPCthat_0;
	TALLOC_CTX *_mem_save_pCtx_0;
	TALLOC_CTX *_mem_save_ppEnum_0;
	TALLOC_CTX *_mem_save_ppEnum_1;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		ZERO_STRUCT(r->out);

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_pull_BSTR(ndr, NDR_SCALARS, &r->in.strFilter));
		NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.lFlags));
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pCtx));
		if (_ptr_pCtx) {
			NDR_PULL_ALLOC(ndr, r->in.pCtx);
		} else {
			r->in.pCtx = NULL;
		}
		if (r->in.pCtx) {
			_mem_save_pCtx_0 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, r->in.pCtx, 0);
			NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pCtx));
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pCtx_0, 0);
		}
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
		NDR_PULL_ALLOC(ndr, r->out.ppEnum);
		ZERO_STRUCTP(r->out.ppEnum);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ppEnum);
		}
		_mem_save_ppEnum_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ppEnum, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppEnum));
		if (_ptr_ppEnum) {
			NDR_PULL_ALLOC(ndr, *r->out.ppEnum);
		} else {
			*r->out.ppEnum = NULL;
		}
		if (*r->out.ppEnum) {
			_mem_save_ppEnum_1 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, *r->out.ppEnum, 0);
			NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppEnum));
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppEnum_1, 0);
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppEnum_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_CreateInstanceEnum(struct ndr_print *ndr, const char *name, int flags, const struct CreateInstanceEnum *r)
{
	ndr_print_struct(ndr, name, "CreateInstanceEnum");
	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", "CreateInstanceEnum");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr_print_BSTR(ndr, "strFilter", &r->in.strFilter);
		ndr_print_int32(ndr, "lFlags", r->in.lFlags);
		ndr_print_ptr(ndr, "pCtx", r->in.pCtx);
		ndr->depth++;
		if (r->in.pCtx) {
			ndr_print_MInterfacePointer(ndr, "pCtx", r->in.pCtx);
		}
		ndr->depth--;
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "CreateInstanceEnum");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_ptr(ndr, "ppEnum", r->out.ppEnum);
		ndr->depth++;
		ndr_print_ptr(ndr, "ppEnum", *r->out.ppEnum);
		ndr->depth++;
		if (*r->out.ppEnum) {
			ndr_print_MInterfacePointer(ndr, "ppEnum", *r->out.ppEnum);
		}
		ndr->depth--;
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_CreateInstanceEnumAsync(struct ndr_push *ndr, int flags, const struct CreateInstanceEnumAsync *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_push_BSTR(ndr, NDR_SCALARS, &r->in.strSuperClass));
		NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.lFlags));
		if (r->in.pCtx == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pCtx));
		if (r->in.pResponseHandler == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pResponseHandler));
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_CreateInstanceEnumAsync(struct ndr_pull *ndr, int flags, struct CreateInstanceEnumAsync *r)
{
	TALLOC_CTX *_mem_save_ORPCthat_0;
	TALLOC_CTX *_mem_save_pCtx_0;
	TALLOC_CTX *_mem_save_pResponseHandler_0;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		ZERO_STRUCT(r->out);

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_pull_BSTR(ndr, NDR_SCALARS, &r->in.strSuperClass));
		NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.lFlags));
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->in.pCtx);
		}
		_mem_save_pCtx_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->in.pCtx, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pCtx));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pCtx_0, LIBNDR_FLAG_REF_ALLOC);
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->in.pResponseHandler);
		}
		_mem_save_pResponseHandler_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->in.pResponseHandler, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pResponseHandler));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pResponseHandler_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_CreateInstanceEnumAsync(struct ndr_print *ndr, const char *name, int flags, const struct CreateInstanceEnumAsync *r)
{
	ndr_print_struct(ndr, name, "CreateInstanceEnumAsync");
	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", "CreateInstanceEnumAsync");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr_print_BSTR(ndr, "strSuperClass", &r->in.strSuperClass);
		ndr_print_int32(ndr, "lFlags", r->in.lFlags);
		ndr_print_ptr(ndr, "pCtx", r->in.pCtx);
		ndr->depth++;
		ndr_print_MInterfacePointer(ndr, "pCtx", r->in.pCtx);
		ndr->depth--;
		ndr_print_ptr(ndr, "pResponseHandler", r->in.pResponseHandler);
		ndr->depth++;
		ndr_print_MInterfacePointer(ndr, "pResponseHandler", r->in.pResponseHandler);
		ndr->depth--;
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "CreateInstanceEnumAsync");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_ExecQuery(struct ndr_push *ndr, int flags, const struct ExecQuery *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_push_BSTR(ndr, NDR_SCALARS, &r->in.strQueryLanguage));
		NDR_CHECK(ndr_push_BSTR(ndr, NDR_SCALARS, &r->in.strQuery));
		NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.lFlags));
		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.pCtx));
		if (r->in.pCtx) {
			NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pCtx));
		}
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		if (r->out.ppEnum == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ppEnum));
		if (*r->out.ppEnum) {
			NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppEnum));
		}
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_ExecQuery(struct ndr_pull *ndr, int flags, struct ExecQuery *r)
{
	uint32_t _ptr_pCtx;
	uint32_t _ptr_ppEnum;
	TALLOC_CTX *_mem_save_ORPCthat_0;
	TALLOC_CTX *_mem_save_pCtx_0;
	TALLOC_CTX *_mem_save_ppEnum_0;
	TALLOC_CTX *_mem_save_ppEnum_1;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		ZERO_STRUCT(r->out);

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_pull_BSTR(ndr, NDR_SCALARS, &r->in.strQueryLanguage));
		NDR_CHECK(ndr_pull_BSTR(ndr, NDR_SCALARS, &r->in.strQuery));
		NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.lFlags));
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pCtx));
		if (_ptr_pCtx) {
			NDR_PULL_ALLOC(ndr, r->in.pCtx);
		} else {
			r->in.pCtx = NULL;
		}
		if (r->in.pCtx) {
			_mem_save_pCtx_0 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, r->in.pCtx, 0);
			NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pCtx));
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pCtx_0, 0);
		}
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
		NDR_PULL_ALLOC(ndr, r->out.ppEnum);
		ZERO_STRUCTP(r->out.ppEnum);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ppEnum);
		}
		_mem_save_ppEnum_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ppEnum, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppEnum));
		if (_ptr_ppEnum) {
			NDR_PULL_ALLOC(ndr, *r->out.ppEnum);
		} else {
			*r->out.ppEnum = NULL;
		}
		if (*r->out.ppEnum) {
			_mem_save_ppEnum_1 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, *r->out.ppEnum, 0);
			NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppEnum));
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppEnum_1, 0);
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppEnum_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_ExecQuery(struct ndr_print *ndr, const char *name, int flags, const struct ExecQuery *r)
{
	ndr_print_struct(ndr, name, "ExecQuery");
	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", "ExecQuery");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr_print_BSTR(ndr, "strQueryLanguage", &r->in.strQueryLanguage);
		ndr_print_BSTR(ndr, "strQuery", &r->in.strQuery);
		ndr_print_int32(ndr, "lFlags", r->in.lFlags);
		ndr_print_ptr(ndr, "pCtx", r->in.pCtx);
		ndr->depth++;
		if (r->in.pCtx) {
			ndr_print_MInterfacePointer(ndr, "pCtx", r->in.pCtx);
		}
		ndr->depth--;
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "ExecQuery");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_ptr(ndr, "ppEnum", r->out.ppEnum);
		ndr->depth++;
		ndr_print_ptr(ndr, "ppEnum", *r->out.ppEnum);
		ndr->depth++;
		if (*r->out.ppEnum) {
			ndr_print_MInterfacePointer(ndr, "ppEnum", *r->out.ppEnum);
		}
		ndr->depth--;
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_ExecQueryAsync(struct ndr_push *ndr, int flags, const struct ExecQueryAsync *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_push_BSTR(ndr, NDR_SCALARS, &r->in.strQueryLanguage));
		NDR_CHECK(ndr_push_BSTR(ndr, NDR_SCALARS, &r->in.strQuery));
		NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.lFlags));
		if (r->in.pCtx == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pCtx));
		if (r->in.pResponseHandler == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pResponseHandler));
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_ExecQueryAsync(struct ndr_pull *ndr, int flags, struct ExecQueryAsync *r)
{
	TALLOC_CTX *_mem_save_ORPCthat_0;
	TALLOC_CTX *_mem_save_pCtx_0;
	TALLOC_CTX *_mem_save_pResponseHandler_0;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		ZERO_STRUCT(r->out);

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_pull_BSTR(ndr, NDR_SCALARS, &r->in.strQueryLanguage));
		NDR_CHECK(ndr_pull_BSTR(ndr, NDR_SCALARS, &r->in.strQuery));
		NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.lFlags));
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->in.pCtx);
		}
		_mem_save_pCtx_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->in.pCtx, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pCtx));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pCtx_0, LIBNDR_FLAG_REF_ALLOC);
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->in.pResponseHandler);
		}
		_mem_save_pResponseHandler_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->in.pResponseHandler, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pResponseHandler));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pResponseHandler_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_ExecQueryAsync(struct ndr_print *ndr, const char *name, int flags, const struct ExecQueryAsync *r)
{
	ndr_print_struct(ndr, name, "ExecQueryAsync");
	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", "ExecQueryAsync");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr_print_BSTR(ndr, "strQueryLanguage", &r->in.strQueryLanguage);
		ndr_print_BSTR(ndr, "strQuery", &r->in.strQuery);
		ndr_print_int32(ndr, "lFlags", r->in.lFlags);
		ndr_print_ptr(ndr, "pCtx", r->in.pCtx);
		ndr->depth++;
		ndr_print_MInterfacePointer(ndr, "pCtx", r->in.pCtx);
		ndr->depth--;
		ndr_print_ptr(ndr, "pResponseHandler", r->in.pResponseHandler);
		ndr->depth++;
		ndr_print_MInterfacePointer(ndr, "pResponseHandler", r->in.pResponseHandler);
		ndr->depth--;
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "ExecQueryAsync");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_ExecNotificationQuery(struct ndr_push *ndr, int flags, const struct ExecNotificationQuery *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_push_BSTR(ndr, NDR_SCALARS, &r->in.strQueryLanguage));
		NDR_CHECK(ndr_push_BSTR(ndr, NDR_SCALARS, &r->in.strQuery));
		NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.lFlags));
		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.pCtx));
		if (r->in.pCtx) {
			NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pCtx));
		}
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		if (r->out.ppEnum == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ppEnum));
		if (*r->out.ppEnum) {
			NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppEnum));
		}
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_ExecNotificationQuery(struct ndr_pull *ndr, int flags, struct ExecNotificationQuery *r)
{
	uint32_t _ptr_pCtx;
	uint32_t _ptr_ppEnum;
	TALLOC_CTX *_mem_save_ORPCthat_0;
	TALLOC_CTX *_mem_save_pCtx_0;
	TALLOC_CTX *_mem_save_ppEnum_0;
	TALLOC_CTX *_mem_save_ppEnum_1;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		ZERO_STRUCT(r->out);

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_pull_BSTR(ndr, NDR_SCALARS, &r->in.strQueryLanguage));
		NDR_CHECK(ndr_pull_BSTR(ndr, NDR_SCALARS, &r->in.strQuery));
		NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.lFlags));
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pCtx));
		if (_ptr_pCtx) {
			NDR_PULL_ALLOC(ndr, r->in.pCtx);
		} else {
			r->in.pCtx = NULL;
		}
		if (r->in.pCtx) {
			_mem_save_pCtx_0 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, r->in.pCtx, 0);
			NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pCtx));
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pCtx_0, 0);
		}
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
		NDR_PULL_ALLOC(ndr, r->out.ppEnum);
		ZERO_STRUCTP(r->out.ppEnum);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ppEnum);
		}
		_mem_save_ppEnum_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ppEnum, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppEnum));
		if (_ptr_ppEnum) {
			NDR_PULL_ALLOC(ndr, *r->out.ppEnum);
		} else {
			*r->out.ppEnum = NULL;
		}
		if (*r->out.ppEnum) {
			_mem_save_ppEnum_1 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, *r->out.ppEnum, 0);
			NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppEnum));
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppEnum_1, 0);
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppEnum_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_ExecNotificationQuery(struct ndr_print *ndr, const char *name, int flags, const struct ExecNotificationQuery *r)
{
	ndr_print_struct(ndr, name, "ExecNotificationQuery");
	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", "ExecNotificationQuery");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr_print_BSTR(ndr, "strQueryLanguage", &r->in.strQueryLanguage);
		ndr_print_BSTR(ndr, "strQuery", &r->in.strQuery);
		ndr_print_int32(ndr, "lFlags", r->in.lFlags);
		ndr_print_ptr(ndr, "pCtx", r->in.pCtx);
		ndr->depth++;
		if (r->in.pCtx) {
			ndr_print_MInterfacePointer(ndr, "pCtx", r->in.pCtx);
		}
		ndr->depth--;
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "ExecNotificationQuery");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_ptr(ndr, "ppEnum", r->out.ppEnum);
		ndr->depth++;
		ndr_print_ptr(ndr, "ppEnum", *r->out.ppEnum);
		ndr->depth++;
		if (*r->out.ppEnum) {
			ndr_print_MInterfacePointer(ndr, "ppEnum", *r->out.ppEnum);
		}
		ndr->depth--;
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_ExecNotificationQueryAsync(struct ndr_push *ndr, int flags, const struct ExecNotificationQueryAsync *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_push_BSTR(ndr, NDR_SCALARS, &r->in.strQueryLanguage));
		NDR_CHECK(ndr_push_BSTR(ndr, NDR_SCALARS, &r->in.strQuery));
		NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.lFlags));
		if (r->in.pCtx == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pCtx));
		if (r->in.pResponseHandler == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pResponseHandler));
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_ExecNotificationQueryAsync(struct ndr_pull *ndr, int flags, struct ExecNotificationQueryAsync *r)
{
	TALLOC_CTX *_mem_save_ORPCthat_0;
	TALLOC_CTX *_mem_save_pCtx_0;
	TALLOC_CTX *_mem_save_pResponseHandler_0;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		ZERO_STRUCT(r->out);

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_pull_BSTR(ndr, NDR_SCALARS, &r->in.strQueryLanguage));
		NDR_CHECK(ndr_pull_BSTR(ndr, NDR_SCALARS, &r->in.strQuery));
		NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.lFlags));
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->in.pCtx);
		}
		_mem_save_pCtx_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->in.pCtx, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pCtx));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pCtx_0, LIBNDR_FLAG_REF_ALLOC);
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->in.pResponseHandler);
		}
		_mem_save_pResponseHandler_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->in.pResponseHandler, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pResponseHandler));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pResponseHandler_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_ExecNotificationQueryAsync(struct ndr_print *ndr, const char *name, int flags, const struct ExecNotificationQueryAsync *r)
{
	ndr_print_struct(ndr, name, "ExecNotificationQueryAsync");
	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", "ExecNotificationQueryAsync");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr_print_BSTR(ndr, "strQueryLanguage", &r->in.strQueryLanguage);
		ndr_print_BSTR(ndr, "strQuery", &r->in.strQuery);
		ndr_print_int32(ndr, "lFlags", r->in.lFlags);
		ndr_print_ptr(ndr, "pCtx", r->in.pCtx);
		ndr->depth++;
		ndr_print_MInterfacePointer(ndr, "pCtx", r->in.pCtx);
		ndr->depth--;
		ndr_print_ptr(ndr, "pResponseHandler", r->in.pResponseHandler);
		ndr->depth++;
		ndr_print_MInterfacePointer(ndr, "pResponseHandler", r->in.pResponseHandler);
		ndr->depth--;
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "ExecNotificationQueryAsync");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_ExecMethod(struct ndr_push *ndr, int flags, const struct ExecMethod *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_push_BSTR(ndr, NDR_SCALARS, &r->in.strObjectPath));
		NDR_CHECK(ndr_push_BSTR(ndr, NDR_SCALARS, &r->in.strMethodName));
		NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.lFlags));
		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.pCtx));
		if (r->in.pCtx) {
			NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pCtx));
		}
		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.pInParams));
		if (r->in.pInParams) {
			NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pInParams));
		}
		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ppOutParams));
		if (r->in.ppOutParams) {
			NDR_CHECK(ndr_push_unique_ptr(ndr, *r->in.ppOutParams));
			if (*r->in.ppOutParams) {
				NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->in.ppOutParams));
			}
		}
		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ppCallResult));
		if (r->in.ppCallResult) {
			NDR_CHECK(ndr_push_unique_ptr(ndr, *r->in.ppCallResult));
			if (*r->in.ppCallResult) {
				NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->in.ppCallResult));
			}
		}
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.ppOutParams));
		if (r->out.ppOutParams) {
			NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ppOutParams));
			if (*r->out.ppOutParams) {
				NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppOutParams));
			}
		}
		NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.ppCallResult));
		if (r->out.ppCallResult) {
			NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ppCallResult));
			if (*r->out.ppCallResult) {
				NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppCallResult));
			}
		}
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_ExecMethod(struct ndr_pull *ndr, int flags, struct ExecMethod *r)
{
	uint32_t _ptr_pCtx;
	uint32_t _ptr_pInParams;
	uint32_t _ptr_ppOutParams;
	uint32_t _ptr_ppCallResult;
	TALLOC_CTX *_mem_save_ORPCthat_0;
	TALLOC_CTX *_mem_save_pCtx_0;
	TALLOC_CTX *_mem_save_pInParams_0;
	TALLOC_CTX *_mem_save_ppOutParams_0;
	TALLOC_CTX *_mem_save_ppOutParams_1;
	TALLOC_CTX *_mem_save_ppCallResult_0;
	TALLOC_CTX *_mem_save_ppCallResult_1;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		ZERO_STRUCT(r->out);

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_pull_BSTR(ndr, NDR_SCALARS, &r->in.strObjectPath));
		NDR_CHECK(ndr_pull_BSTR(ndr, NDR_SCALARS, &r->in.strMethodName));
		NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.lFlags));
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pCtx));
		if (_ptr_pCtx) {
			NDR_PULL_ALLOC(ndr, r->in.pCtx);
		} else {
			r->in.pCtx = NULL;
		}
		if (r->in.pCtx) {
			_mem_save_pCtx_0 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, r->in.pCtx, 0);
			NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pCtx));
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pCtx_0, 0);
		}
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pInParams));
		if (_ptr_pInParams) {
			NDR_PULL_ALLOC(ndr, r->in.pInParams);
		} else {
			r->in.pInParams = NULL;
		}
		if (r->in.pInParams) {
			_mem_save_pInParams_0 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, r->in.pInParams, 0);
			NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pInParams));
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pInParams_0, 0);
		}
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppOutParams));
		if (_ptr_ppOutParams) {
			NDR_PULL_ALLOC(ndr, r->in.ppOutParams);
		} else {
			r->in.ppOutParams = NULL;
		}
		if (r->in.ppOutParams) {
			_mem_save_ppOutParams_0 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, r->in.ppOutParams, 0);
			NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppOutParams));
			if (_ptr_ppOutParams) {
				NDR_PULL_ALLOC(ndr, *r->in.ppOutParams);
			} else {
				*r->in.ppOutParams = NULL;
			}
			if (*r->in.ppOutParams) {
				_mem_save_ppOutParams_1 = NDR_PULL_GET_MEM_CTX(ndr);
				NDR_PULL_SET_MEM_CTX(ndr, *r->in.ppOutParams, 0);
				NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->in.ppOutParams));
				NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppOutParams_1, 0);
			}
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppOutParams_0, 0);
		}
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppCallResult));
		if (_ptr_ppCallResult) {
			NDR_PULL_ALLOC(ndr, r->in.ppCallResult);
		} else {
			r->in.ppCallResult = NULL;
		}
		if (r->in.ppCallResult) {
			_mem_save_ppCallResult_0 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, r->in.ppCallResult, 0);
			NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppCallResult));
			if (_ptr_ppCallResult) {
				NDR_PULL_ALLOC(ndr, *r->in.ppCallResult);
			} else {
				*r->in.ppCallResult = NULL;
			}
			if (*r->in.ppCallResult) {
				_mem_save_ppCallResult_1 = NDR_PULL_GET_MEM_CTX(ndr);
				NDR_PULL_SET_MEM_CTX(ndr, *r->in.ppCallResult, 0);
				NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->in.ppCallResult));
				NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppCallResult_1, 0);
			}
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppCallResult_0, 0);
		}
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppOutParams));
		if (_ptr_ppOutParams) {
			NDR_PULL_ALLOC(ndr, r->out.ppOutParams);
		} else {
			r->out.ppOutParams = NULL;
		}
		if (r->out.ppOutParams) {
			_mem_save_ppOutParams_0 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, r->out.ppOutParams, 0);
			NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppOutParams));
			if (_ptr_ppOutParams) {
				NDR_PULL_ALLOC(ndr, *r->out.ppOutParams);
			} else {
				*r->out.ppOutParams = NULL;
			}
			if (*r->out.ppOutParams) {
				_mem_save_ppOutParams_1 = NDR_PULL_GET_MEM_CTX(ndr);
				NDR_PULL_SET_MEM_CTX(ndr, *r->out.ppOutParams, 0);
				NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppOutParams));
				NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppOutParams_1, 0);
			}
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppOutParams_0, 0);
		}
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppCallResult));
		if (_ptr_ppCallResult) {
			NDR_PULL_ALLOC(ndr, r->out.ppCallResult);
		} else {
			r->out.ppCallResult = NULL;
		}
		if (r->out.ppCallResult) {
			_mem_save_ppCallResult_0 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, r->out.ppCallResult, 0);
			NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppCallResult));
			if (_ptr_ppCallResult) {
				NDR_PULL_ALLOC(ndr, *r->out.ppCallResult);
			} else {
				*r->out.ppCallResult = NULL;
			}
			if (*r->out.ppCallResult) {
				_mem_save_ppCallResult_1 = NDR_PULL_GET_MEM_CTX(ndr);
				NDR_PULL_SET_MEM_CTX(ndr, *r->out.ppCallResult, 0);
				NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppCallResult));
				NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppCallResult_1, 0);
			}
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppCallResult_0, 0);
		}
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_ExecMethod(struct ndr_print *ndr, const char *name, int flags, const struct ExecMethod *r)
{
	ndr_print_struct(ndr, name, "ExecMethod");
	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", "ExecMethod");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr_print_BSTR(ndr, "strObjectPath", &r->in.strObjectPath);
		ndr_print_BSTR(ndr, "strMethodName", &r->in.strMethodName);
		ndr_print_int32(ndr, "lFlags", r->in.lFlags);
		ndr_print_ptr(ndr, "pCtx", r->in.pCtx);
		ndr->depth++;
		if (r->in.pCtx) {
			ndr_print_MInterfacePointer(ndr, "pCtx", r->in.pCtx);
		}
		ndr->depth--;
		ndr_print_ptr(ndr, "pInParams", r->in.pInParams);
		ndr->depth++;
		if (r->in.pInParams) {
			ndr_print_MInterfacePointer(ndr, "pInParams", r->in.pInParams);
		}
		ndr->depth--;
		ndr_print_ptr(ndr, "ppOutParams", r->in.ppOutParams);
		ndr->depth++;
		if (r->in.ppOutParams) {
			ndr_print_ptr(ndr, "ppOutParams", *r->in.ppOutParams);
			ndr->depth++;
			if (*r->in.ppOutParams) {
				ndr_print_MInterfacePointer(ndr, "ppOutParams", *r->in.ppOutParams);
			}
			ndr->depth--;
		}
		ndr->depth--;
		ndr_print_ptr(ndr, "ppCallResult", r->in.ppCallResult);
		ndr->depth++;
		if (r->in.ppCallResult) {
			ndr_print_ptr(ndr, "ppCallResult", *r->in.ppCallResult);
			ndr->depth++;
			if (*r->in.ppCallResult) {
				ndr_print_MInterfacePointer(ndr, "ppCallResult", *r->in.ppCallResult);
			}
			ndr->depth--;
		}
		ndr->depth--;
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "ExecMethod");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_ptr(ndr, "ppOutParams", r->out.ppOutParams);
		ndr->depth++;
		if (r->out.ppOutParams) {
			ndr_print_ptr(ndr, "ppOutParams", *r->out.ppOutParams);
			ndr->depth++;
			if (*r->out.ppOutParams) {
				ndr_print_MInterfacePointer(ndr, "ppOutParams", *r->out.ppOutParams);
			}
			ndr->depth--;
		}
		ndr->depth--;
		ndr_print_ptr(ndr, "ppCallResult", r->out.ppCallResult);
		ndr->depth++;
		if (r->out.ppCallResult) {
			ndr_print_ptr(ndr, "ppCallResult", *r->out.ppCallResult);
			ndr->depth++;
			if (*r->out.ppCallResult) {
				ndr_print_MInterfacePointer(ndr, "ppCallResult", *r->out.ppCallResult);
			}
			ndr->depth--;
		}
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_ExecMethodAsync(struct ndr_push *ndr, int flags, const struct ExecMethodAsync *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_push_BSTR(ndr, NDR_SCALARS, &r->in.strObjectPath));
		NDR_CHECK(ndr_push_BSTR(ndr, NDR_SCALARS, &r->in.strMethodName));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.lFlags));
		if (r->in.pCtx == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pCtx));
		if (r->in.pInParams == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pInParams));
		if (r->in.pResponseHandler == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pResponseHandler));
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_ExecMethodAsync(struct ndr_pull *ndr, int flags, struct ExecMethodAsync *r)
{
	TALLOC_CTX *_mem_save_ORPCthat_0;
	TALLOC_CTX *_mem_save_pCtx_0;
	TALLOC_CTX *_mem_save_pInParams_0;
	TALLOC_CTX *_mem_save_pResponseHandler_0;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		ZERO_STRUCT(r->out);

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_pull_BSTR(ndr, NDR_SCALARS, &r->in.strObjectPath));
		NDR_CHECK(ndr_pull_BSTR(ndr, NDR_SCALARS, &r->in.strMethodName));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.lFlags));
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->in.pCtx);
		}
		_mem_save_pCtx_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->in.pCtx, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pCtx));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pCtx_0, LIBNDR_FLAG_REF_ALLOC);
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->in.pInParams);
		}
		_mem_save_pInParams_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->in.pInParams, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pInParams));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pInParams_0, LIBNDR_FLAG_REF_ALLOC);
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->in.pResponseHandler);
		}
		_mem_save_pResponseHandler_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->in.pResponseHandler, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pResponseHandler));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pResponseHandler_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_ExecMethodAsync(struct ndr_print *ndr, const char *name, int flags, const struct ExecMethodAsync *r)
{
	ndr_print_struct(ndr, name, "ExecMethodAsync");
	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", "ExecMethodAsync");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr_print_BSTR(ndr, "strObjectPath", &r->in.strObjectPath);
		ndr_print_BSTR(ndr, "strMethodName", &r->in.strMethodName);
		ndr_print_uint32(ndr, "lFlags", r->in.lFlags);
		ndr_print_ptr(ndr, "pCtx", r->in.pCtx);
		ndr->depth++;
		ndr_print_MInterfacePointer(ndr, "pCtx", r->in.pCtx);
		ndr->depth--;
		ndr_print_ptr(ndr, "pInParams", r->in.pInParams);
		ndr->depth++;
		ndr_print_MInterfacePointer(ndr, "pInParams", r->in.pInParams);
		ndr->depth--;
		ndr_print_ptr(ndr, "pResponseHandler", r->in.pResponseHandler);
		ndr->depth++;
		ndr_print_MInterfacePointer(ndr, "pResponseHandler", r->in.pResponseHandler);
		ndr->depth--;
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "ExecMethodAsync");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static const struct ndr_interface_call IWbemServices_calls[] = {
	{
		"OpenNamespace",
		sizeof(struct OpenNamespace),
		(ndr_push_flags_fn_t) ndr_push_OpenNamespace,
		(ndr_pull_flags_fn_t) ndr_pull_OpenNamespace,
		(ndr_print_function_t) ndr_print_OpenNamespace,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"CancelAsyncCall",
		sizeof(struct CancelAsyncCall),
		(ndr_push_flags_fn_t) ndr_push_CancelAsyncCall,
		(ndr_pull_flags_fn_t) ndr_pull_CancelAsyncCall,
		(ndr_print_function_t) ndr_print_CancelAsyncCall,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"QueryObjectSink",
		sizeof(struct QueryObjectSink),
		(ndr_push_flags_fn_t) ndr_push_QueryObjectSink,
		(ndr_pull_flags_fn_t) ndr_pull_QueryObjectSink,
		(ndr_print_function_t) ndr_print_QueryObjectSink,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"GetObject",
		sizeof(struct GetObject),
		(ndr_push_flags_fn_t) ndr_push_GetObject,
		(ndr_pull_flags_fn_t) ndr_pull_GetObject,
		(ndr_print_function_t) ndr_print_GetObject,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"GetObjectAsync",
		sizeof(struct GetObjectAsync),
		(ndr_push_flags_fn_t) ndr_push_GetObjectAsync,
		(ndr_pull_flags_fn_t) ndr_pull_GetObjectAsync,
		(ndr_print_function_t) ndr_print_GetObjectAsync,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"PutClass",
		sizeof(struct PutClass),
		(ndr_push_flags_fn_t) ndr_push_PutClass,
		(ndr_pull_flags_fn_t) ndr_pull_PutClass,
		(ndr_print_function_t) ndr_print_PutClass,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"PutClassAsync",
		sizeof(struct PutClassAsync),
		(ndr_push_flags_fn_t) ndr_push_PutClassAsync,
		(ndr_pull_flags_fn_t) ndr_pull_PutClassAsync,
		(ndr_print_function_t) ndr_print_PutClassAsync,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"DeleteClass",
		sizeof(struct DeleteClass),
		(ndr_push_flags_fn_t) ndr_push_DeleteClass,
		(ndr_pull_flags_fn_t) ndr_pull_DeleteClass,
		(ndr_print_function_t) ndr_print_DeleteClass,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"DeleteClassAsync",
		sizeof(struct DeleteClassAsync),
		(ndr_push_flags_fn_t) ndr_push_DeleteClassAsync,
		(ndr_pull_flags_fn_t) ndr_pull_DeleteClassAsync,
		(ndr_print_function_t) ndr_print_DeleteClassAsync,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"CreateClassEnum",
		sizeof(struct CreateClassEnum),
		(ndr_push_flags_fn_t) ndr_push_CreateClassEnum,
		(ndr_pull_flags_fn_t) ndr_pull_CreateClassEnum,
		(ndr_print_function_t) ndr_print_CreateClassEnum,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"CreateClassEnumAsync",
		sizeof(struct CreateClassEnumAsync),
		(ndr_push_flags_fn_t) ndr_push_CreateClassEnumAsync,
		(ndr_pull_flags_fn_t) ndr_pull_CreateClassEnumAsync,
		(ndr_print_function_t) ndr_print_CreateClassEnumAsync,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"PutInstance",
		sizeof(struct PutInstance),
		(ndr_push_flags_fn_t) ndr_push_PutInstance,
		(ndr_pull_flags_fn_t) ndr_pull_PutInstance,
		(ndr_print_function_t) ndr_print_PutInstance,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"PutInstanceAsync",
		sizeof(struct PutInstanceAsync),
		(ndr_push_flags_fn_t) ndr_push_PutInstanceAsync,
		(ndr_pull_flags_fn_t) ndr_pull_PutInstanceAsync,
		(ndr_print_function_t) ndr_print_PutInstanceAsync,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"DeleteInstance",
		sizeof(struct DeleteInstance),
		(ndr_push_flags_fn_t) ndr_push_DeleteInstance,
		(ndr_pull_flags_fn_t) ndr_pull_DeleteInstance,
		(ndr_print_function_t) ndr_print_DeleteInstance,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"DeleteInstanceAsync",
		sizeof(struct DeleteInstanceAsync),
		(ndr_push_flags_fn_t) ndr_push_DeleteInstanceAsync,
		(ndr_pull_flags_fn_t) ndr_pull_DeleteInstanceAsync,
		(ndr_print_function_t) ndr_print_DeleteInstanceAsync,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"CreateInstanceEnum",
		sizeof(struct CreateInstanceEnum),
		(ndr_push_flags_fn_t) ndr_push_CreateInstanceEnum,
		(ndr_pull_flags_fn_t) ndr_pull_CreateInstanceEnum,
		(ndr_print_function_t) ndr_print_CreateInstanceEnum,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"CreateInstanceEnumAsync",
		sizeof(struct CreateInstanceEnumAsync),
		(ndr_push_flags_fn_t) ndr_push_CreateInstanceEnumAsync,
		(ndr_pull_flags_fn_t) ndr_pull_CreateInstanceEnumAsync,
		(ndr_print_function_t) ndr_print_CreateInstanceEnumAsync,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"ExecQuery",
		sizeof(struct ExecQuery),
		(ndr_push_flags_fn_t) ndr_push_ExecQuery,
		(ndr_pull_flags_fn_t) ndr_pull_ExecQuery,
		(ndr_print_function_t) ndr_print_ExecQuery,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"ExecQueryAsync",
		sizeof(struct ExecQueryAsync),
		(ndr_push_flags_fn_t) ndr_push_ExecQueryAsync,
		(ndr_pull_flags_fn_t) ndr_pull_ExecQueryAsync,
		(ndr_print_function_t) ndr_print_ExecQueryAsync,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"ExecNotificationQuery",
		sizeof(struct ExecNotificationQuery),
		(ndr_push_flags_fn_t) ndr_push_ExecNotificationQuery,
		(ndr_pull_flags_fn_t) ndr_pull_ExecNotificationQuery,
		(ndr_print_function_t) ndr_print_ExecNotificationQuery,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"ExecNotificationQueryAsync",
		sizeof(struct ExecNotificationQueryAsync),
		(ndr_push_flags_fn_t) ndr_push_ExecNotificationQueryAsync,
		(ndr_pull_flags_fn_t) ndr_pull_ExecNotificationQueryAsync,
		(ndr_print_function_t) ndr_print_ExecNotificationQueryAsync,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"ExecMethod",
		sizeof(struct ExecMethod),
		(ndr_push_flags_fn_t) ndr_push_ExecMethod,
		(ndr_pull_flags_fn_t) ndr_pull_ExecMethod,
		(ndr_print_function_t) ndr_print_ExecMethod,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"ExecMethodAsync",
		sizeof(struct ExecMethodAsync),
		(ndr_push_flags_fn_t) ndr_push_ExecMethodAsync,
		(ndr_pull_flags_fn_t) ndr_pull_ExecMethodAsync,
		(ndr_print_function_t) ndr_print_ExecMethodAsync,
		{ 0, NULL },
		{ 0, NULL },
	},
	{ NULL, 0, NULL, NULL, NULL }
};

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

static const struct ndr_interface_string_array IWbemServices_endpoints = {
	.count	= 1,
	.names	= IWbemServices_endpoint_strings
};

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

static const struct ndr_interface_string_array IWbemServices_authservices = {
	.count	= 1,
	.names	= IWbemServices_authservice_strings
};


const struct ndr_interface_table ndr_table_IWbemServices = {
	.name		= "IWbemServices",
	.syntax_id	= {
		{0x9556dc99,0x828c,0x11cf,{0xa3,0x7e},{0x00,0xaa,0x00,0x32,0x40,0xc7}},
		NDR_IWBEMSERVICES_VERSION
	},
	.helpstring	= NDR_IWBEMSERVICES_HELPSTRING,
	.num_calls	= 23,
	.calls		= IWbemServices_calls,
	.endpoints	= &IWbemServices_endpoints,
	.authservices	= &IWbemServices_authservices
};

#include "librpc/gen_ndr/ndr_orpc.h"
static enum ndr_err_code ndr_push_Reset(struct ndr_push *ndr, int flags, const struct Reset *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

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

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_Reset(struct ndr_print *ndr, const char *name, int flags, const struct Reset *r)
{
	ndr_print_struct(ndr, name, "Reset");
	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", "Reset");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "Reset");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_IEnumWbemClassObject_Next(struct ndr_push *ndr, int flags, const struct IEnumWbemClassObject_Next *r)
{
	uint32_t cntr_apObjects_1;
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.lTimeout));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.uCount));
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		if (r->out.apObjects == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.uCount));
		NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
		NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, *r->out.puReturned));
		for (cntr_apObjects_1 = 0; cntr_apObjects_1 < *r->out.puReturned; cntr_apObjects_1++) {
			NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.apObjects[cntr_apObjects_1]));
		}
		for (cntr_apObjects_1 = 0; cntr_apObjects_1 < *r->out.puReturned; cntr_apObjects_1++) {
			if (r->out.apObjects[cntr_apObjects_1]) {
				NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.apObjects[cntr_apObjects_1]));
			}
		}
		if (r->out.puReturned == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.puReturned));
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_IEnumWbemClassObject_Next(struct ndr_pull *ndr, int flags, struct IEnumWbemClassObject_Next *r)
{
	uint32_t _ptr_apObjects;
	uint32_t size_apObjects_1 = 0;
	uint32_t length_apObjects_1 = 0;
	uint32_t cntr_apObjects_1;
	TALLOC_CTX *_mem_save_ORPCthat_0;
	TALLOC_CTX *_mem_save_apObjects_1;
	TALLOC_CTX *_mem_save_apObjects_2;
	TALLOC_CTX *_mem_save_puReturned_0;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		ZERO_STRUCT(r->out);

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.lTimeout));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.uCount));
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
		NDR_PULL_ALLOC_N(ndr, r->out.apObjects, r->in.uCount);
		memset(r->out.apObjects, 0, (r->in.uCount) * sizeof(*r->out.apObjects));
		NDR_PULL_ALLOC(ndr, r->out.puReturned);
		ZERO_STRUCTP(r->out.puReturned);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_array_size(ndr, &r->out.apObjects));
		NDR_CHECK(ndr_pull_array_length(ndr, &r->out.apObjects));
		size_apObjects_1 = ndr_get_array_size(ndr, &r->out.apObjects);
		length_apObjects_1 = ndr_get_array_length(ndr, &r->out.apObjects);
		if (length_apObjects_1 > size_apObjects_1) {
			return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_apObjects_1, length_apObjects_1);
		}
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC_N(ndr, r->out.apObjects, size_apObjects_1);
		}
		_mem_save_apObjects_1 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.apObjects, 0);
		for (cntr_apObjects_1 = 0; cntr_apObjects_1 < length_apObjects_1; cntr_apObjects_1++) {
			NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_apObjects));
			if (_ptr_apObjects) {
				NDR_PULL_ALLOC(ndr, r->out.apObjects[cntr_apObjects_1]);
			} else {
				r->out.apObjects[cntr_apObjects_1] = NULL;
			}
		}
		for (cntr_apObjects_1 = 0; cntr_apObjects_1 < length_apObjects_1; cntr_apObjects_1++) {
			if (r->out.apObjects[cntr_apObjects_1]) {
				_mem_save_apObjects_2 = NDR_PULL_GET_MEM_CTX(ndr);
				NDR_PULL_SET_MEM_CTX(ndr, r->out.apObjects[cntr_apObjects_1], 0);
				NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.apObjects[cntr_apObjects_1]));
				NDR_PULL_SET_MEM_CTX(ndr, _mem_save_apObjects_2, 0);
			}
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_apObjects_1, 0);
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.puReturned);
		}
		_mem_save_puReturned_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.puReturned, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.puReturned));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_puReturned_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
		if (r->out.apObjects) {
			NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.apObjects, r->in.uCount));
		}
		if (r->out.apObjects) {
			NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->out.apObjects, *r->out.puReturned));
		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_IEnumWbemClassObject_Next(struct ndr_print *ndr, const char *name, int flags, const struct IEnumWbemClassObject_Next *r)
{
	uint32_t cntr_apObjects_1;
	ndr_print_struct(ndr, name, "IEnumWbemClassObject_Next");
	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", "IEnumWbemClassObject_Next");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr_print_int32(ndr, "lTimeout", r->in.lTimeout);
		ndr_print_uint32(ndr, "uCount", r->in.uCount);
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "IEnumWbemClassObject_Next");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_ptr(ndr, "apObjects", r->out.apObjects);
		ndr->depth++;
		ndr->print(ndr, "%s: ARRAY(%d)", "apObjects", (int)*r->out.puReturned);
		ndr->depth++;
		for (cntr_apObjects_1=0;cntr_apObjects_1<*r->out.puReturned;cntr_apObjects_1++) {
			ndr_print_ptr(ndr, "apObjects", r->out.apObjects[cntr_apObjects_1]);
			ndr->depth++;
			if (r->out.apObjects[cntr_apObjects_1]) {
				ndr_print_MInterfacePointer(ndr, "apObjects", r->out.apObjects[cntr_apObjects_1]);
			}
			ndr->depth--;
		}
		ndr->depth--;
		ndr->depth--;
		ndr_print_ptr(ndr, "puReturned", r->out.puReturned);
		ndr->depth++;
		ndr_print_uint32(ndr, "puReturned", *r->out.puReturned);
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_NextAsync(struct ndr_push *ndr, int flags, const struct NextAsync *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.uCount));
		if (r->in.pSink == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pSink));
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_NextAsync(struct ndr_pull *ndr, int flags, struct NextAsync *r)
{
	TALLOC_CTX *_mem_save_ORPCthat_0;
	TALLOC_CTX *_mem_save_pSink_0;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		ZERO_STRUCT(r->out);

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.uCount));
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->in.pSink);
		}
		_mem_save_pSink_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->in.pSink, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pSink));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pSink_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_NextAsync(struct ndr_print *ndr, const char *name, int flags, const struct NextAsync *r)
{
	ndr_print_struct(ndr, name, "NextAsync");
	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", "NextAsync");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr_print_uint32(ndr, "uCount", r->in.uCount);
		ndr_print_ptr(ndr, "pSink", r->in.pSink);
		ndr->depth++;
		ndr_print_MInterfacePointer(ndr, "pSink", r->in.pSink);
		ndr->depth--;
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "NextAsync");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_IEnumWbemClassObject_Clone(struct ndr_push *ndr, int flags, const struct IEnumWbemClassObject_Clone *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		if (r->out.ppEnum == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ppEnum));
		if (*r->out.ppEnum) {
			NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppEnum));
		}
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_IEnumWbemClassObject_Clone(struct ndr_pull *ndr, int flags, struct IEnumWbemClassObject_Clone *r)
{
	uint32_t _ptr_ppEnum;
	TALLOC_CTX *_mem_save_ORPCthat_0;
	TALLOC_CTX *_mem_save_ppEnum_0;
	TALLOC_CTX *_mem_save_ppEnum_1;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		ZERO_STRUCT(r->out);

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
		NDR_PULL_ALLOC(ndr, r->out.ppEnum);
		ZERO_STRUCTP(r->out.ppEnum);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ppEnum);
		}
		_mem_save_ppEnum_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ppEnum, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppEnum));
		if (_ptr_ppEnum) {
			NDR_PULL_ALLOC(ndr, *r->out.ppEnum);
		} else {
			*r->out.ppEnum = NULL;
		}
		if (*r->out.ppEnum) {
			_mem_save_ppEnum_1 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, *r->out.ppEnum, 0);
			NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppEnum));
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppEnum_1, 0);
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppEnum_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_IEnumWbemClassObject_Clone(struct ndr_print *ndr, const char *name, int flags, const struct IEnumWbemClassObject_Clone *r)
{
	ndr_print_struct(ndr, name, "IEnumWbemClassObject_Clone");
	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", "IEnumWbemClassObject_Clone");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "IEnumWbemClassObject_Clone");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_ptr(ndr, "ppEnum", r->out.ppEnum);
		ndr->depth++;
		ndr_print_ptr(ndr, "ppEnum", *r->out.ppEnum);
		ndr->depth++;
		if (*r->out.ppEnum) {
			ndr_print_MInterfacePointer(ndr, "ppEnum", *r->out.ppEnum);
		}
		ndr->depth--;
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_Skip(struct ndr_push *ndr, int flags, const struct Skip *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.lTimeout));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.nCount));
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

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

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.lTimeout));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.nCount));
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_Skip(struct ndr_print *ndr, const char *name, int flags, const struct Skip *r)
{
	ndr_print_struct(ndr, name, "Skip");
	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", "Skip");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr_print_int32(ndr, "lTimeout", r->in.lTimeout);
		ndr_print_uint32(ndr, "nCount", r->in.nCount);
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "Skip");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static const struct ndr_interface_call IEnumWbemClassObject_calls[] = {
	{
		"Reset",
		sizeof(struct Reset),
		(ndr_push_flags_fn_t) ndr_push_Reset,
		(ndr_pull_flags_fn_t) ndr_pull_Reset,
		(ndr_print_function_t) ndr_print_Reset,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"IEnumWbemClassObject_Next",
		sizeof(struct IEnumWbemClassObject_Next),
		(ndr_push_flags_fn_t) ndr_push_IEnumWbemClassObject_Next,
		(ndr_pull_flags_fn_t) ndr_pull_IEnumWbemClassObject_Next,
		(ndr_print_function_t) ndr_print_IEnumWbemClassObject_Next,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"NextAsync",
		sizeof(struct NextAsync),
		(ndr_push_flags_fn_t) ndr_push_NextAsync,
		(ndr_pull_flags_fn_t) ndr_pull_NextAsync,
		(ndr_print_function_t) ndr_print_NextAsync,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"IEnumWbemClassObject_Clone",
		sizeof(struct IEnumWbemClassObject_Clone),
		(ndr_push_flags_fn_t) ndr_push_IEnumWbemClassObject_Clone,
		(ndr_pull_flags_fn_t) ndr_pull_IEnumWbemClassObject_Clone,
		(ndr_print_function_t) ndr_print_IEnumWbemClassObject_Clone,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"Skip",
		sizeof(struct Skip),
		(ndr_push_flags_fn_t) ndr_push_Skip,
		(ndr_pull_flags_fn_t) ndr_pull_Skip,
		(ndr_print_function_t) ndr_print_Skip,
		{ 0, NULL },
		{ 0, NULL },
	},
	{ NULL, 0, NULL, NULL, NULL }
};

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

static const struct ndr_interface_string_array IEnumWbemClassObject_endpoints = {
	.count	= 1,
	.names	= IEnumWbemClassObject_endpoint_strings
};

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

static const struct ndr_interface_string_array IEnumWbemClassObject_authservices = {
	.count	= 1,
	.names	= IEnumWbemClassObject_authservice_strings
};


const struct ndr_interface_table ndr_table_IEnumWbemClassObject = {
	.name		= "IEnumWbemClassObject",
	.syntax_id	= {
		{0x027947e1,0xd731,0x11ce,{0xa3,0x57},{0x00,0x00,0x00,0x00,0x00,0x01}},
		NDR_IENUMWBEMCLASSOBJECT_VERSION
	},
	.helpstring	= NDR_IENUMWBEMCLASSOBJECT_HELPSTRING,
	.num_calls	= 5,
	.calls		= IEnumWbemClassObject_calls,
	.endpoints	= &IEnumWbemClassObject_endpoints,
	.authservices	= &IEnumWbemClassObject_authservices
};

#include "librpc/gen_ndr/ndr_orpc.h"
static enum ndr_err_code ndr_push_Clone(struct ndr_push *ndr, int flags, const struct Clone *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		if (r->out.ppNewCopy == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ppNewCopy));
		if (*r->out.ppNewCopy) {
			NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppNewCopy));
		}
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_Clone(struct ndr_pull *ndr, int flags, struct Clone *r)
{
	uint32_t _ptr_ppNewCopy;
	TALLOC_CTX *_mem_save_ORPCthat_0;
	TALLOC_CTX *_mem_save_ppNewCopy_0;
	TALLOC_CTX *_mem_save_ppNewCopy_1;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		ZERO_STRUCT(r->out);

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
		NDR_PULL_ALLOC(ndr, r->out.ppNewCopy);
		ZERO_STRUCTP(r->out.ppNewCopy);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ppNewCopy);
		}
		_mem_save_ppNewCopy_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ppNewCopy, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppNewCopy));
		if (_ptr_ppNewCopy) {
			NDR_PULL_ALLOC(ndr, *r->out.ppNewCopy);
		} else {
			*r->out.ppNewCopy = NULL;
		}
		if (*r->out.ppNewCopy) {
			_mem_save_ppNewCopy_1 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, *r->out.ppNewCopy, 0);
			NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppNewCopy));
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppNewCopy_1, 0);
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppNewCopy_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_Clone(struct ndr_print *ndr, const char *name, int flags, const struct Clone *r)
{
	ndr_print_struct(ndr, name, "Clone");
	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", "Clone");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "Clone");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_ptr(ndr, "ppNewCopy", r->out.ppNewCopy);
		ndr->depth++;
		ndr_print_ptr(ndr, "ppNewCopy", *r->out.ppNewCopy);
		ndr->depth++;
		if (*r->out.ppNewCopy) {
			ndr_print_MInterfacePointer(ndr, "ppNewCopy", *r->out.ppNewCopy);
		}
		ndr->depth--;
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_GetNames(struct ndr_push *ndr, int flags, const struct GetNames *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

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

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_GetNames(struct ndr_print *ndr, const char *name, int flags, const struct GetNames *r)
{
	ndr_print_struct(ndr, name, "GetNames");
	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", "GetNames");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "GetNames");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_BeginEnumeration(struct ndr_push *ndr, int flags, const struct BeginEnumeration *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.lFlags));
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

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

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.lFlags));
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_BeginEnumeration(struct ndr_print *ndr, const char *name, int flags, const struct BeginEnumeration *r)
{
	ndr_print_struct(ndr, name, "BeginEnumeration");
	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", "BeginEnumeration");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr_print_int32(ndr, "lFlags", r->in.lFlags);
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "BeginEnumeration");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_Next(struct ndr_push *ndr, int flags, const struct Next *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

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

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_Next(struct ndr_print *ndr, const char *name, int flags, const struct Next *r)
{
	ndr_print_struct(ndr, name, "Next");
	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", "Next");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "Next");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_EndEnumeration(struct ndr_push *ndr, int flags, const struct EndEnumeration *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

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

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_EndEnumeration(struct ndr_print *ndr, const char *name, int flags, const struct EndEnumeration *r)
{
	ndr_print_struct(ndr, name, "EndEnumeration");
	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", "EndEnumeration");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "EndEnumeration");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_SetValue(struct ndr_push *ndr, int flags, const struct SetValue *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

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

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_SetValue(struct ndr_print *ndr, const char *name, int flags, const struct SetValue *r)
{
	ndr_print_struct(ndr, name, "SetValue");
	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", "SetValue");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "SetValue");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_GetValue(struct ndr_push *ndr, int flags, const struct GetValue *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

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

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_GetValue(struct ndr_print *ndr, const char *name, int flags, const struct GetValue *r)
{
	ndr_print_struct(ndr, name, "GetValue");
	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", "GetValue");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "GetValue");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_DeleteValue(struct ndr_push *ndr, int flags, const struct DeleteValue *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

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

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_DeleteValue(struct ndr_print *ndr, const char *name, int flags, const struct DeleteValue *r)
{
	ndr_print_struct(ndr, name, "DeleteValue");
	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", "DeleteValue");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "DeleteValue");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_DeleteAll(struct ndr_push *ndr, int flags, const struct DeleteAll *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

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

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_DeleteAll(struct ndr_print *ndr, const char *name, int flags, const struct DeleteAll *r)
{
	ndr_print_struct(ndr, name, "DeleteAll");
	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", "DeleteAll");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "DeleteAll");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static const struct ndr_interface_call IWbemContext_calls[] = {
	{
		"Clone",
		sizeof(struct Clone),
		(ndr_push_flags_fn_t) ndr_push_Clone,
		(ndr_pull_flags_fn_t) ndr_pull_Clone,
		(ndr_print_function_t) ndr_print_Clone,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"GetNames",
		sizeof(struct GetNames),
		(ndr_push_flags_fn_t) ndr_push_GetNames,
		(ndr_pull_flags_fn_t) ndr_pull_GetNames,
		(ndr_print_function_t) ndr_print_GetNames,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"BeginEnumeration",
		sizeof(struct BeginEnumeration),
		(ndr_push_flags_fn_t) ndr_push_BeginEnumeration,
		(ndr_pull_flags_fn_t) ndr_pull_BeginEnumeration,
		(ndr_print_function_t) ndr_print_BeginEnumeration,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"Next",
		sizeof(struct Next),
		(ndr_push_flags_fn_t) ndr_push_Next,
		(ndr_pull_flags_fn_t) ndr_pull_Next,
		(ndr_print_function_t) ndr_print_Next,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"EndEnumeration",
		sizeof(struct EndEnumeration),
		(ndr_push_flags_fn_t) ndr_push_EndEnumeration,
		(ndr_pull_flags_fn_t) ndr_pull_EndEnumeration,
		(ndr_print_function_t) ndr_print_EndEnumeration,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"SetValue",
		sizeof(struct SetValue),
		(ndr_push_flags_fn_t) ndr_push_SetValue,
		(ndr_pull_flags_fn_t) ndr_pull_SetValue,
		(ndr_print_function_t) ndr_print_SetValue,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"GetValue",
		sizeof(struct GetValue),
		(ndr_push_flags_fn_t) ndr_push_GetValue,
		(ndr_pull_flags_fn_t) ndr_pull_GetValue,
		(ndr_print_function_t) ndr_print_GetValue,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"DeleteValue",
		sizeof(struct DeleteValue),
		(ndr_push_flags_fn_t) ndr_push_DeleteValue,
		(ndr_pull_flags_fn_t) ndr_pull_DeleteValue,
		(ndr_print_function_t) ndr_print_DeleteValue,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"DeleteAll",
		sizeof(struct DeleteAll),
		(ndr_push_flags_fn_t) ndr_push_DeleteAll,
		(ndr_pull_flags_fn_t) ndr_pull_DeleteAll,
		(ndr_print_function_t) ndr_print_DeleteAll,
		{ 0, NULL },
		{ 0, NULL },
	},
	{ NULL, 0, NULL, NULL, NULL }
};

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

static const struct ndr_interface_string_array IWbemContext_endpoints = {
	.count	= 1,
	.names	= IWbemContext_endpoint_strings
};

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

static const struct ndr_interface_string_array IWbemContext_authservices = {
	.count	= 1,
	.names	= IWbemContext_authservice_strings
};


const struct ndr_interface_table ndr_table_IWbemContext = {
	.name		= "IWbemContext",
	.syntax_id	= {
		{0x44aca674,0xe8fc,0x11d0,{0xa0,0x7c},{0x00,0xc0,0x4f,0xb6,0x88,0x20}},
		NDR_IWBEMCONTEXT_VERSION
	},
	.helpstring	= NDR_IWBEMCONTEXT_HELPSTRING,
	.num_calls	= 9,
	.calls		= IWbemContext_calls,
	.endpoints	= &IWbemContext_endpoints,
	.authservices	= &IWbemContext_authservices
};

#include "librpc/gen_ndr/ndr_orpc.h"
static enum ndr_err_code ndr_push_EstablishPosition(struct ndr_push *ndr, int flags, const struct EstablishPosition *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.wszLocaleList));
		if (r->in.wszLocaleList) {
			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.wszLocaleList, CH_UTF16)));
			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.wszLocaleList, CH_UTF16)));
			NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.wszLocaleList, ndr_charset_length(r->in.wszLocaleList, CH_UTF16), sizeof(uint16_t), CH_UTF16));
		}
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.dwNumLocales));
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		if (r->out.reserved == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.reserved));
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_EstablishPosition(struct ndr_pull *ndr, int flags, struct EstablishPosition *r)
{
	uint32_t _ptr_wszLocaleList;
	uint32_t size_wszLocaleList_1 = 0;
	uint32_t length_wszLocaleList_1 = 0;
	TALLOC_CTX *_mem_save_ORPCthat_0;
	TALLOC_CTX *_mem_save_wszLocaleList_0;
	TALLOC_CTX *_mem_save_reserved_0;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		ZERO_STRUCT(r->out);

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_wszLocaleList));
		if (_ptr_wszLocaleList) {
			NDR_PULL_ALLOC(ndr, r->in.wszLocaleList);
		} else {
			r->in.wszLocaleList = NULL;
		}
		if (r->in.wszLocaleList) {
			_mem_save_wszLocaleList_0 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, r->in.wszLocaleList, 0);
			NDR_CHECK(ndr_pull_array_size(ndr, &r->in.wszLocaleList));
			NDR_CHECK(ndr_pull_array_length(ndr, &r->in.wszLocaleList));
			size_wszLocaleList_1 = ndr_get_array_size(ndr, &r->in.wszLocaleList);
			length_wszLocaleList_1 = ndr_get_array_length(ndr, &r->in.wszLocaleList);
			if (length_wszLocaleList_1 > size_wszLocaleList_1) {
				return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_wszLocaleList_1, length_wszLocaleList_1);
			}
			NDR_CHECK(ndr_check_string_terminator(ndr, length_wszLocaleList_1, sizeof(uint16_t)));
			NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.wszLocaleList, length_wszLocaleList_1, sizeof(uint16_t), CH_UTF16));
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_wszLocaleList_0, 0);
		}
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.dwNumLocales));
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
		NDR_PULL_ALLOC(ndr, r->out.reserved);
		ZERO_STRUCTP(r->out.reserved);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.reserved);
		}
		_mem_save_reserved_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.reserved, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.reserved));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_reserved_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_EstablishPosition(struct ndr_print *ndr, const char *name, int flags, const struct EstablishPosition *r)
{
	ndr_print_struct(ndr, name, "EstablishPosition");
	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", "EstablishPosition");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr_print_ptr(ndr, "wszLocaleList", r->in.wszLocaleList);
		ndr->depth++;
		if (r->in.wszLocaleList) {
			ndr_print_string(ndr, "wszLocaleList", r->in.wszLocaleList);
		}
		ndr->depth--;
		ndr_print_uint32(ndr, "dwNumLocales", r->in.dwNumLocales);
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "EstablishPosition");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_ptr(ndr, "reserved", r->out.reserved);
		ndr->depth++;
		ndr_print_uint32(ndr, "reserved", *r->out.reserved);
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_RequestChallenge(struct ndr_push *ndr, int flags, const struct RequestChallenge *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.wszNetworkResource));
		if (r->in.wszNetworkResource) {
			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.wszNetworkResource, CH_UTF16)));
			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.wszNetworkResource, CH_UTF16)));
			NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.wszNetworkResource, ndr_charset_length(r->in.wszNetworkResource, CH_UTF16), sizeof(uint16_t), CH_UTF16));
		}
		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.wszUser));
		if (r->in.wszUser) {
			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.wszUser, CH_UTF16)));
			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.wszUser, CH_UTF16)));
			NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.wszUser, ndr_charset_length(r->in.wszUser, CH_UTF16), sizeof(uint16_t), CH_UTF16));
		}
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		if (r->out.Nonce == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 16));
		NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
		NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 16));
		NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.Nonce, 16));
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_RequestChallenge(struct ndr_pull *ndr, int flags, struct RequestChallenge *r)
{
	uint32_t _ptr_wszNetworkResource;
	uint32_t size_wszNetworkResource_1 = 0;
	uint32_t length_wszNetworkResource_1 = 0;
	uint32_t _ptr_wszUser;
	uint32_t size_wszUser_1 = 0;
	uint32_t length_wszUser_1 = 0;
	uint32_t size_Nonce_1 = 0;
	uint32_t length_Nonce_1 = 0;
	TALLOC_CTX *_mem_save_ORPCthat_0;
	TALLOC_CTX *_mem_save_wszNetworkResource_0;
	TALLOC_CTX *_mem_save_wszUser_0;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		ZERO_STRUCT(r->out);

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_wszNetworkResource));
		if (_ptr_wszNetworkResource) {
			NDR_PULL_ALLOC(ndr, r->in.wszNetworkResource);
		} else {
			r->in.wszNetworkResource = NULL;
		}
		if (r->in.wszNetworkResource) {
			_mem_save_wszNetworkResource_0 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, r->in.wszNetworkResource, 0);
			NDR_CHECK(ndr_pull_array_size(ndr, &r->in.wszNetworkResource));
			NDR_CHECK(ndr_pull_array_length(ndr, &r->in.wszNetworkResource));
			size_wszNetworkResource_1 = ndr_get_array_size(ndr, &r->in.wszNetworkResource);
			length_wszNetworkResource_1 = ndr_get_array_length(ndr, &r->in.wszNetworkResource);
			if (length_wszNetworkResource_1 > size_wszNetworkResource_1) {
				return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_wszNetworkResource_1, length_wszNetworkResource_1);
			}
			NDR_CHECK(ndr_check_string_terminator(ndr, length_wszNetworkResource_1, sizeof(uint16_t)));
			NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.wszNetworkResource, length_wszNetworkResource_1, sizeof(uint16_t), CH_UTF16));
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_wszNetworkResource_0, 0);
		}
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_wszUser));
		if (_ptr_wszUser) {
			NDR_PULL_ALLOC(ndr, r->in.wszUser);
		} else {
			r->in.wszUser = NULL;
		}
		if (r->in.wszUser) {
			_mem_save_wszUser_0 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, r->in.wszUser, 0);
			NDR_CHECK(ndr_pull_array_size(ndr, &r->in.wszUser));
			NDR_CHECK(ndr_pull_array_length(ndr, &r->in.wszUser));
			size_wszUser_1 = ndr_get_array_size(ndr, &r->in.wszUser);
			length_wszUser_1 = ndr_get_array_length(ndr, &r->in.wszUser);
			if (length_wszUser_1 > size_wszUser_1) {
				return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_wszUser_1, length_wszUser_1);
			}
			NDR_CHECK(ndr_check_string_terminator(ndr, length_wszUser_1, sizeof(uint16_t)));
			NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.wszUser, length_wszUser_1, sizeof(uint16_t), CH_UTF16));
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_wszUser_0, 0);
		}
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
		NDR_PULL_ALLOC_N(ndr, r->out.Nonce, 16);
		memset(r->out.Nonce, 0, (16) * sizeof(*r->out.Nonce));
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_array_size(ndr, &r->out.Nonce));
		NDR_CHECK(ndr_pull_array_length(ndr, &r->out.Nonce));
		size_Nonce_1 = ndr_get_array_size(ndr, &r->out.Nonce);
		length_Nonce_1 = ndr_get_array_length(ndr, &r->out.Nonce);
		if (length_Nonce_1 > size_Nonce_1) {
			return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_Nonce_1, length_Nonce_1);
		}
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC_N(ndr, r->out.Nonce, size_Nonce_1);
		}
		NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.Nonce, length_Nonce_1));
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
		if (r->out.Nonce) {
			NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.Nonce, 16));
		}
		if (r->out.Nonce) {
			NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->out.Nonce, 16));
		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_RequestChallenge(struct ndr_print *ndr, const char *name, int flags, const struct RequestChallenge *r)
{
	ndr_print_struct(ndr, name, "RequestChallenge");
	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", "RequestChallenge");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr_print_ptr(ndr, "wszNetworkResource", r->in.wszNetworkResource);
		ndr->depth++;
		if (r->in.wszNetworkResource) {
			ndr_print_string(ndr, "wszNetworkResource", r->in.wszNetworkResource);
		}
		ndr->depth--;
		ndr_print_ptr(ndr, "wszUser", r->in.wszUser);
		ndr->depth++;
		if (r->in.wszUser) {
			ndr_print_string(ndr, "wszUser", r->in.wszUser);
		}
		ndr->depth--;
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "RequestChallenge");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_ptr(ndr, "Nonce", r->out.Nonce);
		ndr->depth++;
		ndr_print_array_uint8(ndr, "Nonce", r->out.Nonce, 16);
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_WBEMLogin(struct ndr_push *ndr, int flags, const struct WBEMLogin *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.wszPreferredLocale));
		if (r->in.wszPreferredLocale) {
			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.wszPreferredLocale, CH_UTF16)));
			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.wszPreferredLocale, CH_UTF16)));
			NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.wszPreferredLocale, ndr_charset_length(r->in.wszPreferredLocale, CH_UTF16), sizeof(uint16_t), CH_UTF16));
		}
		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.AccessToken));
		if (r->in.AccessToken) {
			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 16));
			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 16));
			NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.AccessToken, 16));
		}
		NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.lFlags));
		if (r->in.pCtx == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pCtx));
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		if (r->out.ppNamespace == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ppNamespace));
		if (*r->out.ppNamespace) {
			NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppNamespace));
		}
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_WBEMLogin(struct ndr_pull *ndr, int flags, struct WBEMLogin *r)
{
	uint32_t _ptr_wszPreferredLocale;
	uint32_t size_wszPreferredLocale_1 = 0;
	uint32_t length_wszPreferredLocale_1 = 0;
	uint32_t _ptr_AccessToken;
	uint32_t size_AccessToken_1 = 0;
	uint32_t length_AccessToken_1 = 0;
	uint32_t _ptr_ppNamespace;
	TALLOC_CTX *_mem_save_ORPCthat_0;
	TALLOC_CTX *_mem_save_wszPreferredLocale_0;
	TALLOC_CTX *_mem_save_AccessToken_0;
	TALLOC_CTX *_mem_save_pCtx_0;
	TALLOC_CTX *_mem_save_ppNamespace_0;
	TALLOC_CTX *_mem_save_ppNamespace_1;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		ZERO_STRUCT(r->out);

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_wszPreferredLocale));
		if (_ptr_wszPreferredLocale) {
			NDR_PULL_ALLOC(ndr, r->in.wszPreferredLocale);
		} else {
			r->in.wszPreferredLocale = NULL;
		}
		if (r->in.wszPreferredLocale) {
			_mem_save_wszPreferredLocale_0 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, r->in.wszPreferredLocale, 0);
			NDR_CHECK(ndr_pull_array_size(ndr, &r->in.wszPreferredLocale));
			NDR_CHECK(ndr_pull_array_length(ndr, &r->in.wszPreferredLocale));
			size_wszPreferredLocale_1 = ndr_get_array_size(ndr, &r->in.wszPreferredLocale);
			length_wszPreferredLocale_1 = ndr_get_array_length(ndr, &r->in.wszPreferredLocale);
			if (length_wszPreferredLocale_1 > size_wszPreferredLocale_1) {
				return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_wszPreferredLocale_1, length_wszPreferredLocale_1);
			}
			NDR_CHECK(ndr_check_string_terminator(ndr, length_wszPreferredLocale_1, sizeof(uint16_t)));
			NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.wszPreferredLocale, length_wszPreferredLocale_1, sizeof(uint16_t), CH_UTF16));
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_wszPreferredLocale_0, 0);
		}
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_AccessToken));
		if (_ptr_AccessToken) {
			NDR_PULL_ALLOC(ndr, r->in.AccessToken);
		} else {
			r->in.AccessToken = NULL;
		}
		if (r->in.AccessToken) {
			_mem_save_AccessToken_0 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, r->in.AccessToken, 0);
			NDR_CHECK(ndr_pull_array_size(ndr, &r->in.AccessToken));
			NDR_CHECK(ndr_pull_array_length(ndr, &r->in.AccessToken));
			size_AccessToken_1 = ndr_get_array_size(ndr, &r->in.AccessToken);
			length_AccessToken_1 = ndr_get_array_length(ndr, &r->in.AccessToken);
			if (length_AccessToken_1 > size_AccessToken_1) {
				return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_AccessToken_1, length_AccessToken_1);
			}
			NDR_PULL_ALLOC_N(ndr, r->in.AccessToken, size_AccessToken_1);
			NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.AccessToken, length_AccessToken_1));
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_AccessToken_0, 0);
		}
		NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.lFlags));
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->in.pCtx);
		}
		_mem_save_pCtx_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->in.pCtx, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pCtx));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pCtx_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
		NDR_PULL_ALLOC(ndr, r->out.ppNamespace);
		ZERO_STRUCTP(r->out.ppNamespace);
		if (r->in.AccessToken) {
			NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.AccessToken, 16));
		}
		if (r->in.AccessToken) {
			NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->in.AccessToken, 16));
		}
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ppNamespace);
		}
		_mem_save_ppNamespace_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ppNamespace, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppNamespace));
		if (_ptr_ppNamespace) {
			NDR_PULL_ALLOC(ndr, *r->out.ppNamespace);
		} else {
			*r->out.ppNamespace = NULL;
		}
		if (*r->out.ppNamespace) {
			_mem_save_ppNamespace_1 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, *r->out.ppNamespace, 0);
			NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppNamespace));
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppNamespace_1, 0);
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppNamespace_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_WBEMLogin(struct ndr_print *ndr, const char *name, int flags, const struct WBEMLogin *r)
{
	ndr_print_struct(ndr, name, "WBEMLogin");
	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", "WBEMLogin");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr_print_ptr(ndr, "wszPreferredLocale", r->in.wszPreferredLocale);
		ndr->depth++;
		if (r->in.wszPreferredLocale) {
			ndr_print_string(ndr, "wszPreferredLocale", r->in.wszPreferredLocale);
		}
		ndr->depth--;
		ndr_print_ptr(ndr, "AccessToken", r->in.AccessToken);
		ndr->depth++;
		if (r->in.AccessToken) {
			ndr_print_array_uint8(ndr, "AccessToken", r->in.AccessToken, 16);
		}
		ndr->depth--;
		ndr_print_int32(ndr, "lFlags", r->in.lFlags);
		ndr_print_ptr(ndr, "pCtx", r->in.pCtx);
		ndr->depth++;
		ndr_print_MInterfacePointer(ndr, "pCtx", r->in.pCtx);
		ndr->depth--;
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "WBEMLogin");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_ptr(ndr, "ppNamespace", r->out.ppNamespace);
		ndr->depth++;
		ndr_print_ptr(ndr, "ppNamespace", *r->out.ppNamespace);
		ndr->depth++;
		if (*r->out.ppNamespace) {
			ndr_print_MInterfacePointer(ndr, "ppNamespace", *r->out.ppNamespace);
		}
		ndr->depth--;
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_NTLMLogin(struct ndr_push *ndr, int flags, const struct NTLMLogin *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.wszNetworkResource));
		if (r->in.wszNetworkResource) {
			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.wszNetworkResource, CH_UTF16)));
			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.wszNetworkResource, CH_UTF16)));
			NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.wszNetworkResource, ndr_charset_length(r->in.wszNetworkResource, CH_UTF16), sizeof(uint16_t), CH_UTF16));
		}
		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.wszPreferredLocale));
		if (r->in.wszPreferredLocale) {
			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.wszPreferredLocale, CH_UTF16)));
			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.wszPreferredLocale, CH_UTF16)));
			NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.wszPreferredLocale, ndr_charset_length(r->in.wszPreferredLocale, CH_UTF16), sizeof(uint16_t), CH_UTF16));
		}
		NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.lFlags));
		NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.pCtx));
		if (r->in.pCtx) {
			NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pCtx));
		}
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		if (r->out.ppNamespace == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ppNamespace));
		if (*r->out.ppNamespace) {
			NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppNamespace));
		}
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_NTLMLogin(struct ndr_pull *ndr, int flags, struct NTLMLogin *r)
{
	uint32_t _ptr_wszNetworkResource;
	uint32_t size_wszNetworkResource_1 = 0;
	uint32_t length_wszNetworkResource_1 = 0;
	uint32_t _ptr_wszPreferredLocale;
	uint32_t size_wszPreferredLocale_1 = 0;
	uint32_t length_wszPreferredLocale_1 = 0;
	uint32_t _ptr_pCtx;
	uint32_t _ptr_ppNamespace;
	TALLOC_CTX *_mem_save_ORPCthat_0;
	TALLOC_CTX *_mem_save_wszNetworkResource_0;
	TALLOC_CTX *_mem_save_wszPreferredLocale_0;
	TALLOC_CTX *_mem_save_pCtx_0;
	TALLOC_CTX *_mem_save_ppNamespace_0;
	TALLOC_CTX *_mem_save_ppNamespace_1;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		ZERO_STRUCT(r->out);

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_wszNetworkResource));
		if (_ptr_wszNetworkResource) {
			NDR_PULL_ALLOC(ndr, r->in.wszNetworkResource);
		} else {
			r->in.wszNetworkResource = NULL;
		}
		if (r->in.wszNetworkResource) {
			_mem_save_wszNetworkResource_0 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, r->in.wszNetworkResource, 0);
			NDR_CHECK(ndr_pull_array_size(ndr, &r->in.wszNetworkResource));
			NDR_CHECK(ndr_pull_array_length(ndr, &r->in.wszNetworkResource));
			size_wszNetworkResource_1 = ndr_get_array_size(ndr, &r->in.wszNetworkResource);
			length_wszNetworkResource_1 = ndr_get_array_length(ndr, &r->in.wszNetworkResource);
			if (length_wszNetworkResource_1 > size_wszNetworkResource_1) {
				return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_wszNetworkResource_1, length_wszNetworkResource_1);
			}
			NDR_CHECK(ndr_check_string_terminator(ndr, length_wszNetworkResource_1, sizeof(uint16_t)));
			NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.wszNetworkResource, length_wszNetworkResource_1, sizeof(uint16_t), CH_UTF16));
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_wszNetworkResource_0, 0);
		}
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_wszPreferredLocale));
		if (_ptr_wszPreferredLocale) {
			NDR_PULL_ALLOC(ndr, r->in.wszPreferredLocale);
		} else {
			r->in.wszPreferredLocale = NULL;
		}
		if (r->in.wszPreferredLocale) {
			_mem_save_wszPreferredLocale_0 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, r->in.wszPreferredLocale, 0);
			NDR_CHECK(ndr_pull_array_size(ndr, &r->in.wszPreferredLocale));
			NDR_CHECK(ndr_pull_array_length(ndr, &r->in.wszPreferredLocale));
			size_wszPreferredLocale_1 = ndr_get_array_size(ndr, &r->in.wszPreferredLocale);
			length_wszPreferredLocale_1 = ndr_get_array_length(ndr, &r->in.wszPreferredLocale);
			if (length_wszPreferredLocale_1 > size_wszPreferredLocale_1) {
				return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_wszPreferredLocale_1, length_wszPreferredLocale_1);
			}
			NDR_CHECK(ndr_check_string_terminator(ndr, length_wszPreferredLocale_1, sizeof(uint16_t)));
			NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.wszPreferredLocale, length_wszPreferredLocale_1, sizeof(uint16_t), CH_UTF16));
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_wszPreferredLocale_0, 0);
		}
		NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.lFlags));
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pCtx));
		if (_ptr_pCtx) {
			NDR_PULL_ALLOC(ndr, r->in.pCtx);
		} else {
			r->in.pCtx = NULL;
		}
		if (r->in.pCtx) {
			_mem_save_pCtx_0 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, r->in.pCtx, 0);
			NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pCtx));
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pCtx_0, 0);
		}
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
		NDR_PULL_ALLOC(ndr, r->out.ppNamespace);
		ZERO_STRUCTP(r->out.ppNamespace);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ppNamespace);
		}
		_mem_save_ppNamespace_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ppNamespace, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppNamespace));
		if (_ptr_ppNamespace) {
			NDR_PULL_ALLOC(ndr, *r->out.ppNamespace);
		} else {
			*r->out.ppNamespace = NULL;
		}
		if (*r->out.ppNamespace) {
			_mem_save_ppNamespace_1 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, *r->out.ppNamespace, 0);
			NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppNamespace));
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppNamespace_1, 0);
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppNamespace_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_NTLMLogin(struct ndr_print *ndr, const char *name, int flags, const struct NTLMLogin *r)
{
	ndr_print_struct(ndr, name, "NTLMLogin");
	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", "NTLMLogin");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr_print_ptr(ndr, "wszNetworkResource", r->in.wszNetworkResource);
		ndr->depth++;
		if (r->in.wszNetworkResource) {
			ndr_print_string(ndr, "wszNetworkResource", r->in.wszNetworkResource);
		}
		ndr->depth--;
		ndr_print_ptr(ndr, "wszPreferredLocale", r->in.wszPreferredLocale);
		ndr->depth++;
		if (r->in.wszPreferredLocale) {
			ndr_print_string(ndr, "wszPreferredLocale", r->in.wszPreferredLocale);
		}
		ndr->depth--;
		ndr_print_int32(ndr, "lFlags", r->in.lFlags);
		ndr_print_ptr(ndr, "pCtx", r->in.pCtx);
		ndr->depth++;
		if (r->in.pCtx) {
			ndr_print_MInterfacePointer(ndr, "pCtx", r->in.pCtx);
		}
		ndr->depth--;
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "NTLMLogin");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_ptr(ndr, "ppNamespace", r->out.ppNamespace);
		ndr->depth++;
		ndr_print_ptr(ndr, "ppNamespace", *r->out.ppNamespace);
		ndr->depth++;
		if (*r->out.ppNamespace) {
			ndr_print_MInterfacePointer(ndr, "ppNamespace", *r->out.ppNamespace);
		}
		ndr->depth--;
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static const struct ndr_interface_call IWbemLevel1Login_calls[] = {
	{
		"EstablishPosition",
		sizeof(struct EstablishPosition),
		(ndr_push_flags_fn_t) ndr_push_EstablishPosition,
		(ndr_pull_flags_fn_t) ndr_pull_EstablishPosition,
		(ndr_print_function_t) ndr_print_EstablishPosition,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"RequestChallenge",
		sizeof(struct RequestChallenge),
		(ndr_push_flags_fn_t) ndr_push_RequestChallenge,
		(ndr_pull_flags_fn_t) ndr_pull_RequestChallenge,
		(ndr_print_function_t) ndr_print_RequestChallenge,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"WBEMLogin",
		sizeof(struct WBEMLogin),
		(ndr_push_flags_fn_t) ndr_push_WBEMLogin,
		(ndr_pull_flags_fn_t) ndr_pull_WBEMLogin,
		(ndr_print_function_t) ndr_print_WBEMLogin,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"NTLMLogin",
		sizeof(struct NTLMLogin),
		(ndr_push_flags_fn_t) ndr_push_NTLMLogin,
		(ndr_pull_flags_fn_t) ndr_pull_NTLMLogin,
		(ndr_print_function_t) ndr_print_NTLMLogin,
		{ 0, NULL },
		{ 0, NULL },
	},
	{ NULL, 0, NULL, NULL, NULL }
};

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

static const struct ndr_interface_string_array IWbemLevel1Login_endpoints = {
	.count	= 1,
	.names	= IWbemLevel1Login_endpoint_strings
};

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

static const struct ndr_interface_string_array IWbemLevel1Login_authservices = {
	.count	= 1,
	.names	= IWbemLevel1Login_authservice_strings
};


const struct ndr_interface_table ndr_table_IWbemLevel1Login = {
	.name		= "IWbemLevel1Login",
	.syntax_id	= {
		{0xf309ad18,0xd86a,0x11d0,{0xa0,0x75},{0x00,0xc0,0x4f,0xb6,0x88,0x20}},
		NDR_IWBEMLEVEL1LOGIN_VERSION
	},
	.helpstring	= NDR_IWBEMLEVEL1LOGIN_HELPSTRING,
	.num_calls	= 4,
	.calls		= IWbemLevel1Login_calls,
	.endpoints	= &IWbemLevel1Login_endpoints,
	.authservices	= &IWbemLevel1Login_authservices
};

#include "librpc/gen_ndr/ndr_orpc.h"
static enum ndr_err_code ndr_push_IWbemWCOSmartEnum_Next(struct ndr_push *ndr, int flags, const struct IWbemWCOSmartEnum_Next *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		if (r->in.gEWCO == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.gEWCO));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.lTimeOut));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.uCount));
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
		if (r->in.gWCO == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.gWCO));
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		if (r->out.puReturned == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.puReturned));
		if (r->out.pSize == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.pSize));
		if (r->out.pData == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.pData));
		if (*r->out.pData) {
			NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, *r->out.pSize));
			NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, *r->out.pData, *r->out.pSize));
		}
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_IWbemWCOSmartEnum_Next(struct ndr_pull *ndr, int flags, struct IWbemWCOSmartEnum_Next *r)
{
	uint32_t _ptr_pData;
	uint32_t size_pData_2 = 0;
	TALLOC_CTX *_mem_save_ORPCthat_0;
	TALLOC_CTX *_mem_save_gEWCO_0;
	TALLOC_CTX *_mem_save_gWCO_0;
	TALLOC_CTX *_mem_save_puReturned_0;
	TALLOC_CTX *_mem_save_pSize_0;
	TALLOC_CTX *_mem_save_pData_0;
	TALLOC_CTX *_mem_save_pData_1;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		ZERO_STRUCT(r->out);

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->in.gEWCO);
		}
		_mem_save_gEWCO_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->in.gEWCO, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.gEWCO));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gEWCO_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.lTimeOut));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.uCount));
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->in.gWCO);
		}
		_mem_save_gWCO_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->in.gWCO, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.gWCO));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gWCO_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
		NDR_PULL_ALLOC(ndr, r->out.puReturned);
		ZERO_STRUCTP(r->out.puReturned);
		NDR_PULL_ALLOC(ndr, r->out.pSize);
		ZERO_STRUCTP(r->out.pSize);
		NDR_PULL_ALLOC(ndr, r->out.pData);
		ZERO_STRUCTP(r->out.pData);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.puReturned);
		}
		_mem_save_puReturned_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.puReturned, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.puReturned));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_puReturned_0, LIBNDR_FLAG_REF_ALLOC);
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.pSize);
		}
		_mem_save_pSize_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.pSize, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.pSize));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pSize_0, LIBNDR_FLAG_REF_ALLOC);
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.pData);
		}
		_mem_save_pData_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.pData, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pData));
		if (_ptr_pData) {
			NDR_PULL_ALLOC(ndr, *r->out.pData);
		} else {
			*r->out.pData = NULL;
		}
		if (*r->out.pData) {
			_mem_save_pData_1 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, *r->out.pData, 0);
			NDR_CHECK(ndr_pull_array_size(ndr, r->out.pData));
			size_pData_2 = ndr_get_array_size(ndr, r->out.pData);
			NDR_PULL_ALLOC_N(ndr, *r->out.pData, size_pData_2);
			NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, *r->out.pData, size_pData_2));
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pData_1, 0);
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pData_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
		if (*r->out.pData) {
			NDR_CHECK(ndr_check_array_size(ndr, (void*)r->out.pData, *r->out.pSize));
		}
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_IWbemWCOSmartEnum_Next(struct ndr_print *ndr, const char *name, int flags, const struct IWbemWCOSmartEnum_Next *r)
{
	ndr_print_struct(ndr, name, "IWbemWCOSmartEnum_Next");
	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", "IWbemWCOSmartEnum_Next");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr_print_ptr(ndr, "gEWCO", r->in.gEWCO);
		ndr->depth++;
		ndr_print_GUID(ndr, "gEWCO", r->in.gEWCO);
		ndr->depth--;
		ndr_print_uint32(ndr, "lTimeOut", r->in.lTimeOut);
		ndr_print_uint32(ndr, "uCount", r->in.uCount);
		ndr_print_uint32(ndr, "unknown", r->in.unknown);
		ndr_print_ptr(ndr, "gWCO", r->in.gWCO);
		ndr->depth++;
		ndr_print_GUID(ndr, "gWCO", r->in.gWCO);
		ndr->depth--;
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "IWbemWCOSmartEnum_Next");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_ptr(ndr, "puReturned", r->out.puReturned);
		ndr->depth++;
		ndr_print_uint32(ndr, "puReturned", *r->out.puReturned);
		ndr->depth--;
		ndr_print_ptr(ndr, "pSize", r->out.pSize);
		ndr->depth++;
		ndr_print_uint32(ndr, "pSize", *r->out.pSize);
		ndr->depth--;
		ndr_print_ptr(ndr, "pData", r->out.pData);
		ndr->depth++;
		ndr_print_ptr(ndr, "pData", *r->out.pData);
		ndr->depth++;
		if (*r->out.pData) {
			ndr_print_array_uint8(ndr, "pData", *r->out.pData, *r->out.pSize);
		}
		ndr->depth--;
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static const struct ndr_interface_call IWbemWCOSmartEnum_calls[] = {
	{
		"IWbemWCOSmartEnum_Next",
		sizeof(struct IWbemWCOSmartEnum_Next),
		(ndr_push_flags_fn_t) ndr_push_IWbemWCOSmartEnum_Next,
		(ndr_pull_flags_fn_t) ndr_pull_IWbemWCOSmartEnum_Next,
		(ndr_print_function_t) ndr_print_IWbemWCOSmartEnum_Next,
		{ 0, NULL },
		{ 0, NULL },
	},
	{ NULL, 0, NULL, NULL, NULL }
};

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

static const struct ndr_interface_string_array IWbemWCOSmartEnum_endpoints = {
	.count	= 1,
	.names	= IWbemWCOSmartEnum_endpoint_strings
};

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

static const struct ndr_interface_string_array IWbemWCOSmartEnum_authservices = {
	.count	= 1,
	.names	= IWbemWCOSmartEnum_authservice_strings
};


const struct ndr_interface_table ndr_table_IWbemWCOSmartEnum = {
	.name		= "IWbemWCOSmartEnum",
	.syntax_id	= {
		{0x423ec01e,0x2e35,0x11d2,{0xb6,0x04},{0x00,0x10,0x4b,0x70,0x3e,0xfd}},
		NDR_IWBEMWCOSMARTENUM_VERSION
	},
	.helpstring	= NDR_IWBEMWCOSMARTENUM_HELPSTRING,
	.num_calls	= 1,
	.calls		= IWbemWCOSmartEnum_calls,
	.endpoints	= &IWbemWCOSmartEnum_endpoints,
	.authservices	= &IWbemWCOSmartEnum_authservices
};

#include "librpc/gen_ndr/ndr_orpc.h"
static enum ndr_err_code ndr_push_Fetch(struct ndr_push *ndr, int flags, const struct Fetch *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		if (r->out.ppEnum == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ppEnum));
		if (*r->out.ppEnum) {
			NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppEnum));
		}
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_Fetch(struct ndr_pull *ndr, int flags, struct Fetch *r)
{
	uint32_t _ptr_ppEnum;
	TALLOC_CTX *_mem_save_ORPCthat_0;
	TALLOC_CTX *_mem_save_ppEnum_0;
	TALLOC_CTX *_mem_save_ppEnum_1;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		ZERO_STRUCT(r->out);

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
		NDR_PULL_ALLOC(ndr, r->out.ppEnum);
		ZERO_STRUCTP(r->out.ppEnum);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ppEnum);
		}
		_mem_save_ppEnum_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ppEnum, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppEnum));
		if (_ptr_ppEnum) {
			NDR_PULL_ALLOC(ndr, *r->out.ppEnum);
		} else {
			*r->out.ppEnum = NULL;
		}
		if (*r->out.ppEnum) {
			_mem_save_ppEnum_1 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, *r->out.ppEnum, 0);
			NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppEnum));
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppEnum_1, 0);
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppEnum_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_Fetch(struct ndr_print *ndr, const char *name, int flags, const struct Fetch *r)
{
	ndr_print_struct(ndr, name, "Fetch");
	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", "Fetch");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "Fetch");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_ptr(ndr, "ppEnum", r->out.ppEnum);
		ndr->depth++;
		ndr_print_ptr(ndr, "ppEnum", *r->out.ppEnum);
		ndr->depth++;
		if (*r->out.ppEnum) {
			ndr_print_MInterfacePointer(ndr, "ppEnum", *r->out.ppEnum);
		}
		ndr->depth--;
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_Test(struct ndr_push *ndr, int flags, const struct Test *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		if (r->out.ppEnum == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ppEnum));
		if (*r->out.ppEnum) {
			NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppEnum));
		}
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_Test(struct ndr_pull *ndr, int flags, struct Test *r)
{
	uint32_t _ptr_ppEnum;
	TALLOC_CTX *_mem_save_ORPCthat_0;
	TALLOC_CTX *_mem_save_ppEnum_0;
	TALLOC_CTX *_mem_save_ppEnum_1;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		ZERO_STRUCT(r->out);

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
		NDR_PULL_ALLOC(ndr, r->out.ppEnum);
		ZERO_STRUCTP(r->out.ppEnum);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ppEnum);
		}
		_mem_save_ppEnum_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ppEnum, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppEnum));
		if (_ptr_ppEnum) {
			NDR_PULL_ALLOC(ndr, *r->out.ppEnum);
		} else {
			*r->out.ppEnum = NULL;
		}
		if (*r->out.ppEnum) {
			_mem_save_ppEnum_1 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, *r->out.ppEnum, 0);
			NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppEnum));
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppEnum_1, 0);
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppEnum_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_Test(struct ndr_print *ndr, const char *name, int flags, const struct Test *r)
{
	ndr_print_struct(ndr, name, "Test");
	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", "Test");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "Test");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_ptr(ndr, "ppEnum", r->out.ppEnum);
		ndr->depth++;
		ndr_print_ptr(ndr, "ppEnum", *r->out.ppEnum);
		ndr->depth++;
		if (*r->out.ppEnum) {
			ndr_print_MInterfacePointer(ndr, "ppEnum", *r->out.ppEnum);
		}
		ndr->depth--;
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static const struct ndr_interface_call IWbemFetchSmartEnum_calls[] = {
	{
		"Fetch",
		sizeof(struct Fetch),
		(ndr_push_flags_fn_t) ndr_push_Fetch,
		(ndr_pull_flags_fn_t) ndr_pull_Fetch,
		(ndr_print_function_t) ndr_print_Fetch,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"Test",
		sizeof(struct Test),
		(ndr_push_flags_fn_t) ndr_push_Test,
		(ndr_pull_flags_fn_t) ndr_pull_Test,
		(ndr_print_function_t) ndr_print_Test,
		{ 0, NULL },
		{ 0, NULL },
	},
	{ NULL, 0, NULL, NULL, NULL }
};

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

static const struct ndr_interface_string_array IWbemFetchSmartEnum_endpoints = {
	.count	= 1,
	.names	= IWbemFetchSmartEnum_endpoint_strings
};

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

static const struct ndr_interface_string_array IWbemFetchSmartEnum_authservices = {
	.count	= 1,
	.names	= IWbemFetchSmartEnum_authservice_strings
};


const struct ndr_interface_table ndr_table_IWbemFetchSmartEnum = {
	.name		= "IWbemFetchSmartEnum",
	.syntax_id	= {
		{0x1c1c45ee,0x4395,0x11d2,{0xb6,0x0b},{0x00,0x10,0x4b,0x70,0x3e,0xfd}},
		NDR_IWBEMFETCHSMARTENUM_VERSION
	},
	.helpstring	= NDR_IWBEMFETCHSMARTENUM_HELPSTRING,
	.num_calls	= 2,
	.calls		= IWbemFetchSmartEnum_calls,
	.endpoints	= &IWbemFetchSmartEnum_endpoints,
	.authservices	= &IWbemFetchSmartEnum_authservices
};

#include "librpc/gen_ndr/ndr_orpc.h"
static enum ndr_err_code ndr_push_GetResultObject(struct ndr_push *ndr, int flags, const struct GetResultObject *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.lTimeout));
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		if (r->out.ppResultObject == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ppResultObject));
		if (*r->out.ppResultObject) {
			NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppResultObject));
		}
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_GetResultObject(struct ndr_pull *ndr, int flags, struct GetResultObject *r)
{
	uint32_t _ptr_ppResultObject;
	TALLOC_CTX *_mem_save_ORPCthat_0;
	TALLOC_CTX *_mem_save_ppResultObject_0;
	TALLOC_CTX *_mem_save_ppResultObject_1;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		ZERO_STRUCT(r->out);

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.lTimeout));
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
		NDR_PULL_ALLOC(ndr, r->out.ppResultObject);
		ZERO_STRUCTP(r->out.ppResultObject);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ppResultObject);
		}
		_mem_save_ppResultObject_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ppResultObject, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppResultObject));
		if (_ptr_ppResultObject) {
			NDR_PULL_ALLOC(ndr, *r->out.ppResultObject);
		} else {
			*r->out.ppResultObject = NULL;
		}
		if (*r->out.ppResultObject) {
			_mem_save_ppResultObject_1 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, *r->out.ppResultObject, 0);
			NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppResultObject));
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppResultObject_1, 0);
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppResultObject_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_GetResultObject(struct ndr_print *ndr, const char *name, int flags, const struct GetResultObject *r)
{
	ndr_print_struct(ndr, name, "GetResultObject");
	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", "GetResultObject");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr_print_int32(ndr, "lTimeout", r->in.lTimeout);
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "GetResultObject");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_ptr(ndr, "ppResultObject", r->out.ppResultObject);
		ndr->depth++;
		ndr_print_ptr(ndr, "ppResultObject", *r->out.ppResultObject);
		ndr->depth++;
		if (*r->out.ppResultObject) {
			ndr_print_MInterfacePointer(ndr, "ppResultObject", *r->out.ppResultObject);
		}
		ndr->depth--;
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_GetResultString(struct ndr_push *ndr, int flags, const struct GetResultString *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.lTimeout));
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		if (r->out.pstrResultString == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_BSTR(ndr, NDR_SCALARS, r->out.pstrResultString));
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_GetResultString(struct ndr_pull *ndr, int flags, struct GetResultString *r)
{
	TALLOC_CTX *_mem_save_ORPCthat_0;
	TALLOC_CTX *_mem_save_pstrResultString_0;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		ZERO_STRUCT(r->out);

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.lTimeout));
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
		NDR_PULL_ALLOC(ndr, r->out.pstrResultString);
		ZERO_STRUCTP(r->out.pstrResultString);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.pstrResultString);
		}
		_mem_save_pstrResultString_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.pstrResultString, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_BSTR(ndr, NDR_SCALARS, r->out.pstrResultString));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pstrResultString_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_GetResultString(struct ndr_print *ndr, const char *name, int flags, const struct GetResultString *r)
{
	ndr_print_struct(ndr, name, "GetResultString");
	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", "GetResultString");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr_print_int32(ndr, "lTimeout", r->in.lTimeout);
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "GetResultString");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_ptr(ndr, "pstrResultString", r->out.pstrResultString);
		ndr->depth++;
		ndr_print_BSTR(ndr, "pstrResultString", r->out.pstrResultString);
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_GetResultServices(struct ndr_push *ndr, int flags, const struct GetResultServices *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.lTimeout));
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		if (r->out.ppServices == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ppServices));
		if (*r->out.ppServices) {
			NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppServices));
		}
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_GetResultServices(struct ndr_pull *ndr, int flags, struct GetResultServices *r)
{
	uint32_t _ptr_ppServices;
	TALLOC_CTX *_mem_save_ORPCthat_0;
	TALLOC_CTX *_mem_save_ppServices_0;
	TALLOC_CTX *_mem_save_ppServices_1;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		ZERO_STRUCT(r->out);

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.lTimeout));
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
		NDR_PULL_ALLOC(ndr, r->out.ppServices);
		ZERO_STRUCTP(r->out.ppServices);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ppServices);
		}
		_mem_save_ppServices_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ppServices, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppServices));
		if (_ptr_ppServices) {
			NDR_PULL_ALLOC(ndr, *r->out.ppServices);
		} else {
			*r->out.ppServices = NULL;
		}
		if (*r->out.ppServices) {
			_mem_save_ppServices_1 = NDR_PULL_GET_MEM_CTX(ndr);
			NDR_PULL_SET_MEM_CTX(ndr, *r->out.ppServices, 0);
			NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppServices));
			NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppServices_1, 0);
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppServices_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_GetResultServices(struct ndr_print *ndr, const char *name, int flags, const struct GetResultServices *r)
{
	ndr_print_struct(ndr, name, "GetResultServices");
	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", "GetResultServices");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr_print_int32(ndr, "lTimeout", r->in.lTimeout);
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "GetResultServices");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_ptr(ndr, "ppServices", r->out.ppServices);
		ndr->depth++;
		ndr_print_ptr(ndr, "ppServices", *r->out.ppServices);
		ndr->depth++;
		if (*r->out.ppServices) {
			ndr_print_MInterfacePointer(ndr, "ppServices", *r->out.ppServices);
		}
		ndr->depth--;
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_GetCallStatus(struct ndr_push *ndr, int flags, const struct GetCallStatus *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.lTimeout));
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		if (r->out.plStatus == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, *r->out.plStatus));
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_GetCallStatus(struct ndr_pull *ndr, int flags, struct GetCallStatus *r)
{
	TALLOC_CTX *_mem_save_ORPCthat_0;
	TALLOC_CTX *_mem_save_plStatus_0;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		ZERO_STRUCT(r->out);

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.lTimeout));
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
		NDR_PULL_ALLOC(ndr, r->out.plStatus);
		ZERO_STRUCTP(r->out.plStatus);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.plStatus);
		}
		_mem_save_plStatus_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.plStatus, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, r->out.plStatus));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_plStatus_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_GetCallStatus(struct ndr_print *ndr, const char *name, int flags, const struct GetCallStatus *r)
{
	ndr_print_struct(ndr, name, "GetCallStatus");
	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", "GetCallStatus");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr_print_int32(ndr, "lTimeout", r->in.lTimeout);
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "GetCallStatus");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_ptr(ndr, "plStatus", r->out.plStatus);
		ndr->depth++;
		ndr_print_int32(ndr, "plStatus", *r->out.plStatus);
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static const struct ndr_interface_call IWbemCallResult_calls[] = {
	{
		"GetResultObject",
		sizeof(struct GetResultObject),
		(ndr_push_flags_fn_t) ndr_push_GetResultObject,
		(ndr_pull_flags_fn_t) ndr_pull_GetResultObject,
		(ndr_print_function_t) ndr_print_GetResultObject,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"GetResultString",
		sizeof(struct GetResultString),
		(ndr_push_flags_fn_t) ndr_push_GetResultString,
		(ndr_pull_flags_fn_t) ndr_pull_GetResultString,
		(ndr_print_function_t) ndr_print_GetResultString,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"GetResultServices",
		sizeof(struct GetResultServices),
		(ndr_push_flags_fn_t) ndr_push_GetResultServices,
		(ndr_pull_flags_fn_t) ndr_pull_GetResultServices,
		(ndr_print_function_t) ndr_print_GetResultServices,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"GetCallStatus",
		sizeof(struct GetCallStatus),
		(ndr_push_flags_fn_t) ndr_push_GetCallStatus,
		(ndr_pull_flags_fn_t) ndr_pull_GetCallStatus,
		(ndr_print_function_t) ndr_print_GetCallStatus,
		{ 0, NULL },
		{ 0, NULL },
	},
	{ NULL, 0, NULL, NULL, NULL }
};

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

static const struct ndr_interface_string_array IWbemCallResult_endpoints = {
	.count	= 1,
	.names	= IWbemCallResult_endpoint_strings
};

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

static const struct ndr_interface_string_array IWbemCallResult_authservices = {
	.count	= 1,
	.names	= IWbemCallResult_authservice_strings
};


const struct ndr_interface_table ndr_table_IWbemCallResult = {
	.name		= "IWbemCallResult",
	.syntax_id	= {
		{0x44aca675,0xe8fc,0x11d0,{0xa0,0x7c},{0x00,0xc0,0x4f,0xb6,0x88,0x20}},
		NDR_IWBEMCALLRESULT_VERSION
	},
	.helpstring	= NDR_IWBEMCALLRESULT_HELPSTRING,
	.num_calls	= 4,
	.calls		= IWbemCallResult_calls,
	.endpoints	= &IWbemCallResult_endpoints,
	.authservices	= &IWbemCallResult_authservices
};

#include "librpc/gen_ndr/ndr_orpc.h"
static enum ndr_err_code ndr_push_SetStatus(struct ndr_push *ndr, int flags, const struct SetStatus *r)
{
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.lFlags));
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->in.hResult));
		NDR_CHECK(ndr_push_BSTR(ndr, NDR_SCALARS, &r->in.strParam));
		if (r->in.pObjParam == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pObjParam));
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_SetStatus(struct ndr_pull *ndr, int flags, struct SetStatus *r)
{
	TALLOC_CTX *_mem_save_ORPCthat_0;
	TALLOC_CTX *_mem_save_pObjParam_0;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		ZERO_STRUCT(r->out);

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.lFlags));
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->in.hResult));
		NDR_CHECK(ndr_pull_BSTR(ndr, NDR_SCALARS, &r->in.strParam));
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->in.pObjParam);
		}
		_mem_save_pObjParam_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->in.pObjParam, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pObjParam));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pObjParam_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_SetStatus(struct ndr_print *ndr, const char *name, int flags, const struct SetStatus *r)
{
	ndr_print_struct(ndr, name, "SetStatus");
	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", "SetStatus");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr_print_int32(ndr, "lFlags", r->in.lFlags);
		ndr_print_WERROR(ndr, "hResult", r->in.hResult);
		ndr_print_BSTR(ndr, "strParam", &r->in.strParam);
		ndr_print_ptr(ndr, "pObjParam", r->in.pObjParam);
		ndr->depth++;
		ndr_print_MInterfacePointer(ndr, "pObjParam", r->in.pObjParam);
		ndr->depth--;
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "SetStatus");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static enum ndr_err_code ndr_push_Indicate(struct ndr_push *ndr, int flags, const struct Indicate *r)
{
	uint32_t cntr_apObjArray_1;
	NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		NDR_CHECK(ndr_push_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.lObjectCount));
		if (r->in.apObjArray == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.lObjectCount));
		for (cntr_apObjArray_1 = 0; cntr_apObjArray_1 < r->in.lObjectCount; cntr_apObjArray_1++) {
			NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.apObjArray[cntr_apObjArray_1]));
		}
		for (cntr_apObjArray_1 = 0; cntr_apObjArray_1 < r->in.lObjectCount; cntr_apObjArray_1++) {
			if (r->in.apObjArray[cntr_apObjArray_1]) {
				NDR_CHECK(ndr_push_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.apObjArray[cntr_apObjArray_1]));
			}
		}
	}
	if (flags & NDR_OUT) {
		if (r->out.ORPCthat == NULL) {
			return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
		}
		NDR_CHECK(ndr_push_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

static enum ndr_err_code ndr_pull_Indicate(struct ndr_pull *ndr, int flags, struct Indicate *r)
{
	uint32_t _ptr_apObjArray;
	uint32_t size_apObjArray_1 = 0;
	uint32_t cntr_apObjArray_1;
	TALLOC_CTX *_mem_save_ORPCthat_0;
	TALLOC_CTX *_mem_save_apObjArray_1;
	TALLOC_CTX *_mem_save_apObjArray_2;
	NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
	if (flags & NDR_IN) {
		ZERO_STRUCT(r->out);

		NDR_CHECK(ndr_pull_ORPCTHIS(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.ORPCthis));
		NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.lObjectCount));
		NDR_CHECK(ndr_pull_array_size(ndr, &r->in.apObjArray));
		size_apObjArray_1 = ndr_get_array_size(ndr, &r->in.apObjArray);
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC_N(ndr, r->in.apObjArray, size_apObjArray_1);
		}
		_mem_save_apObjArray_1 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->in.apObjArray, 0);
		for (cntr_apObjArray_1 = 0; cntr_apObjArray_1 < size_apObjArray_1; cntr_apObjArray_1++) {
			NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_apObjArray));
			if (_ptr_apObjArray) {
				NDR_PULL_ALLOC(ndr, r->in.apObjArray[cntr_apObjArray_1]);
			} else {
				r->in.apObjArray[cntr_apObjArray_1] = NULL;
			}
		}
		for (cntr_apObjArray_1 = 0; cntr_apObjArray_1 < size_apObjArray_1; cntr_apObjArray_1++) {
			if (r->in.apObjArray[cntr_apObjArray_1]) {
				_mem_save_apObjArray_2 = NDR_PULL_GET_MEM_CTX(ndr);
				NDR_PULL_SET_MEM_CTX(ndr, r->in.apObjArray[cntr_apObjArray_1], 0);
				NDR_CHECK(ndr_pull_MInterfacePointer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.apObjArray[cntr_apObjArray_1]));
				NDR_PULL_SET_MEM_CTX(ndr, _mem_save_apObjArray_2, 0);
			}
		}
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_apObjArray_1, 0);
		NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		ZERO_STRUCTP(r->out.ORPCthat);
		if (r->in.apObjArray) {
			NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.apObjArray, r->in.lObjectCount));
		}
	}
	if (flags & NDR_OUT) {
		if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
			NDR_PULL_ALLOC(ndr, r->out.ORPCthat);
		}
		_mem_save_ORPCthat_0 = NDR_PULL_GET_MEM_CTX(ndr);
		NDR_PULL_SET_MEM_CTX(ndr, r->out.ORPCthat, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_ORPCTHAT(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ORPCthat));
		NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ORPCthat_0, LIBNDR_FLAG_REF_ALLOC);
		NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
	}
	return NDR_ERR_SUCCESS;
}

_PUBLIC_ void ndr_print_Indicate(struct ndr_print *ndr, const char *name, int flags, const struct Indicate *r)
{
	uint32_t cntr_apObjArray_1;
	ndr_print_struct(ndr, name, "Indicate");
	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", "Indicate");
		ndr->depth++;
		ndr_print_ORPCTHIS(ndr, "ORPCthis", &r->in.ORPCthis);
		ndr_print_int32(ndr, "lObjectCount", r->in.lObjectCount);
		ndr_print_ptr(ndr, "apObjArray", r->in.apObjArray);
		ndr->depth++;
		ndr->print(ndr, "%s: ARRAY(%d)", "apObjArray", (int)r->in.lObjectCount);
		ndr->depth++;
		for (cntr_apObjArray_1=0;cntr_apObjArray_1<r->in.lObjectCount;cntr_apObjArray_1++) {
			ndr_print_ptr(ndr, "apObjArray", r->in.apObjArray[cntr_apObjArray_1]);
			ndr->depth++;
			if (r->in.apObjArray[cntr_apObjArray_1]) {
				ndr_print_MInterfacePointer(ndr, "apObjArray", r->in.apObjArray[cntr_apObjArray_1]);
			}
			ndr->depth--;
		}
		ndr->depth--;
		ndr->depth--;
		ndr->depth--;
	}
	if (flags & NDR_OUT) {
		ndr_print_struct(ndr, "out", "Indicate");
		ndr->depth++;
		ndr_print_ptr(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth++;
		ndr_print_ORPCTHAT(ndr, "ORPCthat", r->out.ORPCthat);
		ndr->depth--;
		ndr_print_WERROR(ndr, "result", r->out.result);
		ndr->depth--;
	}
	ndr->depth--;
}

static const struct ndr_interface_call IWbemObjectSink_calls[] = {
	{
		"SetStatus",
		sizeof(struct SetStatus),
		(ndr_push_flags_fn_t) ndr_push_SetStatus,
		(ndr_pull_flags_fn_t) ndr_pull_SetStatus,
		(ndr_print_function_t) ndr_print_SetStatus,
		{ 0, NULL },
		{ 0, NULL },
	},
	{
		"Indicate",
		sizeof(struct Indicate),
		(ndr_push_flags_fn_t) ndr_push_Indicate,
		(ndr_pull_flags_fn_t) ndr_pull_Indicate,
		(ndr_print_function_t) ndr_print_Indicate,
		{ 0, NULL },
		{ 0, NULL },
	},
	{ NULL, 0, NULL, NULL, NULL }
};

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

static const struct ndr_interface_string_array IWbemObjectSink_endpoints = {
	.count	= 1,
	.names	= IWbemObjectSink_endpoint_strings
};

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

static const struct ndr_interface_string_array IWbemObjectSink_authservices = {
	.count	= 1,
	.names	= IWbemObjectSink_authservice_strings
};


const struct ndr_interface_table ndr_table_IWbemObjectSink = {
	.name		= "IWbemObjectSink",
	.syntax_id	= {
		{0x7c857801,0x7381,0x11cf,{0x88,0x4d},{0x00,0xaa,0x00,0x4b,0x2e,0x24}},
		NDR_IWBEMOBJECTSINK_VERSION
	},
	.helpstring	= NDR_IWBEMOBJECTSINK_HELPSTRING,
	.num_calls	= 2,
	.calls		= IWbemObjectSink_calls,
	.endpoints	= &IWbemObjectSink_endpoints,
	.authservices	= &IWbemObjectSink_authservices
};

